aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/set.cpp
diff options
context:
space:
mode:
authorThomas Fach-Pedersen2018-03-17 16:14:48 +0100
committerPeter Kohaut2018-03-24 17:07:06 +0100
commit2a646f8cc287a98f90e561ce8072c2af4322fd22 (patch)
tree8511469fd92c125a91c71b246bf122c45b425030 /engines/bladerunner/set.cpp
parenta70c59f90d43ce31c548c68416bf0ab5385f15a9 (diff)
downloadscummvm-rg350-2a646f8cc287a98f90e561ce8072c2af4322fd22.tar.gz
scummvm-rg350-2a646f8cc287a98f90e561ce8072c2af4322fd22.tar.bz2
scummvm-rg350-2a646f8cc287a98f90e561ce8072c2af4322fd22.zip
BLADERUNNER: Save game methods
Diffstat (limited to 'engines/bladerunner/set.cpp')
-rw-r--r--engines/bladerunner/set.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp
index fe10c189b6..6a83294c4c 100644
--- a/engines/bladerunner/set.cpp
+++ b/engines/bladerunner/set.cpp
@@ -25,6 +25,7 @@
#include "bladerunner/bladerunner.h"
#include "bladerunner/game_constants.h"
#include "bladerunner/lights.h"
+#include "bladerunner/savefile.h"
#include "bladerunner/scene_objects.h"
#include "bladerunner/set_effects.h"
#include "bladerunner/slice_renderer.h"
@@ -82,6 +83,7 @@ bool Set::open(const Common::String &name) {
_objects[i].isObstacle = s->readByte();
_objects[i].isClickable = s->readByte();
_objects[i].isHotMouse = 0;
+ _objects[i].unknown1 = 0;
_objects[i].isTarget = 0;
s->skip(4);
@@ -327,4 +329,40 @@ int Set::getWalkboxSoundRunLeft(int walkboxId) const {
int Set::getWalkboxSoundRunRight(int walkboxId) const {
return getWalkboxSoundWalkRight(walkboxId);
}
+
+void Set::save(SaveFile &f) {
+ f.write(_loaded);
+ f.write(_objectCount);
+ f.write(_walkboxCount);
+
+ for (int i = 0; i != _objectCount; ++i) {
+ f.write(_objects[i].name, 20);
+ f.write(_objects[i].bbox);
+ f.write(_objects[i].isObstacle);
+ f.write(_objects[i].isClickable);
+ f.write(_objects[i].isHotMouse);
+ f.write(_objects[i].unknown1);
+ f.write(_objects[i].isTarget);
+ }
+
+ for (int i = 0; i != _walkboxCount; ++i) {
+ f.write(_walkboxes[i].name, 20);
+ f.write(_walkboxes[i].altitude);
+ f.write(_walkboxes[i].vertexCount);
+ for (int j = 0; j != 8; ++j) {
+ f.write(_walkboxes[i].vertices[j]);
+
+ // In BLADE.EXE vertices are a vec5
+ f.write(0);
+ f.write(0);
+ }
+ }
+
+ for (int i = 0; i != 85; ++i) {
+ f.write(_walkboxStepSound[i]);
+ }
+
+ f.write(_footstepSoundOverride);
+}
+
} // End of namespace BladeRunner