diff --git a/Init.cpp b/Init.cpp index fa007f78..88a2c0d5 100644 --- a/Init.cpp +++ b/Init.cpp @@ -81,6 +81,7 @@ #include "Civ Quotes.h" #include "LuaInitNPCs.h" #include "Encyclopedia.h" +#include "Encyclopedia_Data.h" #include "AimArchives.h" extern INT16 APBPConstants[TOTAL_APBP_VALUES] = {0}; @@ -1262,6 +1263,12 @@ if ( ReadXMLEmail == TRUE ) } #endif +BackupBRandEncyclopedia ( gEncyclopediaLocationData, gEncyclopediaLocationDataBackup , 0); +BackupBRandEncyclopedia ( gEncyclopediaProfilesData, gEncyclopediaProfilesDataBackup, 1); +BackupBRandEncyclopedia ( gEncyclopediaInventoryDatag, EncyclopediaInventoryDataBackup , 2); +BackupBRandEncyclopedia ( gEncyclopediaQuestsData, gEncyclopediaQuestsDataBackup, 3); + + #endif //ENABLE_ENCYCLOPEDIA #ifdef ENABLE_BRIEFINGROOM @@ -1279,6 +1286,8 @@ if ( ReadXMLEmail == TRUE ) } #endif +BackupBRandEncyclopedia ( gBriefingRoomData, gBriefingRoomDataBackup, 0); + #endif //ENABLE_BRIEFINGROOM UINT8 p; diff --git a/Laptop/Encyclopedia.cpp b/Laptop/Encyclopedia.cpp index 051449be..be44f13a 100644 --- a/Laptop/Encyclopedia.cpp +++ b/Laptop/Encyclopedia.cpp @@ -77,6 +77,13 @@ ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesData[ NUM_PROFILES ]; ENCYCLOPEDIA_LOCATION gEncyclopediaInventoryData[ MAXITEMS ]; ENCYCLOPEDIA_LOCATION gEncyclopediaOldProfilesData[ NUM_PROFILES ]; ENCYCLOPEDIA_LOCATION gEncyclopediaQuestsData[ MAX_QUESTS ]; + +ENCYCLOPEDIA_LOCATION gEncyclopediaLocationDataBackup[ NUM_SECTOR ]; +ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesDataBackup[ NUM_PROFILES ]; +ENCYCLOPEDIA_LOCATION gEncyclopediaInventoryDataBackup[ MAXITEMS ]; +ENCYCLOPEDIA_LOCATION gEncyclopediaOldProfilesDataBackup[ NUM_PROFILES ]; +ENCYCLOPEDIA_LOCATION gEncyclopediaQuestsDataBackup[ MAX_QUESTS ]; + ENCYCLOPEDIA_PROF_SAVE saveEncyclopediaProfilesData[ NUM_PROFILES ]; BOOLEAN saveEncyclopediaLocationData[ NUM_SECTOR ]; BOOLEAN saveEncyclopediaInventoryData[ MAXITEMS ]; @@ -89,6 +96,10 @@ ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesData[ 1 ]; #ifdef ENABLE_BRIEFINGROOM ENCYCLOPEDIA_LOCATION gBriefingRoomData[ NUM_SECTOR ]; ENCYCLOPEDIA_LOCATION gBriefingRoomSpecialMissionData[ NUM_SECTOR ]; + +ENCYCLOPEDIA_LOCATION gBriefingRoomDataBackup[ NUM_SECTOR ]; +ENCYCLOPEDIA_LOCATION gBriefingRoomSpecialMissionDataBackup[ NUM_SECTOR ]; + MISSION_SAVE saveBriefingRoomData[ NUM_SECTOR ]; MISSION_SAVE saveBriefingRoomSpecialMissionData[ NUM_SECTOR ]; MISSION_SAVE saveMissionData[ NUM_SECTOR ]; diff --git a/Laptop/Encyclopedia.h b/Laptop/Encyclopedia.h index 687f565b..b448c7f1 100644 --- a/Laptop/Encyclopedia.h +++ b/Laptop/Encyclopedia.h @@ -210,6 +210,12 @@ extern ENCYCLOPEDIA_LOCATION gEncyclopediaDataTemp[ NUM_MAX_TEMP ]; #endif #ifdef ENABLE_ENCYCLOPEDIA +extern ENCYCLOPEDIA_LOCATION gEncyclopediaLocationDataBackup[ NUM_SECTOR ]; +extern ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesDataBackup[ NUM_PROFILES ]; +extern ENCYCLOPEDIA_LOCATION gEncyclopediaInventoryDataBackup[ MAXITEMS ]; +extern ENCYCLOPEDIA_LOCATION gEncyclopediaOldProfilesDataBackup[ NUM_PROFILES ]; +extern ENCYCLOPEDIA_LOCATION gEncyclopediaQuestsDataBackup[ MAX_QUESTS ]; + extern ENCYCLOPEDIA_LOCATION gEncyclopediaLocationData[ NUM_SECTOR ]; extern ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesData[ NUM_PROFILES ]; extern ENCYCLOPEDIA_LOCATION gEncyclopediaInventoryData[ MAXITEMS ]; @@ -227,6 +233,10 @@ extern ENCYCLOPEDIA_LOCATION gEncyclopediaProfilesData[]; #ifdef ENABLE_BRIEFINGROOM extern ENCYCLOPEDIA_LOCATION gBriefingRoomData[ NUM_SECTOR ]; extern ENCYCLOPEDIA_LOCATION gBriefingRoomSpecialMissionData[ NUM_SECTOR ]; + +extern ENCYCLOPEDIA_LOCATION gBriefingRoomDataBackup[ NUM_SECTOR ]; +extern ENCYCLOPEDIA_LOCATION gBriefingRoomSpecialMissionDataBackup[ NUM_SECTOR ]; + extern MISSION_SAVE saveBriefingRoomData[ NUM_SECTOR ]; extern MISSION_SAVE saveBriefingRoomSpecialMissionData[ NUM_SECTOR ]; extern MISSION_SAVE saveMissionData[ NUM_SECTOR ]; diff --git a/Laptop/Encyclopedia_Data.cpp b/Laptop/Encyclopedia_Data.cpp index 4b3cb2eb..cd4f0e98 100644 --- a/Laptop/Encyclopedia_Data.cpp +++ b/Laptop/Encyclopedia_Data.cpp @@ -121,6 +121,8 @@ void SelectSoundButtonsRegionCallBack(GUI_BUTTON * btn, INT32 reason ); BOOLEAN LoadEncyclopediaFromLoadGameFile( HWFILE hFile ); BOOLEAN SaveEncyclopediaToSaveGameFile( HWFILE hFile ); +void BackupBRandEncyclopedia ( ENCYCLOPEDIA_LOCATION *EncyBackup, ENCYCLOPEDIA_LOCATION *Ency, UINT32 NUM); + BOOLEAN DisplayEncyclopediaLocationText() { return(TRUE); @@ -248,6 +250,81 @@ UINT32 i,NUM_TEMP; #endif // ENABLE_ENCYCLOPEDIA } +void BackupBRandEncyclopedia ( ENCYCLOPEDIA_LOCATION *EncyBackup, ENCYCLOPEDIA_LOCATION *Ency, UINT32 NUM) +{ +//#ifdef ENABLE_ENCYCLOPEDIA +#if (defined ENABLE_ENCYCLOPEDIA || defined ENABLE_BRIEFINGROOM) + +UINT32 i,NUM_TEMP; + + if ( NUM == 0 ) + NUM_TEMP = NUM_SECTOR; + else if ( NUM == 1 ) + NUM_TEMP = NUM_PROFILES; + else if ( NUM == 2 ) + NUM_TEMP = MAXITEMS; + else if ( NUM == 3 ) + NUM_TEMP = MAX_QUESTS; + else if ( NUM == 4 || NUM == 5 ) + NUM_TEMP = NUM_SECTOR; + else + NUM_TEMP = NUM_SECTOR; + + for(i=0; i