HOPKINS: Rename some members of savegame offset enum, remove some unused ones

This commit is contained in:
Strangerke 2013-02-28 08:16:38 +01:00
parent 94176c7463
commit 7c30a64121
7 changed files with 106 additions and 119 deletions

View File

@ -118,22 +118,21 @@ struct CharacterLocation {
};
enum SauvegardeOffset {
svField1 = 1
, svField2 = 2
, svField3 = 3
, svField4 = 4
, svField5 = 5
, svField6 = 6
, svField8 = 8
, svField9 = 9
, svField10 = 10
, svField13 = 13
svLastMouseCursor = 1
, svLastZoneNum = 2
, svLastObjectIndex = 3
, svUseless4 = 4
, svLastScreenId5 = 5
, svLastScreenId6 = 6
, svUseless8 = 8
, svUseless9 = 9
, svUseless10 = 10
, svField80 = 80
, svField94 = 94
, svField95 = 95
, svField113 = 113
, svField117 = 117
, svField121 = 121
, svUseless21 = 121
, svField122 = 122
, svField123 = 123
, svField132 = 132
@ -145,23 +144,13 @@ enum SauvegardeOffset {
, svField171 = 171
, svField172 = 172
, svField173 = 173
, svField176 = 176
, svUseless176 = 176
, svField177 = 177
, svField180 = 180
, svField181 = 181
, svField182 = 182
, svField183 = 183
, svField184 = 184
, svField185 = 185
, svField186 = 186
, svField187 = 187
, svField188 = 188
, svField189 = 189
, svField190 = 190
, svField191 = 191
, svField192 = 192
, svField193 = 193
, svField194 = 194
, svField220 = 220
, svField225 = 225
, svField228 = 228
@ -173,21 +162,20 @@ enum SauvegardeOffset {
, svField311 = 311
, svField312 = 312
, svField318 = 318
, svField320 = 320
, svUseless320 = 320
, svField330 = 330
, svField333 = 333
, svField338 = 338
, svField339 = 339
, svField340 = 340
, svUseless338 = 338
, svUseless339 = 339
, svUseless340 = 340
, svField341 = 341
, svField349 = 349
, svField352 = 352
, svUseless352 = 352
, svField353 = 353
, svField354 = 354
, svField355 = 355
, svField356 = 356
, svField357 = 357
, svField399 = 399
, svUseless399 = 399
, svField401 = 401
};

View File

@ -332,9 +332,9 @@ bool HopkinsEngine::runWin95Demo() {
case 113:
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 113;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_computerManager.showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@ -348,9 +348,9 @@ bool HopkinsEngine::runWin95Demo() {
case 114:
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 114;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_globals._exitId = 0;
_computerManager.showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
@ -361,9 +361,9 @@ bool HopkinsEngine::runWin95Demo() {
case 115:
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 115;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_computerManager.showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@ -649,9 +649,9 @@ bool HopkinsEngine::runLinuxDemo() {
case 113:
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 113;
_globals._saveData->_data[svField5] = 113;
_globals._saveData->_data[svLastScreenId5] = 113;
_computerManager.showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
@ -667,9 +667,9 @@ bool HopkinsEngine::runLinuxDemo() {
case 114:
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 114;
_globals._saveData->_data[svField5] = 114;
_globals._saveData->_data[svLastScreenId5] = 114;
_computerManager.showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@ -679,9 +679,9 @@ bool HopkinsEngine::runLinuxDemo() {
case 115:
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._saveData->_data[svField6] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._screenId;
_globals._screenId = 115;
_globals._saveData->_data[svField5] = 115;
_globals._saveData->_data[svLastScreenId5] = 115;
_computerManager.showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@ -1423,8 +1423,8 @@ bool HopkinsEngine::runFull() {
case 113:
_globals._prevScreenId = _globals._screenId;
_globals._screenId = 113;
_globals._saveData->_data[svField6] = _globals._prevScreenId;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_globals._exitId = 0;
_computerManager.showComputer(COMPUTER_HOPKINS);
_graphicsManager.lockScreen();
@ -1441,8 +1441,8 @@ bool HopkinsEngine::runFull() {
_globals._exitId = 0;
_globals._prevScreenId = _globals._screenId;
_globals._screenId = 114;
_globals._saveData->_data[svField6] = _globals._prevScreenId;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_computerManager.showComputer(COMPUTER_SAMANTHA);
_graphicsManager.lockScreen();
_graphicsManager.clearScreen();
@ -1452,8 +1452,8 @@ bool HopkinsEngine::runFull() {
case 115:
_globals._prevScreenId = _globals._screenId;
_globals._screenId = 115;
_globals._saveData->_data[svField6] = _globals._prevScreenId;
_globals._saveData->_data[svField5] = _globals._screenId;
_globals._saveData->_data[svLastScreenId6] = _globals._prevScreenId;
_globals._saveData->_data[svLastScreenId5] = _globals._screenId;
_globals._exitId = 0;
_computerManager.showComputer(COMPUTER_PUBLIC);
_graphicsManager.lockScreen();

View File

@ -1296,7 +1296,7 @@ void ObjectsManager::GOHOME() {
_vm->_globals._actionDirection = DIR_NONE;
int zoneId;
if (_vm->_globals._actionMoveTo)
zoneId = _vm->_globals._saveData->_data[svField2];
zoneId = _vm->_globals._saveData->_data[svLastZoneNum];
else
zoneId = _zoneNum;
_vm->_linesManager._route = (RouteItem *)g_PTRNUL;
@ -1514,7 +1514,7 @@ void ObjectsManager::GOHOME() {
if (newPosX == -1 && newPosY == -1) {
int zoneId;
if (_vm->_globals._actionMoveTo)
zoneId = _vm->_globals._saveData->_data[svField2];
zoneId = _vm->_globals._saveData->_data[svLastZoneNum];
else
zoneId = _zoneNum;
setSpriteIndex(0, _vm->_globals._oldDirection + 59);
@ -1879,8 +1879,8 @@ void ObjectsManager::handleLeftButton() {
if (_vm->_globals._actionMoveTo) {
_vm->_linesManager.checkZone();
_vm->_globals._actionMoveTo = false;
_vm->_globals._saveData->_data[svField1] = 0;
_vm->_globals._saveData->_data[svField2] = 0;
_vm->_globals._saveData->_data[svLastMouseCursor] = 0;
_vm->_globals._saveData->_data[svLastZoneNum] = 0;
}
if (_vm->_globals._cityMapEnabledFl && (_vm->_eventsManager._mouseCursorId != 4 || _zoneNum <= 0))
@ -1937,14 +1937,14 @@ void ObjectsManager::handleLeftButton() {
if (_zoneNum != -1 && _zoneNum != 0) {
if (_vm->_eventsManager._mouseCursorId == 23)
_vm->_globals._saveData->_data[svField1] = 5;
_vm->_globals._saveData->_data[svLastMouseCursor] = 5;
else
_vm->_globals._saveData->_data[svField1] = _vm->_eventsManager._mouseCursorId;
_vm->_globals._saveData->_data[svLastMouseCursor] = _vm->_eventsManager._mouseCursorId;
if (_vm->_globals._cityMapEnabledFl)
_vm->_globals._saveData->_data[svField1] = 6;
_vm->_globals._saveData->_data[svField2] = _zoneNum;
_vm->_globals._saveData->_data[svField3] = _curObjectIndex;
_vm->_globals._saveData->_data[svLastMouseCursor] = 6;
_vm->_globals._saveData->_data[svLastZoneNum] = _zoneNum;
_vm->_globals._saveData->_data[svLastObjectIndex] = _curObjectIndex;
_vm->_globals._actionMoveTo = true;
}
_vm->_fontManager.hideText(5);
@ -1960,8 +1960,8 @@ void ObjectsManager::handleLeftButton() {
}
void ObjectsManager::PARADISE() {
char result = _vm->_globals._saveData->_data[svField1];
if (result && _vm->_globals._saveData->_data[svField2] && result != 4 && result > 3) {
char result = _vm->_globals._saveData->_data[svLastMouseCursor];
if (result && _vm->_globals._saveData->_data[svLastZoneNum] && result != 4 && result > 3) {
_vm->_fontManager.hideText(5);
if (!_forestFl || _zoneNum < 20 || _zoneNum > 23) {
if (_vm->_graphicsManager._largeScreenFl) {
@ -2008,20 +2008,20 @@ void ObjectsManager::PARADISE() {
_vm->_eventsManager.VBL();
_vm->_graphicsManager._scrollStatus = 0;
}
_vm->_talkManager.REPONSE(_vm->_globals._saveData->_data[svField2], _vm->_globals._saveData->_data[svField1]);
_vm->_talkManager.REPONSE(_vm->_globals._saveData->_data[svLastZoneNum], _vm->_globals._saveData->_data[svLastMouseCursor]);
} else {
_vm->_talkManager.REPONSE2(_vm->_globals._saveData->_data[svField2], _vm->_globals._saveData->_data[svField1]);
_vm->_talkManager.REPONSE2(_vm->_globals._saveData->_data[svLastZoneNum], _vm->_globals._saveData->_data[svLastMouseCursor]);
}
_vm->_eventsManager.changeMouseCursor(4);
if (_zoneNum != -1 && _zoneNum != 0 && !_vm->_linesManager.ZONEP[_zoneNum]._enabledFl) {
_zoneNum = -1;
_forceZoneFl = true;
}
if (_zoneNum != _vm->_globals._saveData->_data[svField2] || _zoneNum == -1 || _zoneNum == 0) {
if (_zoneNum != _vm->_globals._saveData->_data[svLastZoneNum] || _zoneNum == -1 || _zoneNum == 0) {
_vm->_eventsManager._mouseCursorId = 4;
_changeVerbFl = false;
} else {
_vm->_eventsManager._mouseCursorId = _vm->_globals._saveData->_data[svField1];
_vm->_eventsManager._mouseCursorId = _vm->_globals._saveData->_data[svLastMouseCursor];
if (_changeVerbFl) {
nextVerbIcon();
_changeVerbFl = false;
@ -2032,8 +2032,8 @@ void ObjectsManager::PARADISE() {
if (_vm->_eventsManager._mouseCursorId != 23)
_vm->_eventsManager.changeMouseCursor(_vm->_eventsManager._mouseCursorId);
_zoneNum = 0;
_vm->_globals._saveData->_data[svField1] = 0;
_vm->_globals._saveData->_data[svField2] = 0;
_vm->_globals._saveData->_data[svLastMouseCursor] = 0;
_vm->_globals._saveData->_data[svLastZoneNum] = 0;
}
if (_vm->_globals._cityMapEnabledFl) {
_vm->_eventsManager._mouseCursorId = 0;
@ -2075,8 +2075,8 @@ void ObjectsManager::clearScreen() {
_vm->_globals.SPRITE_ECRAN = _vm->_globals.freeMemory(_vm->_globals.SPRITE_ECRAN);
_vm->_eventsManager._startPos.x = 0;
_vm->_eventsManager._mouseSpriteId = 0;
_vm->_globals._saveData->_data[svField1] = 0;
_vm->_globals._saveData->_data[svField2] = 0;
_vm->_globals._saveData->_data[svLastMouseCursor] = 0;
_vm->_globals._saveData->_data[svLastZoneNum] = 0;
_vm->_globals._actionMoveTo = false;
_forceZoneFl = true;
_changeVerbFl = false;
@ -2181,21 +2181,21 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
switch (newCharacter) {
case CHARACTER_HOPKINS:
_vm->_globals._saveData->_data[svField121] = 0;
_vm->_globals._saveData->_data[svUseless21] = 0;
_vm->_globals._saveData->_data[svField354] = 0;
_vm->_globals._saveData->_data[svField356] = 0;
_vm->_globals._saveData->_data[svField357] = 1;
_vm->_globals._exitId = _vm->_globals._saveData->_realHopkins._location;
break;
case CHARACTER_HOPKINS_CLONE:
_vm->_globals._saveData->_data[svField121] = 1;
_vm->_globals._saveData->_data[svUseless21] = 1;
_vm->_globals._saveData->_data[svField354] = 1;
_vm->_globals._saveData->_data[svField356] = 0;
_vm->_globals._saveData->_data[svField357] = 0;
_vm->_globals._exitId = _vm->_globals._saveData->_cloneHopkins._location;
break;
case CHARACTER_SAMANTHA:
_vm->_globals._saveData->_data[svField121] = 0;
_vm->_globals._saveData->_data[svUseless21] = 0;
_vm->_globals._saveData->_data[svField354] = 0;
_vm->_globals._saveData->_data[svField356] = 1;
_vm->_globals._saveData->_data[svField357] = 0;
@ -3228,7 +3228,7 @@ void ObjectsManager::SPECIAL_INI() {
_vm->_soundManager.mixVoice(383, 4, displayedTxtFl);
_vm->_globals._saveData->_data[svField270] = 1;
_vm->_globals._saveData->_data[svField300] = 1;
_vm->_globals._saveData->_data[svField320] = 1;
_vm->_globals._saveData->_data[svUseless320] = 1;
if (_vm->_soundManager._voiceOffFl) {
for (int i = 0; i <= 199; i++)
_vm->_eventsManager.VBL();
@ -3790,12 +3790,11 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
_vm->_globals._characterType = 0;
}
}
if (!_vm->_globals._characterType) {
if (_vm->_globals._saveData->_data[svField122] == 1) {
_vm->_globals.PERSO = _vm->_fileManager.loadFile("HOPFEM.SPR");
_vm->_globals._characterType = 1;
}
if (!_vm->_globals._characterType && _vm->_globals._saveData->_data[svField122] == 1) {
_vm->_globals.PERSO = _vm->_fileManager.loadFile("HOPFEM.SPR");
_vm->_globals._characterType = 1;
}
if (_vm->_globals._characterType != 2 && _vm->_globals._saveData->_data[svField356] == 1) {
_vm->_globals.PERSO = _vm->_fileManager.loadFile("PSAMAN.SPR");
_vm->_globals._characterType = 2;

View File

@ -142,7 +142,7 @@ void SaveLoadManager::writeSavegameHeader(Common::OutSaveFile *out, hopkinsSaveg
Common::Error SaveLoadManager::saveGame(int slot, const Common::String &saveName) {
/* Pack any necessary data into the savegame data structure */
// Set the selected slot number
_vm->_globals._saveData->_data[svField10] = slot;
_vm->_globals._saveData->_data[svUseless10] = slot;
// Set up the inventory
for (int i = 0; i < 35; ++i)
@ -203,9 +203,9 @@ Common::Error SaveLoadManager::loadGame(int slot) {
_vm->_globals._inventory[i] = _vm->_globals._saveData->_inventory[i];
// Set variables from loaded data as necessary
_vm->_globals._saveData->_data[svField10] = slot;
_vm->_globals._exitId = _vm->_globals._saveData->_data[svField5];
_vm->_globals._saveData->_data[svField6] = 0;
_vm->_globals._saveData->_data[svUseless10] = slot;
_vm->_globals._exitId = _vm->_globals._saveData->_data[svLastScreenId5];
_vm->_globals._saveData->_data[svLastScreenId6] = 0;
_vm->_globals._screenId = 0;
_vm->_objectsManager._mapCarPosX = _vm->_globals._saveData->_mapCarPosX;
_vm->_objectsManager._mapCarPosY = _vm->_globals._saveData->_mapCarPosY;

View File

@ -266,8 +266,8 @@ int ScriptManager::handleOpcode(byte *dataP) {
case MKTAG24('S', 'T', 'E'):
if (!_vm->_objectsManager._disableFl) {
_vm->_globals._prevScreenId = _vm->_globals._screenId;
_vm->_globals._saveData->_data[svField6] = _vm->_globals._screenId;
_vm->_globals._screenId = _vm->_globals._saveData->_data[svField5] = dataP[5];
_vm->_globals._saveData->_data[svLastScreenId6] = _vm->_globals._screenId;
_vm->_globals._screenId = _vm->_globals._saveData->_data[svLastScreenId5] = dataP[5];
vbobFrameIndex = dataP[6];
}
opcodeType = 1;
@ -955,7 +955,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
case 58:
_vm->_globals._introSpeechOffFl = true;
_vm->_talkManager.startAnimatedCharacterDialogue("Gm1.PE2");
_vm->_globals._saveData->_data[svField176] = 1;
_vm->_globals._saveData->_data[svUseless176] = 1;
_vm->_globals._saveData->_data[svField270] = 2;
_vm->_globals._introSpeechOffFl = false;
break;
@ -1825,7 +1825,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
case 208: {
_vm->_globals._disableInventFl = true;
if (_vm->_globals._saveData->_data[svField6] != _vm->_globals._saveData->_data[svField401]) {
if (_vm->_globals._saveData->_data[svLastScreenId6] != _vm->_globals._saveData->_data[svField401]) {
_vm->_soundManager._specialSoundNum = 208;
_vm->_animationManager.playSequence("SORT.SEQ", 10, 4, 10, true);
_vm->_soundManager._specialSoundNum = 0;
@ -2069,11 +2069,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_graphicsManager.fastDisplay(_vm->_globals.SPRITE_ECRAN, 296, 212, 4);
if (_vm->_globals._saveData->_data[svField341] == 1)
_vm->_globals._saveData->_data[svField338] = 0;
_vm->_globals._saveData->_data[svUseless338] = 0;
if (_vm->_globals._saveData->_data[svField341] == 2)
_vm->_globals._saveData->_data[svField339] = 0;
_vm->_globals._saveData->_data[svUseless339] = 0;
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_globals._saveData->_data[svField340] = 0;
_vm->_globals._saveData->_data[svUseless340] = 0;
}
_vm->_soundManager.playSoundFile("SOUND83.WAV");
_vm->_objectsManager.OPTI_ONE(6, 0, 23, 0);
@ -2099,11 +2099,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_graphicsManager.fastDisplay(_vm->_globals.SPRITE_ECRAN, 296, 212, 4);
if (_vm->_globals._saveData->_data[svField341] == 1)
_vm->_globals._saveData->_data[svField338] = 0;
_vm->_globals._saveData->_data[svUseless338] = 0;
if (_vm->_globals._saveData->_data[svField341] == 2)
_vm->_globals._saveData->_data[svField339] = 0;
_vm->_globals._saveData->_data[svUseless339] = 0;
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_globals._saveData->_data[svField340] = 0;
_vm->_globals._saveData->_data[svUseless340] = 0;
}
_vm->_soundManager.playSoundFile("SOUND83.WAV");
_vm->_objectsManager.OPTI_ONE(5, 0, 23, 0);
@ -2129,11 +2129,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_graphicsManager.fastDisplay(_vm->_globals.SPRITE_ECRAN, 296, 212, 4);
if (_vm->_globals._saveData->_data[svField341] == 1)
_vm->_globals._saveData->_data[svField338] = 0;
_vm->_globals._saveData->_data[svUseless338] = 0;
if (_vm->_globals._saveData->_data[svField341] == 2)
_vm->_globals._saveData->_data[svField339] = 0;
_vm->_globals._saveData->_data[svUseless339] = 0;
if (_vm->_globals._saveData->_data[svField341] == 3)
_vm->_globals._saveData->_data[svField340] = 0;
_vm->_globals._saveData->_data[svUseless340] = 0;
}
_vm->_soundManager.playSoundFile("SOUND83.WAV");
_vm->_objectsManager.OPTI_ONE(4, 0, 23, 0);
@ -2190,8 +2190,8 @@ int ScriptManager::handleOpcode(byte *dataP) {
v51->_pos.y = _vm->_objectsManager.getSpriteY(0);
v51->_startSpriteIndex = 57;
v51->_location = 97;
_vm->_globals._saveData->_data[svField121] = 1;
_vm->_globals._saveData->_data[svField352] = 1;
_vm->_globals._saveData->_data[svUseless21] = 1;
_vm->_globals._saveData->_data[svUseless352] = 1;
_vm->_globals._saveData->_data[svField353] = 1;
_vm->_globals._saveData->_data[svField354] = 1;
break;
@ -2243,7 +2243,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
_vm->_linesManager.ZONEP[4]._destX = 276;
_vm->_objectsManager.enableVerb(4, 19);
_vm->_graphicsManager.fastDisplay(_vm->_globals.SPRITE_ECRAN, 285, 379, 0);
_vm->_globals._saveData->_data[svField399] = 1;
_vm->_globals._saveData->_data[svUseless399] = 1;
break;
case 246:

View File

@ -65,7 +65,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
_characterSize = _vm->_fileManager.fileSize(filename);
}
// CHECKME:_data[svField4] is useless?
_vm->_globals._saveData->_data[svField4] = 0;
_vm->_globals._saveData->_data[svUseless4] = 0;
getStringFromBuffer(40, spriteFilename, (const char *)_characterBuffer);
getStringFromBuffer(0, _questionsFilename, (const char *)_characterBuffer);
@ -166,7 +166,7 @@ void TalkManager::startStaticCharacterDialogue(const Common::String &filename) {
}
// CHECKME:_data[svField4] is useless?
_vm->_globals._saveData->_data[svField4] = 0;
_vm->_globals._saveData->_data[svUseless4] = 0;
getStringFromBuffer(0, _questionsFilename, (const char *)_characterBuffer);
getStringFromBuffer(20, _answersFilename, (const char *)_characterBuffer);
@ -351,7 +351,7 @@ int TalkManager::dialogAnswer(int idx, bool animatedFl) {
// CHECKME:_data[svField4] is useless?
int v7 = READ_LE_INT16((uint16 *)charBuf + 9);
if (v7)
_vm->_globals._saveData->_data[svField4] = v7;
_vm->_globals._saveData->_data[svUseless4] = v7;
if (!frameNumb)
frameNumb = 10;
@ -794,35 +794,35 @@ void TalkManager::REPONSE(int zone, int verb) {
ptr = _vm->_globals.allocMemory(620);
assert(ptr != g_PTRNUL);
memset(ptr, 0, 620);
uint16 v7 = 0;
int v12 = 0;
uint16 curAnswerIdx = 0;
int idx = 0;
bool innerLoopCond = false;
do {
tagFound = false;
if (READ_BE_UINT16(&curAnswerBuf[v7]) == MKTAG16('F', 'C')) {
++v12;
assert(v12 < (620 / 20));
if (READ_BE_UINT16(&curAnswerBuf[curAnswerIdx]) == MKTAG16('F', 'C')) {
++idx;
assert(idx < (620 / 20));
byte *v8 = (ptr + 20 * v12);
byte *answerBuf = (ptr + 20 * idx);
uint16 anwerIdx = 0;
do {
assert(anwerIdx < 20);
v8[anwerIdx++] = curAnswerBuf[v7++];
if (READ_BE_UINT16(&curAnswerBuf[v7]) == MKTAG16('F', 'F')) {
answerBuf[anwerIdx++] = curAnswerBuf[curAnswerIdx++];
if (READ_BE_UINT16(&curAnswerBuf[curAnswerIdx]) == MKTAG16('F', 'F')) {
tagFound = true;
v8[anwerIdx] = 'F';
v8[anwerIdx + 1] = 'F';
++v7;
answerBuf[anwerIdx] = 'F';
answerBuf[anwerIdx + 1] = 'F';
++curAnswerIdx;
}
} while (!tagFound);
}
if (!tagFound) {
uint32 signature24 = READ_BE_UINT24(&curAnswerBuf[v7]);
uint32 signature24 = READ_BE_UINT24(&curAnswerBuf[curAnswerIdx]);
if (signature24 == MKTAG24('C', 'O', 'D') || signature24 == MKTAG24('F', 'I', 'N'))
innerLoopCond = true;
}
curAnswerBuf += v7 + 1;
v7 = 0;
curAnswerBuf += curAnswerIdx + 1;
curAnswerIdx = 0;
} while (!innerLoopCond);
innerLoopCond = false;
int lastOpcodeResult = 1;
@ -858,13 +858,13 @@ void TalkManager::REPONSE(int zone, int verb) {
} while (!innerLoopCond);
} while (outerLoopFl);
_vm->_globals.freeMemory(ptr);
_vm->_globals._saveData->_data[svField2] = 0;
_vm->_globals._saveData->_data[svLastZoneNum] = 0;
return;
}
void TalkManager::REPONSE2(int zone, int verb) {
int indx = 0;
if (verb != 5 || _vm->_globals._saveData->_data[svField3] != 4)
if (verb != 5 || _vm->_globals._saveData->_data[svLastObjectIndex] != 4)
return;
if (zone == 22 || zone == 23) {
@ -965,7 +965,7 @@ void TalkManager::REPONSE2(int zone, int verb) {
}
}
void TalkManager::animateObject(const Common::String &a2) {
void TalkManager::animateObject(const Common::String &filename) {
_vm->_fontManager.hideText(5);
_vm->_fontManager.hideText(9);
_vm->_eventsManager.VBL();
@ -980,11 +980,11 @@ void TalkManager::animateObject(const Common::String &a2) {
_vm->_objectsManager._zoneNum = -1;
_vm->_eventsManager._mouseCursorId = 4;
_vm->_eventsManager.changeMouseCursor(0);
_characterBuffer = _vm->_fileManager.searchCat(a2, RES_PER);
_characterBuffer = _vm->_fileManager.searchCat(filename, RES_PER);
_characterSize = _vm->_globals._catalogSize;
if (_characterBuffer == g_PTRNUL) {
_characterBuffer = _vm->_fileManager.loadFile(a2);
_characterSize = _vm->_fileManager.fileSize(a2);
_characterBuffer = _vm->_fileManager.loadFile(filename);
_characterSize = _vm->_fileManager.fileSize(filename);
}
Common::String screenFilename;
Common::String spriteFilename;

View File

@ -70,7 +70,7 @@ public:
void startStaticCharacterDialogue(const Common::String &filename);
void startAnimatedCharacterDialogue(const Common::String &filename);
void animateObject(const Common::String &a2);
void animateObject(const Common::String &filename);
void REPONSE(int zone, int verb);
void REPONSE2(int zone, int verb);