- if a a roof collapses, any structures built on it (fans, sandbags) are destroyed

- if a a roof collapses, any corpses on it are moved to the floor

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7623 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2014-10-31 22:13:32 +00:00
parent faf345ac18
commit 8857e0772b
9 changed files with 304 additions and 17 deletions
+38
View File
@@ -2460,6 +2460,44 @@ BOOLEAN FiniStructureDB( void )
return( TRUE );
}
STRUCTURE* GetTallestStructureOnGridno( INT32 sGridNo, INT8 bLevel )
{
STRUCTURE* pCurrent = NULL;
STRUCTURE* pStruct = NULL;
INT8 bestheight = -1;
INT16 sDesiredLevel = STRUCTURE_ON_GROUND;
if ( bLevel )
sDesiredLevel = STRUCTURE_ON_ROOF;
pCurrent = gpWorldLevelData[sGridNo].pStructureHead;
while ( pCurrent != NULL )
{
// Check level!
if ( pCurrent->sCubeOffset == sDesiredLevel )
{
if ( pCurrent->fFlags & (STRUCTURE_CORPSE | STRUCTURE_PERSON | STRUCTURE_ROOF) )
{
// we are interested in building tiles, not people
pCurrent = pCurrent->pNext;
continue;
}
INT8 height = StructureHeight( pCurrent );
if ( height > bestheight )
{
bestheight = height;
pStruct = pCurrent;
}
}
pCurrent = pCurrent->pNext;
}
return pStruct;
}
INT8 GetBlockingStructureInfo( INT32 sGridNo, INT8 bDir, INT8 bNextDir, INT8 bLevel, INT8 *pStructHeight, STRUCTURE ** ppTallestStructure, BOOLEAN fWallsBlock )
{