- 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:
Flugente
2015-08-05 19:01:11 +00:00
parent 90486b015b
commit 7dbff83e24
17 changed files with 163 additions and 162 deletions
+4 -4
View File
@@ -707,12 +707,12 @@ INT16 RandomFriendWithin(SOLDIERTYPE *pSoldier)
// should be close enough, try to find a legal->pathing.sDestination within 1 tile
// clear dirChecked flag for all 8 directions
for (ubDirection = 0; ubDirection < 8; ubDirection++)
for ( ubDirection = 0; ubDirection < NUM_WORLD_DIRECTIONS; ++ubDirection )
{
fDirChecked[ubDirection] = FALSE;
}
ubDirsLeft = 8;
ubDirsLeft = NUM_WORLD_DIRECTIONS;
// examine all 8 spots around 'ubFriendID'
// keep looking while directions remain and a satisfactory one not found
@@ -721,7 +721,7 @@ INT16 RandomFriendWithin(SOLDIERTYPE *pSoldier)
// randomly select a direction which hasn't been 'checked' yet
do
{
ubDirection = (UINT8) Random(8);
ubDirection = (UINT8)Random( NUM_WORLD_DIRECTIONS );
}
while (fDirChecked[ubDirection]);
@@ -752,7 +752,7 @@ INT16 RandomFriendWithin(SOLDIERTYPE *pSoldier)
if (!fFound)
{
ubFriendCount--;
--ubFriendCount;
// if we hadn't already picked the last friend currently in the list
if (ubFriendCount != ubFriendID)
+34 -34
View File
@@ -2651,7 +2651,7 @@ INT8 CountAdjacentSpreadTargets( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT
bDir = (INT8) GetDirectionToGridNoFromGridNo( pSoldier->sGridNo, sFirstTarget );
for (bDirLoop = 0; bDirLoop < 8; bDirLoop++)
for ( bDirLoop = 0; bDirLoop < NUM_WORLD_DIRECTIONS; ++bDirLoop )
{
if (bDir % 2)
{
@@ -2659,37 +2659,37 @@ INT8 CountAdjacentSpreadTargets( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT
switch( bDirLoop )
{
case 0:
bCheckDir = (bDir + 6) % 8;
bCheckDir = (bDir + 6) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 0;
break;
case 1:
bCheckDir = (bDir + 5) % 8;
bCheckDir = (bDir + 5) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 2:
bCheckDir = (bDir + 7) % 8;
bCheckDir = (bDir + 7) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 3:
bCheckDir = (bDir + 3) % 8;
bCheckDir = (bDir + 3) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 4:
bCheckDir = (bDir + 1) % 8;
bCheckDir = (bDir + 1) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 5:
bCheckDir = (bDir + 2) % 8;
bCheckDir = (bDir + 2) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 4;
break;
case 6:
// check in front
bCheckDir = (bDir + 4) % 8;
bCheckDir = (bDir + 4) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 7:
// check behind
bCheckDir = (bDir) % 8;
bCheckDir = (bDir) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
}
@@ -2700,37 +2700,37 @@ INT8 CountAdjacentSpreadTargets( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT
switch( bDirLoop )
{
case 0:
bCheckDir = (bDir + 5) % 8;
bCheckDir = (bDir + 5) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 1:
bCheckDir = (bDir + 6) % 8;
bCheckDir = (bDir + 6) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 2:
bCheckDir = (bDir + 7) % 8;
bCheckDir = (bDir + 7) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 3:
bCheckDir = (bDir + 3) % 8;
bCheckDir = (bDir + 3) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 4:
bCheckDir = (bDir + 2) % 8;
bCheckDir = (bDir + 2) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 5:
bCheckDir = (bDir + 1) % 8;
bCheckDir = (bDir + 1) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 6:
// check in front
bCheckDir = (bDir + 4) % 8;
bCheckDir = (bDir + 4) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 7:
// check behind
bCheckDir = (bDir) % 8;
bCheckDir = (bDir) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
@@ -2780,7 +2780,7 @@ INT16 CalcSpreadBurst( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT8 bTargetL
bDir = (INT8) GetDirectionToGridNoFromGridNo( pSoldier->sGridNo, sFirstTarget );
for (bDirLoop = 0; bDirLoop < 8; bDirLoop++)
for ( bDirLoop = 0; bDirLoop < NUM_WORLD_DIRECTIONS; ++bDirLoop )
{
if (bDir % 2)
{
@@ -2788,37 +2788,37 @@ INT16 CalcSpreadBurst( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT8 bTargetL
switch( bDirLoop )
{
case 0:
bCheckDir = (bDir + 6) % 8;
bCheckDir = (bDir + 6) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 0;
break;
case 1:
bCheckDir = (bDir + 5) % 8;
bCheckDir = (bDir + 5) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 2:
bCheckDir = (bDir + 7) % 8;
bCheckDir = (bDir + 7) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 3:
bCheckDir = (bDir + 3) % 8;
bCheckDir = (bDir + 3) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 4:
bCheckDir = (bDir + 1) % 8;
bCheckDir = (bDir + 1) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 5:
bCheckDir = (bDir + 2) % 8;
bCheckDir = (bDir + 2) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 4;
break;
case 6:
// check in front
bCheckDir = (bDir + 4) % 8;
bCheckDir = (bDir + 4) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 7:
// check behind
bCheckDir = (bDir) % 8;
bCheckDir = (bDir) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
}
@@ -2829,37 +2829,37 @@ INT16 CalcSpreadBurst( SOLDIERTYPE * pSoldier, INT16 sFirstTarget, INT8 bTargetL
switch( bDirLoop )
{
case 0:
bCheckDir = (bDir + 5) % 8;
bCheckDir = (bDir + 5) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 1:
bCheckDir = (bDir + 6) % 8;
bCheckDir = (bDir + 6) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 2:
bCheckDir = (bDir + 7) % 8;
bCheckDir = (bDir + 7) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 3:
bCheckDir = (bDir + 3) % 8;
bCheckDir = (bDir + 3) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 4:
bCheckDir = (bDir + 2) % 8;
bCheckDir = (bDir + 2) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 5:
bCheckDir = (bDir + 1) % 8;
bCheckDir = (bDir + 1) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
case 6:
// check in front
bCheckDir = (bDir + 4) % 8;
bCheckDir = (bDir + 4) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 1;
break;
case 7:
// check behind
bCheckDir = (bDir) % 8;
bCheckDir = (bDir) % NUM_WORLD_DIRECTIONS;
bTargetIndex = 3;
break;
+8 -8
View File
@@ -1926,7 +1926,7 @@ INT8 DecideActionYellow(SOLDIERTYPE *pSoldier)
if ( pSoldier->flags.lastFlankLeft )
{
if ( origDir > currDir )
origDir -= 8;
origDir -= NUM_WORLD_DIRECTIONS;
if ( (currDir - origDir) >= 4 )
{
@@ -1944,7 +1944,7 @@ INT8 DecideActionYellow(SOLDIERTYPE *pSoldier)
else
{
if ( origDir < currDir )
origDir += 8;
origDir += NUM_WORLD_DIRECTIONS;
if ( (origDir - currDir) >= 4 )
{
@@ -3354,7 +3354,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier, UINT8 ubUnconsciousOK)
if ( pSoldier->flags.lastFlankLeft )
{
if ( origDir > currDir )
origDir -= 8;
origDir -= NUM_WORLD_DIRECTIONS;
if ( (currDir - origDir) >= 4 )
{
@@ -3373,7 +3373,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier, UINT8 ubUnconsciousOK)
else
{
if ( origDir < currDir )
origDir += 8;
origDir += NUM_WORLD_DIRECTIONS;
if ( (origDir - currDir) >= 4 )
{
@@ -7141,7 +7141,7 @@ void DecideAlertStatus( SOLDIERTYPE *pSoldier )
if ( pSoldier->flags.lastFlankLeft )
{
if ( origDir > currDir )
origDir -= 8;
origDir -= NUM_WORLD_DIRECTIONS;
if ( (currDir - origDir) >= 4 )
{
@@ -7159,7 +7159,7 @@ void DecideAlertStatus( SOLDIERTYPE *pSoldier )
else
{
if ( origDir < currDir )
origDir += 8;
origDir += NUM_WORLD_DIRECTIONS;
if ( (origDir - currDir) >= 4 )
{
@@ -7296,7 +7296,7 @@ void DecideAlertStatus( SOLDIERTYPE *pSoldier )
if ( pSoldier->flags.lastFlankLeft )
{
if ( origDir > currDir )
origDir -= 8;
origDir -= NUM_WORLD_DIRECTIONS;
if ( (currDir - origDir) >= 4 )
{
@@ -7315,7 +7315,7 @@ void DecideAlertStatus( SOLDIERTYPE *pSoldier )
else
{
if ( origDir < currDir )
origDir += 8;
origDir += NUM_WORLD_DIRECTIONS;
if ( (origDir - currDir) >= 4 )
{
+8 -8
View File
@@ -2543,16 +2543,16 @@ INT32 FindFlankingSpot(SOLDIERTYPE *pSoldier, INT32 sPos, INT8 bAction )
}
if ( sDesiredDir < 0 )
sDesiredDir += 8;
sDesiredDir += NUM_WORLD_DIRECTIONS;
if ( sDesiredDir > 8 )
sDesiredDir -= 8;
if ( sDesiredDir > NUM_WORLD_DIRECTIONS )
sDesiredDir -= NUM_WORLD_DIRECTIONS;
DebugMsg ( TOPIC_JA2AI , DBG_LEVEL_3 , String("FindFlankingSpot: direction to loc = %d, dir to flank = %d", sDir , sDesiredDir ));
for (sYOffset = -sMaxUp + 1; sYOffset <= sMaxDown - 1; sYOffset++)
for (sYOffset = -sMaxUp + 1; sYOffset <= sMaxDown - 1; ++sYOffset)
{
for (sXOffset = -sMaxLeft + 1; sXOffset <= sMaxRight - 1; sXOffset++)
for (sXOffset = -sMaxLeft + 1; sXOffset <= sMaxRight - 1; ++sXOffset)
{
// calculate the next potential gridno
sGridNo = pSoldier->sGridNo + sXOffset + (MAXCOL * sYOffset);
@@ -2686,7 +2686,7 @@ INT32 FindClosestClimbPoint (SOLDIERTYPE *pSoldier, BOOLEAN fClimbUp )
if (gpWorldLevelData[ sGridNo].ubExtFlags[0] & MAPELEMENT_EXT_CLIMBPOINT)
{
// Search for the destination climb point on the roof
for (ubTestDir=0; ubTestDir < 8; ubTestDir += 2)
for ( ubTestDir = 0; ubTestDir < NUM_WORLD_DIRECTIONS; ubTestDir += 2 )
{
INT32 sTestGridNo = NewGridNo( sGridNo, DirectionInc( ubTestDir));
// And see if it or the ground location is occupied
@@ -2872,7 +2872,7 @@ INT8 FindDirectionForClimbing( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel
{
if (gpWorldLevelData[ sGridNo].ubExtFlags[0] & MAPELEMENT_EXT_CLIMBPOINT)
{
for (ubClimbDir=0; ubClimbDir<8; ubClimbDir+=2)
for ( ubClimbDir = 0; ubClimbDir < NUM_WORLD_DIRECTIONS; ubClimbDir += 2 )
{
sClimbSpot = NewGridNo( sGridNo, DirectionInc( ubClimbDir));
if (gpWorldLevelData[ sClimbSpot].ubExtFlags[1] & MAPELEMENT_EXT_CLIMBPOINT &&
@@ -2893,7 +2893,7 @@ INT8 FindDirectionForClimbing( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel
return DIRECTION_IRRELEVANT;
if (gpWorldLevelData[ sGridNo].ubExtFlags[1] & MAPELEMENT_EXT_CLIMBPOINT)
{
for (ubClimbDir=0; ubClimbDir<8; ubClimbDir+=2)
for ( ubClimbDir = 0; ubClimbDir< NUM_WORLD_DIRECTIONS; ubClimbDir += 2 )
{
sClimbSpot = NewGridNo( sGridNo, DirectionInc( ubClimbDir));
if (gpWorldLevelData[ sClimbSpot].ubExtFlags[0] & MAPELEMENT_EXT_CLIMBPOINT &&
+4 -4
View File
@@ -557,14 +557,14 @@ INT32 InternalGoAsFarAsPossibleTowards(SOLDIERTYPE *pSoldier, INT32 sDesGrid, IN
// else look at the 8 nearest gridnos to sDesGrid for a valid destination
// clear ubDirChecked flag for all 8 directions
for (ubDirection = 0; ubDirection < 8; ubDirection++)
for ( ubDirection = 0; ubDirection < NUM_WORLD_DIRECTIONS; ++ubDirection )
ubDirChecked[ubDirection] = FALSE;
ubDirsLeft = 8;
ubDirsLeft = NUM_WORLD_DIRECTIONS;
// examine all 8 spots around 'sDesGrid'
// keep looking while directions remain and a satisfactory one not found
for (ubDirsLeft = 8; ubDirsLeft != 0; ubDirsLeft--)
for ( ubDirsLeft = NUM_WORLD_DIRECTIONS; ubDirsLeft != 0; --ubDirsLeft )
{
if (fFound)
{
@@ -1137,7 +1137,7 @@ UINT16 RunAway( SOLDIERTYPE * pSoldier )
bOkayDir[ atan8( pSoldier->sX, pSoldier->sY, pOpponent->sX, pOpponent->sY ) ] = FALSE;
}
for (ubLoop = 0; ubLoop < 8; ubLoop += 2)
for (ubLoop = 0; ubLoop < NUM_WORLD_DIRECTIONS; ubLoop += 2)
{
if (bOkayDir[ubLoop])
{