diff options
Diffstat (limited to 'saga/ite_introproc.cpp')
-rw-r--r-- | saga/ite_introproc.cpp | 119 |
1 files changed, 60 insertions, 59 deletions
diff --git a/saga/ite_introproc.cpp b/saga/ite_introproc.cpp index 9f4b33b3c8..fd22d091db 100644 --- a/saga/ite_introproc.cpp +++ b/saga/ite_introproc.cpp @@ -40,46 +40,47 @@ namespace Saga { -SCENE_QUEUE ITE_IntroList[] = { - {RID_ITE_INTRO_ANIM_SCENE, NULL, BY_RESOURCE, Scene::SC_ITEIntroAnimProc, 0, SCENE_NOFADE}, - {RID_ITE_CAVE_SCENE_1, NULL, BY_RESOURCE, Scene::SC_ITEIntroCave1Proc, 0, SCENE_FADE_NO_INTERFACE}, - {RID_ITE_CAVE_SCENE_2, NULL, BY_RESOURCE, Scene::SC_ITEIntroCave2Proc, 0, SCENE_NOFADE}, - {RID_ITE_CAVE_SCENE_3, NULL, BY_RESOURCE, Scene::SC_ITEIntroCave3Proc, 0, SCENE_NOFADE}, - {RID_ITE_CAVE_SCENE_4, NULL, BY_RESOURCE, Scene::SC_ITEIntroCave4Proc, 0, SCENE_NOFADE}, - {RID_ITE_VALLEY_SCENE, NULL, BY_RESOURCE, Scene::SC_ITEIntroValleyProc, 0, SCENE_FADE_NO_INTERFACE}, - {RID_ITE_TREEHOUSE_SCENE, NULL, BY_RESOURCE, Scene::SC_ITEIntroTreeHouseProc, 0, SCENE_NOFADE}, - {RID_ITE_FAIREPATH_SCENE, NULL, BY_RESOURCE, Scene::SC_ITEIntroFairePathProc, 0, SCENE_NOFADE}, - {RID_ITE_FAIRETENT_SCENE, NULL, BY_RESOURCE, Scene::SC_ITEIntroFaireTentProc, 0, SCENE_NOFADE} +LoadSceneParams ITE_IntroList[] = { + {RID_ITE_INTRO_ANIM_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0}, + {RID_ITE_CAVE_SCENE_1, kLoadByResourceId, NULL, Scene::SC_ITEIntroCave1Proc, false, kTransitionFadeNoInterface, 0}, + {RID_ITE_CAVE_SCENE_2, kLoadByResourceId, NULL, Scene::SC_ITEIntroCave2Proc, false, kTransitionNoFade, 0}, + {RID_ITE_CAVE_SCENE_3, kLoadByResourceId, NULL, Scene::SC_ITEIntroCave3Proc, false, kTransitionNoFade, 0}, + {RID_ITE_CAVE_SCENE_4, kLoadByResourceId, NULL, Scene::SC_ITEIntroCave4Proc, false, kTransitionNoFade, 0}, + {RID_ITE_VALLEY_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroValleyProc, false, kTransitionFadeNoInterface, 0}, + {RID_ITE_TREEHOUSE_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroTreeHouseProc, false, kTransitionNoFade, 0}, + {RID_ITE_FAIREPATH_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroFairePathProc, false, kTransitionNoFade, 0}, + {RID_ITE_FAIRETENT_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroFaireTentProc, false, kTransitionNoFade, 0} }; int Scene::ITEStartProc() { size_t n_introscenes; size_t i; - SCENE_QUEUE first_scene; - SCENE_QUEUE tempScene; + LoadSceneParams firstScene; + LoadSceneParams tempScene; n_introscenes = ARRAYSIZE(ITE_IntroList); for (i = 0; i < n_introscenes; i++) { tempScene = ITE_IntroList[i]; - tempScene.scene_n = RSC_ConvertID(tempScene.scene_n); + tempScene.sceneDescriptor = RSC_ConvertID(tempScene.sceneDescriptor); _vm->_scene->queueScene(&tempScene); } - first_scene.load_flag = BY_SCENE; - first_scene.scene_n = _vm->getStartSceneNumber(); - first_scene.scene_skiptarget = 1; - first_scene.scene_proc = NULL; - first_scene.fadeType = SCENE_FADE; + firstScene.loadFlag = kLoadBySceneNumber; + firstScene.sceneDescriptor = _vm->getStartSceneNumber(); + firstScene.sceneSkipTarget = true; + firstScene.sceneProc = NULL; + firstScene.transitionType = kTransitionFade; + firstScene.actorsEntrance = 0; - _vm->_scene->queueScene(&first_scene); + _vm->_scene->queueScene(&firstScene); return SUCCESS; } -EVENT *Scene::ITEQueueDialogue(EVENT *q_event, SCENE_INFO *scene_info, int n_dialogues, const INTRO_DIALOGUE dialogue[]) { +EVENT *Scene::ITEQueueDialogue(EVENT *q_event, int n_dialogues, const INTRO_DIALOGUE dialogue[]) { TEXTLIST_ENTRY text_entry; TEXTLIST_ENTRY *entry_p; EVENT event; @@ -96,7 +97,7 @@ EVENT *Scene::ITEQueueDialogue(EVENT *q_event, SCENE_INFO *scene_info, int n_dia for (i = 0; i < n_dialogues; i++) { text_entry.string = dialogue[i].i_str; - entry_p = _vm->textAddEntry(scene_info->text_list, &text_entry); + entry_p = _vm->textAddEntry(_textList, &text_entry); // Display text event.type = ONESHOT_EVENT; @@ -154,7 +155,7 @@ enum { // Queue a page of credits text. The original interpreter did word-wrapping // automatically. We currently don't. -EVENT *Scene::ITEQueueCredits(SCENE_INFO *scene_info, int delta_time, int duration, int n_credits, const INTRO_CREDIT credits[]) { +EVENT *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const INTRO_CREDIT credits[]) { int game; // The assumption here is that all WyrmKeep versions have the same @@ -240,7 +241,7 @@ EVENT *Scene::ITEQueueCredits(SCENE_INFO *scene_info, int delta_time, int durati text_entry.font_id = font; text_entry.text_y = y; - entry_p = _vm->textAddEntry(scene_info->text_list, &text_entry); + entry_p = _vm->textAddEntry(_textList, &text_entry); // Display text event.type = ONESHOT_EVENT; @@ -266,12 +267,12 @@ EVENT *Scene::ITEQueueCredits(SCENE_INFO *scene_info, int delta_time, int durati return q_event; } -int Scene::SC_ITEIntroAnimProc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroAnimProc(param, scene_info); +int Scene::SC_ITEIntroAnimProc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroAnimProc(param); } // Handles the introductory Dreamer's Guild / NWC logo animation scene. -int Scene::ITEIntroAnimProc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroAnimProc(int param) { EVENT event; EVENT *q_event; @@ -347,12 +348,12 @@ int Scene::ITEIntroAnimProc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroCave1Proc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroCave1Proc(param, scene_info); +int Scene::SC_ITEIntroCave1Proc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroCave1Proc(param); } // Handles first introductory cave painting scene -int Scene::ITEIntroCave1Proc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroCave1Proc(int param) { EVENT event; EVENT *q_event; int lang = _vm->getFeatures() & GF_LANG_DE ? 1 : 0; @@ -414,7 +415,7 @@ int Scene::ITEIntroCave1Proc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->queue(&event); // Queue narrator dialogue list - q_event = ITEQueueDialogue(q_event, scene_info, n_dialogues, dialogue[lang]); + q_event = ITEQueueDialogue(q_event, n_dialogues, dialogue[lang]); // End scene after last dialogue over event.type = ONESHOT_EVENT; @@ -435,12 +436,12 @@ int Scene::ITEIntroCave1Proc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroCave2Proc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroCave2Proc(param, scene_info); +int Scene::SC_ITEIntroCave2Proc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroCave2Proc(param); } // Handles second introductory cave painting scene -int Scene::ITEIntroCave2Proc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroCave2Proc(int param) { EVENT event; EVENT *q_event; int lang = _vm->getFeatures() & GF_LANG_DE ? 1 : 0; @@ -499,7 +500,7 @@ int Scene::ITEIntroCave2Proc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue narrator dialogue list - q_event = ITEQueueDialogue(q_event, scene_info, n_dialogues, dialogue[lang]); + q_event = ITEQueueDialogue(q_event, n_dialogues, dialogue[lang]); // End scene after last dialogue over event.type = ONESHOT_EVENT; @@ -519,12 +520,12 @@ int Scene::ITEIntroCave2Proc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroCave3Proc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroCave3Proc(param, scene_info); +int Scene::SC_ITEIntroCave3Proc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroCave3Proc(param); } // Handles third introductory cave painting scene -int Scene::ITEIntroCave3Proc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroCave3Proc(int param) { EVENT event; EVENT *q_event; int lang = _vm->getFeatures() & GF_LANG_DE ? 1 : 0; @@ -583,7 +584,7 @@ int Scene::ITEIntroCave3Proc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue narrator dialogue list - q_event = ITEQueueDialogue(q_event, scene_info, n_dialogues, dialogue[lang]); + q_event = ITEQueueDialogue(q_event, n_dialogues, dialogue[lang]); // End scene after last dialogue over event.type = ONESHOT_EVENT; @@ -603,12 +604,12 @@ int Scene::ITEIntroCave3Proc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroCave4Proc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroCave4Proc(param, scene_info); +int Scene::SC_ITEIntroCave4Proc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroCave4Proc(param); } // Handles fourth introductory cave painting scene -int Scene::ITEIntroCave4Proc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroCave4Proc(int param) { EVENT event; EVENT *q_event; int lang = _vm->getFeatures() & GF_LANG_DE ? 1 : 0; @@ -676,7 +677,7 @@ int Scene::ITEIntroCave4Proc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue narrator dialogue list - q_event = ITEQueueDialogue(q_event, scene_info, n_dialogues, dialogue[lang]); + q_event = ITEQueueDialogue(q_event, n_dialogues, dialogue[lang]); // End scene after last dialogue over event.type = ONESHOT_EVENT; @@ -696,12 +697,12 @@ int Scene::ITEIntroCave4Proc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroValleyProc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroValleyProc(param, scene_info); +int Scene::SC_ITEIntroValleyProc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroValleyProc(param); } // Handles intro title scene (valley overlook) -int Scene::ITEIntroValleyProc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroValleyProc(int param) { EVENT event; EVENT *q_event; @@ -782,7 +783,7 @@ int Scene::ITEIntroValleyProc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue game credits list - q_event = ITEQueueCredits(scene_info, 9000, CREDIT_DURATION1, n_credits, credits); + q_event = ITEQueueCredits(9000, CREDIT_DURATION1, n_credits, credits); // End scene after credit display event.type = ONESHOT_EVENT; @@ -802,12 +803,12 @@ int Scene::ITEIntroValleyProc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroTreeHouseProc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroTreeHouseProc(param, scene_info); +int Scene::SC_ITEIntroTreeHouseProc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroTreeHouseProc(param); } // Handles second intro credit screen (treehouse view) -int Scene::ITEIntroTreeHouseProc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroTreeHouseProc(int param) { EVENT event; EVENT *q_event; @@ -866,8 +867,8 @@ int Scene::ITEIntroTreeHouseProc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue game credits list - q_event = ITEQueueCredits(scene_info, DISSOLVE_DURATION + 2000, CREDIT_DURATION1, n_credits1, credits1); - q_event = ITEQueueCredits(scene_info, DISSOLVE_DURATION + 7000, CREDIT_DURATION1, n_credits2, credits2); + q_event = ITEQueueCredits(DISSOLVE_DURATION + 2000, CREDIT_DURATION1, n_credits1, credits1); + q_event = ITEQueueCredits(DISSOLVE_DURATION + 7000, CREDIT_DURATION1, n_credits2, credits2); // End scene after credit display event.type = ONESHOT_EVENT; @@ -887,12 +888,12 @@ int Scene::ITEIntroTreeHouseProc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroFairePathProc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroFairePathProc(param, scene_info); +int Scene::SC_ITEIntroFairePathProc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroFairePathProc(param); } // Handles third intro credit screen (path to puzzle tent) -int Scene::ITEIntroFairePathProc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroFairePathProc(int param) { EVENT event; EVENT *q_event; @@ -944,8 +945,8 @@ int Scene::ITEIntroFairePathProc(int param, SCENE_INFO *scene_info) { q_event = _vm->_events->chain(q_event, &event); // Queue game credits list - q_event = ITEQueueCredits(scene_info, DISSOLVE_DURATION + 2000, CREDIT_DURATION1, n_credits1, credits1); - q_event = ITEQueueCredits(scene_info, DISSOLVE_DURATION + 7000, CREDIT_DURATION1, n_credits2, credits2); + q_event = ITEQueueCredits(DISSOLVE_DURATION + 2000, CREDIT_DURATION1, n_credits1, credits1); + q_event = ITEQueueCredits(DISSOLVE_DURATION + 7000, CREDIT_DURATION1, n_credits2, credits2); // End scene after credit display event.type = ONESHOT_EVENT; @@ -965,12 +966,12 @@ int Scene::ITEIntroFairePathProc(int param, SCENE_INFO *scene_info) { return 0; } -int Scene::SC_ITEIntroFaireTentProc(int param, SCENE_INFO *scene_info, void *refCon) { - return ((Scene *)refCon)->ITEIntroFaireTentProc(param, scene_info); +int Scene::SC_ITEIntroFaireTentProc(int param, void *refCon) { + return ((Scene *)refCon)->ITEIntroFaireTentProc(param); } // Handles fourth intro credit screen (treehouse view) -int Scene::ITEIntroFaireTentProc(int param, SCENE_INFO *scene_info) { +int Scene::ITEIntroFaireTentProc(int param) { EVENT event; EVENT *q_event; EVENT *q_event_start; |