From 8f41617845ae6b44263d0ae6735592327e9037e9 Mon Sep 17 00:00:00 2001 From: Wanne Date: Thu, 13 Jun 2013 22:34:43 +0000 Subject: [PATCH] - Encyclopedia / Briefing Room Updates (by Jazz) o Improved record o Restart game of Briefing Rooms o New Action for NPC (recruiting / unrecruiting) NPC_ACTION_RECRUIT_PROFILE_TO_EPC = 700 NPC_ACTION_UNRECRUIT_EPC = 701 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6120 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Init.cpp | 9 ++++ Laptop/Encyclopedia.cpp | 11 +++++ Laptop/Encyclopedia.h | 10 +++++ Laptop/Encyclopedia_Data.cpp | 77 +++++++++++++++++++++++++++++++++ Laptop/Encyclopedia_Data.h | 2 + Strategic/Game Init.cpp | 13 +++++- Strategic/LuaInitNPCs.cpp | 53 ++++++++++++++++++++--- Tactical/Interface Dialogue.cpp | 15 +++++++ Tactical/interface Dialogue.h | 3 ++ 9 files changed, 187 insertions(+), 6 deletions(-) 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