aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scene.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2013-07-23 01:42:22 +0300
committerEugene Sandulenko2013-09-06 14:51:05 +0300
commit22eedf56002b0d1b92d5bf51ff790cc7ac036151 (patch)
treeb5d039907d585a993449d4a9fa4c38bf5732f1b7 /engines/fullpipe/scene.cpp
parent4dc47c5c08d44766fe75e2e982f0cea05b8238aa (diff)
downloadscummvm-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.cpp39
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);