[Scummvm-cvs-logs] scummvm master -> 201f7a0f826f054986b4baa427f9ada710b2133e

sev- sev at scummvm.org
Sun Mar 2 23:27:44 CET 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
201f7a0f82 FULLPIPE: Implement true scene19_preload()


Commit: 201f7a0f826f054986b4baa427f9ada710b2133e
    https://github.com/scummvm/scummvm/commit/201f7a0f826f054986b4baa427f9ada710b2133e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-03-02T14:26:57-08:00

Commit Message:
FULLPIPE: Implement true scene19_preload()

Changed paths:
    engines/fullpipe/gameloader.cpp
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene18and19.cpp



diff --git a/engines/fullpipe/gameloader.cpp b/engines/fullpipe/gameloader.cpp
index bbcce2e..e172b9b 100644
--- a/engines/fullpipe/gameloader.cpp
+++ b/engines/fullpipe/gameloader.cpp
@@ -282,7 +282,7 @@ bool preloadCallback(PreloadItem &pre, int flag) {
 				g_fp->_scene3 = 0;
 			}
 		} else {
-			scene19_preload(g_fp->accessScene(pre.preloadId1), pre.keyCode);
+			scene19_setMovements(g_fp->accessScene(pre.preloadId1), pre.keyCode);
 
 			g_vars->scene18_var01 = 1;
 
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 352a879..4f0b2bd 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -800,11 +800,13 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		sub_40E1B0();
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_18");
 		scene->preloadMovements(sceneVar);
-		sub_4062D0();
-		if (dword_476C38)
+		g_fp->stopAllSounds();
+
+		if (g_vars->scene18_var01)
 			scene18_initScene1(scene);
 		else
 			scene18_initScene2(scene);
+
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_18");
 		setSceneMusicParameters(sceneVar);
@@ -813,27 +815,30 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
 		break;
 
 	case SC_19:
-		if (!g_scene3) {
-			g_scene3 = accessScene(SC_18);
+		if (!g_fp->_scene3) {
+			g_fp->_scene3 = accessScene(SC_18);
 			getGameLoader()->loadScene(SC_18);
 			scene18_initScene2(g_scene3);
-			sub_40C5F0();
-			scene19_sub_420B10(g_scene3, entrance->field_4);
-			dword_476C38 = 1;
+			scene18_preload();
+			scene19_setMovements(g_scene3, entrance->field_4);
+			g_vars->scene18_var01 = 1;
 		}
-		sub_40C650();
+
+		scene19_preload();
 		sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_19");
 		scene->preloadMovements(sceneVar);
-		sub_4062D0();
-		if (dword_476C38)
+		g_fp->stopAllSounds();
+
+		if (g_vars->scene18_var01)
 			scene18_initScene1(scene);
 		else
 			scene19_initScene2();
+
 		_behaviorManager->initBehavior(scene, sceneVar);
 		scene->initObjectCursors("SC_19");
 		setSceneMusicParameters(sceneVar);
 		addMessageHandler(sceneHandler19, 2);
-		scene19_sub_4211D0(scene);
+		scene19_setSugarState(scene);
 		_updateCursorCallback = scene19_updateCursor;
 		break;
 #endif
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 0a4af9c..6a74538 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -110,7 +110,7 @@ int sceneHandler17(ExCommand *cmd);
 int scene17_updateCursor();
 
 void scene18_preload();
-void scene19_preload(Scene *sc, int key);
+void scene19_setMovements(Scene *sc, int key);
 
 void scene20_initScene(Scene *sc);
 int sceneHandler20(ExCommand *ex);
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index d2fb8d4..1016493 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -63,7 +63,7 @@ void scene18_preload() {
 	}
 }
 
-void scene19_preload(Scene *sc, int entranceId) {
+void scene19_setMovements(Scene *sc, int entranceId) {
 	if (entranceId == TrubaRight) {
 		g_vars->scene18_var15 = 1;
 	} else {
@@ -107,6 +107,16 @@ void scene19_preload(Scene *sc, int entranceId) {
 	sc->stopAllSounds();
 }
 
+void scene19_preload() {
+	for (SceneTagList::iterator s = g_fp->_gameProject->_sceneTagList->begin(); s != g_fp->_gameProject->_sceneTagList->end(); ++s) {
+		if (s->_sceneId == SC_18) {
+			s->_scene = g_fp->_scene3;
+
+			break;
+		}
+	}
+}
+
 void scene18_sub2(StaticANIObject *ani, Scene *sc) {
 	warning("WARNING: scene18_sub2()");
 }






More information about the Scummvm-git-logs mailing list