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:
Shadooow
2021-07-06 19:06:23 +00:00
parent 385210ba09
commit d6f07a7ef5
9 changed files with 28 additions and 21 deletions
+3 -3
View File
@@ -5873,7 +5873,7 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
UINT8 ubCombinedLoss, ubVolume, ubReason;
// SOLDIERTYPE * pNewSoldier;
if (gfGodModeCheat && this->bTeam == OUR_TEAM)
if (gTacticalStatus.uiFlags & GODMODE && this->bTeam == OUR_TEAM)
{
sDamage = 0;
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
// 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 )
{
@@ -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;
sBreathLoss = 0;
+10 -2
View File
@@ -3516,8 +3516,16 @@ void GetKeyboardInput( UINT32 *puiNewEvent )
{
if (CHEATER_CHEAT_LEVEL())
{
ScreenMsg(FONT_MCOLOR_RED, MSG_INTERFACE, gfGodModeCheat ? L"God mode deactivated." : L"God mode activated.");
gfGodModeCheat = !gfGodModeCheat;
if (gTacticalStatus.uiFlags & GODMODE)
{
//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] )
+1 -6
View File
@@ -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;
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
if ((PreRandom( uiCritChance ) + 1) > (UINT8)(gGameOptions.fNewTraitSystem ? gSkillTraitValues.ubDamageNeededToLoseStats : CRITICAL_HIT_THRESHOLD))
{