mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
godmode reworked: reused existing mechanism in code = same functionality, less code changes, also when enabled GOD MODE text will now show up in left corner in red color, this was already there I just uncommented it
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9128 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -4,7 +4,6 @@
|
|||||||
#include "Language Defines.h"
|
#include "Language Defines.h"
|
||||||
|
|
||||||
extern UINT8 gubCheatLevel;
|
extern UINT8 gubCheatLevel;
|
||||||
extern BOOLEAN gfGodModeCheat;
|
|
||||||
|
|
||||||
// GLOBALS FOR CHEAT MODE......
|
// GLOBALS FOR CHEAT MODE......
|
||||||
#ifdef JA2TESTVERSION
|
#ifdef JA2TESTVERSION
|
||||||
|
|||||||
@@ -6737,7 +6737,6 @@ BOOLEAN LoadSavedGame( int ubSavedGameID )
|
|||||||
ACTIVATE_CHEAT_LEVEL();
|
ACTIVATE_CHEAT_LEVEL();
|
||||||
else
|
else
|
||||||
RESET_CHEAT_LEVEL();
|
RESET_CHEAT_LEVEL();
|
||||||
gfGodModeCheat = FALSE;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef JA2BETAVERSION
|
#ifdef JA2BETAVERSION
|
||||||
|
|||||||
@@ -4782,7 +4782,7 @@ void AttackTarget( SOLDIERCELL *pAttacker, SOLDIERCELL *pTarget )
|
|||||||
|
|
||||||
// WANNE: Why is impact here always set to 0? The impact was calculated a few lines before!
|
// WANNE: Why is impact here always set to 0? The impact was calculated a few lines before!
|
||||||
//iImpact = 0;
|
//iImpact = 0;
|
||||||
if (gfGodModeCheat && pTarget->pSoldier->bTeam == OUR_TEAM)
|
if (gTacticalStatus.uiFlags & GODMODE && pTarget->pSoldier->bTeam == OUR_TEAM)
|
||||||
{
|
{
|
||||||
iImpact = 0;
|
iImpact = 0;
|
||||||
}
|
}
|
||||||
@@ -5005,7 +5005,7 @@ void TargetHitCallback( SOLDIERCELL *pTarget, INT32 index )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gfGodModeCheat && pTarget->pSoldier->bTeam == OUR_TEAM)
|
if (gTacticalStatus.uiFlags & GODMODE && pTarget->pSoldier->bTeam == OUR_TEAM)
|
||||||
{
|
{
|
||||||
iNewLife = pTarget->pSoldier->stats.bLife;
|
iNewLife = pTarget->pSoldier->stats.bLife;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ extern BOOLEAN gfGamePaused;
|
|||||||
extern UNDERGROUND_SECTORINFO* FindUnderGroundSector( INT16 sMapX, INT16 sMapY, UINT8 bMapZ );
|
extern UNDERGROUND_SECTORINFO* FindUnderGroundSector( INT16 sMapX, INT16 sMapY, UINT8 bMapZ );
|
||||||
|
|
||||||
UINT8 gubCheatLevel = STARTING_CHEAT_LEVEL;
|
UINT8 gubCheatLevel = STARTING_CHEAT_LEVEL;
|
||||||
BOOLEAN gfGodModeCheat = FALSE;
|
|
||||||
|
|
||||||
UINT8 gubScreenCount=0;
|
UINT8 gubScreenCount=0;
|
||||||
|
|
||||||
@@ -1231,7 +1230,6 @@ void ReStartingGame()
|
|||||||
gubCheatLevel = STARTING_CHEAT_LEVEL;
|
gubCheatLevel = STARTING_CHEAT_LEVEL;
|
||||||
else
|
else
|
||||||
gubCheatLevel = 0;
|
gubCheatLevel = 0;
|
||||||
gfGodModeCheat = FALSE;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -7780,8 +7780,16 @@ void GetMapKeyboardInput( UINT32 *puiNewEvent )
|
|||||||
{
|
{
|
||||||
if (CHEATER_CHEAT_LEVEL())
|
if (CHEATER_CHEAT_LEVEL())
|
||||||
{
|
{
|
||||||
ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, gfGodModeCheat ? L"God mode deactivated." : L"God mode activated.");
|
if (gTacticalStatus.uiFlags & GODMODE)
|
||||||
gfGodModeCheat = !gfGodModeCheat;
|
{
|
||||||
|
//ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, L"God mode deactivated.");
|
||||||
|
gTacticalStatus.uiFlags &= (~GODMODE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, L"God mode activated.");
|
||||||
|
gTacticalStatus.uiFlags |= GODMODE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -5873,7 +5873,7 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
|
|||||||
UINT8 ubCombinedLoss, ubVolume, ubReason;
|
UINT8 ubCombinedLoss, ubVolume, ubReason;
|
||||||
// SOLDIERTYPE * pNewSoldier;
|
// SOLDIERTYPE * pNewSoldier;
|
||||||
|
|
||||||
if (gfGodModeCheat && this->bTeam == OUR_TEAM)
|
if (gTacticalStatus.uiFlags & GODMODE && this->bTeam == OUR_TEAM)
|
||||||
{
|
{
|
||||||
sDamage = 0;
|
sDamage = 0;
|
||||||
ubSpecial = FIRE_WEAPON_NO_SPECIAL;
|
ubSpecial = FIRE_WEAPON_NO_SPECIAL;
|
||||||
@@ -6722,7 +6722,7 @@ void SoldierGotHitGunFire( SOLDIERTYPE *pSoldier, UINT16 usWeaponIndex, INT16 sD
|
|||||||
|
|
||||||
// MAYBE CHANGE TO SPECIAL ANIMATION BASED ON VALUE SET BY DAMAGE CALCULATION CODE
|
// MAYBE CHANGE TO SPECIAL ANIMATION BASED ON VALUE SET BY DAMAGE CALCULATION CODE
|
||||||
// ALL THESE ONLY WORK ON STANDING PEOPLE
|
// ALL THESE ONLY WORK ON STANDING PEOPLE
|
||||||
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_MONSTER) && gAnimControl[pSoldier->usAnimState].ubEndHeight == ANIM_STAND && (!gfGodModeCheat || pSoldier->bTeam != OUR_TEAM))
|
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_MONSTER) && gAnimControl[pSoldier->usAnimState].ubEndHeight == ANIM_STAND && (!(gTacticalStatus.uiFlags & GODMODE) || pSoldier->bTeam != OUR_TEAM))
|
||||||
{
|
{
|
||||||
if ( gAnimControl[pSoldier->usAnimState].ubEndHeight == ANIM_STAND )
|
if ( gAnimControl[pSoldier->usAnimState].ubEndHeight == ANIM_STAND )
|
||||||
{
|
{
|
||||||
@@ -10322,7 +10322,7 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gfGodModeCheat && this->bTeam == OUR_TEAM)
|
if (gTacticalStatus.uiFlags & GODMODE && this->bTeam == OUR_TEAM)
|
||||||
{
|
{
|
||||||
sLifeDeduct = 0;
|
sLifeDeduct = 0;
|
||||||
sBreathLoss = 0;
|
sBreathLoss = 0;
|
||||||
|
|||||||
@@ -3516,8 +3516,16 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
|
|||||||
{
|
{
|
||||||
if (CHEATER_CHEAT_LEVEL())
|
if (CHEATER_CHEAT_LEVEL())
|
||||||
{
|
{
|
||||||
ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, gfGodModeCheat ? L"God mode deactivated." : L"God mode activated.");
|
if (gTacticalStatus.uiFlags & GODMODE)
|
||||||
gfGodModeCheat = !gfGodModeCheat;
|
{
|
||||||
|
//ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, L"God mode deactivated.");
|
||||||
|
gTacticalStatus.uiFlags &= (~GODMODE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, L"God mode activated.");
|
||||||
|
gTacticalStatus.uiFlags |= GODMODE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] )
|
else if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] )
|
||||||
|
|||||||
@@ -8320,7 +8320,7 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iImpactForCrits > 0 && iImpactForCrits < pTarget->stats.bLife && !(pTarget->flags.uiStatusFlags & SOLDIER_MONSTER) && !(pTarget->flags.uiStatusFlags & SOLDIER_VEHICLE)) // not to monsters - SANDRO
|
if (iImpactForCrits > 0 && iImpactForCrits < pTarget->stats.bLife && !(pTarget->flags.uiStatusFlags & SOLDIER_MONSTER) && !(pTarget->flags.uiStatusFlags & SOLDIER_VEHICLE) && (!(gTacticalStatus.uiFlags & GODMODE) || pTarget->bTeam != OUR_TEAM))
|
||||||
{
|
{
|
||||||
UINT32 uiCritChance = 0;
|
UINT32 uiCritChance = 0;
|
||||||
if (fFragment)
|
if (fFragment)
|
||||||
@@ -8342,11 +8342,6 @@ INT32 BulletImpact( SOLDIERTYPE *pFirer, BULLET *pBullet, SOLDIERTYPE * pTarget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gfGodModeCheat && pTarget->bTeam == OUR_TEAM)
|
|
||||||
{
|
|
||||||
uiCritChance = 0;//no crit against player in god mode either
|
|
||||||
}
|
|
||||||
|
|
||||||
// SANDRO - with new traits, the chance for stat loss is higher as we are now able to repair it
|
// SANDRO - with new traits, the chance for stat loss is higher as we are now able to repair it
|
||||||
if ((PreRandom( uiCritChance ) + 1) > (UINT8)(gGameOptions.fNewTraitSystem ? gSkillTraitValues.ubDamageNeededToLoseStats : CRITICAL_HIT_THRESHOLD))
|
if ((PreRandom( uiCritChance ) + 1) > (UINT8)(gGameOptions.fNewTraitSystem ? gSkillTraitValues.ubDamageNeededToLoseStats : CRITICAL_HIT_THRESHOLD))
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -173,8 +173,8 @@ void DisplayFrameRate( )
|
|||||||
SetFont( SMALLFONT1 );
|
SetFont( SMALLFONT1 );
|
||||||
SetFontBackground( FONT_MCOLOR_BLACK );
|
SetFontBackground( FONT_MCOLOR_BLACK );
|
||||||
SetFontForeground( FONT_MCOLOR_DKRED );
|
SetFontForeground( FONT_MCOLOR_DKRED );
|
||||||
//gprintfdirty( 0, 0, L"GOD MODE" );
|
gprintfdirty( 0, 0, L"GOD MODE" );
|
||||||
//mprintf( 0, 0, L"GOD MODE" );
|
mprintf( 0, 0, L"GOD MODE" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ( gTacticalStatus.uiFlags & DEMOMODE ) )
|
if ( ( gTacticalStatus.uiFlags & DEMOMODE ) )
|
||||||
|
|||||||
Reference in New Issue
Block a user