mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
fixed AI freeze on creatures attacking crows
fixed some broken debug messages git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8508 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+2
-1
@@ -7645,7 +7645,8 @@ UINT16 MagazineClassIndexToItemType(UINT16 usMagIndex)
|
|||||||
|
|
||||||
// WANNE: Now ammo can be inserted anywhere in Items.xml (before only on index > 70 [FIRST_AMMO] (fix by Realist)
|
// WANNE: Now ammo can be inserted anywhere in Items.xml (before only on index > 70 [FIRST_AMMO] (fix by Realist)
|
||||||
//for (usLoop = FIRST_AMMO; usLoop < MAXITEMS; usLoop++)
|
//for (usLoop = FIRST_AMMO; usLoop < MAXITEMS; usLoop++)
|
||||||
for ( UINT16 usLoop = 0; usLoop < gMAXITEMS_READ; ++usLoop )
|
UINT16 usLoop;
|
||||||
|
for (usLoop = 0; usLoop < gMAXITEMS_READ; ++usLoop )
|
||||||
{
|
{
|
||||||
if (Item[usLoop].ubClassIndex == usMagIndex && Item[usLoop].usItemClass == IC_AMMO )
|
if (Item[usLoop].ubClassIndex == usMagIndex && Item[usLoop].usItemClass == IC_AMMO )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -638,9 +638,10 @@ extern CLOTHES_STRUCT Clothes[CLOTHES_MAX];
|
|||||||
// This macro should be used whenever we want to see if someone is neutral
|
// This macro should be used whenever we want to see if someone is neutral
|
||||||
// IF WE ARE CONSIDERING ATTACKING THEM. Creatures & bloodcats will attack neutrals
|
// IF WE ARE CONSIDERING ATTACKING THEM. Creatures & bloodcats will attack neutrals
|
||||||
// but they can't attack empty vehicles!!
|
// but they can't attack empty vehicles!!
|
||||||
|
// the_bob: also, creatures won't attack crows, because it seems to confuse the AI and cause freezes
|
||||||
#define CONSIDERED_NEUTRAL( me, them ) (\
|
#define CONSIDERED_NEUTRAL( me, them ) (\
|
||||||
( them->aiData.bNeutral || them->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER|SOLDIER_POW) || (them->flags.uiStatusFlags & SOLDIER_PC && them->stats.bLife < OKLIFE) ) \
|
( them->aiData.bNeutral || them->usSoldierFlagMask & (SOLDIER_COVERT_CIV|SOLDIER_COVERT_SOLDIER|SOLDIER_POW) || (them->flags.uiStatusFlags & SOLDIER_PC && them->stats.bLife < OKLIFE) ) \
|
||||||
&& ( me->bTeam != CREATURE_TEAM || (them->flags.uiStatusFlags & SOLDIER_VEHICLE) ) \
|
&& ( me->bTeam != CREATURE_TEAM || ( (them->flags.uiStatusFlags & SOLDIER_VEHICLE) || (them->ubBodyType == CROW) ) ) \
|
||||||
&& !( me->flags.uiStatusFlags & SOLDIER_BOXER && them->flags.uiStatusFlags & SOLDIER_BOXER ) \
|
&& !( me->flags.uiStatusFlags & SOLDIER_BOXER && them->flags.uiStatusFlags & SOLDIER_BOXER ) \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1570,6 +1570,10 @@ void CalcBestStab(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestStab, BOOLEAN fBladeAt
|
|||||||
if ( pOpponent->ubWhatKindOfMercAmI == MERC_TYPE__VEHICLE && GetNumberInVehicle( pOpponent->bVehicleID ) == 0 )
|
if ( pOpponent->ubWhatKindOfMercAmI == MERC_TYPE__VEHICLE && GetNumberInVehicle( pOpponent->bVehicleID ) == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// the_bob: don't stab the bird!
|
||||||
|
if (pOpponent->ubBodyType == CROW)
|
||||||
|
continue;
|
||||||
|
|
||||||
// Special stuff for Carmen the bounty hunter
|
// Special stuff for Carmen the bounty hunter
|
||||||
if (pSoldier->aiData.bAttitude == ATTACKSLAYONLY && pOpponent->ubProfile != SLAY)
|
if (pSoldier->aiData.bAttitude == ATTACKSLAYONLY && pOpponent->ubProfile != SLAY)
|
||||||
continue; // next opponent
|
continue; // next opponent
|
||||||
|
|||||||
@@ -118,9 +118,9 @@ TILE_IMAGERY *LoadTileSurface( STR8 cFilename )
|
|||||||
}
|
}
|
||||||
strcat( cAdditionalPropertiesFilename, ADDITIONAL_TILE_PROPERTIES_EXTENSION );
|
strcat( cAdditionalPropertiesFilename, ADDITIONAL_TILE_PROPERTIES_EXTENSION );
|
||||||
// first in /Tilesets/XX/
|
// first in /Tilesets/XX/
|
||||||
if (FileExists( cAdditionalPropertiesFilename ))
|
if (FileExists(cAdditionalPropertiesFilename))
|
||||||
{
|
{
|
||||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", cAdditionalPropertiesFilename));
|
||||||
SGP_THROW_IFFALSE(ReadInAdditionalTileProperties(cAdditionalPropertiesFilename), cAdditionalPropertiesFilename);
|
SGP_THROW_IFFALSE(ReadInAdditionalTileProperties(cAdditionalPropertiesFilename), cAdditionalPropertiesFilename);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -130,7 +130,7 @@ TILE_IMAGERY *LoadTileSurface( STR8 cFilename )
|
|||||||
sprintf( cCommonAdditionalPropertiesFilename, "TILESETS\\ADDITIONALPROPERTIES%s", cEndOfName );
|
sprintf( cCommonAdditionalPropertiesFilename, "TILESETS\\ADDITIONALPROPERTIES%s", cEndOfName );
|
||||||
if (FileExists( cCommonAdditionalPropertiesFilename ))
|
if (FileExists( cCommonAdditionalPropertiesFilename ))
|
||||||
{
|
{
|
||||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", cAdditionalPropertiesFilename));
|
||||||
SGP_THROW_IFFALSE(ReadInAdditionalTileProperties(cCommonAdditionalPropertiesFilename), cCommonAdditionalPropertiesFilename);
|
SGP_THROW_IFFALSE(ReadInAdditionalTileProperties(cCommonAdditionalPropertiesFilename), cCommonAdditionalPropertiesFilename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user