mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Only destroy the content of a container when it is destroyed, not when it is damaged
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9084 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -650,7 +650,9 @@ void HandleFencePartnerCheck( INT32 sStructGridNo )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNextCurrent, INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLEAN *pfRecompileMovementCosts, BOOLEAN fOnlyWalls, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel )
|
BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNextCurrent, INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist,
|
||||||
|
BOOLEAN *pfRecompileMovementCosts, BOOLEAN fOnlyWalls, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel,
|
||||||
|
UINT8 ubReason )
|
||||||
{
|
{
|
||||||
#ifdef JA2BETAVERSION
|
#ifdef JA2BETAVERSION
|
||||||
if (is_networked) {
|
if (is_networked) {
|
||||||
@@ -670,7 +672,7 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
DB_STRUCTURE_TILE ** ppTile;
|
DB_STRUCTURE_TILE ** ppTile;
|
||||||
INT8 bDestructionPartner=-1;
|
INT8 bDestructionPartner=-1;
|
||||||
INT8 bDamageReturnVal;
|
INT8 bDamageReturnVal;
|
||||||
BOOLEAN fContinue;
|
INT8 docontinue(0);
|
||||||
UINT32 uiTileType;
|
UINT32 uiTileType;
|
||||||
INT32 sBaseGridNo;
|
INT32 sBaseGridNo;
|
||||||
BOOLEAN fExplosive;
|
BOOLEAN fExplosive;
|
||||||
@@ -727,7 +729,6 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
// Damage structure!
|
// Damage structure!
|
||||||
if ( ( bDamageReturnVal = DamageStructure( pCurrent, (UINT8)sWoundAmt, STRUCTURE_DAMAGE_EXPLOSION, sGridNo, sX, sY, NOBODY ) ) != 0 )
|
if ( ( bDamageReturnVal = DamageStructure( pCurrent, (UINT8)sWoundAmt, STRUCTURE_DAMAGE_EXPLOSION, sGridNo, sX, sY, NOBODY ) ) != 0 )
|
||||||
{
|
{
|
||||||
fContinue = FALSE;
|
|
||||||
#ifdef JA2UB
|
#ifdef JA2UB
|
||||||
//Ja25 ub
|
//Ja25 ub
|
||||||
//are we exploding the Fan in the power gen facility
|
//are we exploding the Fan in the power gen facility
|
||||||
@@ -741,7 +742,10 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
sBaseGridNo = pBase->sGridNo;
|
sBaseGridNo = pBase->sGridNo;
|
||||||
|
|
||||||
// if the structure is openable, destroy all items there
|
// if the structure is openable, destroy all items there
|
||||||
if ( pBase->fFlags & STRUCTURE_OPENABLE && !(pBase->fFlags & STRUCTURE_DOOR ) )
|
// Flugente: only if the structure has been entirely destroyed (why would we destroy what's inside if the structure still exists?)
|
||||||
|
if ( bDamageReturnVal == 1 &&
|
||||||
|
pBase->fFlags & STRUCTURE_OPENABLE &&
|
||||||
|
!(pBase->fFlags & STRUCTURE_DOOR ) )
|
||||||
{
|
{
|
||||||
RemoveAllUnburiedItems( pBase->sGridNo, bLevel );
|
RemoveAllUnburiedItems( pBase->sGridNo, bLevel );
|
||||||
}
|
}
|
||||||
@@ -762,7 +766,7 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
|
|
||||||
if ( bDamageReturnVal == 1 )
|
if ( bDamageReturnVal == 1 )
|
||||||
{
|
{
|
||||||
fContinue = TRUE;
|
docontinue = 1;
|
||||||
}
|
}
|
||||||
// Check for a damaged looking graphic...
|
// Check for a damaged looking graphic...
|
||||||
else if ( bDamageReturnVal == 2 )
|
else if ( bDamageReturnVal == 2 )
|
||||||
@@ -775,11 +779,11 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
|
|
||||||
GetTileType( pNode->usIndex, &uiTileType );
|
GetTileType( pNode->usIndex, &uiTileType );
|
||||||
|
|
||||||
fContinue = 2;
|
docontinue = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fContinue )
|
if ( docontinue )
|
||||||
{
|
{
|
||||||
// Remove the beast!
|
// Remove the beast!
|
||||||
while ( (*ppNextCurrent) != NULL && (*ppNextCurrent)->usStructureID == pCurrent->usStructureID )
|
while ( (*ppNextCurrent) != NULL && (*ppNextCurrent)->usStructureID == pCurrent->usStructureID )
|
||||||
@@ -1269,7 +1273,7 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
ApplyMapChangesToMapTempFile( FALSE );
|
ApplyMapChangesToMapTempFile( FALSE );
|
||||||
|
|
||||||
// OK, if we are to swap structures, do it now...
|
// OK, if we are to swap structures, do it now...
|
||||||
if ( fContinue == 2 )
|
if ( docontinue == 2 )
|
||||||
{
|
{
|
||||||
// We have a levelnode...
|
// We have a levelnode...
|
||||||
// Get new index for new grpahic....
|
// Get new index for new grpahic....
|
||||||
@@ -1280,8 +1284,6 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
AddStructToHead( sBaseGridNo, usTileIndex );
|
AddStructToHead( sBaseGridNo, usTileIndex );
|
||||||
|
|
||||||
ApplyMapChangesToMapTempFile( FALSE );
|
ApplyMapChangesToMapTempFile( FALSE );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rerender world!
|
// Rerender world!
|
||||||
@@ -1311,7 +1313,7 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fContinue == 2 )
|
if ( docontinue == 2 )
|
||||||
{
|
{
|
||||||
return( FALSE );
|
return( FALSE );
|
||||||
}
|
}
|
||||||
@@ -1323,12 +1325,13 @@ BOOLEAN ExplosiveDamageStructureAtGridNo( STRUCTURE * pCurrent, STRUCTURE **ppNe
|
|||||||
}
|
}
|
||||||
|
|
||||||
return( 1 );
|
return( 1 );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
STRUCTURE *gStruct;
|
STRUCTURE *gStruct;
|
||||||
|
|
||||||
void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLEAN *pfRecompileMovementCosts, BOOLEAN fOnlyWalls, INT8 bMultiStructSpecialFlag, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel )
|
void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLEAN *pfRecompileMovementCosts,
|
||||||
|
BOOLEAN fOnlyWalls, INT8 bMultiStructSpecialFlag, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel,
|
||||||
|
UINT8 ubReason )
|
||||||
{
|
{
|
||||||
#ifdef JA2BETAVERSION
|
#ifdef JA2BETAVERSION
|
||||||
if (is_networked) {
|
if (is_networked) {
|
||||||
@@ -1406,7 +1409,7 @@ void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLE
|
|||||||
// Check level!
|
// Check level!
|
||||||
if (pCurrent->sCubeOffset == sDesiredLevel )
|
if (pCurrent->sCubeOffset == sDesiredLevel )
|
||||||
{
|
{
|
||||||
fExplodeDamageReturn = ExplosiveDamageStructureAtGridNo( pCurrent, &pNextCurrent, sGridNo, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, 0, ubOwner, bLevel );
|
fExplodeDamageReturn = ExplosiveDamageStructureAtGridNo( pCurrent, &pNextCurrent, sGridNo, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, 0, ubOwner, bLevel, ubReason );
|
||||||
|
|
||||||
// Are we overwriting damage due to multi-tile...?
|
// Are we overwriting damage due to multi-tile...?
|
||||||
if ( fExplodeDamageReturn )
|
if ( fExplodeDamageReturn )
|
||||||
@@ -1474,11 +1477,11 @@ void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLE
|
|||||||
// If we just damaged it, use same damage value....
|
// If we just damaged it, use same damage value....
|
||||||
if ( fMultiStructSpecialFlag )
|
if ( fMultiStructSpecialFlag )
|
||||||
{
|
{
|
||||||
ExplosiveDamageGridNo( sNewGridNo2, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, bMultiStructSpecialFlag, 1, ubOwner, bLevel );
|
ExplosiveDamageGridNo( sNewGridNo2, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, bMultiStructSpecialFlag, 1, ubOwner, bLevel, ubReason );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ExplosiveDamageGridNo( sNewGridNo2, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, bMultiStructSpecialFlag, 2, ubOwner, bLevel );
|
ExplosiveDamageGridNo( sNewGridNo2, sWoundAmt, uiDist, pfRecompileMovementCosts, fOnlyWalls, bMultiStructSpecialFlag, 2, ubOwner, bLevel, ubReason );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -2357,14 +2360,14 @@ BOOLEAN ExpAffect( INT32 sBombGridNo, INT32 sGridNo, UINT32 uiDist, UINT16 usIte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ExplosiveDamageGridNo( sGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, FALSE, -1, 0 , ubOwner, bLevel );
|
ExplosiveDamageGridNo( sGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, FALSE, -1, 0 , ubOwner, bLevel, STRUCTURE_DAMAGE_EXPLOSION );
|
||||||
|
|
||||||
// ATE: Look for damage to walls ONLY for next two gridnos
|
// ATE: Look for damage to walls ONLY for next two gridnos
|
||||||
sNewGridNo = NewGridNo( sGridNo, DirectionInc( NORTH ) );
|
sNewGridNo = NewGridNo( sGridNo, DirectionInc( NORTH ) );
|
||||||
|
|
||||||
if ( GridNoOnVisibleWorldTile( sNewGridNo ) )
|
if ( GridNoOnVisibleWorldTile( sNewGridNo ) )
|
||||||
{
|
{
|
||||||
ExplosiveDamageGridNo( sNewGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, TRUE, -1, 0, ubOwner, bLevel );
|
ExplosiveDamageGridNo( sNewGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, TRUE, -1, 0, ubOwner, bLevel, STRUCTURE_DAMAGE_EXPLOSION );
|
||||||
}
|
}
|
||||||
|
|
||||||
// ATE: Look for damage to walls ONLY for next two gridnos
|
// ATE: Look for damage to walls ONLY for next two gridnos
|
||||||
@@ -2372,7 +2375,7 @@ BOOLEAN ExpAffect( INT32 sBombGridNo, INT32 sGridNo, UINT32 uiDist, UINT16 usIte
|
|||||||
|
|
||||||
if ( GridNoOnVisibleWorldTile( sNewGridNo ) )
|
if ( GridNoOnVisibleWorldTile( sNewGridNo ) )
|
||||||
{
|
{
|
||||||
ExplosiveDamageGridNo( sNewGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, TRUE, -1, 0, ubOwner, bLevel );
|
ExplosiveDamageGridNo( sNewGridNo, sStructDmgAmt, uiDist, &fRecompileMovementCosts, TRUE, -1, 0, ubOwner, bLevel, STRUCTURE_DAMAGE_EXPLOSION );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -168,7 +168,9 @@ extern void HandleSeeingPowerGenFan( UINT32 sGridNo );
|
|||||||
extern void HandleSeeingFortifiedDoor( UINT32 sGridNo );//Ja25 UB
|
extern void HandleSeeingFortifiedDoor( UINT32 sGridNo );//Ja25 UB
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLEAN *pfRecompileMovementCosts, BOOLEAN fOnlyWalls, INT8 bMultiStructSpecialFlag, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel );
|
void ExplosiveDamageGridNo( INT32 sGridNo, INT16 sWoundAmt, UINT32 uiDist, BOOLEAN *pfRecompileMovementCosts,
|
||||||
|
BOOLEAN fOnlyWalls, INT8 bMultiStructSpecialFlag, BOOLEAN fSubSequentMultiTilesTransitionDamage, UINT8 ubOwner, INT8 bLevel,
|
||||||
|
UINT8 ubReason );
|
||||||
|
|
||||||
// Flugente: handle secondary explosive effects
|
// Flugente: handle secondary explosive effects
|
||||||
void HandleBuddyExplosions(UINT8 ubOwner, INT16 sX, INT16 sY, INT16 sZ, INT32 sGridNo, UINT16 usItem, BOOLEAN fLocate, INT8 bLevel, UINT8 ubDirection );
|
void HandleBuddyExplosions(UINT8 ubOwner, INT16 sX, INT16 sY, INT16 sZ, INT32 sGridNo, UINT16 usItem, BOOLEAN fLocate, INT8 bLevel, UINT8 ubDirection );
|
||||||
|
|||||||
@@ -1787,7 +1787,7 @@ BOOLEAN StructureDensity( STRUCTURE * pStructure, UINT8 * pubLevel0, UINT8 * pub
|
|||||||
return( TRUE );
|
return( TRUE );
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason, INT32 sGridNo, INT16 sX, INT16 sY, UINT8 ubOwner, INT32 sAntiMaterialImpact )
|
INT8 DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason, INT32 sGridNo, INT16 sX, INT16 sY, UINT8 ubOwner, INT32 sAntiMaterialImpact )
|
||||||
{
|
{
|
||||||
// do damage to a structure; returns TRUE if the structure should be removed
|
// do damage to a structure; returns TRUE if the structure should be removed
|
||||||
STRUCTURE *pBase;
|
STRUCTURE *pBase;
|
||||||
@@ -1797,12 +1797,12 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
if (pStructure->fFlags & STRUCTURE_PERSON || pStructure->fFlags & STRUCTURE_CORPSE)
|
if (pStructure->fFlags & STRUCTURE_PERSON || pStructure->fFlags & STRUCTURE_CORPSE)
|
||||||
{
|
{
|
||||||
// don't hurt this structure, it's used for hit detection only!
|
// don't hurt this structure, it's used for hit detection only!
|
||||||
return( FALSE );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_INDESTRUCTABLE_METAL) || (pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_INDESTRUCTABLE_STONE) )
|
if ( (pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_INDESTRUCTABLE_METAL) || (pStructure->pDBStructureRef->pDBStructure->ubArmour == MATERIAL_INDESTRUCTABLE_STONE) )
|
||||||
{
|
{
|
||||||
return( FALSE );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT8 ubBaseArmour = gubMaterialArmour[ pStructure->pDBStructureRef->pDBStructure->ubArmour ];
|
UINT8 ubBaseArmour = gubMaterialArmour[ pStructure->pDBStructureRef->pDBStructure->ubArmour ];
|
||||||
@@ -1822,7 +1822,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
if (ubArmour > ubDamage)
|
if (ubArmour > ubDamage)
|
||||||
{
|
{
|
||||||
// didn't even scratch the paint
|
// didn't even scratch the paint
|
||||||
return( FALSE );
|
return( 0 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1862,7 +1862,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
IgniteExplosion( ubOwner, sX, sY, 0, sGridNo, STRUCTURE_IGNITE, 0 );
|
IgniteExplosion( ubOwner, sX, sY, 0, sGridNo, STRUCTURE_IGNITE, 0 );
|
||||||
|
|
||||||
// ATE: Return false here, as we are dealing with deleting the graphic here...
|
// ATE: Return false here, as we are dealing with deleting the graphic here...
|
||||||
return( FALSE );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make hit sound....
|
// Make hit sound....
|
||||||
@@ -1896,7 +1896,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
damage += max(1, 2 * sAntiMaterialImpact / ubBaseArmour);
|
damage += max(1, 2 * sAntiMaterialImpact / ubBaseArmour);
|
||||||
|
|
||||||
BOOLEAN recompile = FALSE;
|
BOOLEAN recompile = FALSE;
|
||||||
ExplosiveDamageGridNo( pStructure->sGridNo, damage, 10, &recompile, FALSE, -1, FALSE, ubOwner, 0 );
|
ExplosiveDamageGridNo( pStructure->sGridNo, damage, 10, &recompile, FALSE, -1, FALSE, ubOwner, 0, ubReason );
|
||||||
|
|
||||||
//Since the structure is being damaged, set the map element that a structure is damaged
|
//Since the structure is being damaged, set the map element that a structure is damaged
|
||||||
gpWorldLevelData[ pStructure->sGridNo ].uiFlags |= MAPELEMENT_STRUCTURE_DAMAGED;
|
gpWorldLevelData[ pStructure->sGridNo ].uiFlags |= MAPELEMENT_STRUCTURE_DAMAGED;
|
||||||
@@ -1920,7 +1920,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
INT16 damage = 255;
|
INT16 damage = 255;
|
||||||
|
|
||||||
BOOLEAN recompile = FALSE;
|
BOOLEAN recompile = FALSE;
|
||||||
ExplosiveDamageGridNo( sGridNo, damage, 10, &recompile, FALSE, -1, FALSE, ubOwner, 0 );
|
ExplosiveDamageGridNo( sGridNo, damage, 10, &recompile, FALSE, -1, FALSE, ubOwner, 0, ubReason );
|
||||||
|
|
||||||
//Since the structure is being damaged, set the map element that a structure is damaged
|
//Since the structure is being damaged, set the map element that a structure is damaged
|
||||||
gpWorldLevelData[ sGridNo ].uiFlags |= MAPELEMENT_STRUCTURE_DAMAGED;
|
gpWorldLevelData[ sGridNo ].uiFlags |= MAPELEMENT_STRUCTURE_DAMAGED;
|
||||||
@@ -1947,7 +1947,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Don't update damage HPs....
|
// Don't update damage HPs....
|
||||||
return TRUE;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// OK, LOOK FOR A SAM SITE, UPDATE....
|
// OK, LOOK FOR A SAM SITE, UPDATE....
|
||||||
@@ -1961,7 +1961,7 @@ BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason,
|
|||||||
UpdateAndDamageEnemyHeliIfFound( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, sGridNo, ubDamage, TRUE );
|
UpdateAndDamageEnemyHeliIfFound( gWorldSectorX, gWorldSectorY, gbWorldSectorZ, sGridNo, ubDamage, TRUE );
|
||||||
|
|
||||||
// boom! structure destroyed!
|
// boom! structure destroyed!
|
||||||
return( TRUE );
|
return( 1 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ STRUCTURE* GetTallestStructureOnGridnoDrag( INT32 sGridNo, INT8 bLevel );
|
|||||||
// FUNCTIONS FOR DETERMINING STUFF THAT BLOCKS VIEW FOR TILE_bASED LOS
|
// FUNCTIONS FOR DETERMINING STUFF THAT BLOCKS VIEW FOR TILE_bASED LOS
|
||||||
INT8 GetBlockingStructureInfo( INT32 sGridNo, INT8 bDir, INT8 bNextDir, INT8 bLevel, INT8 *pStructHeight, STRUCTURE ** ppTallestStructure, BOOLEAN fWallsBlock );
|
INT8 GetBlockingStructureInfo( INT32 sGridNo, INT8 bDir, INT8 bNextDir, INT8 bLevel, INT8 *pStructHeight, STRUCTURE ** ppTallestStructure, BOOLEAN fWallsBlock );
|
||||||
|
|
||||||
BOOLEAN DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason, INT32 sGridNo, INT16 sX, INT16 sY, UINT8 ubOwner, INT32 sAntiMaterialImpact = 0 );
|
INT8 DamageStructure( STRUCTURE * pStructure, UINT8 ubDamage, UINT8 ubReason, INT32 sGridNo, INT16 sX, INT16 sY, UINT8 ubOwner, INT32 sAntiMaterialImpact = 0 );
|
||||||
|
|
||||||
// Material armour type enumeration
|
// Material armour type enumeration
|
||||||
enum
|
enum
|
||||||
|
|||||||
Reference in New Issue
Block a user