diff options
author | johndoe123 | 2014-01-26 00:15:26 +0100 |
---|---|---|
committer | johndoe123 | 2014-01-29 13:27:49 +0100 |
commit | 24fd6587959e2e7db805fcde13bb0e0fe005a8b2 (patch) | |
tree | 9fe3c26f4ddc417f80d0e5eeb068ad28ad2bfcb7 /engines/bbvs/minigames/minigame.cpp | |
parent | ef55f5b774b55bd085b05ab704ff9418af960670 (diff) | |
download | scummvm-rg350-24fd6587959e2e7db805fcde13bb0e0fe005a8b2.tar.gz scummvm-rg350-24fd6587959e2e7db805fcde13bb0e0fe005a8b2.tar.bz2 scummvm-rg350-24fd6587959e2e7db805fcde13bb0e0fe005a8b2.zip |
BBVS: Add loading/saving of minigame hiscores
Diffstat (limited to 'engines/bbvs/minigames/minigame.cpp')
-rw-r--r-- | engines/bbvs/minigames/minigame.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/engines/bbvs/minigames/minigame.cpp b/engines/bbvs/minigames/minigame.cpp index 299836ab00..888040f87a 100644 --- a/engines/bbvs/minigames/minigame.cpp +++ b/engines/bbvs/minigames/minigame.cpp @@ -21,11 +21,14 @@ */ #include "bbvs/minigames/minigame.h" +#include "common/savefile.h" namespace Bbvs { Minigame::Minigame(BbvsEngine *vm) : _vm(vm), _spriteModule(0) { + + memset(_hiScoreTable, 0, sizeof(_hiScoreTable)); } Minigame::~Minigame() { @@ -71,4 +74,31 @@ bool Minigame::isAnySoundPlaying(const uint *indices, uint count) { return false; } +void Minigame::saveHiscore(int minigameNum, int score) { + Common::String filename = _vm->getTargetName() + "-highscore.dat"; + Common::OutSaveFile *file = g_system->getSavefileManager()->openForSaving(filename); + if (file) { + // Reserve a byte for future usage (rarely a bad idea, you never know...) + file->writeByte(0); + _hiScoreTable[minigameNum] = score; + for (int i = 0; i < kMinigameCount; ++i) + file->writeUint32LE(_hiScoreTable[i]); + delete file; + } +} + +int Minigame::loadHiscore(int minigameNum) { + int score = 0; + Common::String filename = _vm->getTargetName() + "-highscore.dat"; + Common::InSaveFile *file = g_system->getSavefileManager()->openForLoading(filename); + if (file) { + file->readByte(); + for (int i = 0; i < kMinigameCount; ++i) + _hiScoreTable[i] = file->readUint32LE(); + delete file; + score = _hiScoreTable[minigameNum]; + } + return score; +} + } // End of namespace Bbvs |