From f035858e3f3fd713ba7ae42d6cb8b7d6a2f35732 Mon Sep 17 00:00:00 2001 From: lalien Date: Wed, 22 Aug 2007 14:29:14 +0000 Subject: [PATCH] - removed breath reduction for soldiers that are not in loaded sector - added bug fix from build 1240 (fixed freeze in tactical - enemy soldier attempted to throw item at himself (save from pyg)) git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1251 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Points.cpp | 8 ++++++-- TileEngine/physics.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Tactical/Points.cpp b/Tactical/Points.cpp index 58a64983..ff1bfeeb 100644 --- a/Tactical/Points.cpp +++ b/Tactical/Points.cpp @@ -884,9 +884,13 @@ INT16 GetBreathPerAP( SOLDIERTYPE *pSoldier, UINT16 usAnimState ) //rain // Reduce breath gain on 25%/rain intensity - if( sBreathPerAP < 0 && ( pSoldier->bLevel ||!FindStructure( pSoldier->sGridNo, STRUCTURE_ROOF ) ) && pSoldier->bBreath > 1) + // Lalien: only for soldiers that are in loaded sector, + if ( gfWorldLoaded && pSoldier->bInSector) { - sBreathPerAP -= (INT16)( sBreathPerAP * gbCurrentRainIntensity * gGameExternalOptions.ubBreathGainReductionPerRainIntensity / 100 ); + if( sBreathPerAP < 0 && ( pSoldier->bLevel || !FindStructure( pSoldier->sGridNo, STRUCTURE_ROOF ) ) && pSoldier->bBreath > 1) + { + sBreathPerAP -= (INT16)( sBreathPerAP * gbCurrentRainIntensity * gGameExternalOptions.ubBreathGainReductionPerRainIntensity / 100 ); + } } //end rain diff --git a/TileEngine/physics.cpp b/TileEngine/physics.cpp index 23802699..c65fe22a 100644 --- a/TileEngine/physics.cpp +++ b/TileEngine/physics.cpp @@ -2010,6 +2010,12 @@ BOOLEAN CalculateLaunchItemChanceToGetThrough( SOLDIERTYPE *pSoldier, OBJECTTYPE vector_3 vForce, vPosition, vDirNormal; DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"CalculateLaunchItemChanceToGetThrough"); + + if ( pSoldier->sGridNo == sGridNo ) + { + printf("Warning! Soldier #%d attempted to launch item at himself\n", pSoldier->ubID); + return FALSE; + } // Ge7t basic launch params... CalculateLaunchItemBasicParams( pSoldier, pItem, sGridNo, ubLevel, sEndZ, &dForce, &dDegrees, psFinalGridNo, fArmed );