diff options
author | Nicola Mettifogo | 2007-03-18 08:29:45 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2007-03-18 08:29:45 +0000 |
commit | 82400277120260fbfbe1cdc7f91618f06d8cecc2 (patch) | |
tree | 9a2876ca1afab5337c9136821b8d826618a6da9f | |
parent | 5ffd410e309171f139f9d71f47bd4309baac8af4 (diff) | |
download | scummvm-rg350-82400277120260fbfbe1cdc7f91618f06d8cecc2.tar.gz scummvm-rg350-82400277120260fbfbe1cdc7f91618f06d8cecc2.tar.bz2 scummvm-rg350-82400277120260fbfbe1cdc7f91618f06d8cecc2.zip |
Bug fixed: inventory wasn't refreshed when loading a savegame if character was not switched. To make things clearer, character are now forced to reload all of their data on switch/load.
svn-id: r26190
-rw-r--r-- | engines/parallaction/parallaction.cpp | 5 | ||||
-rw-r--r-- | engines/parallaction/saveload.cpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index 5781c226ba..35c7ba0bc3 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -793,8 +793,9 @@ void Parallaction::changeCharacter(const char *name) { if (scumm_stricmp(v32, _characterName1)) { - if (scumm_stricmp(_characterName1, "null")) - freeCharacter(); + // freeCharacter takes responsibility for checking + // character for sanity before memory is freed + freeCharacter(); _disk->selectArchive("disk1"); diff --git a/engines/parallaction/saveload.cpp b/engines/parallaction/saveload.cpp index e78dde1f82..0a2f92985d 100644 --- a/engines/parallaction/saveload.cpp +++ b/engines/parallaction/saveload.cpp @@ -134,6 +134,10 @@ void Parallaction::doLoadGame(uint16 slot) { parseLocation("common"); + // force reload of character to solve inventory + // bugs, but it's a good maneuver anyway + strcpy(_characterName1, "null"); + strcat(_vm->_location._name, _vm->_characterName); _engineFlags |= kEngineChangeLocation; |