New feature: enemy combat jeeps fill the role between infantry and tanks. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=344628&#msg_344628

This is savegame compatible. GameDir >= r2305 required.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8114 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2016-03-20 18:45:51 +00:00
parent b8c0036396
commit 9e97538d89
75 changed files with 1614 additions and 772 deletions
+33 -42
View File
@@ -5349,56 +5349,47 @@ BOOLEAN LoadStrategicInfoFromSavedFile( HWFILE hFile )
UINT32 uiNumBytesRead = 0;
UINT32 uiSize = sizeof(StrategicMapElement);
if ( guiCurrentSaveGameVersion >= MILITIA_MOVEMENT )
{
for ( UINT16 i = 0; i < MAP_WORLD_X * MAP_WORLD_Y; ++i )
{
// Load the strategic map information
FileRead( hFile, &StrategicMap[i], uiSize, &uiNumBytesRead );
if ( uiNumBytesRead != uiSize )
{
return(FALSE);
}
}
}
else
{
if ( guiCurrentSaveGameVersion < MILITIA_MOVEMENT )
uiSize = 41;
for ( UINT16 i = 0; i < MAP_WORLD_X * MAP_WORLD_Y; ++i )
{
// Load the strategic map information
FileRead( hFile, &StrategicMap[i], uiSize, &uiNumBytesRead );
if ( uiNumBytesRead != uiSize )
{
return(FALSE);
}
StrategicMap[i].usFlags = 0;
}
}
// Load the Sector Info
for ( int sectorID = 0; sectorID <= 255; ++sectorID )
for ( UINT16 i = 0; i < MAP_WORLD_X * MAP_WORLD_Y; ++i )
{
FileRead( hFile, &SectorInfo[sectorID], sizeof(SECTORINFO), &uiNumBytesRead );
if ( uiNumBytesRead != sizeof(SECTORINFO) )
// Load the strategic map information
FileRead( hFile, &StrategicMap[i], uiSize, &uiNumBytesRead );
if ( uiNumBytesRead != uiSize )
{
return(FALSE);
}
// Flugente: changes in SECTORINFO require a weird-looking remapping
if ( guiCurrentSaveGameVersion < PRISONER_EXPANSION )
{
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_GENERAL] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_CIVILIAN] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_SECRET1] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_SECRET2] = 0;
SectorInfo[sectorID].ubNumTanks = SectorInfo[sectorID].uiInterrogationHundredsLeft[PRISONER_GENERAL];
SectorInfo[sectorID].ubTanksInBattle = SectorInfo[sectorID].uiInterrogationHundredsLeft[PRISONER_CIVILIAN];
}
if ( guiCurrentSaveGameVersion < MILITIA_MOVEMENT )
StrategicMap[i].usFlags = 0;
}
// Load the Sector Info
uiSize = sizeof(SECTORINFO);
if ( guiCurrentSaveGameVersion < ENEMY_JEEPS )
uiSize = 116;
for ( int sectorID = 0; sectorID <= 255; ++sectorID )
{
FileRead( hFile, &SectorInfo[sectorID], uiSize, &uiNumBytesRead );
if ( uiNumBytesRead != uiSize )
{
return(FALSE);
}
// Flugente: changes in SECTORINFO require a weird-looking remapping
if ( guiCurrentSaveGameVersion < PRISONER_EXPANSION )
{
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_GENERAL] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_CIVILIAN] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_SECRET1] = 0;
SectorInfo[sectorID].uiNumberOfPrisonersOfWar[PRISONER_SECRET2] = 0;
SectorInfo[sectorID].ubNumTanks = SectorInfo[sectorID].uiInterrogationHundredsLeft[PRISONER_GENERAL];
SectorInfo[sectorID].ubTanksInBattle = SectorInfo[sectorID].uiInterrogationHundredsLeft[PRISONER_CIVILIAN];
}
}
// uiSize = sizeof( SECTORINFO ) * 256;
// FileRead( hFile, SectorInfo, uiSize, &uiNumBytesRead );
// if( uiNumBytesRead != uiSize)