aboutsummaryrefslogtreecommitdiff
path: root/engines/bbvs/minigames/minigame.cpp
diff options
context:
space:
mode:
authorjohndoe1232014-01-26 00:15:26 +0100
committerjohndoe1232014-01-29 13:27:49 +0100
commit24fd6587959e2e7db805fcde13bb0e0fe005a8b2 (patch)
tree9fe3c26f4ddc417f80d0e5eeb068ad28ad2bfcb7 /engines/bbvs/minigames/minigame.cpp
parentef55f5b774b55bd085b05ab704ff9418af960670 (diff)
downloadscummvm-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.cpp30
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