mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
- Fix: VS2010 debug build issue with reading in StructureConstruct.xml
- replaced a few hardcoded values with enums - use TANK(...) macro instead of checking for bodytype by hand git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7959 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -193,7 +193,7 @@ INT32 FindClosestClimbPoint( SOLDIERTYPE *pSoldier, INT32 sStartGridNo, INT32 sD
|
||||
// Found a climb point for this building
|
||||
if (fClimbUp)
|
||||
{
|
||||
for (ubTestDir = 0; ubTestDir < 8; ubTestDir += 2)
|
||||
for (ubTestDir = 0; ubTestDir < NUM_WORLD_DIRECTIONS; ubTestDir += 2)
|
||||
{
|
||||
sTestGridNo = NewGridNo( sGridNo, DirectionInc( ubTestDir));
|
||||
if (gpWorldLevelData[ sTestGridNo ].ubExtFlags[0] & MAPELEMENT_EXT_CLIMBPOINT)
|
||||
@@ -216,7 +216,7 @@ INT32 FindClosestClimbPoint( SOLDIERTYPE *pSoldier, INT32 sStartGridNo, INT32 sD
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubTestDir = 0; ubTestDir < 8; ubTestDir += 2)
|
||||
for (ubTestDir = 0; ubTestDir < NUM_WORLD_DIRECTIONS; ubTestDir += 2)
|
||||
{
|
||||
sTestGridNo = NewGridNo( sGridNo, DirectionInc( ubTestDir));
|
||||
if (gpWorldLevelData[ sTestGridNo ].ubExtFlags[0] & MAPELEMENT_EXT_CLIMBPOINT)
|
||||
|
||||
@@ -3012,7 +3012,7 @@ void SpreadEffect( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT8 ubOwner,
|
||||
|
||||
//DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("Explosion affects %d", uiNewSpot) );
|
||||
// ok, do what we do here...
|
||||
if ( ExpAffect( sGridNo, uiNewSpot, cnt / 2, usItem, ubOwner, fSubsequent, &fAnyMercHit, bLevel, iSmokeEffectID ) )
|
||||
if ( ExpAffect( sGridNo, uiNewSpot, cnt / 2, usItem, ubOwner, fSubsequent, &fAnyMercHit, bLevel, iSmokeEffectID ) )
|
||||
{
|
||||
fRecompileMovement = TRUE;
|
||||
}
|
||||
@@ -3026,7 +3026,7 @@ void SpreadEffect( INT32 sGridNo, UINT8 ubRadius, UINT16 usItem, UINT8 ubOwner,
|
||||
uiBranchSpot = uiNewSpot;
|
||||
|
||||
// figure the branch direction - which is one dir clockwise
|
||||
ubBranchDir = (ubDir + 1) % 8;
|
||||
ubBranchDir = (ubDir + 1) % NUM_WORLD_DIRECTIONS;
|
||||
|
||||
if (ubBranchDir & 1)
|
||||
{
|
||||
|
||||
@@ -217,7 +217,7 @@ BOOLEAN FindWindowJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bSta
|
||||
}
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
if (cnt != direction2)
|
||||
continue;
|
||||
@@ -284,7 +284,7 @@ BOOLEAN FindWallJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStart
|
||||
}
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
// go out *2* tiles
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
@@ -333,7 +333,7 @@ BOOLEAN FindHeigherLevelOkno( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStarti
|
||||
INT8 bMinDirection = 0;
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -385,7 +385,7 @@ BOOLEAN FindHeigherLevelOkno( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStarti
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt+= 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -440,7 +440,7 @@ BOOLEAN FindHeigherLevelFence( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStart
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -485,7 +485,7 @@ BOOLEAN FindLowerLevelWall( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStarting
|
||||
INT8 bMinDirection = 0;
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -1100,7 +1100,7 @@ BOOLEAN FindHeigherLevel( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDi
|
||||
}
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -1142,7 +1142,7 @@ BOOLEAN FindLowerLevel( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStartingDir,
|
||||
INT8 bMinDirection = 0;
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
@@ -1372,7 +1372,7 @@ BOOLEAN FindFenceJumpDirection( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bStar
|
||||
}
|
||||
|
||||
// LOOP THROUGH ALL 8 DIRECTIONS
|
||||
for ( cnt = 0; cnt < 8; cnt+= 2 )
|
||||
for ( cnt = 0; cnt < NUM_WORLD_DIRECTIONS; cnt += 2 )
|
||||
{
|
||||
// go out *2* tiles
|
||||
sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( (UINT8)cnt ) );
|
||||
|
||||
+19
-20
@@ -900,13 +900,10 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
|
||||
UINT8 ubDirLoop;
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
if ( GridNoOnVisibleWorldTile( usGridNo ) )
|
||||
{
|
||||
// check for land of a different height in adjacent locations
|
||||
for ( ubDirLoop = 0; ubDirLoop < 8; ubDirLoop++ )
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
if ( gpWorldLevelData[ usGridNo ].sHeight !=
|
||||
gpWorldLevelData[ usGridNo + DirectionInc( ubDirLoop ) ].sHeight )
|
||||
@@ -918,21 +915,21 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
// check for exit grids
|
||||
if ( ExitGridAtGridNo( usGridNo ) )
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_EXITGRID );
|
||||
}
|
||||
// leave the roof alone, and continue, so that we can get values for the roof if traversable
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 0, TRAVELCOST_OFF_MAP );
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_OFF_MAP );
|
||||
}
|
||||
|
||||
if (gpWorldLevelData[usGridNo].pStructureHead == NULL)
|
||||
{
|
||||
return;
|
||||
@@ -940,7 +937,8 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
}
|
||||
|
||||
if (gpWorldLevelData[usGridNo].pStructureHead != NULL)
|
||||
{ // structures in tile
|
||||
{
|
||||
// structures in tile
|
||||
// consider the land
|
||||
pLand = gpWorldLevelData[ usGridNo ].pLandHead;
|
||||
if ( pLand != NULL )
|
||||
@@ -952,7 +950,7 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
// Get terrain type
|
||||
ubTerrainID = gpWorldLevelData[usGridNo].ubTerrainID; // = GetTerrainType( (INT16)usGridNo );
|
||||
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop)
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, gTileTypeMovementCost[ ubTerrainID ] );
|
||||
}
|
||||
@@ -1059,7 +1057,7 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
|
||||
default:
|
||||
// corners aren't jumpable
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop)
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
@@ -1068,7 +1066,7 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
}
|
||||
else if ( pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_SANDBAG && StructureHeight( pStructure ) <= 2 )
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop)
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
@@ -1087,14 +1085,14 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
}
|
||||
else if ( (pStructure->fFlags & STRUCTURE_CAVEWALL ) )
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop)
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_CAVEWALL );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ubDirLoop++)
|
||||
for (ubDirLoop=0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop)
|
||||
{
|
||||
SET_CURRMOVEMENTCOST( ubDirLoop, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
@@ -1509,14 +1507,14 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
{
|
||||
if (!fStructuresOnRoof)
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_FLAT );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
@@ -1524,19 +1522,20 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // NO STRUCTURES IN TILE
|
||||
{
|
||||
// NO STRUCTURES IN TILE
|
||||
// consider just the land
|
||||
|
||||
// Get terrain type
|
||||
ubTerrainID = gpWorldLevelData[usGridNo].ubTerrainID; // = GetTerrainType( (INT16)usGridNo );
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo ,ubDirLoop, 0, gTileTypeMovementCost[ ubTerrainID ] );
|
||||
}
|
||||
@@ -1561,14 +1560,14 @@ void CompileTileMovementCosts( INT32 usGridNo )
|
||||
// HIGHEST LEVEL
|
||||
if (gpWorldLevelData[ usGridNo ].pRoofHead != NULL)
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_FLAT );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ubDirLoop=0; ubDirLoop < 8; ubDirLoop++)
|
||||
for ( ubDirLoop = 0; ubDirLoop < NUM_WORLD_DIRECTIONS; ++ubDirLoop )
|
||||
{
|
||||
SET_MOVEMENTCOST( usGridNo, ubDirLoop, 1, TRAVELCOST_OBSTACLE );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user