aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hdb/hdb.cpp31
-rw-r--r--engines/hdb/hdb.h2
-rw-r--r--engines/hdb/sound.cpp4
-rw-r--r--engines/hdb/sound.h1
4 files changed, 34 insertions, 4 deletions
diff --git a/engines/hdb/hdb.cpp b/engines/hdb/hdb.cpp
index d97e127208..cebcb11289 100644
--- a/engines/hdb/hdb.cpp
+++ b/engines/hdb/hdb.cpp
@@ -137,7 +137,7 @@ void HDBGame::save(Common::OutSaveFile *out) {
out->write(_inMapName, 32);
}
-void HDBGame::load(Common::InSaveFile *in) {
+void HDBGame::loadSaveFile(Common::InSaveFile *in) {
in->read(_currentMapname, 64);
in->read(_lastMapname, 64);
in->read(_currentLuaName, 64);
@@ -499,11 +499,36 @@ void HDBGame::saveGame(Common::OutSaveFile *out) {
// Save AI Object Data
_ai->save(out);
-
}
void HDBGame::loadGame(Common::InSaveFile *in) {
- warning("STUB: Add loadGame()");
+ // Load Map Name
+ in->read(_inMapName, 32);
+
+ g_hdb->_sound->stopMusic();
+ _timeSeconds = 0;
+ _timePlayed = 0;
+
+ // Load Map Object Data
+ _map->loadSaveFile(in);
+
+ // Load Window Object Data
+ _window->loadSaveFile(in);
+
+ // Load Gfx Object Data
+ _gfx->loadSaveFile(in);
+
+ // Load Sound Object Data
+ _sound->loadSaveFile(in);
+
+ // Load Game Object Data
+ loadSaveFile(in);
+
+ // Load AI Object Data
+
+ _ai->loadSaveFile(in);
+
+ _gfx->turnOffFade();
}
// PLAYER is trying to use this entity
diff --git a/engines/hdb/hdb.h b/engines/hdb/hdb.h
index fcd52dab1d..fce1138add 100644
--- a/engines/hdb/hdb.h
+++ b/engines/hdb/hdb.h
@@ -147,7 +147,7 @@ public:
bool init();
void save(Common::OutSaveFile *out);
- void load(Common::InSaveFile *in);
+ void loadSaveFile(Common::InSaveFile *in);
bool restartMap();
bool startMap(const char *name);
diff --git a/engines/hdb/sound.cpp b/engines/hdb/sound.cpp
index cdda643417..d14ec508f9 100644
--- a/engines/hdb/sound.cpp
+++ b/engines/hdb/sound.cpp
@@ -57,6 +57,10 @@ bool Sound::stopChannel(int channel) {
return true;
}
+void Sound::stopMusic() {
+ debug(9, "STUB: Stop Music");
+}
+
void Sound::markSoundCacheFreeable() {
warning("STUB: Sound::markSoundCacheFreeable() ");
}
diff --git a/engines/hdb/sound.h b/engines/hdb/sound.h
index 8d0d6baef4..176d093d9f 100644
--- a/engines/hdb/sound.h
+++ b/engines/hdb/sound.h
@@ -1399,6 +1399,7 @@ public:
bool playSoundEx(int index, int channel, bool loop);
bool playVoice(int index, int actor);
bool stopChannel(int channel);
+ void stopMusic();
void markSoundCacheFreeable();
};