Fixed problems with enemy rooftop climbing (by sevenfm)

- Also updated "Water", "DeepWater" and "WaterTooDeepForAttacks" methods: Added bLevel parameter (by sevenfm)
- see: http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=22966&start=0&

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8110 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2016-03-15 12:40:54 +00:00
parent 5bc2bae07e
commit 23d4051473
12 changed files with 118 additions and 154 deletions
+1 -1
View File
@@ -2624,7 +2624,7 @@ if(!GridNoOnVisibleWorldTile(iDestination))
fNonSwimmer = !( IS_MERC_BODY_TYPE( s ) );
if ( fNonSwimmer )
{
if ( Water( sDestination ) )
if ( Water( sDestination, ubLevel ) )
{
return( 0 );
}
+1 -1
View File
@@ -1117,7 +1117,7 @@ INT32 FindRandomGridNoBetweenCircles( INT32 sCenterGridNo, UINT8 uInnerRadius, U
sGridNo = sCenterGridNo + (WORLD_COLS * sY) + sX;
if ( TileIsOutOfBounds( sGridNo ) || Water( sGridNo ) || !IsLocationSittable( sGridNo, 0 ) || PythSpacesAway( sGridNo, sCenterGridNo ) <= uInnerRadius || PythSpacesAway( sGridNo, sCenterGridNo ) > uOuterRadius )
if ( TileIsOutOfBounds( sGridNo ) || Water( sGridNo, 0 ) || !IsLocationSittable( sGridNo, 0 ) || PythSpacesAway( sGridNo, sCenterGridNo ) <= uInnerRadius || PythSpacesAway( sGridNo, sCenterGridNo ) > uOuterRadius )
sGridNo = NOWHERE;
else
fFound = TRUE;
+1 -1
View File
@@ -16318,7 +16318,7 @@ void SOLDIERTYPE::DropSectorEquipment( )
if ( sPutGridNo == NOWHERE )
sPutGridNo = RandomGridNo( );
if ( Water( sPutGridNo ) )
if ( Water( sPutGridNo, this->pathing.bLevel ) )
sPutGridNo = gMapInformation.sCenterGridNo;
if ( (this->sSectorX == gWorldSectorX) && (this->sSectorY == gWorldSectorY) && (this->bSectorZ == gbWorldSectorZ) )
+1 -1
View File
@@ -2829,7 +2829,7 @@ UINT8 GetActionModeCursor( SOLDIERTYPE *pSoldier )
// WANNE.WATER: Allow shooting if we are on a "water" tile, but on level > 0
// Now check our terrain to see if we cannot do the action now...
if ( WaterTooDeepForAttacks( pSoldier->sGridNo) && pSoldier->pathing.bLevel == 0 )
if ( WaterTooDeepForAttacks( pSoldier->sGridNo, pSoldier->pathing.bLevel) && pSoldier->pathing.bLevel == 0 )
{
ubCursor = INVALIDCURS;
}
+2 -2
View File
@@ -5408,11 +5408,11 @@ UINT8 MovementNoise( SOLDIERTYPE *pSoldier )
}
// if sneaker is moving through water
if (Water( pSoldier->sGridNo ) )
if (Water( pSoldier->sGridNo, pSoldier->pathing.bLevel ) )
{
iStealthSkill -= 10; // 10% penalty
}
else if (DeepWater( pSoldier->sGridNo ) )
else if (DeepWater( pSoldier->sGridNo, pSoldier->pathing.bLevel ) )
{
iStealthSkill -= 20; // 20% penalty
}