aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.h
diff options
context:
space:
mode:
authorAndrew Kurushin2005-01-16 19:06:04 +0000
committerAndrew Kurushin2005-01-16 19:06:04 +0000
commitf9b4b2cd99000d57dfbcad9efc2927514e0f8d4e (patch)
tree8e1853ea78767c24533514e1993005abb9e86ffd /saga/scene.h
parentbf827cde1d20813253fc543039c0ed75b385c0b3 (diff)
downloadscummvm-rg350-f9b4b2cd99000d57dfbcad9efc2927514e0f8d4e.tar.gz
scummvm-rg350-f9b4b2cd99000d57dfbcad9efc2927514e0f8d4e.tar.bz2
scummvm-rg350-f9b4b2cd99000d57dfbcad9efc2927514e0f8d4e.zip
actors entry list implemented
test: in ITE type "scene_change 130" at console svn-id: r16574
Diffstat (limited to 'saga/scene.h')
-rw-r--r--saga/scene.h45
1 files changed, 41 insertions, 4 deletions
diff --git a/saga/scene.h b/saga/scene.h
index 95889c73bc..cef6d76901 100644
--- a/saga/scene.h
+++ b/saga/scene.h
@@ -28,6 +28,7 @@
#include "saga/text.h"
#include "saga/list.h"
+#include "saga/actor.h"
namespace Saga {
@@ -38,6 +39,11 @@ class ObjectMap;
struct EVENT;
+enum SceneFlags {
+ kSceneFlagISO = 1,
+ kSceneFlagShowCursor = 2
+};
+
struct SCENE_BGINFO {
int bg_x;
int bg_y;
@@ -112,6 +118,40 @@ struct SceneDescription {
size_t resListCnt;
};
+struct SceneEntry {
+ Location location;
+ int facing;
+};
+
+class SceneEntryList {
+private:
+ SagaEngine *_vm;
+ SceneEntry *_entryList;
+ int _entryListCount;
+public:
+ int getEntryListCount() const { return _entryListCount; }
+ const SceneEntry * getEntry(int index) {
+ if ((index < 0) || (index >= _entryListCount)) {
+ error("SceneEntryList::getEntry wrong index");
+ }
+ return &_entryList[index];
+ }
+ void load(const byte* resourcePointer, size_t resourceLength);
+
+ void freeMem() {
+ free(_entryList);
+ _entryList = NULL;
+ _entryListCount = 0;
+ }
+ SceneEntryList(SagaEngine *vm): _vm(vm) {
+ _entryList = NULL;
+ _entryListCount = 0;
+ }
+ ~SceneEntryList() {
+ freeMem();
+ }
+};
+
struct SCENE_IMAGE {
int loaded;
int w;
@@ -180,10 +220,6 @@ struct INTRO_CREDIT {
const char *string;
};
-enum SceneFlags {
- kSceneFlagISO = 1,
- kSceneFlagShowCursor = 2
-};
class Scene {
public:
@@ -270,6 +306,7 @@ class Scene {
public:
ActionMap *_actionMap;
ObjectMap *_objectMap;
+ SceneEntryList *_entryList;
private:
int IHNMStartProc();