aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/set.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2015-09-13 01:48:13 +0200
committerEugene Sandulenko2016-09-29 22:33:40 +0200
commit6672e443a870963354ee43298c75164d382a5636 (patch)
tree0cee43adb6ac77aa467700f3756668c456bb9af6 /engines/bladerunner/set.cpp
parenta4ba6091316f8f50ea40d4dfd42bd26d419b1206 (diff)
downloadscummvm-rg350-6672e443a870963354ee43298c75164d382a5636.tar.gz
scummvm-rg350-6672e443a870963354ee43298c75164d382a5636.tar.bz2
scummvm-rg350-6672e443a870963354ee43298c75164d382a5636.zip
BLADERUNNER: just basic objects description scene stuff - lightning and effects movement track actor clues db actor walking info moved view from vqa decoder, because its needed elsewhere
does not compile, because new files are not in makefile...
Diffstat (limited to 'engines/bladerunner/set.cpp')
-rw-r--r--engines/bladerunner/set.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/engines/bladerunner/set.cpp b/engines/bladerunner/set.cpp
index c37b31a80e..a2e54107d2 100644
--- a/engines/bladerunner/set.cpp
+++ b/engines/bladerunner/set.cpp
@@ -23,12 +23,14 @@
#include "bladerunner/set.h"
#include "bladerunner/bladerunner.h"
+#include "bladerunner/slice_renderer.h"
#include "common/debug.h"
#include "common/ptr.h"
#include "common/str.h"
#include "common/stream.h"
+
namespace BladeRunner {
#define kSet0 0x53657430
@@ -38,9 +40,12 @@ Set::Set(BladeRunnerEngine *vm) : _vm(vm) {
_walkboxCount = 0;
_objects = new Object[85];
_walkboxes = new Walkbox[95];
+ _footstepSoundOverride = -1;
+ _effects = new SetEffects(vm);
}
Set::~Set() {
+ delete _effects;
delete[] _objects;
delete[] _walkboxes;
}
@@ -52,7 +57,7 @@ bool Set::open(const Common::String &name) {
if (sig != kSet0)
return false;
- s->skip(4); // TODO: LITE length
+ int framesCount = s->readUint32LE();
_objectCount = s->readUint32LE();
assert(_objectCount <= 85);
@@ -101,9 +106,24 @@ bool Set::open(const Common::String &name) {
// debug("WALKBOX: %s", _walkboxes[i]._name);
}
- // TODO: Read LITE
+ _vm->_lights->reset();
+ _vm->_lights->read(s.get(), framesCount);
+ _vm->_sliceRenderer->setLights(_vm->_lights);
+ _effects->reset();
+ _effects->read(s.get(), framesCount);
+ _vm->_sliceRenderer->setSetEffects(_effects);
return true;
}
+
+void Set::addAllObjectsToScene(SceneObjects* sceneObjects)
+{
+ uint32 i;
+ for (i = 0; i < _objectCount; i++)
+ {
+ sceneObjects->addObject(i + SCENE_OBJECTS_OBJECTS_OFFSET, &_objects[i]._bbox, _objects[i]._isClickable, _objects[i]._isObstacle, _objects[i]._unknown1, _objects[i]._isCombatTarget);
+ }
+}
+
} // End of namespace BladeRunner