diff options
author | Eugene Sandulenko | 2013-07-23 01:42:22 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:51:05 +0300 |
commit | 22eedf56002b0d1b92d5bf51ff790cc7ac036151 (patch) | |
tree | b5d039907d585a993449d4a9fa4c38bf5732f1b7 /engines/fullpipe/scene.cpp | |
parent | 4dc47c5c08d44766fe75e2e982f0cea05b8238aa (diff) | |
download | scummvm-rg350-22eedf56002b0d1b92d5bf51ff790cc7ac036151.tar.gz scummvm-rg350-22eedf56002b0d1b92d5bf51ff790cc7ac036151.tar.bz2 scummvm-rg350-22eedf56002b0d1b92d5bf51ff790cc7ac036151.zip |
FULLPIPE: Further work on Scene switcher
Diffstat (limited to 'engines/fullpipe/scene.cpp')
-rw-r--r-- | engines/fullpipe/scene.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index 3bc7c9d412..4409215ea5 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -255,6 +255,16 @@ StaticANIObject *Scene::getStaticANIObject1ById(int obj, int a3) { return 0; } +StaticANIObject *Scene::getStaticANIObject1ByName(char *name, int a3) { + for (CPtrList::iterator s = _staticANIObjectList1.begin(); s != _staticANIObjectList1.end(); ++s) { + StaticANIObject *o = (StaticANIObject *)s; + if (!strcmp(o->_objectName, name) && (a3 == -1 || o->_field_4 == a3)) + return o; + } + + return 0; +} + void Scene::deleteStaticANIObject(StaticANIObject *obj) { for (uint n = 0; n < _staticANIObjectList1.size(); n++) if ((StaticANIObject *)_staticANIObjectList1[n] == obj) { @@ -298,6 +308,35 @@ PictureObject *Scene::getPictureObjectById(int objId, int flags) { return 0; } +void Scene::preloadMovements(CGameVar *var) { + CGameVar *preload = var->getSubVarByName("PRELOAD"); + if (!preload) + return; + + for (CGameVar *i = preload->_subVars; i; i = i->_nextVarObj) { + StaticANIObject *ani = getStaticANIObject1ByName(i->_varName, -1); + + if (ani) { + CGameVar *subVars = i->_subVars; + + if (subVars) { + for (;subVars; subVars = subVars->_nextVarObj) { + Movement *mov = ani->getMovementByName(subVars->_varName); + + if (mov) + mov->loadPixelData(); + } + } else { + ani->loadMovementsPixelData(); + } + } + } +} + +void Scene::initObjectCursors(const char *name) { + warning("STUB: Scene::initObjectCursors(%s)", name); +} + void Scene::draw(int par) { updateScrolling(par); |