[Scummvm-git-logs] scummvm branch-2-2 -> 840ee893728fba464621e53fa76f0a5562971a66
dreammaster
paulfgilbert at gmail.com
Sun Sep 13 00:39:37 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
840ee89372 XEEN: Fix crash reading book in Great Pyramid
Commit: 840ee893728fba464621e53fa76f0a5562971a66
https://github.com/scummvm/scummvm/commit/840ee893728fba464621e53fa76f0a5562971a66
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-09-12T17:39:25-07:00
Commit Message:
XEEN: Fix crash reading book in Great Pyramid
Changed paths:
engines/xeen/party.cpp
engines/xeen/party.h
engines/xeen/xeen.h
diff --git a/engines/xeen/party.cpp b/engines/xeen/party.cpp
index 48100310c5..2bdcc93746 100644
--- a/engines/xeen/party.cpp
+++ b/engines/xeen/party.cpp
@@ -249,7 +249,7 @@ Party::Party(XeenEngine *vm) {
Common::fill(&_questItems[0], &_questItems[85], 0);
for (int i = 0; i < TOTAL_CHARACTERS; ++i)
- Common::fill(&_characterFlags[i][0], &_characterFlags[i][24], false);
+ Common::fill(&_characterFlags[i][0], &_characterFlags[i][32], false);
_newDay = false;
_isNight = false;
@@ -338,9 +338,11 @@ void Party::synchronize(Common::Serializer &s) {
_blacksmithWares.synchronize(s, 1);
+ int numFlags = s.getVersion() == 1 ? 24 : 32;
for (int i = 0; i < TOTAL_CHARACTERS; ++i)
- File::syncBitFlags(s, &_characterFlags[i][0], &_characterFlags[i][24]);
- s.syncBytes(&dummy[0], 30);
+ File::syncBitFlags(s, &_characterFlags[i][0], &_characterFlags[i][numFlags]);
+ if (s.getVersion() == 1)
+ s.syncBytes(&dummy[0], 30);
if (s.isLoading())
_newDay = _minutes < 300;
@@ -1450,7 +1452,7 @@ bool Party::giveTake(int takeMode, uint takeVal, int giveMode, uint giveVal, int
_questFlags[(_vm->getGameID() == GType_Swords ? 0 : files._ccNum * 30) + giveVal] = true;
break;
case 107:
- assert(giveVal < 24);
+ assert(giveVal < 32);
_characterFlags[ps._rosterId][giveVal] = true;
break;
default:
diff --git a/engines/xeen/party.h b/engines/xeen/party.h
index fbe628f097..2cecd93c6c 100644
--- a/engines/xeen/party.h
+++ b/engines/xeen/party.h
@@ -222,7 +222,7 @@ public:
bool _worldFlags[128];
bool _questFlags[60];
int _questItems[TOTAL_QUEST_ITEMS];
- bool _characterFlags[30][24];
+ bool _characterFlags[30][32];
public:
// Other party related runtime data
Roster _roster;
diff --git a/engines/xeen/xeen.h b/engines/xeen/xeen.h
index 038abe7fcd..b880b68fe4 100644
--- a/engines/xeen/xeen.h
+++ b/engines/xeen/xeen.h
@@ -104,7 +104,7 @@ enum GameMode {
struct XeenGameDescription;
-#define XEEN_SAVEGAME_VERSION 1
+#define XEEN_SAVEGAME_VERSION 2
class XeenEngine : public Engine {
/**
More information about the Scummvm-git-logs
mailing list