diff options
author | Andrew Kurushin | 2005-01-16 19:06:04 +0000 |
---|---|---|
committer | Andrew Kurushin | 2005-01-16 19:06:04 +0000 |
commit | f9b4b2cd99000d57dfbcad9efc2927514e0f8d4e (patch) | |
tree | 8e1853ea78767c24533514e1993005abb9e86ffd /saga/scene.h | |
parent | bf827cde1d20813253fc543039c0ed75b385c0b3 (diff) | |
download | scummvm-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.h | 45 |
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(); |