1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-21 06:21:16 +00:00

z_demo documentation (#1327)

* commit old stuff

* progress

* progress

* progress

* progress

* more progress, renaming cues next

* small changes

* enum values added for all actions

* hardcoded values removed when possible

* commands renamed

* first pass of action -> cue

* fix some matches

* some more cleanup

* scriptPtr

* forgot one

* remove cue rot union

* more changes

* some more stuff

* more stuff

* fix matching issues

* some more things

* progress, starting to rename destinations

* small changes

* name some destinations

* more names

* need to switch branch

* progress

* first pass of destination names

* usages fixed

* use destination enum

* fix csdis

* format

* command descriptions

* revert accidental zap changes

* forgot some things

* use a single macro for CutsceneCameraPoint (idk why i didnt think of this sooner)

* typo

* review1

* clarify ruby/sapphire comment

* remove endframe for commands that dont use it

* some more review

* most review, but not all

* scriptPtr -> script, and another small change

* ocarina action

* remove +1 from light settings command, change comment

* actionIndex -> cueIdTemp (i guess)

* _SetCueX -> _SetXFromCue

* format

* tweak fade out seq arg names

* use spline terminology

* more dragorn and engineer review

* misc start/end frame note

* cleanup StartPosRotFromCue vs PosRotFromCue

* cleanup spline terminology

* sPrevCamId -> sReturnToCamId

* comment on debug cs data address

* Cutscene_Init -> Cutscene_InitContext

* single point types are not a list

* remove todo comment

* some more review

* rumble struct names

* some review

* more review

* missed one

* reword pointer comment

* even more review

* match transition terminology with z_play

* change condition and format

* frame count

* command specific structs with alignment

* anon review

* remove unneeded arg from time macro

* yeet `CsCmdGeneric`

* remove unused from single point types

* typo

* compromise attempt -- name endFrame everywhere

* fixes

* fix again

* copied the wrong note

* cutscene data note

* review, format

* compat defines

* idk whats going on man

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
fig02 2022-12-24 13:55:17 -05:00 committed by GitHub
parent 92e03cf747
commit 7927e7b330
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
130 changed files with 6392 additions and 5954 deletions

View file

@ -102,41 +102,41 @@ void DemoDu_UpdateBgCheckInfo(DemoDu* this, PlayState* play) {
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
}
CsCmdActorAction* DemoDu_GetNpcAction(PlayState* play, s32 idx) {
CsCmdActorCue* DemoDu_GetCue(PlayState* play, s32 cueChannel) {
if (play->csCtx.state != CS_STATE_IDLE) {
return play->csCtx.npcActions[idx];
return play->csCtx.actorCues[cueChannel];
}
return NULL;
}
s32 DemoDu_IsNpcDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
s32 DemoDu_CheckForCue(DemoDu* this, PlayState* play, u16 cueId, s32 cueChannel) {
CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel);
if ((npcAction != NULL) && (npcAction->action == action)) {
if ((cue != NULL) && (cue->id == cueId)) {
return true;
}
return false;
}
s32 DemoDu_IsNpcNotDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
s32 DemoDu_CheckForNoCue(DemoDu* this, PlayState* play, u16 cueId, s32 cueChannel) {
CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel);
if ((npcAction != NULL) && (npcAction->action != action)) {
if ((cue != NULL) && (cue->id != cueId)) {
return true;
}
return false;
}
void DemoDu_MoveToNpcPos(DemoDu* this, PlayState* play, s32 idx) {
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
void DemoDu_SetStartPosRotFromCue(DemoDu* this, PlayState* play, s32 cueChannel) {
CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel);
s32 pad;
if (npcAction != NULL) {
this->actor.world.pos.x = npcAction->startPos.x;
this->actor.world.pos.y = npcAction->startPos.y;
this->actor.world.pos.z = npcAction->startPos.z;
if (cue != NULL) {
this->actor.world.pos.x = cue->startPos.x;
this->actor.world.pos.y = cue->startPos.y;
this->actor.world.pos.z = cue->startPos.z;
this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y;
this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y;
}
}
@ -198,7 +198,7 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) {
Player* player = GET_PLAYER(play);
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(1);
play->csCtx.segment = D_8096C1A4;
play->csCtx.script = D_8096C1A4;
gSaveContext.cutsceneTrigger = 2;
Item_Give(play, ITEM_MEDALLION_FIRE);
@ -208,9 +208,9 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) {
void DemoDu_CsFireMedallion_AdvanceTo02(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 1)) {
if ((cue != NULL) && (cue->id != 1)) {
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(2);
this->drawIndex = 1;
DemoDu_CsFireMedallion_SpawnDoorWarp(this, play);
@ -227,9 +227,9 @@ void DemoDu_CsFireMedallion_AdvanceTo03(DemoDu* this) {
void DemoDu_CsFireMedallion_AdvanceTo04(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 2)) {
if ((cue != NULL) && (cue->id != 2)) {
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gDaruniaItemGiveAnim), 2, 0.0f);
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(4);
@ -247,9 +247,9 @@ void DemoDu_CsFireMedallion_AdvanceTo05(DemoDu* this, s32 animFinished) {
void DemoDu_CsFireMedallion_AdvanceTo06(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[6];
CsCmdActorCue* cue = play->csCtx.actorCues[6];
if ((npcAction != NULL) && (npcAction->action == 2)) {
if ((cue != NULL) && (cue->id == 2)) {
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(6);
func_80969F38(this, play);
}
@ -309,7 +309,7 @@ void DemoDu_CsPlaySfx_GoronLanding(DemoDu* this) {
// Cutscene: Darunia gives Link the Goron's Ruby.
// Sfx played when Darunia is falling at the start of the cutscene.
void DemoDu_CsPlaySfx_DaruniaFalling(PlayState* play) {
if (play->csCtx.frames == 160) {
if (play->csCtx.curFrame == 160) {
func_800788CC(NA_SE_EV_OBJECT_FALL);
}
}
@ -332,7 +332,7 @@ void DemoDu_CsPlaySfx_HitBreast(DemoDu* this) {
// Cutscene: Darunia gives Link the Goron's Ruby.
// Sfx played when Link is escaping from the gorons at the end of the scene.
void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) {
if (play->csCtx.frames == 1400) {
if (play->csCtx.curFrame == 1400) {
Player* player = GET_PLAYER(play);
Audio_PlaySfxGeneral(NA_SE_VO_LI_FALL_L_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
@ -343,7 +343,7 @@ void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) {
// Cutscene: Darunia gives Link the Goron's Ruby.
// Sfx played when Link is surprised by Darunia falling from the sky.
void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) {
if (play->csCtx.frames == 174) {
if (play->csCtx.curFrame == 174) {
Player* player = GET_PLAYER(play);
Audio_PlaySfxGeneral(NA_SE_VO_LI_SURPRISE_KID, &player->actor.projectedPos, 4U, &gSfxDefaultFreqAndVolScale,
@ -352,7 +352,7 @@ void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) {
}
void DemoDu_CsGoronsRuby_UpdateFaceTextures(DemoDu* this, PlayState* play) {
u16* frames = &play->csCtx.frames;
u16* frames = &play->csCtx.curFrame;
if (*frames < 260) {
DemoDu_UpdateEyes(this);
@ -438,21 +438,21 @@ void DemoDu_CsGoronsRuby_DaruniaFalling(DemoDu* this, PlayState* play) {
CutsceneContext* csCtx = &play->csCtx;
if (csCtx->state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = csCtx->npcActions[2];
CsCmdActorCue* cue = csCtx->actorCues[2];
Vec3f startPos;
Vec3f endPos;
Vec3f* pos = &this->actor.world.pos;
if (npcAction != NULL) {
f32 traveledPercent = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames);
if (cue != NULL) {
f32 traveledPercent = Environment_LerpWeight(cue->endFrame, cue->startFrame, csCtx->curFrame);
startPos.x = npcAction->startPos.x;
startPos.y = npcAction->startPos.y;
startPos.z = npcAction->startPos.z;
startPos.x = cue->startPos.x;
startPos.y = cue->startPos.y;
startPos.z = cue->startPos.z;
endPos.x = npcAction->endPos.x;
endPos.y = npcAction->endPos.y;
endPos.z = npcAction->endPos.z;
endPos.x = cue->endPos.x;
endPos.y = cue->endPos.y;
endPos.z = cue->endPos.z;
pos->x = LERP(startPos.x, endPos.x, traveledPercent);
pos->y = LERP(startPos.y, endPos.y, traveledPercent);
@ -467,9 +467,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo01(DemoDu* this, PlayState* play) {
void DemoDu_CsGoronsRuby_AdvanceTo02(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 1)) {
if ((cue != NULL) && (cue->id != 1)) {
Animation_Change(&this->skelAnime, &gDaruniaStandUpAfterFallingAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gDaruniaStandUpAfterFallingAnim), 2, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(2);
@ -483,9 +483,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) {
CutsceneContext* csCtx = &play->csCtx;
if (csCtx->state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = csCtx->npcActions[2];
CsCmdActorCue* cue = csCtx->actorCues[2];
if ((npcAction != NULL) && (csCtx->frames >= npcAction->endFrame)) {
if ((cue != NULL) && (csCtx->curFrame >= cue->endFrame)) {
this->updateIndex = CS_GORONSRUBY_SUBSCENE(3);
func_8096A630(this, play);
}
@ -494,9 +494,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) {
void DemoDu_CsGoronsRuby_AdvanceTo04(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 2)) {
if ((cue != NULL) && (cue->id != 2)) {
this->updateIndex = CS_GORONSRUBY_SUBSCENE(4);
}
}
@ -512,9 +512,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo05(DemoDu* this, s32 animFinished) {
void DemoDu_CsGoronsRuby_AdvanceTo06(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 3)) {
if ((cue != NULL) && (cue->id != 3)) {
Animation_Change(&this->skelAnime, &gDaruniaHitBreastAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gDaruniaHitBreastAnim), 2, -4.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(6);
@ -532,9 +532,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo07(DemoDu* this, s32 animFinished) {
void DemoDu_CsGoronsRuby_AdvanceTo08(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 4)) {
if ((cue != NULL) && (cue->id != 4)) {
Animation_Change(&this->skelAnime, &gDaruniaHitLinkAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gDaruniaHitLinkAnim), 2, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(8);
@ -560,9 +560,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo10(DemoDu* this, s32 animFinished) {
void DemoDu_CsGoronsRuby_AdvanceTo11(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 5)) {
if ((cue != NULL) && (cue->id != 5)) {
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
Animation_GetLastFrame(&gDaruniaItemGiveAnim), 2, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(11);
@ -580,9 +580,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo12(DemoDu* this, s32 animFinished) {
void DemoDu_CsGoronsRuby_AdvanceTo13(DemoDu* this, PlayState* play) {
if (play->csCtx.state != CS_STATE_IDLE) {
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
CsCmdActorCue* cue = play->csCtx.actorCues[2];
if ((npcAction != NULL) && (npcAction->action != 6)) {
if ((cue != NULL) && (cue->id != 6)) {
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
ANIMMODE_LOOP, 0.0f);
this->updateIndex = CS_GORONSRUBY_SUBSCENE(13);
@ -718,7 +718,7 @@ void DemoDu_CsAfterGanon_SpawnDemo6K(DemoDu* this, PlayState* play) {
}
void DemoDu_CsAfterGanon_AdvanceTo01(DemoDu* this, PlayState* play) {
if (DemoDu_IsNpcDoingThisAction(this, play, 4, 2)) {
if (DemoDu_CheckForCue(this, play, 4, 2)) {
this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(1);
this->drawIndex = 2;
this->shadowAlpha = 0;
@ -732,7 +732,7 @@ void DemoDu_CsAfterGanon_AdvanceTo02(DemoDu* this, PlayState* play) {
f32* unk_1A4 = &this->unk_1A4;
s32 shadowAlpha = 255;
if (DemoDu_IsNpcDoingThisAction(this, play, 4, 2)) {
if (DemoDu_CheckForCue(this, play, 4, 2)) {
*unk_1A4 += 1.0f;
if (*unk_1A4 >= kREG(5) + 10.0f) {
this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(2);
@ -759,7 +759,7 @@ void DemoDu_CsAfterGanon_AdvanceTo02(DemoDu* this, PlayState* play) {
}
void DemoDu_CsAfterGanon_BackTo01(DemoDu* this, PlayState* play) {
if (DemoDu_IsNpcNotDoingThisAction(this, play, 4, 2)) {
if (DemoDu_CheckForNoCue(this, play, 4, 2)) {
this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(1);
this->drawIndex = 2;
this->unk_1A4 = kREG(5) + 10.0f;
@ -850,7 +850,7 @@ void DemoDu_CsCredits_UpdateShadowAlpha(DemoDu* this) {
}
void DemoDu_CsCredits_AdvanceTo01(DemoDu* this, PlayState* play) {
DemoDu_MoveToNpcPos(this, play, 2);
DemoDu_SetStartPosRotFromCue(this, play, 2);
this->updateIndex = CS_CREDITS_SUBSCENE(1);
this->drawIndex = 2;
}
@ -879,15 +879,15 @@ void DemoDu_CsCredits_BackTo02(DemoDu* this, s32 animFinished) {
}
}
void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play) {
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, 2);
void DemoDu_CsCredits_HandleCues(DemoDu* this, PlayState* play) {
CsCmdActorCue* cue = DemoDu_GetCue(play, 2);
if (npcAction != NULL) {
s32 action = npcAction->action;
s32 lastAction = this->lastAction;
if (cue != NULL) {
s32 nextCueId = cue->id;
s32 currentCueId = this->cueId;
if (action != lastAction) {
switch (action) {
if (nextCueId != currentCueId) {
switch (nextCueId) {
case 9:
DemoDu_CsCredits_AdvanceTo01(this, play);
break;
@ -902,13 +902,13 @@ void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play)
osSyncPrintf("Demo_Du_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n");
break;
}
this->lastAction = action;
this->cueId = nextCueId;
}
}
}
void DemoDu_UpdateCs_CR_00(DemoDu* this, PlayState* play) {
DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play);
DemoDu_CsCredits_HandleCues(this, play);
}
void DemoDu_UpdateCs_CR_01(DemoDu* this, PlayState* play) {
@ -923,14 +923,14 @@ void DemoDu_UpdateCs_CR_02(DemoDu* this, PlayState* play) {
DemoDu_UpdateBgCheckInfo(this, play);
DemoDu_UpdateSkelAnime(this);
DemoDu_UpdateEyes(this);
DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play);
DemoDu_CsCredits_HandleCues(this, play);
}
void DemoDu_UpdateCs_CR_03(DemoDu* this, PlayState* play) {
DemoDu_UpdateBgCheckInfo(this, play);
DemoDu_UpdateSkelAnime(this);
DemoDu_UpdateEyes(this);
DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play);
DemoDu_CsCredits_HandleCues(this, play);
}
void DemoDu_UpdateCs_CR_04(DemoDu* this, PlayState* play) {

View file

@ -18,7 +18,7 @@ typedef struct DemoDu {
/* 0x01A4 */ f32 unk_1A4;
/* 0x01A8 */ s32 shadowAlpha;
/* 0x01AC */ s32 demo6KSpawned;
/* 0x01B0 */ s32 lastAction;
/* 0x01B0 */ s32 cueId;
} DemoDu; // size = 0x01B4
// This is the parameter of this actor,

View file

@ -6,182 +6,182 @@ static CutsceneData D_8096C1A4[] = {
CS_BEGIN_CUTSCENE(31, 3000),
CS_UNK_DATA_LIST(0x00000020, 1),
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000),
CS_NPC_ACTION_LIST(31, 5),
CS_NPC_ACTION(0x0001, 0, 546, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0002, 546, 547, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0004, 547, 616, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0002, 616, 667, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 82, 0, 0.0f, -2.627451f, 0.0f),
CS_NPC_ACTION(0x0003, 667, 2834, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f),
CS_PLAYER_ACTION_LIST(3),
CS_PLAYER_ACTION(0x000D, 0, 280, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_PLAYER_ACTION(0x0005, 280, 531, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_PLAYER_ACTION(0x0013, 531, 1716, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_NPC_ACTION_LIST(41, 3),
CS_NPC_ACTION(0x0001, 0, 170, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0002, 170, 465, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0003, 465, 2915, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION_LIST(49, 1),
CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f),
CS_SCENE_TRANS_FX(0x0001, 530, 539),
CS_SCENE_TRANS_FX(0x0005, 540, 570),
CS_LIGHTING_LIST(2),
CS_LIGHTING(0x0001, 0, 10, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018),
CS_LIGHTING(0x0001, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018),
CS_NPC_ACTION_LIST(39, 1),
CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f),
CS_SCENE_TRANS_FX(0x0001, 805, 835),
CS_NPC_ACTION_LIST(62, 1),
CS_NPC_ACTION(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 32, 80, -51, 32, 80, -51, 0.0f, 0.0f, 0.0f),
CS_TERMINATOR(DEATH_MOUNTAIN_CRATER_AFTER_FIRE_BLUE_WARP, 905, 1030),
CS_PLAY_BGM_LIST(1),
CS_PLAY_BGM(0x0044, 615, 616, 0x0000, 0x00000000, 0xFFFFFF97, 0x00000000, 0x00000030, 0xFFFFFF97, 0x00000000, 0x00000030),
CS_FADE_BGM_LIST(1),
CS_FADE_BGM(0x0004, 500, 550, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC3, 0x0000006E, 0x00000000, 0xFFFFFFC3, 0x0000006E),
CS_ACTOR_CUE_LIST(31, 5),
CS_ACTOR_CUE(0x0001, 0, 546, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE(0x0002, 546, 547, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE(0x0004, 547, 616, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE(0x0002, 616, 667, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 82, 0, 0.0f, -2.627451f, 0.0f),
CS_ACTOR_CUE(0x0003, 667, 2834, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f),
CS_PLAYER_CUE_LIST(3),
CS_PLAYER_CUE(0x000D, 0, 280, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_PLAYER_CUE(0x0005, 280, 531, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_PLAYER_CUE(0x0013, 531, 1716, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f),
CS_ACTOR_CUE_LIST(41, 3),
CS_ACTOR_CUE(0x0001, 0, 170, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE(0x0002, 170, 465, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE(0x0003, 465, 2915, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f),
CS_ACTOR_CUE_LIST(49, 1),
CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f),
CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 530, 539),
CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 540, 570),
CS_LIGHT_SETTING_LIST(2),
CS_LIGHT_SETTING(0x0000, 0, 10, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018),
CS_LIGHT_SETTING(0x0000, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018),
CS_ACTOR_CUE_LIST(39, 1),
CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f),
CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 805, 835),
CS_ACTOR_CUE_LIST(62, 1),
CS_ACTOR_CUE(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 32, 80, -51, 32, 80, -51, 0.0f, 0.0f, 0.0f),
CS_DESTINATION(CS_DEST_DEATH_MOUNTAIN_CRATER_FROM_CHAMBER_OF_SAGES, 905, 1030),
CS_START_SEQ_LIST(1),
CS_START_SEQ(NA_BGM_MEDALLION_GET, 615, 616, 0x0000, 0x00000000, 0xFFFFFF97, 0x00000000, 0x00000030, 0xFFFFFF97, 0x00000000, 0x00000030),
CS_FADE_OUT_SEQ_LIST(1),
CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 500, 550, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC3, 0x0000006E, 0x00000000, 0xFFFFFFC3, 0x0000006E),
CS_TEXT_LIST(10),
CS_TEXT_NONE(0, 310),
CS_TEXT_DISPLAY_TEXTBOX(0x303C, 310, 323, 0x0000, 0x0000, 0x0000),
CS_TEXT(0x303C, 310, 323, 0x0000, 0x0000, 0x0000),
CS_TEXT_NONE(323, 344),
CS_TEXT_DISPLAY_TEXTBOX(0x3045, 344, 394, 0x0000, 0x0000, 0x0000),
CS_TEXT(0x3045, 344, 394, 0x0000, 0x0000, 0x0000),
CS_TEXT_NONE(394, 415),
CS_TEXT_DISPLAY_TEXTBOX(0x3046, 415, 465, 0x0000, 0x0000, 0x0000),
CS_TEXT(0x3046, 415, 465, 0x0000, 0x0000, 0x0000),
CS_TEXT_NONE(465, 800),
CS_TEXT_DISPLAY_TEXTBOX(0x003C, 800, 805, 0x0000, 0x0000, 0x0000),
CS_TEXT(0x003C, 800, 805, 0x0000, 0x0000, 0x0000),
CS_TEXT_NONE(805, 865),
CS_TEXT_DISPLAY_TEXTBOX(0x303D, 865, 875, 0x0000, 0x0000, 0x0000),
CS_CAM_EYE_LIST(0, 1361),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 2925, 795, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 70, 974, 497, 0x00E8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 320, 268, 296, 0x00EA),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 312, 190, 150, 0x013D),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x013F),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x014E),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x015F),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.4f, 261, 61, -65, 0x0161),
CS_CAM_EYE_LIST(263, 509),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 29.399885f, 89, 30, -103, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00E8),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.2f, 89, 30, -103, 0x00EA),
CS_CAM_EYE_LIST(333, 1424),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00E8),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.999947f, 114, 50, -116, 0x00EA),
CS_CAM_EYE_LIST(403, 1494),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00E8),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945f, 26, 45, -10, 0x00EA),
CS_CAM_EYE_LIST(443, 1624),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 27, 31, -45, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00E8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00EA),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013D),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013F),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, 45, 40, -76, 0x002E),
CS_CAM_EYE_LIST(473, 1604),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00E8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x00EA),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013D),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013F),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x002E),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.39992f, 192, 278, -246, 0x0063),
CS_CAM_EYE_LIST(539, 881),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F),
CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E),
CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063),
CS_CAM_EYE_REL_TO_PLAYER_LIST(615, 1796),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F),
CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E),
CS_CAM_AT_LIST(0, 1390),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 2877, 585, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4f, 27, 824, 348, 0x00E8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 197, 143, 174, 0x00EA),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 147, 100, 55, 0x013D),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 55, 35, -65, 0x013F),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.4f, 55, 35, -65, 0x014E),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4f, 55, 35, -65, 0x015F),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.4f, 56, 35, -65, 0x0161),
CS_CAM_AT_LIST(263, 538),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 78.99979f, 87, 157, -391, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 82, 78.79979f, 87, 157, -391, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 103, 70.79991f, 87, 157, -391, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.2f, 87, 157, -391, 0x00E8),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.2f, 87, 157, -391, 0x00EA),
CS_CAM_AT_LIST(333, 1453),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.999947f, -52, 127, -309, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00E8),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.999947f, -52, 127, -309, 0x00EA),
CS_CAM_AT_LIST(403, 1523),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945f, -269, 186, 13, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00E8),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945f, -269, 186, 13, 0x00EA),
CS_CAM_AT_LIST(443, 1653),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 177, 74, -309, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00E8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00EA),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, 192, 91, -336, 0x013D),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 192, 91, -336, 0x013F),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, 192, 91, -336, 0x002E),
CS_CAM_AT_LIST(473, 1633),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -54, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.999947f, -8, 57, -54, 0x00E8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x00EA),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x013D),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 70.39992f, 149, 547, -205, 0x013F),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.39992f, 149, 547, -205, 0x002E),
CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.39992f, 149, 547, -205, 0x0063),
CS_CAM_AT_LIST(539, 930),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F),
CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E),
CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063),
CS_CAM_AT_REL_TO_PLAYER_LIST(615, 1825),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F),
CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E),
CS_TEXT(0x303D, 865, 875, 0x0000, 0x0000, 0x0000),
CS_CAM_EYE_SPLINE(0, 1361),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 2925, 795, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 70, 974, 497, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 320, 268, 296, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 312, 190, 150, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x014E),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x015F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.4f, 261, 61, -65, 0x0161),
CS_CAM_EYE_SPLINE(263, 509),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 29.399885f, 89, 30, -103, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.2f, 89, 30, -103, 0x00EA),
CS_CAM_EYE_SPLINE(333, 1424),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.999947f, 114, 50, -116, 0x00EA),
CS_CAM_EYE_SPLINE(403, 1494),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945f, 26, 45, -10, 0x00EA),
CS_CAM_EYE_SPLINE(443, 1624),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 27, 31, -45, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, 45, 40, -76, 0x002E),
CS_CAM_EYE_SPLINE(473, 1604),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x002E),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.39992f, 192, 278, -246, 0x0063),
CS_CAM_EYE_SPLINE(539, 881),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063),
CS_CAM_EYE_SPLINE_REL_TO_PLAYER(615, 1796),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E),
CS_CAM_AT_SPLINE(0, 1390),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 2877, 585, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4f, 27, 824, 348, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 197, 143, 174, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 147, 100, 55, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 55, 35, -65, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.4f, 55, 35, -65, 0x014E),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4f, 55, 35, -65, 0x015F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.4f, 56, 35, -65, 0x0161),
CS_CAM_AT_SPLINE(263, 538),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 78.99979f, 87, 157, -391, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 82, 78.79979f, 87, 157, -391, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 103, 70.79991f, 87, 157, -391, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.2f, 87, 157, -391, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.2f, 87, 157, -391, 0x00EA),
CS_CAM_AT_SPLINE(333, 1453),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.999947f, -52, 127, -309, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.999947f, -52, 127, -309, 0x00EA),
CS_CAM_AT_SPLINE(403, 1523),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945f, -269, 186, 13, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00E8),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945f, -269, 186, 13, 0x00EA),
CS_CAM_AT_SPLINE(443, 1653),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 177, 74, -309, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, 192, 91, -336, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 192, 91, -336, 0x013F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, 192, 91, -336, 0x002E),
CS_CAM_AT_SPLINE(473, 1633),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -54, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.999947f, -8, 57, -54, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.39992f, 149, 547, -205, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.39992f, 149, 547, -205, 0x002E),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.39992f, 149, 547, -205, 0x0063),
CS_CAM_AT_SPLINE(539, 930),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063),
CS_CAM_AT_SPLINE_REL_TO_PLAYER(615, 1825),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D),
CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F),
CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E),
CS_END(),
};
// clang-format on