diff options
author | Littleboy | 2012-08-27 23:29:09 -0400 |
---|---|---|
committer | Littleboy | 2012-08-27 23:30:23 -0400 |
commit | 6ab8db638e4a1d547ee67db067b5d6c3d6c940a4 (patch) | |
tree | 981fed8e6621957dde6ba8f5ec90c67ca36d50f1 /engines/lastexpress/game | |
parent | ee8581b778b83bc01af0f26bc8b3680ebc266700 (diff) | |
download | scummvm-rg350-6ab8db638e4a1d547ee67db067b5d6c3d6c940a4.tar.gz scummvm-rg350-6ab8db638e4a1d547ee67db067b5d6c3d6c940a4.tar.bz2 scummvm-rg350-6ab8db638e4a1d547ee67db067b5d6c3d6c940a4.zip |
LASTEXPRESS: Implement more savegame loading
- Rename existing function to load the last saved game
- Remove loadgame debugger command
Diffstat (limited to 'engines/lastexpress/game')
-rw-r--r-- | engines/lastexpress/game/savegame.cpp | 30 | ||||
-rw-r--r-- | engines/lastexpress/game/savegame.h | 4 |
2 files changed, 28 insertions, 6 deletions
diff --git a/engines/lastexpress/game/savegame.cpp b/engines/lastexpress/game/savegame.cpp index 7efce0007b..021dc40bb9 100644 --- a/engines/lastexpress/game/savegame.cpp +++ b/engines/lastexpress/game/savegame.cpp @@ -482,10 +482,10 @@ void SaveLoad::clear(bool clearStream) { // Save & Load ////////////////////////////////////////////////////////////////////////// -// Load game -void SaveLoad::loadGame(GameId id) { +// Load last saved game +void SaveLoad::loadLastGame() { if (!_savegame) - error("[SaveLoad::loadGame] No savegame stream present"); + error("[SaveLoad::loadLastGame] No savegame stream present"); // Rewind current savegame _savegame->seek(0); @@ -522,7 +522,29 @@ void SaveLoad::loadGame(GameId id) { } // Load a specific game entry -void SaveLoad::loadGame(GameId id, uint32 index) { +void SaveLoad::loadGame(uint32 index) { + if (!_savegame) + error("[SaveLoad::loadLastGame] No savegame stream present"); + + // Rewind current savegame + _savegame->seek(0); + + // Write main header (with selected index) + SavegameMainHeader header; + header.count = index; + header.brightness = getState()->brightness; + header.volume = getState()->volume; + + Common::Serializer ser(NULL, _savegame); + header.saveLoadWithSerializer(ser); + + // TODO + // Go to the entry + // Load the entry + // Get offset (main and entry) + // Write main header again with correct entry offset + // Setup game and start + error("[SaveLoad::loadGame] Not implemented! (only loading the last entry is working for now)"); } diff --git a/engines/lastexpress/game/savegame.h b/engines/lastexpress/game/savegame.h index 8656b2ee86..361957227e 100644 --- a/engines/lastexpress/game/savegame.h +++ b/engines/lastexpress/game/savegame.h @@ -153,8 +153,8 @@ public: uint32 init(GameId id, bool resetHeaders); // Save & Load - void loadGame(GameId id); - void loadGame(GameId id, uint32 index); + void loadLastGame(); + void loadGame(uint32 index); void saveGame(SavegameType type, EntityIndex entity, uint32 value); void loadVolumeBrightness(); |