aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/pegasus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus/pegasus.cpp')
-rw-r--r--engines/pegasus/pegasus.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp
index 368dc298fb..816d01cf55 100644
--- a/engines/pegasus/pegasus.cpp
+++ b/engines/pegasus/pegasus.cpp
@@ -51,6 +51,7 @@ PegasusEngine::PegasusEngine(OSystem *syst, const PegasusGameDescription *gamede
_continuePoint = 0;
_saveAllowed = _loadAllowed = true;
_gameMenu = 0;
+ _deathReason = kDeathStranded;
}
PegasusEngine::~PegasusEngine() {
@@ -359,11 +360,11 @@ bool PegasusEngine::loadFromStream(Common::ReadStream *stream) {
// Game State
GameState.readGameState(stream);
- // TODO: Energy
- stream->readUint32BE();
+ // Energy
+ setLastEnergyValue(stream->readUint32BE() >> 16);
- // TODO: Death reason
- stream->readByte();
+ // Death reason
+ setEnergyDeathReason(stream->readByte());
// TODO: This is as far as we can go right now
return true;
@@ -403,11 +404,11 @@ bool PegasusEngine::writeToStream(Common::WriteStream *stream, int saveType) {
// Game State
GameState.writeGameState(stream);
- // TODO: Energy
- stream->writeUint32BE(0);
+ // Energy
+ stream->writeUint32BE(getSavedEnergyValue() << 16);
- // TODO: Death reason
- stream->writeByte(0);
+ // Death reason
+ stream->writeByte(getEnergyDeathReason());
// Items
g_allItems.writeToStream(stream);
@@ -823,4 +824,9 @@ void PegasusEngine::refreshDisplay() {
_gfx->updateDisplay();
}
+void PegasusEngine::resetEnergyDeathReason() {
+ // TODO!
+ _deathReason = kDeathStranded;
+}
+
} // End of namespace Pegasus