mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-07 06:40:15 +00:00
ovl_En_Okarina_Tag OK (#273)
* started okarinatag * did more * z_en_okarina_tag OK * finished okarinatag * Made suggested changes
This commit is contained in:
parent
71e65af9b7
commit
3dd521eef5
19 changed files with 465 additions and 1035 deletions
|
@ -1,2 +1,3 @@
|
|||
ovl_En_Okarina_Tag
|
||||
z_en_okarina_tag_cutscene_data.c
|
||||
z_en_okarina_tag.c
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_en_okarina_tag.c
|
||||
* Overlay: ovl_En_Okarina_Tag
|
||||
* Description: Music Staff (Ocarina) spot
|
||||
*/
|
||||
|
||||
#include "z_en_okarina_tag.h"
|
||||
#include <vt.h>
|
||||
|
||||
#define FLAGS 0x02000010
|
||||
|
||||
|
@ -8,7 +15,13 @@ void EnOkarinaTag_Init(Actor* thisx, GlobalContext* globalCtx);
|
|||
void EnOkarinaTag_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnOkarinaTag_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void func_80ABEF2C(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
void func_80ABF708(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
void func_80ABF28C(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
void func_80ABF0CC(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
void func_80ABF4C8(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit En_Okarina_Tag_InitVars = {
|
||||
ACTOR_EN_OKARINA_TAG,
|
||||
ACTORTYPE_PROP,
|
||||
|
@ -20,21 +33,303 @@ const ActorInit En_Okarina_Tag_InitVars = {
|
|||
(ActorFunc)EnOkarinaTag_Update,
|
||||
NULL,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/EnOkarinaTag_Destroy.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/EnOkarinaTag_Init.s")
|
||||
extern CutsceneData D_02003C80[];
|
||||
extern CutsceneData D_02005020[];
|
||||
extern CutsceneData D_020024A0[];
|
||||
extern CutsceneData D_80ABF9D0[];
|
||||
extern CutsceneData D_80ABFB40[];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABEF2C.s")
|
||||
void EnOkarinaTag_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABF0CC.s")
|
||||
void EnOkarinaTag_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnOkarinaTag* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABF28C.s")
|
||||
osSyncPrintf("\n\n");
|
||||
// "Ocarina tag outbreak"
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ オカリナタグ発生 ☆☆☆☆☆ %x\n" VT_RST, this->actor.params);
|
||||
this->actor.flags &= ~1;
|
||||
this->unk_150 = (this->actor.params >> 0xA) & 0x3F;
|
||||
this->unk_152 = (this->actor.params >> 6) & 0xF;
|
||||
this->switchFlag = this->actor.params & 0x3F;
|
||||
if (this->switchFlag == 0x3F) {
|
||||
this->switchFlag = -1;
|
||||
}
|
||||
if (this->unk_152 == 0xF) {
|
||||
this->unk_152 = 0;
|
||||
this->unk_158 = 1;
|
||||
}
|
||||
this->actor.unk_1F = 1;
|
||||
if (this->actor.posRot.rot.z > 0) {
|
||||
this->unk_15C = this->actor.posRot.rot.z * 40.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABF4C8.s")
|
||||
// "Save information"
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ セーブ情報\t ☆☆☆☆☆ %d\n" VT_RST, this->switchFlag);
|
||||
// "Type index"
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 種類インデックス ☆☆☆☆☆ %d\n" VT_RST, this->unk_150);
|
||||
// "Correct answer information"
|
||||
osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 正解情報\t ☆☆☆☆☆ %d\n" VT_RST, this->unk_152);
|
||||
// "Range information"
|
||||
osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 範囲情報\t ☆☆☆☆☆ %d\n" VT_RST, this->actor.posRot.rot.z);
|
||||
// "Processing range information"
|
||||
osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 処理範囲情報\t ☆☆☆☆☆ %f\n" VT_RST, this->unk_15C);
|
||||
// "Hit?"
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 当り?\t\t ☆☆☆☆☆ %d\n" VT_RST, this->unk_158);
|
||||
osSyncPrintf("\n\n");
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABF708.s")
|
||||
if ((this->switchFlag >= 0) && (Flags_GetSwitch(globalCtx, this->switchFlag))) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else {
|
||||
switch (this->unk_150) {
|
||||
case 7:
|
||||
this->actionFunc = func_80ABEF2C;
|
||||
break;
|
||||
case 2:
|
||||
if (LINK_IS_ADULT) {
|
||||
Actor_Kill(&this->actor);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
case 4:
|
||||
case 6:
|
||||
this->actionFunc = func_80ABF28C;
|
||||
break;
|
||||
case 5:
|
||||
// "This poem is dedicated to the memory of the dearly departed members of the Royal Family."
|
||||
this->actor.textId = 0x5021;
|
||||
this->actionFunc = func_80ABF708;
|
||||
break;
|
||||
default:
|
||||
Actor_Kill(&this->actor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/func_80ABF7CC.s")
|
||||
void func_80ABEF2C(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
Player* player;
|
||||
u16 unk_152;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Okarina_Tag/EnOkarinaTag_Update.s")
|
||||
player = PLAYER;
|
||||
this->unk_15A++;
|
||||
if ((this->switchFlag >= 0) && (Flags_GetSwitch(globalCtx, this->switchFlag))) {
|
||||
this->actor.flags &= ~1;
|
||||
} else {
|
||||
if ((this->unk_152 != 6) || (gSaveContext.unk_12C5 != 0)) {
|
||||
if (player->stateFlags2 & 0x1000000) {
|
||||
// "North! ! ! ! !"
|
||||
osSyncPrintf(VT_FGCOL(RED) "☆☆☆☆☆ 北!!!!! ☆☆☆☆☆ %f\n" VT_RST, this->actor.xzDistFromLink);
|
||||
}
|
||||
if ((this->actor.xzDistFromLink < (90.0f + this->unk_15C)) &&
|
||||
(fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) < 80.0f)) {
|
||||
if (player->stateFlags2 & 0x2000000) {
|
||||
unk_152 = this->unk_152;
|
||||
if (unk_152 == 6) {
|
||||
unk_152 = 0xA;
|
||||
}
|
||||
player->stateFlags2 |= 0x800000;
|
||||
func_8010BD58(globalCtx, unk_152 + 0x22);
|
||||
this->actionFunc = func_80ABF0CC;
|
||||
} else if ((this->actor.xzDistFromLink < (50.0f + this->unk_15C) &&
|
||||
((fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) < 40.0f)))) {
|
||||
this->unk_15A = 0;
|
||||
player->unk_6A8 = &this->actor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80ABF0CC(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (globalCtx->msgCtx.unk_E3EE == 4) {
|
||||
this->actionFunc = func_80ABEF2C;
|
||||
} else {
|
||||
if (globalCtx->msgCtx.unk_E3EE == 3) {
|
||||
if (this->switchFlag >= 0) {
|
||||
Flags_SetSwitch(globalCtx, this->switchFlag);
|
||||
}
|
||||
if (globalCtx->sceneNum == SCENE_MIZUSIN) {
|
||||
globalCtx->msgCtx.msgMode = 0x37;
|
||||
}
|
||||
if ((globalCtx->sceneNum != SCENE_DAIYOUSEI_IZUMI) && (globalCtx->sceneNum != SCENE_YOUSEI_IZUMI_YOKO)) {
|
||||
globalCtx->msgCtx.unk_E3EE = 4;
|
||||
}
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
this->actionFunc = func_80ABEF2C;
|
||||
return;
|
||||
}
|
||||
if (this->unk_158 != 0) {
|
||||
if ((globalCtx->msgCtx.unk_E3EE == 5) || (globalCtx->msgCtx.unk_E3EE == 6) ||
|
||||
(globalCtx->msgCtx.unk_E3EE == 7) || (globalCtx->msgCtx.unk_E3EE == 8) ||
|
||||
(globalCtx->msgCtx.unk_E3EE == 9) || (globalCtx->msgCtx.unk_E3EE == 10) ||
|
||||
(globalCtx->msgCtx.unk_E3EE == 13)) {
|
||||
if (this->switchFlag >= 0) {
|
||||
Flags_SetSwitch(globalCtx, this->switchFlag);
|
||||
}
|
||||
globalCtx->msgCtx.unk_E3EE = 4;
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
this->actionFunc = func_80ABEF2C;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((globalCtx->msgCtx.unk_E3EE >= 5) && (globalCtx->msgCtx.unk_E3EE < 0xE)) {
|
||||
globalCtx->msgCtx.unk_E3EE = 4;
|
||||
this->actionFunc = func_80ABEF2C;
|
||||
} else if (globalCtx->msgCtx.unk_E3EE == 1) {
|
||||
player->stateFlags2 |= 0x800000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80ABF28C(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
this->unk_15A++;
|
||||
if ((this->unk_152 != 6) || (gSaveContext.unk_12C5 != 0)) {
|
||||
if ((this->switchFlag >= 0) && Flags_GetSwitch(globalCtx, this->switchFlag)) {
|
||||
this->actor.flags &= ~1;
|
||||
} else if (((this->unk_150 != 4) || !(gSaveContext.eventChkInf[4] & 0x800)) &&
|
||||
((this->unk_150 != 6) || !(gSaveContext.eventChkInf[1] & 0x2000)) &&
|
||||
(this->actor.xzDistFromLink < (90.0f + this->unk_15C)) &&
|
||||
(fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) < 80.0f)) {
|
||||
if (player->stateFlags2 & 0x1000000) {
|
||||
switch (this->unk_150) {
|
||||
case 1:
|
||||
func_8010BD58(globalCtx, 0x24);
|
||||
break;
|
||||
case 2:
|
||||
func_8010BD58(globalCtx, 0x27);
|
||||
break;
|
||||
case 4:
|
||||
func_8010BD58(globalCtx, 0x26);
|
||||
break;
|
||||
case 6:
|
||||
func_8010BD58(globalCtx, 0x24);
|
||||
break;
|
||||
default:
|
||||
// "Ocarina Invisible-kun demo start check error source"
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ オカリナ透明君デモ開始チェックエラー原 ☆☆☆☆☆ %d\n" VT_RST,
|
||||
this->unk_150);
|
||||
Actor_Kill(&this->actor);
|
||||
break;
|
||||
}
|
||||
player->stateFlags2 |= 0x800000;
|
||||
this->actionFunc = func_80ABF4C8;
|
||||
} else if ((this->actor.xzDistFromLink < (50.0f + this->unk_15C)) &&
|
||||
(fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) < 40.0f)) {
|
||||
this->unk_15A = 0;
|
||||
player->stateFlags2 |= 0x800000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80ABF4C8(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (globalCtx->msgCtx.unk_E3EE == 4) {
|
||||
this->actionFunc = func_80ABF28C;
|
||||
} else if (globalCtx->msgCtx.unk_E3EE == 3) {
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
if (this->switchFlag >= 0) {
|
||||
Flags_SetSwitch(globalCtx, this->switchFlag);
|
||||
}
|
||||
switch (this->unk_150) {
|
||||
case 1:
|
||||
Flags_SetSwitch(globalCtx, this->switchFlag);
|
||||
gSaveContext.eventChkInf[3] |= 0x200;
|
||||
break;
|
||||
case 2:
|
||||
globalCtx->csCtx.segment = D_80ABF9D0;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
func_800F574C(1.18921f, 0x5A);
|
||||
break;
|
||||
case 4:
|
||||
globalCtx->csCtx.segment = D_80ABFB40;
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
break;
|
||||
case 6:
|
||||
globalCtx->csCtx.segment =
|
||||
(LINK_IS_ADULT) ? SEGMENTED_TO_VIRTUAL(&D_02003C80) : SEGMENTED_TO_VIRTUAL(&D_02005020);
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
gSaveContext.eventChkInf[1] |= 0x2000;
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
globalCtx->msgCtx.unk_E3EE = 4;
|
||||
this->actionFunc = func_80ABF28C;
|
||||
} else {
|
||||
if (globalCtx->msgCtx.unk_E3EE >= 5) {
|
||||
if (globalCtx->msgCtx.unk_E3EE < 0xE) {
|
||||
globalCtx->msgCtx.unk_E3EE = 4;
|
||||
this->actionFunc = func_80ABF28C;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (globalCtx->msgCtx.unk_E3EE == 1) {
|
||||
player->stateFlags2 |= 0x800000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80ABF708(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
s16 yawDiff;
|
||||
s16 yawDiffNew;
|
||||
|
||||
if (func_8002F194(&this->actor, globalCtx) != 0) {
|
||||
this->actionFunc = func_80ABF7CC;
|
||||
} else {
|
||||
yawDiff = this->actor.yawTowardsLink - this->actor.posRot.rot.y;
|
||||
this->unk_15A++;
|
||||
if (!(this->actor.xzDistFromLink > 120.0f)) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_SONG_SUN)) {
|
||||
// "This poem is dedicated to the memory of the dearly departed members of the Royal Family."
|
||||
this->actor.textId = 0x5021;
|
||||
}
|
||||
yawDiffNew = ABS(yawDiff);
|
||||
if (yawDiffNew < 0x4300) {
|
||||
this->unk_15A = 0;
|
||||
func_8002F2CC(&this->actor, globalCtx, 70.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80ABF7CC(EnOkarinaTag* this, GlobalContext* globalCtx) {
|
||||
// "Open sesame sesame!"
|
||||
osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 開けゴマゴマゴマ! ☆☆☆☆☆ %d\n" VT_RST, func_8010BDBC(&globalCtx->msgCtx));
|
||||
|
||||
if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) {
|
||||
func_80106CCC(globalCtx);
|
||||
if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) {
|
||||
globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_020024A0);
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
}
|
||||
this->actionFunc = func_80ABF708;
|
||||
}
|
||||
}
|
||||
|
||||
void EnOkarinaTag_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnOkarinaTag* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
if (BREG(0) != 0) {
|
||||
if (this->unk_15A != 0) {
|
||||
if (!(this->unk_15A & 1)) {
|
||||
DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z,
|
||||
this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z,
|
||||
1.0f, 1.0f, 1.0f, 120, 120, 120, 255, 4, globalCtx->state.gfxCtx);
|
||||
}
|
||||
} else {
|
||||
DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z,
|
||||
this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, 1.0f,
|
||||
1.0f, 1.0f, 255, 0, 0, 255, 4, globalCtx->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,18 @@
|
|||
|
||||
struct EnOkarinaTag;
|
||||
|
||||
typedef void (*EnOkarinaTagActionFunc)(struct EnOkarinaTag*, GlobalContext*);
|
||||
|
||||
typedef struct EnOkarinaTag {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x14];
|
||||
/* 0x014C */ EnOkarinaTagActionFunc actionFunc;
|
||||
/* 0x0150 */ s16 unk_150;
|
||||
/* 0x0152 */ s16 unk_152;
|
||||
/* 0x0154 */ s16 switchFlag;
|
||||
/* 0x0156 */ char unk_156[0x2];
|
||||
/* 0x0158 */ s16 unk_158;
|
||||
/* 0x015A */ s16 unk_15A;
|
||||
/* 0x015C */ f32 unk_15C;
|
||||
} EnOkarinaTag; // size = 0x0160
|
||||
|
||||
extern const ActorInit En_Okarina_Tag_InitVars;
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
#include "z_en_okarina_tag.h"
|
||||
#include <z64cutscene_commands.h>
|
||||
|
||||
// clang-format off
|
||||
CutsceneData D_80ABF9D0[] = {
|
||||
CS_BEGIN_CUTSCENE(4, 360),
|
||||
CS_TERMINATOR(KAKARIKO_VILLAGE_DRAIN_WELL, 200, 201),
|
||||
CS_CAM_POS_LIST(0, 331),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3235),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3336),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x392C),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3235),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3238),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3639),
|
||||
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20),
|
||||
CS_CAM_FOCUS_POINT_LIST(0, 360),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3235),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3336),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 90, 60.0f, 3054, 137, -64, 0x392C),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 90, 60.0f, 3118, 142, 96, 0x2C20),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3235),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3238),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3639),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, 3118, 142, 96, 0x2C20),
|
||||
CS_MISC_LIST(1),
|
||||
CS_MISC(0x0013, 30, 31, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000002, 0xFFFFFFFE, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000),
|
||||
CS_END(),
|
||||
};
|
||||
|
||||
CutsceneData D_80ABFB40[] = {
|
||||
CS_BEGIN_CUTSCENE(18, 3000),
|
||||
CS_UNK_DATA_LIST(0x00000021, 1),
|
||||
CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFAA, 0xFFFFFFAE, 0x00000000, 0xFFFFFFAA, 0xFFFFFFAE, 0x00000000, 0x00000000, 0x00000000),
|
||||
CS_PLAYER_ACTION_LIST(3),
|
||||
CS_PLAYER_ACTION(0x0011, 0, 80, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f),
|
||||
CS_PLAYER_ACTION(0x0012, 80, 201, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f),
|
||||
CS_PLAYER_ACTION(0x0005, 201, 662, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f),
|
||||
CS_MISC_LIST(1),
|
||||
CS_MISC(0x000D, 510, 611, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000),
|
||||
CS_NPC_ACTION_LIST(48, 1),
|
||||
CS_NPC_ACTION(0x0003, 160, 289, 0x0000, 0x0000, 0x0000, 0, 20, 1400, 0, 60, 1400, 0.0f, 0.3100775182247162f, 0.0f),
|
||||
CS_NPC_ACTION_LIST(48, 3),
|
||||
CS_NPC_ACTION(0x0004, 340, 420, 0x0000, 0x0000, 0x0000, 0, 120, 1335, 0, 40, 1335, 0.0f, -1.0f, 0.0f),
|
||||
CS_NPC_ACTION(0x0004, 420, 465, 0x0000, 0x0000, 0x0000, 0, 40, 1335, 0, 16, 1335, 0.0f, -0.5333333611488342f, 0.0f),
|
||||
CS_NPC_ACTION(0x0002, 465, 519, 0x0000, 0x0000, 0x0000, 0, 16, 1335, 0, 16, 1335, 0.0f, 0.0f, 0.0f),
|
||||
CS_MISC_LIST(1),
|
||||
CS_MISC(0x0003, 620, 621, 0x0000, 0x00000000, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000),
|
||||
CS_SCENE_TRANS_FX(0x0001, 338, 341),
|
||||
CS_SCENE_TRANS_FX(0x0005, 344, 349),
|
||||
CS_MISC_LIST(1),
|
||||
CS_MISC(0x000C, 790, 791, 0x0000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000),
|
||||
CS_SCENE_TRANS_FX(0x0001, 157, 160),
|
||||
CS_SCENE_TRANS_FX(0x0005, 159, 166),
|
||||
CS_PLAY_BGM_LIST(1),
|
||||
CS_PLAY_BGM(0x005A, 560, 561, 0x0000, 0x00000000, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0x00000000, 0x00000004),
|
||||
CS_CAM_POS_LIST(0, 451),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xA220),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xB820),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xD0A1),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 27, 1445, 0xBAEE),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 56, 27, 1385, 0xA5AF),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -19, 27, 1341, 0xAE0A),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA8A5),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5ED),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA220),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A4),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0x20BA),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xC9A5),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A2),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5BB),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xAE0A),
|
||||
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -44, -4, 1429, 0xB3A5),
|
||||
CS_CAM_POS_LIST(340, 1461),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA220),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xB820),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xD0A1),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xBAEE),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA5AF),
|
||||
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -6, 15, 1560, 0xAE0A),
|
||||
CS_CAM_POS_LIST(490, 941),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xA220),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xB820),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xD0A1),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xBAEE),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 153, 1379, 0xA5AF),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 55, 32, 1398, 0xAE0A),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA8A5),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5ED),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA220),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A4),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0x20BA),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xC9A5),
|
||||
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A2),
|
||||
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5BB),
|
||||
CS_CAM_FOCUS_POINT_LIST(0, 480),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xA220),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xB820),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xD0A1),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, -8, 1391, 0xBAEE),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, -5, 1398, 0xA5AF),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -2, -3, 1394, 0xAE0A),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 5, 0, 1399, 0xA8A5),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, 14, 1399, 0xA5ED),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -9, 33, 1402, 0xA220),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A4),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0x20BA),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xC9A5),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A2),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5BB),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xAE0A),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, -14, 41, 1409, 0xB3A5),
|
||||
CS_CAM_FOCUS_POINT_LIST(340, 1490),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xA220),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xB820),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 60.0f, -3, 48, 1414, 0xD0A1),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xBAEE),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 47, 1414, 0xA5AF),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, -3, 47, 1414, 0xAE0A),
|
||||
CS_CAM_FOCUS_POINT_LIST(490, 970),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xA220),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xB820),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xD0A1),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xBAEE),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 170, 1275, 0xA5AF),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 10, 51, 1306, 0xAE0A),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA8A5),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5ED),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA220),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A4),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0x20BA),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xC9A5),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A2),
|
||||
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5BB),
|
||||
CS_END(),
|
||||
};
|
||||
// clang-format on
|
Loading…
Add table
Add a link
Reference in a new issue