mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Fix: Any tile that once had a player mine on it forever kept that flag. The map temp file will now be updated with a remove flag tag so that when a map is loaded the player mine flag will be removed.
If your savegame is already bugged you will need to step on each tile that had a mine to remove the player mine flag once. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7796 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -43,6 +43,8 @@ void AddObjectFromMapTempFileToMap( INT32 uiMapIndex, UINT16 usIndex );
|
||||
void AddBloodOrSmellFromMapTempFileToMap( MODIFY_MAP *pMap );
|
||||
// sevenfm
|
||||
void AddMineFlagFromMapTempFileToMap( MODIFY_MAP *pMap );
|
||||
void RemoveMineFlagFromMap( INT32 usGridNo );
|
||||
|
||||
void SetSectorsRevealedBit( UINT32 usMapIndex );
|
||||
void SetMapRevealedStatus();
|
||||
void DamageStructsFromMapTempFile( MODIFY_MAP * pMap );
|
||||
@@ -485,10 +487,7 @@ BOOLEAN LoadAllMapChangesFromMapTempFileAndApplyThem( )
|
||||
case SLM_BLOOD_SMELL:
|
||||
AddBloodOrSmellFromMapTempFileToMap( pMap );
|
||||
break;
|
||||
// sevenfm
|
||||
case SLM_MINE_PRESENT:
|
||||
AddMineFlagFromMapTempFileToMap( pMap );
|
||||
break;
|
||||
|
||||
case SLM_DAMAGED_STRUCT:
|
||||
DamageStructsFromMapTempFile( pMap );
|
||||
break;
|
||||
@@ -536,6 +535,15 @@ BOOLEAN LoadAllMapChangesFromMapTempFileAndApplyThem( )
|
||||
SaveModifiedMapStructToMapTempFile( pMap, gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
break;
|
||||
#endif
|
||||
// sevenfm
|
||||
case SLM_MINE_PRESENT:
|
||||
AddMineFlagFromMapTempFileToMap( pMap );
|
||||
break;
|
||||
|
||||
case SLM_REMOVE_MINE_PRESENT:
|
||||
RemoveMineFlagFromMap( pMap->usGridNo );
|
||||
break;
|
||||
|
||||
default:
|
||||
AssertMsg( 0, "ERROR! Map Type not in switch when loading map changes from temp file");
|
||||
break;
|
||||
@@ -773,6 +781,17 @@ void SaveMineFlagFromMapToTempFile()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RemoveMineFlagFromMapTempFile( INT32 usGridNo)
|
||||
{
|
||||
MODIFY_MAP Map;
|
||||
|
||||
memset( &Map, 0, sizeof( MODIFY_MAP ) );
|
||||
Map.usGridNo = usGridNo;
|
||||
Map.ubType = SLM_REMOVE_MINE_PRESENT;
|
||||
SaveModifiedMapStructToMapTempFile( &Map, gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
}
|
||||
|
||||
void SaveBloodSmellAndRevealedStatesFromMapToTempFile()
|
||||
{
|
||||
MODIFY_MAP Map;
|
||||
@@ -898,6 +917,11 @@ void AddMineFlagFromMapTempFileToMap( MODIFY_MAP *pMap )
|
||||
gpWorldLevelData[ pMap->usGridNo ].uiFlags |= MAPELEMENT_PLAYER_MINE_PRESENT;
|
||||
}
|
||||
|
||||
void RemoveMineFlagFromMap( INT32 usGridNo )
|
||||
{
|
||||
gpWorldLevelData[ usGridNo ].uiFlags &= ~(MAPELEMENT_PLAYER_MINE_PRESENT);
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN SaveRevealedStatusArrayToRevealedTempFile( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user