mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-07 02:39:56 +00:00
HOPKINS: Remove setParent() from SaveLoadManager and ScriptManager
This commit is contained in:
parent
c5c7ced5ee
commit
848841772f
@ -242,9 +242,9 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
|
||||
memcpy(_vm->_graphicsManager->_oldPalette, _vm->_graphicsManager->_palette, 769);
|
||||
|
||||
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
else if (_vm->_graphicsManager->_lineNbr == (SCREEN_WIDTH * 2))
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
|
||||
if (!_vm->_graphicsManager->_lineNbr)
|
||||
_vm->_graphicsManager->_scrollOffset = 0;
|
||||
@ -388,7 +388,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 rate1, u
|
||||
}
|
||||
_vm->_graphicsManager->FADE_LINUX = 0;
|
||||
|
||||
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
_vm->_saveLoadManager->load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
|
||||
|
||||
memcpy(_vm->_graphicsManager->_palette, _vm->_graphicsManager->_oldPalette, 769);
|
||||
@ -621,9 +621,9 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
|
||||
_vm->_eventsManager->refreshScreenAndEvents();
|
||||
|
||||
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
else if (_vm->_graphicsManager->_lineNbr == (SCREEN_WIDTH * 2))
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
if (!_vm->_graphicsManager->_lineNbr)
|
||||
_vm->_graphicsManager->_scrollOffset = 0;
|
||||
}
|
||||
@ -771,7 +771,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
|
||||
f.close();
|
||||
|
||||
if (!NO_COUL) {
|
||||
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
_vm->_saveLoadManager->load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
|
||||
|
||||
_vm->_eventsManager->_mouseFl = true;
|
||||
|
@ -582,7 +582,7 @@ void ComputerManager::displayGamesSubMenu() {
|
||||
*/
|
||||
void ComputerManager::loadHiscore() {
|
||||
byte *ptr = _vm->_globals->allocMemory(100);
|
||||
_vm->_saveLoadManager.load("HISCORE.DAT", ptr);
|
||||
_vm->_saveLoadManager->load("HISCORE.DAT", ptr);
|
||||
|
||||
for (int scoreIndex = 0; scoreIndex < 6; ++scoreIndex) {
|
||||
for (int i = 0; i < 5; ++i) {
|
||||
@ -992,7 +992,7 @@ void ComputerManager::saveScore() {
|
||||
ptr[curBufPtr + 15] = 0;
|
||||
}
|
||||
|
||||
_vm->_saveLoadManager.saveFile("HISCORE.DAT", ptr, 100);
|
||||
_vm->_saveLoadManager->saveFile("HISCORE.DAT", ptr, 100);
|
||||
_vm->_globals->freeMemory(ptr);
|
||||
}
|
||||
|
||||
|
@ -411,12 +411,12 @@ void DialogsManager::showInventory() {
|
||||
if (_vm->_eventsManager->_mouseCursorId == 8)
|
||||
break;
|
||||
|
||||
_vm->_scriptManager._tempObjectFl = true;
|
||||
_vm->_scriptManager->_tempObjectFl = true;
|
||||
_vm->_globals->_saveData->_data[svLastObjectIndex] = _vm->_objectsManager->_curObjectIndex;
|
||||
_vm->_globals->_saveData->_data[svLastInventoryItem] = _vm->_globals->_inventory[newInventoryItem];
|
||||
_vm->_globals->_saveData->_data[svLastInvMouseCursor] = _vm->_eventsManager->_mouseCursorId;
|
||||
_vm->_objectsManager->OPTI_OBJET();
|
||||
_vm->_scriptManager._tempObjectFl = false;
|
||||
_vm->_scriptManager->_tempObjectFl = false;
|
||||
|
||||
if (_vm->_soundManager._voiceOffFl) {
|
||||
do
|
||||
@ -581,7 +581,7 @@ void DialogsManager::showLoadGame() {
|
||||
_vm->_objectsManager->_saveLoadY = 0;
|
||||
|
||||
if (slotNumber != 7) {
|
||||
_vm->_saveLoadManager.loadGame(slotNumber);
|
||||
_vm->_saveLoadManager->loadGame(slotNumber);
|
||||
}
|
||||
|
||||
_vm->_objectsManager->changeObject(14);
|
||||
@ -614,7 +614,7 @@ void DialogsManager::showSaveGame() {
|
||||
Common::String saveName = Common::String::format("Save #%d", slotNumber);
|
||||
|
||||
// Save the game
|
||||
_vm->_saveLoadManager.saveGame(slotNumber, saveName);
|
||||
_vm->_saveLoadManager->saveGame(slotNumber, saveName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -658,9 +658,9 @@ void DialogsManager::showSaveLoad(SaveLoadMode mode) {
|
||||
|
||||
for (int slotNumber = 1; slotNumber <= 6; ++slotNumber) {
|
||||
hopkinsSavegameHeader header;
|
||||
if (_vm->_saveLoadManager.readSavegameHeader(slotNumber, header)) {
|
||||
if (_vm->_saveLoadManager->readSavegameHeader(slotNumber, header)) {
|
||||
Graphics::Surface thumb8;
|
||||
_vm->_saveLoadManager.convertThumb16To8(header._thumbnail, &thumb8);
|
||||
_vm->_saveLoadManager->convertThumb16To8(header._thumbnail, &thumb8);
|
||||
|
||||
byte *thumb = (byte *)thumb8.pixels;
|
||||
|
||||
|
@ -1762,14 +1762,14 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
|
||||
int dataOffset = 1;
|
||||
|
||||
do {
|
||||
int dataVal1 = _vm->_scriptManager.handleOpcode(ptr + 20 * dataOffset);
|
||||
int dataVal1 = _vm->_scriptManager->handleOpcode(ptr + 20 * dataOffset);
|
||||
if (_vm->shouldQuit())
|
||||
return;
|
||||
|
||||
if (dataVal1 == 2)
|
||||
dataOffset = _vm->_scriptManager.handleGoto((ptr + 20 * dataOffset));
|
||||
dataOffset = _vm->_scriptManager->handleGoto((ptr + 20 * dataOffset));
|
||||
if (dataVal1 == 3)
|
||||
dataOffset = _vm->_scriptManager.handleIf(ptr, dataOffset);
|
||||
dataOffset = _vm->_scriptManager->handleIf(ptr, dataOffset);
|
||||
if (dataOffset == -1)
|
||||
error("Error, defective IFF");
|
||||
if (dataVal1 == 1 || dataVal1 == 4)
|
||||
|
@ -52,14 +52,16 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
|
||||
_linesManager = new LinesManager(this);
|
||||
_menuManager = new MenuManager(this);
|
||||
_objectsManager = new ObjectsManager(this);
|
||||
_saveLoadManager = new SaveLoadManager(this);
|
||||
_scriptManager = new ScriptManager(this);
|
||||
|
||||
_saveLoadManager.setParent(this);
|
||||
_scriptManager.setParent(this);
|
||||
_soundManager.setParent(this);
|
||||
_talkManager.setParent(this);
|
||||
}
|
||||
|
||||
HopkinsEngine::~HopkinsEngine() {
|
||||
delete _scriptManager;
|
||||
delete _saveLoadManager;
|
||||
delete _objectsManager;
|
||||
delete _menuManager;
|
||||
delete _linesManager;
|
||||
@ -96,18 +98,18 @@ bool HopkinsEngine::canSaveGameStateCurrently() {
|
||||
* Load the savegame at the specified slot index
|
||||
*/
|
||||
Common::Error HopkinsEngine::loadGameState(int slot) {
|
||||
return _saveLoadManager.loadGame(slot);
|
||||
return _saveLoadManager->loadGame(slot);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the game to the given slot index, and with the given name
|
||||
*/
|
||||
Common::Error HopkinsEngine::saveGameState(int slot, const Common::String &desc) {
|
||||
return _saveLoadManager.saveGame(slot, desc);
|
||||
return _saveLoadManager->saveGame(slot, desc);
|
||||
}
|
||||
|
||||
Common::Error HopkinsEngine::run() {
|
||||
_saveLoadManager.initSaves();
|
||||
_saveLoadManager->initSaves();
|
||||
|
||||
_globals->setConfig();
|
||||
_fileManager->initCensorship();
|
||||
|
@ -154,9 +154,9 @@ public:
|
||||
LinesManager *_linesManager;
|
||||
MenuManager *_menuManager;
|
||||
ObjectsManager *_objectsManager;
|
||||
SaveLoadManager *_saveLoadManager;
|
||||
ScriptManager *_scriptManager;
|
||||
|
||||
SaveLoadManager _saveLoadManager;
|
||||
ScriptManager _scriptManager;
|
||||
SoundManager _soundManager;
|
||||
TalkManager _talkManager;
|
||||
|
||||
|
@ -2540,14 +2540,14 @@ void ObjectsManager::OPTI_OBJET() {
|
||||
error("File %s is not an INI file", file.c_str());
|
||||
|
||||
for (;;) {
|
||||
int opcodeType = _vm->_scriptManager.handleOpcode(data + 20 * lastOpcodeResult);
|
||||
int opcodeType = _vm->_scriptManager->handleOpcode(data + 20 * lastOpcodeResult);
|
||||
if (_vm->shouldQuit())
|
||||
return;
|
||||
|
||||
if (opcodeType == 2)
|
||||
lastOpcodeResult = _vm->_scriptManager.handleGoto(data + 20 * lastOpcodeResult);
|
||||
lastOpcodeResult = _vm->_scriptManager->handleGoto(data + 20 * lastOpcodeResult);
|
||||
else if (opcodeType == 3)
|
||||
lastOpcodeResult = _vm->_scriptManager.handleIf(data, lastOpcodeResult);
|
||||
lastOpcodeResult = _vm->_scriptManager->handleIf(data, lastOpcodeResult);
|
||||
|
||||
if (lastOpcodeResult == -1)
|
||||
error("defective IFF function");
|
||||
@ -2580,7 +2580,7 @@ void ObjectsManager::handleSpecialGames() {
|
||||
oldPalette = _vm->_globals->allocMemory(1000);
|
||||
memcpy(oldPalette, _vm->_graphicsManager->_palette, 769);
|
||||
|
||||
_vm->_saveLoadManager.saveFile("TEMP1.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
_vm->_saveLoadManager->saveFile("TEMP1.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
|
||||
if (!_vm->_graphicsManager->_lineNbr)
|
||||
_vm->_graphicsManager->_scrollOffset = 0;
|
||||
@ -2594,7 +2594,7 @@ void ObjectsManager::handleSpecialGames() {
|
||||
_vm->_soundManager._specialSoundNum = 0;
|
||||
_vm->_graphicsManager->NB_SCREEN(false);
|
||||
|
||||
_vm->_saveLoadManager.load("TEMP1.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
_vm->_saveLoadManager->load("TEMP1.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
g_system->getSavefileManager()->removeSavefile("TEMP1.SCR");
|
||||
|
||||
PERSO_ON = false;
|
||||
|
@ -38,7 +38,7 @@ namespace Hopkins {
|
||||
const char *SAVEGAME_STR = "HOPKINS";
|
||||
#define SAVEGAME_STR_SIZE 13
|
||||
|
||||
void SaveLoadManager::setParent(HopkinsEngine *vm) {
|
||||
SaveLoadManager::SaveLoadManager(HopkinsEngine *vm) {
|
||||
_vm = vm;
|
||||
}
|
||||
|
||||
|
@ -54,8 +54,7 @@ private:
|
||||
void syncSavegameData(Common::Serializer &s, int version);
|
||||
void syncCharacterLocation(Common::Serializer &s, CharacterLocation &item);
|
||||
public:
|
||||
SaveLoadManager() {}
|
||||
void setParent(HopkinsEngine *vm);
|
||||
SaveLoadManager(HopkinsEngine *vm);
|
||||
|
||||
void initSaves();
|
||||
bool save(const Common::String &file, const void *buf, size_t n);
|
||||
|
@ -35,12 +35,9 @@
|
||||
|
||||
namespace Hopkins {
|
||||
|
||||
ScriptManager::ScriptManager() {
|
||||
_tempObjectFl = false;
|
||||
}
|
||||
|
||||
void ScriptManager::setParent(HopkinsEngine *vm) {
|
||||
ScriptManager::ScriptManager(HopkinsEngine *vm) {
|
||||
_vm = vm;
|
||||
_tempObjectFl = false;
|
||||
}
|
||||
|
||||
int ScriptManager::handleOpcode(byte *dataP) {
|
||||
|
@ -38,8 +38,7 @@ private:
|
||||
public:
|
||||
bool _tempObjectFl;
|
||||
|
||||
ScriptManager();
|
||||
void setParent(HopkinsEngine *vm);
|
||||
ScriptManager(HopkinsEngine *vm);
|
||||
|
||||
int handleOpcode(byte *dataP);
|
||||
int handleIf(const byte *dataP, int offset);
|
||||
|
@ -87,9 +87,9 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
|
||||
}
|
||||
|
||||
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
else if (_vm->_graphicsManager->_lineNbr == (SCREEN_WIDTH * 2))
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
|
||||
if (!_vm->_graphicsManager->_lineNbr)
|
||||
_vm->_graphicsManager->_scrollOffset = 0;
|
||||
@ -129,7 +129,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
|
||||
_characterSprite = _vm->_globals->freeMemory(_characterSprite);
|
||||
_vm->_graphicsManager->NB_SCREEN(false);
|
||||
|
||||
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
_vm->_saveLoadManager->load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
|
||||
|
||||
_vm->_objectsManager->PERSO_ON = false;
|
||||
@ -825,16 +825,16 @@ void TalkManager::REPONSE(int zone, int verb) {
|
||||
innerLoopCond = false;
|
||||
int lastOpcodeResult = 1;
|
||||
do {
|
||||
int opcodeType = _vm->_scriptManager.handleOpcode(ptr + 20 * lastOpcodeResult);
|
||||
int opcodeType = _vm->_scriptManager->handleOpcode(ptr + 20 * lastOpcodeResult);
|
||||
if (_vm->shouldQuit())
|
||||
return;
|
||||
|
||||
if (opcodeType == 2)
|
||||
// GOTO
|
||||
lastOpcodeResult = _vm->_scriptManager.handleGoto(ptr + 20 * lastOpcodeResult);
|
||||
lastOpcodeResult = _vm->_scriptManager->handleGoto(ptr + 20 * lastOpcodeResult);
|
||||
else if (opcodeType == 3)
|
||||
// IF
|
||||
lastOpcodeResult = _vm->_scriptManager.handleIf(ptr, lastOpcodeResult);
|
||||
lastOpcodeResult = _vm->_scriptManager->handleIf(ptr, lastOpcodeResult);
|
||||
|
||||
if (lastOpcodeResult == -1)
|
||||
error("Invalid IFF function");
|
||||
@ -1001,9 +1001,9 @@ void TalkManager::animateObject(const Common::String &filename) {
|
||||
_characterSprite = _vm->_objectsManager->loadSprite("RES_SAN.RES");
|
||||
|
||||
if (_vm->_graphicsManager->_lineNbr == SCREEN_WIDTH)
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 307200);
|
||||
else if (_vm->_graphicsManager->_lineNbr == (SCREEN_WIDTH * 2))
|
||||
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
_vm->_saveLoadManager->saveFile("TEMP.SCR", _vm->_graphicsManager->_vesaScreen, 614400);
|
||||
|
||||
if (!_vm->_graphicsManager->_lineNbr)
|
||||
_vm->_graphicsManager->_scrollOffset = 0;
|
||||
@ -1063,7 +1063,7 @@ void TalkManager::animateObject(const Common::String &filename) {
|
||||
if (_vm->_globals->_exitId == 101)
|
||||
_vm->_globals->_exitId = 0;
|
||||
|
||||
_vm->_saveLoadManager.load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
_vm->_saveLoadManager->load("TEMP.SCR", _vm->_graphicsManager->_vesaScreen);
|
||||
g_system->getSavefileManager()->removeSavefile("TEMP.SCR");
|
||||
|
||||
_vm->_objectsManager->PERSO_ON = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user