[Scummvm-git-logs] scummvm master -> 319c5b1c80f1d8580b4af01e3ef34be874e76461

sev- noreply at scummvm.org
Mon Nov 14 19:55:20 UTC 2022


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:
319c5b1c80 SAGA: Move the LoadSceneParams structures out of the detection code


Commit: 319c5b1c80f1d8580b4af01e3ef34be874e76461
    https://github.com/scummvm/scummvm/commit/319c5b1c80f1d8580b4af01e3ef34be874e76461
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-11-14T20:55:16+01:00

Commit Message:
SAGA: Move the LoadSceneParams structures out of the detection code

Changed paths:
    engines/saga/detection.h
    engines/saga/detection_tables.h
    engines/saga/introproc_ite.cpp
    engines/saga/saga.h
    engines/saga/scene.h
    engines/saga/shared_detection_defines.h


diff --git a/engines/saga/detection.h b/engines/saga/detection.h
index 89d6b3013f3..b810068a47b 100644
--- a/engines/saga/detection.h
+++ b/engines/saga/detection.h
@@ -88,7 +88,18 @@ enum GameFileTypes {
 	GAME_PATCHFILE        = 1 << 10    // IHNM patch file (patch.re_/patch.res)
 };
 
-struct LoadSceneParams;
+// Make sure to up
+enum GameIntroList : uint8 {
+	INTROLIST_NONE = 0,
+	INTROLIST_ITE_DEFAULT,
+	INTROLIST_ITE_AMIGA_ENGLISH_AGA_CD,
+	INTROLIST_ITE_AMIGA_ENGLISH_ECS_CD,
+	INTROLIST_ITE_AMIGA_GERMAN_AGA,
+	INTROLIST_ITE_AMIGA_GERMAN_ECS,
+	INTROLIST_ITE_DOS_DEMO,
+	INTROLIST_MAX
+};
+
 struct SAGAGameDescription {
 	ADGameDescription desc;
 
@@ -99,11 +110,9 @@ struct SAGAGameDescription {
 	int fontsCount;
 	const GameFontDescription *fontDescriptions;
 	const GamePatchDescription *patchDescriptions;
-	const LoadSceneParams *introScenes;
+	GameIntroList introList;
 };
 
-extern LoadSceneParams ITE_IntroListDefault[];
-
 } // End of namespace Saga
 
 #endif // SAGA_DETECTION_H
diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index 76643f99be0..287056c815a 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -171,81 +171,6 @@ static const GameFontDescription IHNMDEMO_GameFonts[]   = { {2}, {3}, {4} };
 // Font 6 is kIHNMFont8, font 8 is kIHNMMainFont
 static const GameFontDescription IHNMCD_GameFonts[]     = { {2}, {3}, {4}, {5}, {6}, {7}, {8} };
 
-// Intro scenes
-#define RID_ITE_INTRO_ANIM_SCENE 1538
-#define RID_ITE_CAVE_SCENE_1 1542
-#define RID_ITE_CAVE_SCENE_2 1545
-#define RID_ITE_CAVE_SCENE_3 1548
-#define RID_ITE_CAVE_SCENE_4 1551
-#define RID_ITE_VALLEY_SCENE 1556
-#define RID_ITE_TREEHOUSE_SCENE 1560
-#define RID_ITE_FAIREPATH_SCENE 1564
-#define RID_ITE_FAIRETENT_SCENE 1567
-
-// Intro scenes - DOS demo
-#define RID_ITE_INTRO_ANIM_SCENE_DOS_DEMO 298
-#define RID_ITE_CAVE_SCENE_DOS_DEMO 302
-#define RID_ITE_VALLEY_SCENE_DOS_DEMO 310
-
-LoadSceneParams ITE_IntroListDefault[] = {
-	{RID_ITE_INTRO_ANIM_SCENE, kLoadByResourceId, SceneHandlers::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_CAVE_SCENE_1, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_CAVE_SCENE_2, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_CAVE_SCENE_3, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_CAVE_SCENE_4, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_VALLEY_SCENE, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), SceneHandlers::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_TREEHOUSE_SCENE, kLoadByResourceId, SceneHandlers::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_FAIREPATH_SCENE, kLoadByResourceId, SceneHandlers::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_FAIRETENT_SCENE, kLoadByResourceId, SceneHandlers::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
-};
-
-static const LoadSceneParams ITE_AmigaEnglishECSCD_IntroList[] = {
-//	{1544, kLoadByResourceId, SceneHandlers::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE}, // Crashes, skip for now
-	{1548, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1551, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1554, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1557, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1562, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), SceneHandlers::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1566, kLoadByResourceId, SceneHandlers::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1570, kLoadByResourceId, SceneHandlers::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1573, kLoadByResourceId, SceneHandlers::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
-};
-
-static const LoadSceneParams ITE_AmigaGermanAGA_IntroList[] = {
-	{1538, kLoadByResourceId, SceneHandlers::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1543, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1547, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1551, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1555, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1560, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), SceneHandlers::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1564, kLoadByResourceId, SceneHandlers::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1568, kLoadByResourceId, SceneHandlers::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1571, kLoadByResourceId, SceneHandlers::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
-};
-
-static const LoadSceneParams ITE_AmigaGermanECS_IntroList[] = {
-	{1544, kLoadByResourceId, SceneHandlers::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1549, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1553, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1557, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1561, kLoadByResourceId, SceneHandlers::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1566, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), SceneHandlers::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{1570, kLoadByResourceId, SceneHandlers::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1574, kLoadByResourceId, SceneHandlers::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{1577, kLoadByResourceId, SceneHandlers::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
-};
-
-static const LoadSceneParams ITE_DOS_Demo_IntroList[] = {
-	{RID_ITE_INTRO_ANIM_SCENE_DOS_DEMO, kLoadByResourceId, SceneHandlers::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_CAVE_SCENE_DOS_DEMO, kLoadByResourceId, SceneHandlers::SC_ITEIntroCaveDemoProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{RID_ITE_VALLEY_SCENE_DOS_DEMO, kLoadByResourceId, SceneHandlers::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
-	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
-};
-
 // Patch files. Files not found will be ignored
 static const GamePatchDescription ITEPatch_Files[] = {
 	{       "cave.mid", GAME_RESOURCEFILE,    9},
@@ -335,7 +260,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEDEMO_GameFonts),
 		ITEDEMO_GameFonts,
 		NULL,
-		ITE_DOS_Demo_IntroList,
+		INTROLIST_ITE_DOS_DEMO,
 	},
 
 	// Inherit the earth - MAC Demo version
@@ -360,7 +285,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		ITEMacPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 
@@ -387,7 +312,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		ITEMacPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 
@@ -414,7 +339,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 
@@ -441,7 +366,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 
@@ -475,7 +400,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - MAC CD First edition
@@ -503,7 +428,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - MAC CD Wyrmkeep version
@@ -528,7 +453,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITEWINDEMO_GameFonts),
 		ITEWINDEMO_GameFonts,
 		ITEMacPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - MAC CD GOG version 1.1
@@ -553,7 +478,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 
@@ -586,7 +511,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - German Wyrmkeep combined Windows/Mac/Linux CD
@@ -614,7 +539,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Italian Wyrmkeep combined Windows/Mac/Linux CD (fan translation)
@@ -646,7 +571,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep Windows CD version
@@ -673,7 +598,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep Linux CD version
@@ -700,7 +625,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - DOS CD version - 17-06-1994
@@ -726,7 +651,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep Italian Windows CD version (fan translation)
@@ -752,7 +677,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep Italian Linux CD version (fan translation)
@@ -778,7 +703,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Italian DOS CD version (fan translation)
@@ -803,7 +728,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep French Windows CD version (fan translation)
@@ -829,7 +754,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Wyrmkeep French Linux CD version (fan translation)
@@ -855,7 +780,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - French DOS CD version (fan translation)
@@ -880,7 +805,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - DOS CD version - 30-06-1994
@@ -905,7 +830,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Hebrew fan translation
@@ -930,7 +855,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - DOS CD German version
@@ -956,7 +881,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Windows Trial
@@ -984,7 +909,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - macOS Trial
@@ -1011,7 +936,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Pocket PC Trial
@@ -1038,7 +963,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the Earth - Japanese PC-98 CD version
@@ -1063,7 +988,7 @@ static const SAGAGameDescription gameDescriptions[] = {
  		ARRAYSIZE(ITE_GameFonts),
  		ITE_GameFonts,
  		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
  	},
 
 	// Inherit the earth - Russian CD version (fan translation)
@@ -1088,7 +1013,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// ITE floppy versions ////////////////////////////////////////////////////////////////////////////////////
@@ -1115,7 +1040,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		NULL,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Disk version
@@ -1140,7 +1065,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Italian Disk version (fan translation)
@@ -1165,7 +1090,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Chinese Disk version
@@ -1190,7 +1115,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// Inherit the earth - Russian Disk version (fan translation)
@@ -1215,7 +1140,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault,
+		INTROLIST_ITE_DEFAULT,
 	},
 
 	// ITE Amiga versions /////////////////////////////////////////////////////////////////////////////////////
@@ -1241,7 +1166,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_AmigaGermanAGA_IntroList,
+		INTROLIST_ITE_AMIGA_GERMAN_AGA,
 	},
 	// This is on the same disk as previous but it's for ECS systems
 	{
@@ -1264,7 +1189,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_AmigaGermanECS_IntroList,
+		INTROLIST_ITE_AMIGA_GERMAN_ECS,
 	},
 	// Amiga Future coverdisk/Wyrmkeep English edition
 	{
@@ -1287,7 +1212,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_IntroListDefault + 1, // Skip first (logo) scene until we figure it out
+		INTROLIST_ITE_AMIGA_ENGLISH_AGA_CD,
 	},
 	// This is on the same disk as previous but it's for ECS systems
 	{
@@ -1310,7 +1235,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(ITE_GameFonts),
 		ITE_GameFonts,
 		ITEPatch_Files,
-		ITE_AmigaEnglishECSCD_IntroList,
+		INTROLIST_ITE_AMIGA_ENGLISH_ECS_CD,
 	},
 
 	// TODO: Add Amiga floppy versions
@@ -1341,7 +1266,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMDEMO_GameFonts),
 		IHNMDEMO_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - English CD version
@@ -1374,7 +1299,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - De CD version
@@ -1405,7 +1330,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - German fan CD translation
@@ -1436,7 +1361,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Hungarian fan CD translation
@@ -1467,7 +1392,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Sp CD version
@@ -1496,7 +1421,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Korean CD version
@@ -1526,7 +1451,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Fr CD version
@@ -1556,7 +1481,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Chinese CD
@@ -1586,7 +1511,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Italian fan CD translation
@@ -1615,7 +1540,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Russian fan translaction v1.0 (by jack7277 et al)
@@ -1648,7 +1573,7 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
 	// I Have No Mouth And I Must Scream - Mac English CD
@@ -1675,10 +1600,10 @@ static const SAGAGameDescription gameDescriptions[] = {
 		ARRAYSIZE(IHNMCD_GameFonts),
 		IHNMCD_GameFonts,
 		NULL,
-		NULL,
+		INTROLIST_NONE,
 	},
 
-	{ AD_TABLE_END_MARKER, 0, 0, 0, NULL, 0, NULL, NULL, NULL }
+	{ AD_TABLE_END_MARKER, 0, 0, 0, NULL, 0, NULL, NULL, INTROLIST_NONE }
 };
 
 } // End of namespace Saga
diff --git a/engines/saga/introproc_ite.cpp b/engines/saga/introproc_ite.cpp
index aaefb0942d3..666e58ebc83 100644
--- a/engines/saga/introproc_ite.cpp
+++ b/engines/saga/introproc_ite.cpp
@@ -49,21 +49,112 @@ namespace Saga {
 #define DISSOLVE_DURATION 3000
 #define LOGO_DISSOLVE_DURATION 1000
 
+// Intro scenes
+#define RID_ITE_INTRO_ANIM_SCENE 1538
+#define RID_ITE_CAVE_SCENE_1 1542
+#define RID_ITE_CAVE_SCENE_2 1545
+#define RID_ITE_CAVE_SCENE_3 1548
+#define RID_ITE_CAVE_SCENE_4 1551
+#define RID_ITE_VALLEY_SCENE 1556
+#define RID_ITE_TREEHOUSE_SCENE 1560
+#define RID_ITE_FAIREPATH_SCENE 1564
+#define RID_ITE_FAIRETENT_SCENE 1567
+
+// Intro scenes - DOS demo
+#define RID_ITE_INTRO_ANIM_SCENE_DOS_DEMO 298
+#define RID_ITE_CAVE_SCENE_DOS_DEMO 302
+#define RID_ITE_VALLEY_SCENE_DOS_DEMO 310
+
 // ITE intro music
 #define MUSIC_INTRO 9
 #define MUSIC_TITLE_THEME 10
 
+static LoadSceneParams ITE_IntroListDefault[] = {
+	{RID_ITE_INTRO_ANIM_SCENE, kLoadByResourceId, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_CAVE_SCENE_1, kLoadByResourceId, Scene::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_CAVE_SCENE_2, kLoadByResourceId, Scene::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_CAVE_SCENE_3, kLoadByResourceId, Scene::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_CAVE_SCENE_4, kLoadByResourceId, Scene::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_VALLEY_SCENE, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), Scene::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_TREEHOUSE_SCENE, kLoadByResourceId, Scene::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_FAIREPATH_SCENE, kLoadByResourceId, Scene::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_FAIRETENT_SCENE, kLoadByResourceId, Scene::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
+};
+
+static const LoadSceneParams ITE_AmigaEnglishECSCD_IntroList[] = {
+//	{1544, kLoadByResourceId, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE}, // Crashes, skip for now
+	{1548, kLoadByResourceId, Scene::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1551, kLoadByResourceId, Scene::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1554, kLoadByResourceId, Scene::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1557, kLoadByResourceId, Scene::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1562, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), Scene::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1566, kLoadByResourceId, Scene::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1570, kLoadByResourceId, Scene::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1573, kLoadByResourceId, Scene::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
+};
+
+static const LoadSceneParams ITE_AmigaGermanAGA_IntroList[] = {
+	{1538, kLoadByResourceId, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1543, kLoadByResourceId, Scene::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1547, kLoadByResourceId, Scene::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1551, kLoadByResourceId, Scene::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1555, kLoadByResourceId, Scene::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1560, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), Scene::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1564, kLoadByResourceId, Scene::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1568, kLoadByResourceId, Scene::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1571, kLoadByResourceId, Scene::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
+};
+
+static const LoadSceneParams ITE_AmigaGermanECS_IntroList[] = {
+	{1544, kLoadByResourceId, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1549, kLoadByResourceId, Scene::SC_ITEIntroCave1Proc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1553, kLoadByResourceId, Scene::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1557, kLoadByResourceId, Scene::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1561, kLoadByResourceId, Scene::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1566, (Saga::SceneLoadFlags) (kLoadByResourceId | kLoadBgMaskIsImage), Scene::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{1570, kLoadByResourceId, Scene::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1574, kLoadByResourceId, Scene::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{1577, kLoadByResourceId, Scene::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
+};
+
+static const LoadSceneParams ITE_DOS_Demo_IntroList[] = {
+	{RID_ITE_INTRO_ANIM_SCENE_DOS_DEMO, kLoadByResourceId, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_CAVE_SCENE_DOS_DEMO, kLoadByResourceId, Scene::SC_ITEIntroCaveDemoProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{RID_ITE_VALLEY_SCENE_DOS_DEMO, kLoadByResourceId, Scene::SC_ITEIntroValleyProc, false, kTransitionFade, 0, NO_CHAPTER_CHANGE},
+	{0, kLoadByResourceId, nullptr, false, kTransitionNoFade, 0, 0}
+};
+
+static const LoadSceneParams *ITE_IntroLists[INTROLIST_MAX] = {
+	/* INTROLIST_ITE_NONE */                 nullptr,
+	/* INTROLIST_ITE_DEFAULT */              ITE_IntroListDefault,
+	/* INTROLIST_ITE_AMIGA_ENGLISH_AGA_CD */ ITE_IntroListDefault + 1, // Skip first (logo) scene until we figure it out
+	/* INTROLIST_ITE_AMIGA_ENGLISH_ECS_CD */ ITE_AmigaEnglishECSCD_IntroList,
+	/* INTROLIST_ITE_AMIGA_GERMAN_AGA */     ITE_AmigaGermanAGA_IntroList,
+	/* INTROLIST_ITE_AMIGA_GERMAN_ECS */     ITE_AmigaGermanECS_IntroList,
+	/* INTROLIST_ITE_DOS_DEMO */             ITE_DOS_Demo_IntroList
+};
+
 int Scene::ITEStartProc() {
 	LoadSceneParams firstScene;
 	LoadSceneParams tempScene;
-	const LoadSceneParams *scenes;
+	const LoadSceneParams *scenes = nullptr;
 
-	scenes = _vm->getIntroScenes();
+	GameIntroList index = _vm->getIntroList();
+	if (index < INTROLIST_MAX && index > INTROLIST_NONE)
+		scenes = ITE_IntroLists[index];
 
-	for (int i = 0; scenes[i].sceneDescriptor; i++) {
-		tempScene = scenes[i];
-		tempScene.sceneDescriptor = _vm->_resource->convertResourceId(tempScene.sceneDescriptor);
-		_vm->_scene->queueScene(tempScene);
+	if (scenes) {
+		for (int i = 0; scenes[i].sceneDescriptor; i++) {
+			tempScene = scenes[i];
+			tempScene.sceneDescriptor = _vm->_resource->convertResourceId(tempScene.sceneDescriptor);
+			_vm->_scene->queueScene(tempScene);
+		}
+	} else {
+		warning("Missing intro list");
 	}
 
 	firstScene.loadFlag = kLoadBySceneNumber;
@@ -290,7 +381,7 @@ EventColumns *Scene::queueCredits(int delta_time, int duration, int n_credits, c
 	return eventColumns;
 }
 
-int SceneHandlers::SC_ITEIntroAnimProc(int param, void *refCon) {
+int Scene::SC_ITEIntroAnimProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroAnimProc(param);
 }
 
@@ -470,31 +561,31 @@ int Scene::ITEIntroCaveDemoProc(int param) {
 	return 0;
 }
 
-int SceneHandlers::SC_ITEIntroCaveDemoProc(int param, void *refCon) {
+int Scene::SC_ITEIntroCaveDemoProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroCaveDemoProc(param);
 }
 
 // Handles first introductory cave painting scene
-int SceneHandlers::SC_ITEIntroCave1Proc(int param, void *refCon) {
+int Scene::SC_ITEIntroCave1Proc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroCaveCommonProc(param, 1);
 }
 
 // Handles second introductory cave painting scene
-int SceneHandlers::SC_ITEIntroCave2Proc(int param, void *refCon) {
+int Scene::SC_ITEIntroCave2Proc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroCaveCommonProc(param, 2);
 }
 
 // Handles third introductory cave painting scene
-int SceneHandlers::SC_ITEIntroCave3Proc(int param, void *refCon) {
+int Scene::SC_ITEIntroCave3Proc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroCaveCommonProc(param, 3);
 }
 
 // Handles fourth introductory cave painting scene
-int SceneHandlers::SC_ITEIntroCave4Proc(int param, void *refCon) {
+int Scene::SC_ITEIntroCave4Proc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroCaveCommonProc(param, 4);
 }
 
-int SceneHandlers::SC_ITEIntroValleyProc(int param, void *refCon) {
+int Scene::SC_ITEIntroValleyProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroValleyProc(param);
 }
 
@@ -575,7 +666,7 @@ int Scene::ITEIntroValleyProc(int param) {
 	return 0;
 }
 
-int SceneHandlers::SC_ITEIntroTreeHouseProc(int param, void *refCon) {
+int Scene::SC_ITEIntroTreeHouseProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroTreeHouseProc(param);
 }
 
@@ -631,7 +722,7 @@ int Scene::ITEIntroTreeHouseProc(int param) {
 	return 0;
 }
 
-int SceneHandlers::SC_ITEIntroFairePathProc(int param, void *refCon) {
+int Scene::SC_ITEIntroFairePathProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroFairePathProc(param);
 }
 
@@ -685,7 +776,7 @@ int Scene::ITEIntroFairePathProc(int param) {
 	return 0;
 }
 
-int SceneHandlers::SC_ITEIntroFaireTentProc(int param, void *refCon) {
+int Scene::SC_ITEIntroFaireTentProc(int param, void *refCon) {
 	return ((Scene *)refCon)->ITEIntroFaireTentProc(param);
 }
 
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 89cdcf1f7f9..a01c0babdd0 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -424,7 +424,7 @@ public:
 	bool isAGA() const { return _gameDescription->features & GF_AGA_GRAPHICS; }
 	bool isECS() const { return _gameDescription->features & GF_ECS_GRAPHICS; }
 	unsigned getPalNumEntries() const { return isECS() ? 32 : 256; }
-	const LoadSceneParams *getIntroScenes() const { return _gameDescription->introScenes; }
+	GameIntroList getIntroList() const { return _gameDescription->introList; }
 
 	int16 _framesEsc;
 
diff --git a/engines/saga/scene.h b/engines/saga/scene.h
index e30f68887d7..a2da9efefd0 100644
--- a/engines/saga/scene.h
+++ b/engines/saga/scene.h
@@ -38,6 +38,7 @@ namespace Saga {
 //#define SCENE_DEBUG // for scene debugging
 
 #define SCENE_DOORS_MAX 16
+#define NO_CHAPTER_CHANGE -2
 
 // Scenes
 #define ITE_SCENE_INV -1
@@ -58,6 +59,9 @@ struct BGInfo {
 	byte *buffer;
 };
 
+typedef int (SceneProc) (int, void *);
+
+
 enum SCENE_PROC_PARAMS {
 	SCENE_BEGIN = 0,
 	SCENE_END
@@ -136,6 +140,28 @@ struct SceneImage {
 };
 
 
+enum SceneTransitionType {
+	kTransitionNoFade,
+	kTransitionFade
+};
+
+enum SceneLoadFlags {
+	kLoadByResourceId = 0,
+	kLoadBySceneNumber = 1,
+	kLoadIdTypeMask = 1,
+	kLoadBgMaskIsImage = 1 << 16,
+};
+
+struct LoadSceneParams {
+	int32 sceneDescriptor;
+	SceneLoadFlags loadFlag;
+	SceneProc *sceneProc;
+	bool sceneSkipTarget;
+	SceneTransitionType transitionType;
+	int actorsEntrance;
+	int chapter;
+};
+
 typedef Common::List<LoadSceneParams> SceneQueueList;
 
 ///// IHNM-specific stuff
@@ -338,6 +364,18 @@ class Scene {
 	bool playTitle(int title, int time, int mode = kPanelVideo);
 	bool playLoopingTitle(int title, int seconds);
 
+ public:
+	static int SC_ITEIntroAnimProc(int param, void *refCon);
+	static int SC_ITEIntroCave1Proc(int param, void *refCon);
+	static int SC_ITEIntroCave2Proc(int param, void *refCon);
+	static int SC_ITEIntroCave3Proc(int param, void *refCon);
+	static int SC_ITEIntroCave4Proc(int param, void *refCon);
+	static int SC_ITEIntroValleyProc(int param, void *refCon);
+	static int SC_ITEIntroTreeHouseProc(int param, void *refCon);
+	static int SC_ITEIntroFairePathProc(int param, void *refCon);
+	static int SC_ITEIntroFaireTentProc(int param, void *refCon);
+	static int SC_ITEIntroCaveDemoProc(int param, void *refCon);
+
  private:
 	EventColumns *queueIntroDialogue(EventColumns *eventColumns, int n_dialogues, const IntroDialogue dialogue[]);
 	EventColumns *queueCredits(int delta_time, int duration, int n_credits, const IntroCredit credits[]);
@@ -348,8 +386,6 @@ class Scene {
 	int ITEIntroTreeHouseProc(int param);
 	int ITEIntroFairePathProc(int param);
 	int ITEIntroFaireTentProc(int param);
-
-	friend SceneHandlers;
 };
 
 } // End of namespace Saga
diff --git a/engines/saga/shared_detection_defines.h b/engines/saga/shared_detection_defines.h
index 0d03a0c5e98..fed4e2d9e19 100644
--- a/engines/saga/shared_detection_defines.h
+++ b/engines/saga/shared_detection_defines.h
@@ -24,45 +24,3 @@
 #define IHNM_DEFAULT_SCENE 151
 #define ITEDEMO_DEFAULT_SCENE 68
 #define IHNMDEMO_DEFAULT_SCENE 144
-
-namespace Saga {
-typedef int (SceneProc) (int, void *);
-
-class SceneHandlers {
-public:
-	static int SC_ITEIntroAnimProc(int param, void *refCon);
-	static int SC_ITEIntroCave1Proc(int param, void *refCon);
-	static int SC_ITEIntroCave2Proc(int param, void *refCon);
-	static int SC_ITEIntroCave3Proc(int param, void *refCon);
-	static int SC_ITEIntroCave4Proc(int param, void *refCon);
-	static int SC_ITEIntroValleyProc(int param, void *refCon);
-	static int SC_ITEIntroTreeHouseProc(int param, void *refCon);
-	static int SC_ITEIntroFairePathProc(int param, void *refCon);
-	static int SC_ITEIntroFaireTentProc(int param, void *refCon);
-	static int SC_ITEIntroCaveDemoProc(int param, void *refCon);
-};
-
-enum SceneTransitionType {
-	kTransitionNoFade,
-	kTransitionFade
-};
-
-enum SceneLoadFlags {
-	kLoadByResourceId = 0,
-	kLoadBySceneNumber = 1,
-	kLoadIdTypeMask = 1,
-	kLoadBgMaskIsImage = 1 << 16,
-};
-
-struct LoadSceneParams {
-	int32 sceneDescriptor;
-	SceneLoadFlags loadFlag;
-	SceneProc *sceneProc;
-	bool sceneSkipTarget;
-	SceneTransitionType transitionType;
-	int actorsEntrance;
-	int chapter;
-};
-
-#define NO_CHAPTER_CHANGE -2
-}




More information about the Scummvm-git-logs mailing list