[Scummvm-cvs-logs] CVS: scummvm/saga events.cpp,1.24,1.25 events.h,1.5,1.6 ihnm_introproc.cpp,1.16,1.17 ite_introproc.cpp,1.24,1.25 saga.cpp,1.45,1.46 scene.cpp,1.30,1.31 scene.h,1.8,1.9

Eugene Sandulenko sev at users.sourceforge.net
Wed Aug 11 15:28:05 CEST 2004


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2413

Modified Files:
	events.cpp events.h ihnm_introproc.cpp ite_introproc.cpp 
	saga.cpp scene.cpp scene.h 
Log Message:
Handle fades in scene load routine.
Introduce immediate events.


Index: events.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/events.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- events.cpp	11 Aug 2004 14:04:12 -0000	1.24
+++ events.cpp	11 Aug 2004 22:27:35 -0000	1.25
@@ -94,6 +94,10 @@
 			result = handleInterval(event_p);
 			break;
 
+		case R_IMMEDIATE_EVENT:
+			result = handleImmediate(event_p);
+			break;
+
 		default:
 			result = R_EVENT_INVALIDCODE;
 			warning("Invalid event code encountered");
@@ -218,6 +222,62 @@
 	return R_EVENT_CONTINUE;
 }
 
+int Events::handleImmediate(R_EVENT *event) {
+	double event_pc = 0.0; // Event completion percentage
+	bool event_done = false;
+
+	R_SURFACE *back_buf;
+
+	event_pc = ((double)event->duration - event->time) / event->duration;
+
+	if (event_pc >= 1.0) {
+		// Cap percentage to 100
+		event_pc = 1.0;
+		event_done = true;
+	}
+
+	if (event_pc < 0.0) {
+		// Event not signaled, skip it
+		return R_EVENT_BREAK;
+	} else if (!(event->code & R_SIGNALED)) {
+		// Signal event
+		event->code |= R_SIGNALED;
+		event_pc = 0.0;
+	}
+
+	switch (event->code & R_EVENT_MASK) {
+	case R_PAL_EVENT:
+		switch (event->op) {
+		case EVENT_BLACKTOPAL:
+			back_buf = _vm->_gfx->getBackBuffer();
+			_vm->_gfx->blackToPal(back_buf, (PALENTRY *)event->data, event_pc);
+			break;
+
+		case EVENT_PALTOBLACK:
+			back_buf = _vm->_gfx->getBackBuffer();
+			_vm->_gfx->palToBlack(back_buf, (PALENTRY *)event->data, event_pc);
+			break;
+		default:
+			break;
+		}
+		break;
+	case R_BG_EVENT:
+	case R_INTERFACE_EVENT:
+		handleOneShot(event);
+		event_done = true;
+		break;
+	default:
+		break;
+
+	}
+
+	if (event_done) {
+		return R_EVENT_DELETE;
+	}
+
+	return R_EVENT_BREAK;
+}
+
 int Events::handleOneShot(R_EVENT *event) {
 	R_SURFACE *back_buf;
 
@@ -388,6 +448,7 @@
 	case R_ONESHOT_EVENT:
 		break;
 	case R_CONTINUOUS_EVENT:
+	case R_IMMEDIATE_EVENT:
 		event->time += event->duration;
 		break;
 	case R_INTERVAL_EVENT:
@@ -462,6 +523,9 @@
 		event_p->time -= msec;
 		event_count++;
 
+		if (event_p->type == R_IMMEDIATE_EVENT)
+			break;
+
 		if (event_count > R_EVENT_WARNINGCOUNT) {
 			warning("Event list exceeds %u", R_EVENT_WARNINGCOUNT);
 		}

Index: events.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/events.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- events.h	10 Aug 2004 23:04:52 -0000	1.5
+++ events.h	11 Aug 2004 22:27:38 -0000	1.6
@@ -30,7 +30,8 @@
 enum R_EVENT_TYPES {
 	R_ONESHOT_EVENT,
 	R_CONTINUOUS_EVENT,
-	R_INTERVAL_EVENT
+	R_INTERVAL_EVENT,
+	R_IMMEDIATE_EVENT
 };
 
 enum R_EVENT_FLAGS {
@@ -132,6 +133,7 @@
 	int handleContinuous(R_EVENT * event);
 	int handleOneShot(R_EVENT * event);
 	int handleInterval(R_EVENT * event);
+	int handleImmediate(R_EVENT *event);
 	int processEventTime(long msec);
 	int initializeEvent(R_EVENT * event);
 

Index: ihnm_introproc.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/ihnm_introproc.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- ihnm_introproc.cpp	10 Aug 2004 19:20:33 -0000	1.16
+++ ihnm_introproc.cpp	11 Aug 2004 22:27:38 -0000	1.17
@@ -87,10 +87,10 @@
 };
 
 R_SCENE_QUEUE IHNM_IntroList[] = {
-	{0, &IHNM_IntroMovie1Desc, BY_DESC, IHNM_IntroMovieProc1, 0} ,
-	{0, &IHNM_IntroMovie2Desc, BY_DESC, IHNM_IntroMovieProc2, 0} ,
-	{0, &IHNM_IntroMovie3Desc, BY_DESC, IHNM_IntroMovieProc3, 0} ,
-	{0, &IHNM_IntroMovie4Desc, BY_DESC, IHNM_HateProc, 0}
+	{0, &IHNM_IntroMovie1Desc, BY_DESC, IHNM_IntroMovieProc1, 0, SCENE_NOFADE},
+	{0, &IHNM_IntroMovie2Desc, BY_DESC, IHNM_IntroMovieProc2, 0, SCENE_NOFADE},
+	{0, &IHNM_IntroMovie3Desc, BY_DESC, IHNM_IntroMovieProc3, 0, SCENE_NOFADE},
+	{0, &IHNM_IntroMovie4Desc, BY_DESC, IHNM_HateProc, 0, SCENE_NOFADE}
 };
 
 int IHNM_StartProc() {

Index: ite_introproc.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/ite_introproc.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- ite_introproc.cpp	11 Aug 2004 00:16:23 -0000	1.24
+++ ite_introproc.cpp	11 Aug 2004 22:27:38 -0000	1.25
@@ -53,7 +53,6 @@
 int ITE_IntroTreeHouseProc(int param, R_SCENE_INFO *scene_info);
 int ITE_IntroFairePathProc(int param, R_SCENE_INFO *scene_info);
 int ITE_IntroFaireTentProc(int param, R_SCENE_INFO *scene_info);
-int initialScene(int param, R_SCENE_INFO *scene_info);
 
 static R_INTRO_DIALOGUE IntroDiag[] = {
 	{
@@ -124,15 +123,15 @@
 };
 
 R_SCENE_QUEUE ITE_IntroList[] = {
-	{ITE_INTRO_ANIM_SCENE, NULL, BY_RESOURCE, ITE_IntroAnimProc, 0},
-	{ITE_CAVE_SCENE_1, NULL, BY_RESOURCE, ITE_IntroCave1Proc, 0},
-	{ITE_CAVE_SCENE_2, NULL, BY_RESOURCE, ITE_IntroCave2Proc, 0},
-	{ITE_CAVE_SCENE_3, NULL, BY_RESOURCE, ITE_IntroCave3Proc, 0},
-	{ITE_CAVE_SCENE_4, NULL, BY_RESOURCE, ITE_IntroCave4Proc, 0},
-	{ITE_VALLEY_SCENE, NULL, BY_RESOURCE, ITE_IntroValleyProc, 0},
-	{ITE_TREEHOUSE_SCENE, NULL, BY_RESOURCE, ITE_IntroTreeHouseProc, 0},
-	{ITE_FAIREPATH_SCENE, NULL, BY_RESOURCE, ITE_IntroFairePathProc, 0},
-	{ITE_FAIRETENT_SCENE, NULL, BY_RESOURCE, ITE_IntroFaireTentProc, 0}
+	{ITE_INTRO_ANIM_SCENE, NULL, BY_RESOURCE, ITE_IntroAnimProc, 0, SCENE_NOFADE},
+	{ITE_CAVE_SCENE_1, NULL, BY_RESOURCE, ITE_IntroCave1Proc, 0, SCENE_FADE_NO_INTERFACE},
+	{ITE_CAVE_SCENE_2, NULL, BY_RESOURCE, ITE_IntroCave2Proc, 0, SCENE_NOFADE},
+	{ITE_CAVE_SCENE_3, NULL, BY_RESOURCE, ITE_IntroCave3Proc, 0, SCENE_NOFADE},
+	{ITE_CAVE_SCENE_4, NULL, BY_RESOURCE, ITE_IntroCave4Proc, 0, SCENE_NOFADE},
+	{ITE_VALLEY_SCENE, NULL, BY_RESOURCE, ITE_IntroValleyProc, 0, SCENE_FADE_NO_INTERFACE},
+	{ITE_TREEHOUSE_SCENE, NULL, BY_RESOURCE, ITE_IntroTreeHouseProc, 0, SCENE_NOFADE},
+	{ITE_FAIREPATH_SCENE, NULL, BY_RESOURCE, ITE_IntroFairePathProc, 0, SCENE_NOFADE},
+	{ITE_FAIRETENT_SCENE, NULL, BY_RESOURCE, ITE_IntroFaireTentProc, 0, SCENE_NOFADE}
 };
 
 int ITE_StartProc() {
@@ -153,7 +152,8 @@
 	first_scene.load_flag = BY_SCENE;
 	first_scene.scene_n = gs_desc.first_scene;
 	first_scene.scene_skiptarget = 1;
-	first_scene.scene_proc = initialScene;
+	first_scene.scene_proc = NULL;
+	first_scene.fadeType = SCENE_FADE;
 
 	_vm->_scene->queueScene(&first_scene);
 
@@ -242,49 +242,18 @@
 	int voice_pad = 50;
 	R_TEXTLIST_ENTRY text_entry;
 	R_TEXTLIST_ENTRY *entry_p;
-	PALENTRY *pal;
-	static PALENTRY current_pal[R_PAL_ENTRIES];
 	int i;
 	int font_flags = FONT_OUTLINE | FONT_CENTERED;
 
 	switch (param) {
 	case SCENE_BEGIN:
-		// Fade to black out of the intro DG/NWC logo animation
-		_vm->_gfx->getCurrentPal(current_pal);
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_PALTOBLACK;
-		event.time = 0;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = current_pal;
-		q_event = _vm->_events->queue(&event);
-
-		// Display scene background, but stay with black palette
-		event.type = R_ONESHOT_EVENT;
-		event.code = R_BG_EVENT;
-		event.op = EVENT_DISPLAY;
-		event.param = NO_SET_PALETTE;
-		event.time = 0;
-		q_event = _vm->_events->chain(q_event, &event);
-
-		// Fade in from black to the scene background palette
-		_vm->_scene->getBGPal(&pal);
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_BLACKTOPAL;
-		event.time = 0;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = pal;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
 		// Begin palette cycling animation for candles
 		event.type = R_ONESHOT_EVENT;
 		event.code = R_PALANIM_EVENT;
 		event.op = EVENT_CYCLESTART;
 		event.time = 0;
 
-		q_event = _vm->_events->chain(q_event, &event);
+		q_event = _vm->_events->queue(&event);
 
 		// Queue narrator dialogue list
 		text_entry.color = 255;
@@ -648,8 +617,6 @@
 	R_TEXTLIST_ENTRY *entry_p;
 	R_EVENT event;
 	R_EVENT *q_event;
-	PALENTRY *pal;
-	static PALENTRY current_pal[R_PAL_ENTRIES];
 	int i;
 
 	const INTRO_CREDIT credits[] = {
@@ -672,38 +639,6 @@
 
 	switch (param) {
 	case SCENE_BEGIN:
-
-		// Fade to black out of the cave
-		_vm->_gfx->getCurrentPal(current_pal);
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_PALTOBLACK;
-		event.time = 0;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = current_pal;
-
-		q_event = _vm->_events->queue(&event);
-
-		// Display ITE title screen background
-		event.type = R_ONESHOT_EVENT;
-		event.code = R_BG_EVENT;
-		event.op = EVENT_DISPLAY;
-		event.param = NO_SET_PALETTE;
-		event.time = 0;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
-		// Fade in from black to the scene background palette
-		_vm->_scene->getBGPal(&pal);
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_BLACKTOPAL;
-		event.time = 0;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = pal;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
 		debug(0, "Beginning animation playback.");
 
 		// Begin title screen background animation 
@@ -719,7 +654,7 @@
 		event.op = EVENT_PLAY;
 		event.time = 0;
 
-		q_event = _vm->_events->chain(q_event, &event);
+		q_event = _vm->_events->queue(&event);
 		
 		// Pause animation before logo
 		event.type = R_ONESHOT_EVENT;
@@ -729,13 +664,13 @@
 		event.param2 = ANIM_PAUSE;
 		event.time = 3000;
 
-		q_event = _vm->_events->queue(&event);
+		q_event = _vm->_events->chain(q_event, &event);
 
 		// Display logo
 		event.type = R_CONTINUOUS_EVENT;
 		event.code = R_TRANSITION_EVENT;
 		event.op = EVENT_DISSOLVE_BGMASK;
-		event.time = 3000;
+		event.time = 0;
 		event.duration = LOGO_DISSOLVE_DURATION;
 
 		q_event = _vm->_events->chain(q_event, &event);
@@ -744,7 +679,7 @@
 		event.type = R_CONTINUOUS_EVENT;
 		event.code = R_TRANSITION_EVENT;
 		event.op = EVENT_DISSOLVE;
-		event.time = 3000;
+		event.time = 1000;
 		event.duration = LOGO_DISSOLVE_DURATION;
 
 		q_event = _vm->_events->chain(q_event, &event);
@@ -755,7 +690,7 @@
 		event.op = EVENT_CLEARFLAG;
 		event.param = 0;
 		event.param2 = ANIM_PAUSE;
-		event.time = 3000 + LOGO_DISSOLVE_DURATION;
+		event.time = 0;
 
 		q_event = _vm->_events->chain(q_event, &event);
 
@@ -763,7 +698,7 @@
 		event.code = R_ANIM_EVENT;
 		event.op = EVENT_FRAME;
 		event.param = 0;
-		event.time = 3000 + LOGO_DISSOLVE_DURATION;
+		event.time = LOGO_DISSOLVE_DURATION;
 
 		q_event = _vm->_events->chain(q_event, &event);
 
@@ -1067,81 +1002,4 @@
 	return 0;
 }
 
-int initialScene(int param, R_SCENE_INFO *scene_info) {
-	R_EVENT event;
-	R_EVENT *q_event;
-	int delay_time = 0;
-	static PALENTRY current_pal[R_PAL_ENTRIES];
-	PALENTRY *pal;
-
-	switch (param) {
-	case SCENE_BEGIN:
-		_vm->_music->stop();
-		_vm->_sound->stopVoice();
-
-		// Fade palette to black from intro scene
-		_vm->_gfx->getCurrentPal(current_pal);
-
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_PALTOBLACK;
-		event.time = 0;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = current_pal;
-
-		delay_time += PALETTE_FADE_DURATION;
-
-		q_event = _vm->_events->queue(&event);
-
-		// Activate user interface
-		event.type = R_ONESHOT_EVENT;
-		event.code = R_INTERFACE_EVENT;
-		event.op = EVENT_ACTIVATE;
-		event.time = 0;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
-		// Set first scene background w/o changing palette
-		event.type = R_ONESHOT_EVENT;
-		event.code = R_BG_EVENT;
-		event.op = EVENT_DISPLAY;
-		event.param = NO_SET_PALETTE;
-		event.time = 0;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
-		// Fade in to first scene background palette
-		_vm->_scene->getBGPal(&pal);
-
-		event.type = R_CONTINUOUS_EVENT;
-		event.code = R_PAL_EVENT;
-		event.op = EVENT_BLACKTOPAL;
-		event.time = delay_time;
-		event.duration = PALETTE_FADE_DURATION;
-		event.data = pal;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
-		event.code = R_PALANIM_EVENT;
-		event.op = EVENT_CYCLESTART;
-		event.time = 0;
-
-		q_event = _vm->_events->chain(q_event, &event);
-
-		_vm->_anim->setFlag(0, ANIM_LOOP);
-		_vm->_anim->play(0, delay_time);
-
-		debug(0, "Scene started");
-		break;
-	case SCENE_END:
-		break;
-	default:
-		warning("Scene::initialScene(): Illegal scene procedure parameter");
-		break;
-	}
-
-	return 0;
-}
-
-
 } // End of namespace Saga

Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- saga.cpp	10 Aug 2004 19:20:33 -0000	1.45
+++ saga.cpp	11 Aug 2004 22:27:38 -0000	1.46
@@ -233,7 +233,7 @@
 		}
 		// Per frame processing
 		_render->drawScene();
-		_system->delay_msecs(0);
+		_system->delay_msecs(10);
 	}
 }
 

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- scene.cpp	11 Aug 2004 18:02:03 -0000	1.30
+++ scene.cpp	11 Aug 2004 22:27:38 -0000	1.31
@@ -205,7 +205,7 @@
 	scene_qdat = (R_SCENE_QUEUE *)ys_dll_get_data(node);
 	assert(scene_qdat != NULL);
 
-	loadScene(scene_qdat->scene_n, scene_qdat->load_flag, scene_qdat->scene_proc, scene_qdat->scene_desc);
+	loadScene(scene_qdat->scene_n, scene_qdat->load_flag, scene_qdat->scene_proc, scene_qdat->scene_desc, scene_qdat->fadeType);
 
 	return R_SUCCESS;
 }
@@ -245,7 +245,7 @@
 	scene_qdat = (R_SCENE_QUEUE *)ys_dll_get_data(node);
 	assert(scene_qdat != NULL);
 
-	loadScene(scene_qdat->scene_n, scene_qdat->load_flag, scene_qdat->scene_proc, scene_qdat->scene_desc);
+	loadScene(scene_qdat->scene_n, scene_qdat->load_flag, scene_qdat->scene_proc, scene_qdat->scene_desc, scene_qdat->fadeType);
 
 	return R_SUCCESS;
 }
@@ -295,7 +295,7 @@
 			ys_dll_delete(node);
 		}
 		endScene();
-		loadScene(skip_qdat->scene_n, skip_qdat->load_flag, skip_qdat->scene_proc, skip_qdat->scene_desc);
+		loadScene(skip_qdat->scene_n, skip_qdat->load_flag, skip_qdat->scene_proc, skip_qdat->scene_desc, skip_qdat->fadeType);
 	}
 	// Search for a scene to skip to
 
@@ -321,7 +321,7 @@
 	}
 
 	endScene();
-	loadScene(scene_num, BY_SCENE, defaultScene, NULL);
+	loadScene(scene_num, BY_SCENE, defaultScene, NULL, false);
 
 	return R_SUCCESS;
 }
@@ -408,7 +408,7 @@
 	return R_SUCCESS;
 }
 
-int Scene::loadScene(int scene_num, int load_flag, R_SCENE_PROC scene_proc, R_SCENE_DESC *scene_desc_param) {
+int Scene::loadScene(int scene_num, int load_flag, R_SCENE_PROC scene_proc, R_SCENE_DESC *scene_desc_param, int fadeType) {
 	R_SCENE_INFO scene_info;
 	uint32 res_number = 0;
 	int result;
@@ -494,6 +494,51 @@
 
 	_sceneLoaded = true;
 
+	if (fadeType == SCENE_FADE || fadeType == SCENE_FADE_NO_INTERFACE) {
+		R_EVENT event;
+		R_EVENT *q_event;
+		static PALENTRY current_pal[R_PAL_ENTRIES];
+
+		// Fade to black out
+		_vm->_gfx->getCurrentPal(current_pal);
+		event.type = R_IMMEDIATE_EVENT;
+		event.code = R_PAL_EVENT;
+		event.op = EVENT_PALTOBLACK;
+		event.time = 0;
+		event.duration = PALETTE_FADE_DURATION;
+		event.data = current_pal;
+		q_event = _vm->_events->queue(&event);
+
+		if (fadeType != SCENE_FADE_NO_INTERFACE) {
+			// Activate user interface
+			event.type = R_IMMEDIATE_EVENT;
+			event.code = R_INTERFACE_EVENT;
+			event.op = EVENT_ACTIVATE;
+			event.time = 0;
+			event.duration = 0;
+			q_event = _vm->_events->chain(q_event, &event);
+		}
+
+		// Display scene background, but stay with black palette
+		event.type = R_IMMEDIATE_EVENT;
+		event.code = R_BG_EVENT;
+		event.op = EVENT_DISPLAY;
+		event.param = NO_SET_PALETTE;
+		event.time = 0;
+		event.duration = 0;
+		q_event = _vm->_events->chain(q_event, &event);
+
+		// Fade in from black to the scene background palette
+		event.type = R_IMMEDIATE_EVENT;
+		event.code = R_PAL_EVENT;
+		event.op = EVENT_BLACKTOPAL;
+		event.time = 0;
+		event.duration = PALETTE_FADE_DURATION;
+		event.data = _bg.pal;
+
+		q_event = _vm->_events->chain(q_event, &event);
+	}
+
 	if (scene_proc == NULL) {
 		_sceneProc = defaultScene;
 	} else {
@@ -872,6 +917,9 @@
 
 	switch (param) {
 	case SCENE_BEGIN:
+		_vm->_music->stop();
+		_vm->_sound->stopVoice();
+
 		// Set scene background
 		event.type = R_ONESHOT_EVENT;
 		event.code = R_BG_EVENT;
@@ -896,6 +944,8 @@
 		event.time = 0;
 
 		_vm->_events->queue(&event);
+
+		debug(0, "Scene started");
 		break;
 	case SCENE_END:
 		break;

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- scene.h	11 Aug 2004 18:02:03 -0000	1.8
+++ scene.h	11 Aug 2004 22:27:39 -0000	1.9
@@ -134,12 +134,19 @@
 	SCENE_ANIMINFO *next;
 };
 
+enum SCENE_FADE_TYPES {
+	SCENE_NOFADE = 0,
+	SCENE_FADE = 1,
+	SCENE_FADE_NO_INTERFACE = 2
+};
+
 struct R_SCENE_QUEUE {
 	uint32 scene_n;
 	R_SCENE_DESC *scene_desc;
 	int load_flag;
 	R_SCENE_PROC *scene_proc;
 	int scene_skiptarget;
+	int fadeType;
 };
 
 class Scene {
@@ -171,7 +178,8 @@
 	void sceneChangeCmd(int argc, char *argv[]);
 
  private:
-	int loadScene(int scene, int load_flag, R_SCENE_PROC scene_proc, R_SCENE_DESC *);
+	int loadScene(int scene, int load_flag, R_SCENE_PROC scene_proc, R_SCENE_DESC *, 
+				  int fadeIn);
 	int loadSceneDescriptor(uint32 res_number);
 	int loadSceneResourceList(uint32 res_number);
 	int processSceneResources();





More information about the Scummvm-git-logs mailing list