[Scummvm-cvs-logs] scummvm master -> 88f8e00773c5b929b5f92e46dd0b4e7e07836d36

sev- sev at scummvm.org
Sun Mar 2 23:14:48 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:
88f8e00773 FULLPIPE: Implement scene19_preload()


Commit: 88f8e00773c5b929b5f92e46dd0b4e7e07836d36
    https://github.com/scummvm/scummvm/commit/88f8e00773c5b929b5f92e46dd0b4e7e07836d36
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-03-02T14:14:12-08:00

Commit Message:
FULLPIPE: Implement scene19_preload()

Changed paths:
    engines/fullpipe/constants.h
    engines/fullpipe/scene.cpp
    engines/fullpipe/scene.h
    engines/fullpipe/scenes.cpp
    engines/fullpipe/scenes.h
    engines/fullpipe/scenes/scene18and19.cpp
    engines/fullpipe/statics.cpp



diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index cd0a38e..b825a1d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -892,6 +892,7 @@ namespace Fullpipe {
 #define PIC_SC19_RTRUBA3 1515
 #define SND_19_015 3928
 #define SND_19_016 4995
+#define ST_KSL_NORM 1461
 
 // Scene 20
 #define ANI_GRANDMA_20 2427
diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index a0151dd..462401b 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -334,6 +334,10 @@ void Scene::setPictureObjectsFlag4() {
 	}
 }
 
+void Scene::stopAllSounds() {
+	warning("STUB: Scene:stopAllSounds()");
+}
+
 PictureObject *Scene::getPictureObjectById(int objId, int flags) {
 	for (uint i = 0; i < _picObjList.size(); i++) {
 		if (((PictureObject *)_picObjList[i])->_id == objId && ((PictureObject *)_picObjList[i])->_okeyCode == flags)
diff --git a/engines/fullpipe/scene.h b/engines/fullpipe/scene.h
index 86a0690..8306974 100644
--- a/engines/fullpipe/scene.h
+++ b/engines/fullpipe/scene.h
@@ -78,6 +78,8 @@ class Scene : public Background {
 
 	void initObjectCursors(const char *name);
 
+	void stopAllSounds();
+
   private:
 	static bool compareObjPriority(const void *p1, const void *p2);
 	void objectList_sortByPriority(PtrList &list, bool skipFirst = false);
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index b7ef569..352a879 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -306,6 +306,7 @@ Vars::Vars() {
 	scene19_var02 = 0;
 	scene19_var03 = 0;
 	scene19_var04 = 0;
+	scene19_var05 = false;
 
 	scene20_fliesCountdown = 0;
 	scene20_grandma = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 56aa501..0a4af9c 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -498,6 +498,7 @@ public:
 	int scene19_var02;
 	int scene19_var03;
 	int scene19_var04;
+	bool scene19_var05;
 
 	int scene20_fliesCountdown;
 	StaticANIObject *scene20_grandma;
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index 0f03a68..d2fb8d4 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -63,8 +63,48 @@ void scene18_preload() {
 	}
 }
 
-void scene19_preload(Scene *sc, int key) {
-	warning("WARNING: scene19_preload()");
+void scene19_preload(Scene *sc, int entranceId) {
+	if (entranceId == TrubaRight) {
+		g_vars->scene18_var15 = 1;
+	} else {
+		g_vars->scene18_var15 = 0;
+		g_vars->scene19_var05 = (entranceId == PIC_SC19_RTRUBA3);
+	}
+
+	for (uint i = 0; i < g_vars->scene18_var07.size(); i++) {
+		if (!g_vars->scene18_var15 && (g_vars->scene18_var07[i]->sflags & 0x20)) {
+			Scene *oldsc = g_fp->_currentScene;
+
+			g_vars->scene18_var07[i]->sflags = 1;
+
+			g_fp->_currentScene = sc;
+			g_vars->scene18_var07[i]->ani->changeStatics2(ST_KSL_NORM);
+			g_vars->scene18_var07[i]->ani->_priority = 30;
+			g_fp->_currentScene = oldsc;
+		}
+
+		sc->deleteStaticANIObject(g_vars->scene18_var07[i]->ani);
+	}
+
+	if (g_vars->scene18_whirlgig->_movement) {
+		g_vars->scene18_var09 = g_vars->scene18_whirlgig->_movement->_currDynamicPhaseIndex + 1;
+
+		int mx;
+
+		if (g_vars->scene18_whirlgig->_movement->_currMovement)
+			mx = g_vars->scene18_whirlgig->_movement->_currMovement->_dynamicPhases.size();
+		else
+			mx = g_vars->scene18_whirlgig->_movement->_dynamicPhases.size();
+
+		if (g_vars->scene18_var09 > mx - 1)
+			g_vars->scene18_var09 = -1;
+	} else {
+		g_vars->scene18_var09 = 0;
+	}
+
+	sc->deleteStaticANIObject(g_vars->scene18_boy);
+	sc->deleteStaticANIObject(g_vars->scene18_girl);
+	sc->stopAllSounds();
 }
 
 void scene18_sub2(StaticANIObject *ani, Scene *sc) {
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 86082c6..75c1c7d 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -503,7 +503,6 @@ void Movement::draw(bool flipFlag, int angle) {
 	}
 }
 
-
 void StaticANIObject::loadMovementsPixelData() {
 	for (uint i = 0; i < _movements.size(); i++)
 		((Movement *)_movements[i])->loadPixelData();






More information about the Scummvm-git-logs mailing list