diff --git a/GameVersion.h b/GameVersion.h index bdce33463..970b00d74 100644 --- a/GameVersion.h +++ b/GameVersion.h @@ -20,10 +20,11 @@ extern CHAR16 zTrackingNumber[16]; // // Keeps track of the saved game version. Increment the saved game version whenever // you will invalidate the saved game file -#define SAVE_GAME_VERSION 122 //114 //113 //112 //111 //110 //109 //108 //107 //106 //105 //104 //103 //102 //101 //100 // 99 +#define SAVE_GAME_VERSION 123 //114 //113 //112 //111 //110 //109 //108 //107 //106 //105 //104 //103 //102 //101 //100 // 99 -#define CURRENT_SAVEGAME_DATATYPE_VERSION 122 +#define CURRENT_SAVEGAME_DATATYPE_VERSION 123 +#define FIXED_MERC_NOT_AVAILABLE_ON_MERC_WEBSITE 123 // Before this, only Bubba was available on MERC website #define FIXED_CREPITUS_IN_REALISTIC_GAME_MODE 122 // Before this, there was an initializing problem in GameInit.lua on startup, in which we could meet crepitus in Tixa underground map #define FIXED_NPC_QUOTE_BUG 121 // Before this, we need to reload all npc quote information because it was not being saved and loaded correctly. #define MOVED_GENERAL_INFO 120 // Before this, general game information was saved much later in the save game process. diff --git a/Laptop/BrokenLink.cpp b/Laptop/BrokenLink.cpp index 67855e915..9c55c6775 100644 --- a/Laptop/BrokenLink.cpp +++ b/Laptop/BrokenLink.cpp @@ -61,7 +61,7 @@ void RenderBrokenLink() void DrawBrokenLinkWhiteBackground() { - ColorFillVideoSurfaceArea( FRAME_BUFFER, LAPTOP_SCREEN_UL_X, LAPTOP_SCREEN_WEB_UL_Y, LAPTOP_SCREEN_LR_X, LAPTOP_SCREEN_WEB_LR_Y, Get16BPPColor( FROMRGB( 255, 255, 255) ) ); + ColorFillVideoSurfaceArea( FRAME_BUFFER, LAPTOP_SCREEN_UL_X, LAPTOP_SCREEN_WEB_UL_Y, LAPTOP_SCREEN_LR_X, LAPTOP_SCREEN_WEB_LR_Y - 55, Get16BPPColor( FROMRGB( 255, 255, 255) ) ); } diff --git a/Laptop/mercs.cpp b/Laptop/mercs.cpp index 4d4968a95..2b8479c54 100644 --- a/Laptop/mercs.cpp +++ b/Laptop/mercs.cpp @@ -2536,18 +2536,27 @@ void NewMercsAvailableAtMercSiteCallBack( ) for(UINT8 i=0; i 0 && gConditionsForMercAvailability[ gConditionsForMercAvailability[i - 1].uiIndex ].uiAlternateIndex != 255) + { + // Previous merc has alternate (drunk) merc, skip his one! + LaptopSaveInfo.gubLastMercIndex = LaptopSaveInfo.gubLastMercIndex + 2; + } + else + { + LaptopSaveInfo.gubLastMercIndex++; + } } gConditionsForMercAvailability[gConditionsForMercAvailability[i].uiIndex].NewMercsAvailable = TRUE; diff --git a/SaveLoadGame.cpp b/SaveLoadGame.cpp index 3fd9766f7..233eec75a 100644 --- a/SaveLoadGame.cpp +++ b/SaveLoadGame.cpp @@ -5058,6 +5058,28 @@ BOOLEAN LoadSavedGame( int ubSavedGameID ) } } } + + // WANNE: There were some problems in older savegames, that the MERC are not available on the merc site. Just recalculate the correct number of mercs + // Players that have a bugged savegame and are above Day 50 get ALL Merc on the website! + if(guiCurrentSaveGameVersion < FIXED_MERC_NOT_AVAILABLE_ON_MERC_WEBSITE) + { + // WORKAROUND: If player passed day 30, make merc available on MERC website! + if (LaptopSaveInfo.gubLastMercIndex <= 6 && GetWorldDay() >= 30) + { + LaptopSaveInfo.gubLastMercIndex = 0; + + for(UINT8 i=0; i 0) + LaptopSaveInfo.gubLastMercIndex = LaptopSaveInfo.gubLastMercIndex - 1; + } + } // ---------------------------------------------------------------------------