new cheat command CTRL+SHIFT+g = god mode (invulnerability) requested by Parkan, works in both tactical and strategic

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9097 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Shadooow
2021-06-21 21:15:17 +00:00
parent fd528e418c
commit bdbe1ffe65
4 changed files with 34 additions and 2 deletions
+9 -1
View File
@@ -90,6 +90,7 @@ INT32 giMaxMilitiaToRender = 20;//Changes depending on merc amount
extern UINT8 gubReinforcementMinEnemyStaticGroupSize; extern UINT8 gubReinforcementMinEnemyStaticGroupSize;
extern BOOLEAN gfStrategicMilitiaChangesMade; extern BOOLEAN gfStrategicMilitiaChangesMade;
extern BOOLEAN gfGodModeCheat;
extern void ResetMilitia(); extern void ResetMilitia();
extern BOOLEAN AutoReload( SOLDIERTYPE *pSoldier ); extern BOOLEAN AutoReload( SOLDIERTYPE *pSoldier );
@@ -5001,7 +5002,14 @@ void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index )
break; break;
} }
iNewLife = pTarget->pSoldier->stats.bLife - pTarget->usHitDamage[index]; if (gfGodModeCheat && pTarget->pSoldier->bTeam == OUR_TEAM)
{
iNewLife = pTarget->pSoldier->stats.bLife;
}
else
{
iNewLife = pTarget->pSoldier->stats.bLife - pTarget->usHitDamage[index];
}
if( !pTarget->usHitDamage[index] ) if( !pTarget->usHitDamage[index] )
{ //bullet missed -- play a ricochet sound. { //bullet missed -- play a ricochet sound.
if( pTarget->uiFlags & CELL_MERC ) if( pTarget->uiFlags & CELL_MERC )
+11
View File
@@ -708,6 +708,7 @@ extern CHAR16 gzUserDefinedButton1[ 128 ];
extern CHAR16 gzUserDefinedButton2[ 128 ]; extern CHAR16 gzUserDefinedButton2[ 128 ];
extern BOOLEAN gfMilitiaPopupCreated; extern BOOLEAN gfMilitiaPopupCreated;
extern BOOLEAN gfGodModeCheat;
#ifdef JA2TESTVERSION #ifdef JA2TESTVERSION
extern INT16 MSYS_CurrentMX; extern INT16 MSYS_CurrentMX;
@@ -7775,6 +7776,16 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
} }
} }
break; break;
case 'G':
if (fCtrl)
{
if (CHEATER_CHEAT_LEVEL())
{
ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, gfGodModeCheat ? L"God mode deactivated." : L"God mode activated.");
gfGodModeCheat = !gfGodModeCheat;
}
}
break;
case 'g': case 'g':
break; break;
case 'h': case 'h':
+7
View File
@@ -1713,6 +1713,7 @@ PaletteReplacementType *guipPaletteReplacements = NULL;
extern BOOLEAN fReDrawFace; extern BOOLEAN fReDrawFace;
extern UINT8 gubWaitingForAllMercsToExitCode; extern UINT8 gubWaitingForAllMercsToExitCode;
BOOLEAN gfGetNewPathThroughPeople = FALSE; BOOLEAN gfGetNewPathThroughPeople = FALSE;
BOOLEAN gfGodModeCheat = FALSE;
// LOCAL FUNCTIONS // LOCAL FUNCTIONS
// DO NOT CALL UNLESS THROUGH EVENT_SetSoldierPosition // DO NOT CALL UNLESS THROUGH EVENT_SetSoldierPosition
@@ -10315,6 +10316,12 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
} }
} }
} }
if (gfGodModeCheat && this->bTeam == OUR_TEAM)
{
sLifeDeduct = 0;
sBreathLoss = 0;
}
// Deduct life!, Show damage if we want! // Deduct life!, Show damage if we want!
bOldLife = this->stats.bLife; bOldLife = this->stats.bLife;
+7 -1
View File
@@ -218,6 +218,7 @@ extern int iWindowedMode;
extern OBJECTTYPE *gpItemDescObject; extern OBJECTTYPE *gpItemDescObject;
extern BOOLEAN gfInItemStackPopup; extern BOOLEAN gfInItemStackPopup;
extern BOOLEAN gfInKeyRingPopup; extern BOOLEAN gfInKeyRingPopup;
extern BOOLEAN gfGodModeCheat;
//Little functions called by keyboard input //Little functions called by keyboard input
@@ -3512,7 +3513,12 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
case 'G': case 'G':
if( fCtrl ) if( fCtrl )
{ {
if (CHEATER_CHEAT_LEVEL())
{
ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, gfGodModeCheat ? L"God mode deactivated." : L"God mode activated.");
gfGodModeCheat = !gfGodModeCheat;
}
} }
else if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] ) else if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] )
{ {