diff --git a/include/command_macros_base.h b/include/command_macros_base.h new file mode 100644 index 0000000000..8d0a3917ae --- /dev/null +++ b/include/command_macros_base.h @@ -0,0 +1,19 @@ +#ifndef _COMMAND_MACROS_BASE_H_ +#define _COMMAND_MACROS_BASE_H_ + +/** + * Command Base macros intended for use in designing of more specific command macros + * Each macro packs bytes (B), halfowrds (H) and words (W, for consistency) into a single word + */ + +#define CMD_BBBB(a, b, c, d) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 8, 8) | _SHIFTL(d, 0, 8)) + +#define CMD_BBH(a, b, c) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 0, 16)) + +#define CMD_HBB(a, b, c) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 8, 8) | _SHIFTL(c, 0, 8)) + +#define CMD_HH(a, b) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16)) + +#define CMD_W(a) (a) + +#endif diff --git a/include/z64.h b/include/z64.h index 71e7b9257e..6700ef24ed 100644 --- a/include/z64.h +++ b/include/z64.h @@ -571,7 +571,7 @@ typedef struct { /* 0x1C */ CutsceneCameraPoint* cameraFocus; /* 0x20 */ CutsceneCameraPoint* cameraPosition; /* 0x24 */ CsCmdActorAction* linkAction; - /* 0x28 */ CsCmdActorAction* actorActions[10]; // "npcdemopnt" + /* 0x28 */ CsCmdActorAction* npcActions[10]; // "npcdemopnt" } CutsceneContext; // size = 0x50 typedef struct { diff --git a/include/z64cutscene.h b/include/z64cutscene.h index 0441fd9b6e..a9e61e64fa 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -1,6 +1,8 @@ #ifndef _Z64CUTSCENE_H_ #define _Z64CUTSCENE_H_ +#include + typedef struct { /* 0x00 */ u16 entrance; // entrance index upon which the cutscene should trigger /* 0x02 */ u8 ageRestriction; // 0 for adult only, 1 for child only, 2 for both ages @@ -92,13 +94,13 @@ typedef enum { CS_CMD_CAMERA_FOCUS = 0x0002, CS_CMD_MISC = 0x0003, CS_CMD_SET_LIGHTING = 0x0004, - CS_CMD_CAMERA_POS_LINK = 0x0005, - CS_CMD_CAMERA_FOCUS_LINK = 0x0006, + CS_CMD_CAMERA_POS_PLAYER = 0x0005, + CS_CMD_CAMERA_FOCUS_PLAYER = 0x0006, CS_CMD_07 = 0x0007, CS_CMD_08 = 0x0008, CS_CMD_09 = 0x0009, CS_CMD_TEXTBOX = 0x0013, - CS_CMD_SET_ACTOR_ACTION_0 = 0x000A, + CS_CMD_SET_PLAYER_ACTION = 0x000A, CS_CMD_SET_ACTOR_ACTION_1 = 0x000F, CS_CMD_SET_ACTOR_ACTION_2 = 0x000E, CS_CMD_SET_ACTOR_ACTION_3 = 0x0019, @@ -119,4 +121,180 @@ typedef enum { CS_CMD_END = 0xFFFF } CutsceneCmd; +/** + * Special type for blocks of cutscene data, asm-processor checks + * arrays for CutsceneData type and converts floats within the array + * to their IEEE-754 representation. The array must close with }; + * on its own line. + * + * Files that contain this type that are included in other C files + * must include an 'EARLY' qualifier to inform asm-processor that it + * must recursively process that include. + * + * Example: #include "file.c" EARLY + */ +typedef union CutsceneData { + s32 i; + f32 f; + s16 s[2]; + s8 b[4]; +} CutsceneData; + +#define CS_CMD_CONTINUE 0x00 +#define CS_CMD_STOP 0xFF + +typedef enum { + /* 0x00 */ OCARINA_ACTION_UNK_0, + /* 0x01 */ OCARINA_ACTION_FREE_PLAY_OCARINA, + /* 0x02 */ OCARINA_ACTION_MINUET, + /* 0x03 */ OCARINA_ACTION_BOLERO, + /* 0x04 */ OCARINA_ACTION_SERENADE, + /* 0x05 */ OCARINA_ACTION_REQUIEM, + /* 0x06 */ OCARINA_ACTION_NOCTURNE, + /* 0x07 */ OCARINA_ACTION_PRELUDE, + /* 0x08 */ OCARINA_ACTION_SARIAS_SONG, + /* 0x09 */ OCARINA_ACTION_EPONAS_SONG, + /* 0x0A */ OCARINA_ACTION_ZELDAS_LULLABY, + /* 0x0B */ OCARINA_ACTION_SUNS_SONG, + /* 0x0C */ OCARINA_ACTION_SONG_OF_TIME, + /* 0x0D */ OCARINA_ACTION_SONG_OF_STORMS, + /* 0x0E */ OCARINA_ACTION_OCARINA_ACTION_UNK_E, + /* 0x0F */ OCARINA_ACTION_MINUET_PLAYBACK, + /* 0x10 */ OCARINA_ACTION_BOLERO_PLAYBACK, + /* 0x11 */ OCARINA_ACTION_SERENADE_PLAYBACK, + /* 0x12 */ OCARINA_ACTION_REQUIEM_PLAYBACK, + /* 0013 */ OCARINA_ACTION_NOCTURNE_PLAYBACK, + /* 0x14 */ OCARINA_ACTION_PRELUDE_PLAYBACK, + /* 0x15 */ OCARINA_ACTION_SARIAS_SONG_PLAYBACK, + /* 0x16 */ OCARINA_ACTION_EPONAS_SONG_PLAYBACK, + /* 0x17 */ OCARINA_ACTION_ZELDAS_LULLABY_PLAYBACK, + /* 0x18 */ OCARINA_ACTION_SUNS_SONG_PLAYBACK, + /* 0x19 */ OCARINA_ACTION_SONG_OF_TIME_PLAYBACK, + /* 0x1A */ OCARINA_ACTION_SONG_OF_STORMS_PLAYBACK +} OcarinaSongActionIDs; + +// TODO confirm correctness, clarify names +typedef enum { + /* 0x00 */ INVALID_DESTINATION_0, + /* 0x01 */ CUTSCENE_MAP_GANON_HORSE, + /* 0x02 */ CUTSCENE_MAP_THREE_GODESSES_POST_DEKU_TREE, + /* 0x03 */ GERUDO_VALLEY_DIN, + /* 0x04 */ DEATH_MOUNTAIN_TRAIL_NAYRU, + /* 0x05 */ KOKIRI_FOREST_FARORE, + /* 0x06 */ CUTSCENE_MAP_TRIFORCE_CREATION, + /* 0x07 */ KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD, + /* 0x08 */ TEMPLE_OF_TIME_AFTER_USE_MS, + /* 0x09 */ GERUDO_VALLEY_DIN_2, + /* 0x0A */ LINKS_HOUSE_INTRO, + /* 0x0B */ KOKIRI_FOREST_INTRO, + /* 0x0C */ DEATH_MOUNTAIN_TRAIL_AFTER_GORON_RUBY, + /* 0x0D */ ZORAS_FOUNTAIN_AFTER_ZORAS_SAPPHIRE, + /* 0x0E */ KOKIRI_FOREST_AFTER_KOKIRI_EMERALD, + /* 0x0F */ TEMPLE_OF_TIME_KOKIRI_EMERALD, //unused + /* 0x10 */ TEMPLE_OF_TIME_GORON_RUBY, //unused + /* 0x11 */ TEMPLE_OF_TIME_ZORAS_SAPPHIRE, //unused + /* 0x12 */ TEMPLE_OF_TIME_AFTER_USE_MS_FIRST, + /* 0x13 */ DEATH_MOUNTAIN_TRAIL_AFTER_INTRO, + /* 0x14 */ INVALID_DESTINATION_14, + /* 0x15 */ LAKE_HYLIA_WATER_RISES, + /* 0x16 */ DESERT_COLOSSUS_REQUIEM, + /* 0x17 */ CUTSCENE_MAP_CURSE_YOU, + /* 0x18 */ JABU_JABU_INTRO, + /* 0x19 */ CHAMBER_OF_SAGES_LIGHT_MEDALLION, + /* 0x1A */ TEMPLE_OF_TIME_KOKIRI_EMERALD_2, //duplicate of 0x000F + /* 0x1B */ TEMPLE_OF_TIME_GORON_RUBY_2, //duplicate of 0x0010 + /* 0x1C */ TEMPLE_OF_TIME_ZORAS_SAPPHIRE_2, //duplicate of 0x0011 + /* 0x1D */ CHAMBER_OF_SAGES_FOREST_MEDALLION, + /* 0x1E */ CHAMBER_OF_SAGES_FIRE_MEDALLION, + /* 0x1F */ CHAMBER_OF_SAGES_WATER_MEDALLION, + /* 0x20 */ HYRULE_FIELD_FLASHBACK, //lacs part 4 + /* 0x21 */ HYRULE_FIELD_AFTER_LAKE_HYLIA_OWL, + /* 0x22 */ CUTSCENE_MAP_GANON_AFTER_USE_MS, + /* 0x23 */ HYRULE_FIELD_INTRO_ZELDA_ESCAPE, + /* 0x24 */ INVALID_DESTINATION_24, + /* 0x25 */ INVALID_DESTINATION_25, + /* 0x26 */ CUTSCENE_MAP_SHEIKAH_LEGEND, //lacs part 2 + /* 0x27 */ TEMPLE_OF_TIME_ZELDA_REVEAL, //lacs part 3 + /* 0x28 */ TEMPLE_OF_TIME_GET_LIGHT_ARROWS, //lacs part 5 + /* 0x29 */ LAKE_HYLIA_AFTER_BLUE_WARP, + /* 0x2A */ KAKARIKO_VILLAGE_DRAIN_WELL, + /* 0x2B */ WINDMILL_AFTER_DRAIN_WELL, + /* 0x2C */ TEMPLE_OF_TIME_AFTER_DOOR_OF_TIME_OPENS, + /* 0x2D */ INVALID_DESTINATION_2D, + /* 0x2E */ TEMPLE_OF_TIME_AFTER_USE_MS_FIRST_2, // duplicate of 0x0012 + /* 0x2F */ KAKARIKO_VILLAGE_NOCTURNE_PART_2, + /* 0x30 */ DESERT_COLOSSUS_AFTER_REQUIEM, + /* 0x31 */ TEMPLE_OF_TIME_AFTER_LIGHT_ARROWS, + /* 0x32 */ KAKARIKO_VILLAGE_AFTER_NOCTURNE, + /* 0x33 */ HYRULE_FIELD_IMPA_ESCORT_CS, + /* 0x34 */ TEMPLE_OF_TIME_SONG_OF_TIME, + /* 0x35 */ HYRULE_FIELD_AFTER_SONG_OF_TIME, + /* 0x36 */ GERUDO_VALLEY_CREDITS, + /* 0x37 */ GERUDO_FORTRESS_CREDITS, + /* 0x38 */ KAKARIKO_VILLAGE_CREDITS, + /* 0x39 */ DEATH_MOUNTAIN_TRAIL_CREDITS_1, + /* 0x3A */ GORON_CITY_CREDITS, // unused? + /* 0x3B */ LAKE_HYLIA_CREDITS, + /* 0x3C */ ZORAS_FOUNTAIN_CREDITS, // unused + /* 0x3D */ ZORAS_DOMAIN_CREDITS, + /* 0x3E */ KOKIRI_FOREST_CREDITS_1, + /* 0x3F */ KOKIRI_FOREST_CREDITS_2, + /* 0x40 */ HYRULE_FIELD_CREDITS, + /* 0x41 */ LON_LON_RANCH_CREDITS_1, + /* 0x42 */ KAKARIKO_VILLAGE_AFTER_TRAIL_OWL, + /* 0x43 */ HTRULE_FIELD_UNUSED_ENTRANCE, + /* 0x44 */ CUTSCENE_MAP_FIRE, + /* 0x45 */ KOKIRI_FOREST_POST_FOREST_MEDALLION, + /* 0x46 */ DEATH_MOUNTAIN_TRAIL_CREDITS_2, + /* 0x47 */ TEMPLE_OF_TIME_CREDITS, + /* 0x48 */ ZELDAS_COURTYARD_CREDITS, + /* 0x49 */ LON_LON_RANCH_CREDITS_1_2, // duplicate of 0x0041 + /* 0x4A */ LON_LON_RANCH_CREDITS_2, + /* 0x4B */ LON_LON_RANCH_CREDITS_3, + /* 0x4C */ LON_LON_RANCH_CREDITS_4, + /* 0x4D */ LON_LON_RANCH_CREDITS_5, + /* 0x4E */ LON_LON_RANCH_CREDITS_6, + /* 0x4F */ LON_LON_RANCH_NO_CS_1, + /* 0x50 */ LON_LON_RANCH_NO_CS_2, + /* 0x51 */ LON_LON_RANCH_NO_CS_3, + /* 0x52 */ LON_LON_RANCH_NO_CS_4, + /* 0x53 */ LON_LON_RANCH_NO_CS_5, + /* 0x54 */ LON_LON_RANCH_NO_CS_6, + /* 0x55 */ LON_LON_RANCH_NO_CS_7, + /* 0x56 */ LON_LON_RANCH_NO_CS_8, + /* 0x57 */ LON_LON_RANCH_NO_CS_9, + /* 0x58 */ LON_LON_RANCH_NO_CS_10, + /* 0x59 */ LON_LON_RANCH_NO_CS_11, + /* 0x5A */ LON_LON_RANCH_NO_CS_12, + /* 0x5B */ LON_LON_RANCH_NO_CS_13, + /* 0x5C */ LON_LON_RANCH_NO_CS_14, + /* 0x5D */ LON_LON_RANCH_NO_CS_15, + /* 0x5E */ LON_LON_RANCH_NO_CS_EPONAS_SONG, + /* 0x5F */ CONDITIONAL_DESTINATION, // TODO more descriptive name? + /* 0x60 */ DESERT_COLOSSUS_SPIRIT_BLUE_WARP, + /* 0x61 */ GRAVEYARD_AFTER_SHADOW_BLUE_WARP, + /* 0x62 */ DEATH_MOUNTAIN_CRATER_AFTER_FIRE_BLUE_WARP, + /* 0x63 */ SACRED_FOREST_MEADOW_AFTER_FOREST_BLUE_WARP, + /* 0x64 */ KOKIRI_FOREST_AFTER_FOREST_BLUE_WARP, + /* 0x65 */ DESERT_COLOSSUS_AFTER_SILVER_GAUNTLETS, + /* 0x66 */ TEMPLE_OF_TIME_FRONT_OF_PEDESTAL, + /* 0x67 */ HYRULE_FIELD_TITLE_SCREEN, + /* 0x68 */ SPIRIT_TEMPLE_BOSS_TITLE_SCREEN, + /* 0x69 */ GRAVEYARD_SUNS_SONG, + /* 0x6A */ ROYAL_FAMILYS_TOMB_SUNS_SONG, + /* 0x6B */ GANONS_CASTLE_AFTER_FOREST_TRIAL, + /* 0x6C */ GANONS_CASTLE_AFTER_WATER_TRIAL, + /* 0x6D */ GANONS_CASTLE_AFTER_SHADOW_TRIAL, + /* 0x6E */ GANONS_CASTLE_AFTER_FIRE_TRIAL, + /* 0x6F */ GANONS_CASTLE_AFTER_LIGHT_TRIAL, + /* 0x70 */ GANONS_CASTLE_AFTER_SPIRIT_TRIAL, + /* 0x71 */ GANONS_CASTLE_DISPEL_BARRIER_IF_CONDITIONS, + /* 0x72 */ HYRULE_FIELD_INTRO, + /* 0x73 */ HYRULE_FIELD_AFTER_IMPA_ESCORT, + /* 0x74 */ DESERT_COLOSSUS_SPIRIT_BLUE_WARP_2, + /* 0x75 */ HYRULE_FIELD_SKY, + /* 0x76 */ GANON_BATTLE_TOWER_COLLAPSE, + /* 0x77 */ ZELDAS_COURTYARD_RECEIVE_LETTER +} CutsceneTerminatorDestination; + #endif diff --git a/include/z64cutscene_commands.h b/include/z64cutscene_commands.h new file mode 100644 index 0000000000..074b40c5c3 --- /dev/null +++ b/include/z64cutscene_commands.h @@ -0,0 +1,442 @@ +#ifndef _Z64CUTSCENE_CMMANDS_H_ +#define _Z64CUTSCENE_CMMANDS_H_ + +#include +#include + +/** + * ARGS + * s32 totalEntries (e), s32 endFrame (n) + * FORMAT + * eeeeeeee nnnnnnnn + * size = 0x8 + */ +#define CS_BEGIN_CUTSCENE(totalEntries, endFrame) CMD_W(totalEntries), CMD_W(endFrame) + +/** + * ARGS + * s16 startFrame (s), s16 endFrame (e) + * FORMAT + * 00000001 0001ssss eeee0000 + * size = 0xC + */ +#define CS_CAM_POS_LIST(startFrame, endFrame) \ + CS_CMD_CAMERA_POS, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CAM_POS(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s16 startFrame (s), s16 endFrame (e) + * FORMAT + * 00000002 0001ssss eeee0000 + * size = 0xC + */ +#define CS_CAM_FOCUS_POINT_LIST(startFrame, endFrame) \ + CS_CMD_CAMERA_FOCUS, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CAM_FOCUS_POINT(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000003 eeeeeeee + * size = 0x8 + */ +#define CS_MISC_LIST(entries) CS_CMD_MISC, CMD_W(entries) + +/** + * ARGS + * s16 unk (u), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * uuuussss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * size = 0x30 + */ +#define CS_MISC(unk, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8, unused9, unused10) \ + CMD_HH(unk, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), CMD_W(unused8), CMD_W(unused9), CMD_W(unused10) + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000004 eeeeeeee + * size = 0x8 + */ +#define CS_LIGHTING_LIST(entries) CS_CMD_SET_LIGHTING, CMD_W(entries) + +/** + * ARGS + * s16 setting (m), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * mmmmssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 + * size = 0x30 + */ +#define CS_LIGHTING(setting, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH(setting, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * ARGS + * s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused , may be consistently zero + * 00000005 0001ssss eeee0000 + * size = 0xC + */ +#define CS_CAM_POS_PLAYER_LIST(startFrame, endFrame) \ + CS_CMD_CAMERA_POS_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CAM_POS_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused , may be consistently zero + * 00000006 0001ssss eeee0000 + * size = 0xC + */ +#define CS_CAM_FOCUS_POINT_PLAYER_LIST(startFrame, endFrame) \ + CS_CMD_CAMERA_FOCUS_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CAM_FOCUS_POINT_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s16 unk (u), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * 00000007 uuuussss eeeeUUUU + * size = 0xC + */ +#define CS_CMD_07_LIST(unk, startFrame, endFrame, unused) \ + CS_CMD_07, CMD_HH(unk, startFrame), CMD_HH(endFrame, unused) + +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CMD_07(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s16 unk (u), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * 00000008 uuuussss eeeeUUUU + * size = 0xC + */ +#define CS_CMD_08_LIST(unk, startFrame, endFrame, unused) \ + CS_CMD_08, CMD_HH(unk, startFrame), CMD_HH(endFrame, unused) + +/** + * ARGS + * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), + * s16 xPos (x), s16 yPos (y), s16 zPos (z) + * FORMAT + * Capital U is Unused + * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU + * size = 0x10 + */ +#define CS_CMD_08(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_W(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000009 eeeeeeee + * size = 0x8 + */ +#define CS_CMD_09_LIST(entries) CS_CMD_09, CMD_W(entries) + +/** + * ARGS + * s16 unk (u), s16 startFrame (s), s16 endFrame (e), s16 unk2 (v), s16 unk3 (w), s16 unk4 (x) + * FORMAT + * Capital U is Unused + * uuuussss eeeevvww xxUUUUUU + * size = 0xC + */ +#define CS_CMD_09(unk, startFrame, endFrame, unk2, unk3, unk4, unused0, unused1) \ + CMD_HH(unk, startFrame), CMD_HBB(endFrame, unk2, unk3), CMD_BBH(unk4, unused0, unused1) + +/** + * ARGS + * s32 cmdType (c), s32 entries (e) + * FORMAT + * cccccccc eeeeeeee + * size = 0x8 + */ +#define CS_UNK_DATA_LIST(cmdType, entries) CMD_W(cmdType), CMD_W(entries) + +/** + * ARGS + * s32 unk1 (a), s32 unk2 (b), s32 unk3 (c), s32 unk4 (d), s32 unk5 (e), s32 unk6 (f), + * s32 unk7 (g), s32 unk8 (h), s32 unk9 (i), s32 unk10 (j), s32 unk11 (k), s32 unk12 (l) + * FORMAT + * aaaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll + * size = 0x30 + */ +#define CS_UNK_DATA(unk1, unk2, unk3, unk4, unk5, unk6, unk7, unk8, unk9, unk10, unk11, unk12) \ + CMD_W(unk1), CMD_W(unk2), CMD_W(unk3), CMD_W(unk4), CMD_W(unk5), CMD_W(unk6), \ + CMD_W(unk7), CMD_W(unk8), CMD_W(unk9), CMD_W(unk10), CMD_W(unk11), CMD_W(unk12) + +/** + * ARGS + * s32 cmdType (c), s32 entries (e) + * FORMAT + * cccccccc eeeeeeee + * size = 0x8 + */ +#define CS_NPC_ACTION_LIST(cmdType, entries) CMD_W(cmdType), CMD_W(entries) + +/** + * ARGS + * s16 npcAction (a), s16 startFrame (s), s16 endFrame (e), + * s16 rotX (u), s16 rotY (v), s16 rotZ (w), + * s32 startX (i), s32 startY (j), s32 startZ (k), + * s32 endX (l), s32 endY (m), s32 endZ (n), + * f32 normX (x), f32 normY (y), f32 normZ (z), + * FORMAT + * aaaassss eeeeuuuu vvvvwwww iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn xxxxxxxx yyyyyyyy zzzzzzzz + * size = 0x30 + */ +#define CS_NPC_ACTION(npcAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) \ + CMD_HH(npcAction, startFrame), CMD_HH(endFrame, rotX), CMD_HH(rotY, rotZ), \ + CMD_W(startX), CMD_W(startY), CMD_W(startZ), \ + CMD_W(endX), CMD_W(endY), CMD_W(endZ), \ + CMD_W(normX), CMD_W(normY), CMD_W(normZ) + +/** + * ARGS + * s32 cmdType (c), s32 entries (e) + * FORMAT + * cccccccc eeeeeeee + * size = 0x8 + */ +#define CS_PLAYER_ACTION_LIST(entries) CS_CMD_SET_PLAYER_ACTION, CMD_W(entries) + +/** + * ARGS + * s16 linkAction (a), s16 startFrame (s), s16 endFrame (e), + * s16 rotX (u), s16 rotY (v), s16 rotZ (w), + * s32 startX (i), s32 startY (j), s32 startZ (k), + * s32 endX (l), s32 endY (m), s32 endZ (n), + * f32 normX (x), f32 normY (y), f32 normZ (z), + * FORMAT + * aaaassss eeeeuuuu vvvvwwww iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn xxxxxxxx yyyyyyyy zzzzzzzz + * size = 0x30 + */ +#define CS_PLAYER_ACTION(linkAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) \ + CS_NPC_ACTION(linkAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000013 eeeeeeee + * size = 0x8 + */ +#define CS_TEXT_LIST(entries) CS_CMD_TEXTBOX, CMD_W(entries) + +/** + * ARGS + * s16 messageId (i), s16 startFrame (s), s16 endFrame (e), s16 type (o), + * s16 topOptionBranch (y), s16 bottomOptionBranch (n) + * FORMAT + * iiiissss eeeeoooo yyyynnnn + * size = 0xC + */ +#define CS_TEXT_DISPLAY_TEXTBOX(messageId, startFrame, endFrame, type, topOptionBranch, bottomOptionBranch) \ + CMD_HH(messageId, startFrame), CMD_HH(endFrame, type), CMD_HH(topOptionBranch, bottomOptionBranch) + +/** + * ARGS + * s16 startFrame (s), s16 endFrame (e) + * FORMAT + * FFFFssss eeeeFFFF FFFFFFFF + * size = 0xC + */ +#define CS_TEXT_NONE(startFrame, endFrame) \ + CS_TEXT_DISPLAY_TEXTBOX(0xFFFF, startFrame, endFrame, 0xFFFF, 0xFFFF, 0xFFFF) + +/** + * ARGS + * s16 ocarinaSongAction (o), s16 startFrame (s), s16 endFrame (e), s16 topOptionBranch (i) + * FORMAT + * oooossss eeee0002 iiiiFFFF + * size = 0xC + */ +#define CS_TEXT_LEARN_SONG(ocarinaSongAction, startFrame, endFrame, messageId) \ + CS_TEXT_DISPLAY_TEXTBOX(ocarinaSongAction, startFrame, endFrame, 0x0002, messageId, 0xFFFF) + +/** + * ARGS + * s16 transitionType (t), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused , endFrame duplicate + * 0000002D 00000001 ttttssss eeeeUUUU + * size = 0x10 + */ +#define CS_SCENE_TRANS_FX(transitionType, startFrame, endFrame) \ + CS_CMD_SCENE_TRANS_FX, 0x00000001, CMD_HH(transitionType, startFrame), CMD_HH(endFrame, endFrame) + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000056 eeeeeeee + * size = 0x8 + */ +#define CS_PLAY_BGM_LIST(entries) CS_CMD_PLAYBGM, CMD_W(entries) + +/** + * ARGS + * s16 sequence (q), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * qqqqssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 + * size = 0x30 + */ +#define CS_PLAY_BGM(sequence, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH(sequence, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 00000057 eeeeeeee + * size = 0x8 + */ +#define CS_STOP_BGM_LIST(entries) CS_CMD_STOPBGM, CMD_W(entries) + +/** + * ARGS + * s16 sequence (q), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * uuqqssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 + * size = 0x30 + */ +#define CS_STOP_BGM(sequence, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH(sequence, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 0000007C eeeeeeee + * size = 0x8 + */ +#define CS_FADE_BGM_LIST(entries) CS_CMD_FADEBGM, CMD_W(entries) + +/** + * ARGS + * s16 fadeType (t), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused + * ttttssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 + * size = 0x30 + */ +#define CS_FADE_BGM(fadeType, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH(fadeType, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * ARGS + * s32 entries (e) + * FORMAT + * 0000008C eeeeeeee + * size = 0x8 + */ +#define CS_TIME_LIST(entries) CS_CMD_SETTIME, CMD_W(entries) + +/** + * ARGS + * s16 unk (u), s16 startFrame (s), s16 endFrame (e), s8 hour (h), s8 min (m) + * FORMAT + * Capital U is Unused + * uuuussss eeeehhmm UUUUUUUU + * size = 0xC + */ +#define CS_TIME(unk, startFrame, endFrame, hour, min, unused) \ + CMD_HH(unk, startFrame), \ + CMD_HBB(endFrame, hour, min), \ + CMD_W(unused) + +/** + * ARGS + * CutsceneTerminatorDestination dest (d), s16 startFrame (s), s16 endFrame (e) + * FORMAT + * Capital U is Unused , endFrame duplicate + * 000003E8 00000001 ddddssss eeeeUUUU + * size = 0x10 + */ +#define CS_TERMINATOR(dest, startFrame, endFrame) \ + CS_CMD_TERMINATOR, 0x00000001, CMD_HH(dest, startFrame), CMD_HH(endFrame, endFrame) + +/** + * Marks the end of a cutscene + */ +#define CS_END() 0xFFFFFFFF + +#define CS_PAD() 0x00000000 + +#endif diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 7beb6a3108..e67cd51765 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -1594,7 +1594,7 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, cutscenePtr += 0xC; } break; - case CS_CMD_SET_ACTOR_ACTION_0: + case CS_CMD_SET_PLAYER_ACTION: MemCopy(&cmdEntries, cutscenePtr, 4); cutscenePtr += 4; for (j = 0; j < cmdEntries; j++) { @@ -1628,12 +1628,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[0] = (void*)cutscenePtr; + csCtx->npcActions[0] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 14: + case CS_CMD_SET_ACTOR_ACTION_2: case 16: case 24: case 35: @@ -1656,12 +1656,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[1] = (void*)cutscenePtr; + csCtx->npcActions[1] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 25: + case CS_CMD_SET_ACTOR_ACTION_3: case 36: case 41: case 50: @@ -1680,12 +1680,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[2] = (void*)cutscenePtr; + csCtx->npcActions[2] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 29: + case CS_CMD_SET_ACTOR_ACTION_4: case 37: case 42: case 51: @@ -1703,12 +1703,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[3] = (void*)cutscenePtr; + csCtx->npcActions[3] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 30: + case CS_CMD_SET_ACTOR_ACTION_5: case 38: case 43: case 47: @@ -1722,12 +1722,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[4] = (void*)cutscenePtr; + csCtx->npcActions[4] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 44: + case CS_CMD_SET_ACTOR_ACTION_6: case 55: case 77: case 84: @@ -1739,12 +1739,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[5] = (void*)cutscenePtr; + csCtx->npcActions[5] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 31: + case CS_CMD_SET_ACTOR_ACTION_7: case 52: case 57: case 58: @@ -1757,12 +1757,12 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[6] = (void*)cutscenePtr; + csCtx->npcActions[6] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 49: + case CS_CMD_SET_ACTOR_ACTION_8: case 60: case 89: case 111: @@ -1774,18 +1774,18 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[7] = (void*)cutscenePtr; + csCtx->npcActions[7] = (void*)cutscenePtr; } cutscenePtr += 0x30; } break; - case 62: + case CS_CMD_SET_ACTOR_ACTION_9: MemCopy(&cmdEntries, cutscenePtr, 4); cutscenePtr += 4; for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[8] = (void*)cutscenePtr; + csCtx->npcActions[8] = (void*)cutscenePtr; } cutscenePtr += 0x30; } @@ -1796,7 +1796,7 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, for (j = 0; j < cmdEntries; j++) { cmd = (CsCmdBase*)cutscenePtr; if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->actorActions[9] = (void*)cutscenePtr; + csCtx->npcActions[9] = (void*)cutscenePtr; } cutscenePtr += 0x30; } @@ -1804,13 +1804,13 @@ void Cutscene_ProcessCommands(GlobalContext* globalCtx, CutsceneContext* csCtx, case CS_CMD_CAMERA_POS: cutscenePtr += Cutscene_Command_CameraPositions(globalCtx, csCtx, (void*)cutscenePtr, 0); break; - case CS_CMD_CAMERA_POS_LINK: + case CS_CMD_CAMERA_POS_PLAYER: cutscenePtr += Cutscene_Command_CameraPositions(globalCtx, csCtx, (void*)cutscenePtr, 1); break; case CS_CMD_CAMERA_FOCUS: cutscenePtr += Cutscene_Command_CameraFocus(globalCtx, csCtx, (void*)cutscenePtr, 0); break; - case CS_CMD_CAMERA_FOCUS_LINK: + case CS_CMD_CAMERA_FOCUS_PLAYER: cutscenePtr += Cutscene_Command_CameraFocus(globalCtx, csCtx, (void*)cutscenePtr, 1); break; case CS_CMD_07: @@ -1900,7 +1900,7 @@ void func_80068DC0(GlobalContext* globalCtx, CutsceneContext* csCtx) { csCtx->linkAction = NULL; for (i = 0; i < 10; i++) { - csCtx->actorActions[i] = NULL; + csCtx->npcActions[i] = NULL; } // Translates to: "RIGHT HERE, HUH" @@ -1943,7 +1943,7 @@ void func_80068ECC(GlobalContext* globalCtx, CutsceneContext* csCtx) { csCtx->linkAction = NULL; for (i = 0; i < 10; i++) { - csCtx->actorActions[i] = NULL; + csCtx->npcActions[i] = NULL; } csCtx->state++; diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index 3ac50ca8a2..7d7c854386 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -86,8 +86,8 @@ void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx) } void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, GlobalContext* globalCtx) { - if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.actorActions[2] != NULL) && - (globalCtx->csCtx.actorActions[2]->action == 2)) { + if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.npcActions[2] != NULL) && + (globalCtx->csCtx.npcActions[2]->action == 2)) { this->dyna.actor.draw = BgGjyoBridge_Draw; func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); gSaveContext.eventChkInf[4] |= 0x2000; diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index f452c236ff..1f238dce29 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -21,135 +21,7 @@ void func_808BB128(BgTokiSwd* this, GlobalContext* globalCtx); extern u32 D_06001BD0; -static u32 D_808BB2F0[] = { - 0x00000009, 0x000001A9, 0x0000000A, 0x00000001, 0x000C0000, 0x01000000, 0x00000000, 0x00000000, 0x00000036, - 0x00000034, 0x00000000, 0x00000036, 0x00000034, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, - 0x0002006E, 0x006F0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5, - 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x000A006E, 0x006F0000, 0x00000000, 0x00000000, - 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x00000000, 0x00000000, 0x000003E8, - 0x00000001, 0x000800E6, 0x00E700E7, 0x0000002D, 0x00000001, 0x000100D2, 0x00E600E6, 0x00000001, 0x00010000, - 0x00F10000, 0x00000000, 0x42700000, 0xFFD60048, 0xFFD9018C, 0x00000000, 0x42700000, 0xFFD60048, 0xFFD9019D, - 0x00000000, 0x42700000, 0xFFD60048, 0xFFD901AE, 0x00000000, 0x42700000, 0xFFD60048, 0xFFD902A8, 0x00000000, - 0x42700000, 0xFFD60048, 0xFFD90000, 0x00000000, 0x42700000, 0xFFD60048, 0xFFD9007A, 0x00000000, 0x42700000, - 0xFFD60048, 0xFFD90064, 0x00000000, 0x42700000, 0xFFD60048, 0xFFD90074, 0xFF000000, 0x42700000, 0xFFD60048, - 0xFFD9005F, 0x00000001, 0x00010050, 0x01960000, 0x00000000, 0x42700000, 0xFFFF005F, 0xFFED2F73, 0x00000000, - 0x42700000, 0xFFFF005F, 0xFFED6B2F, 0x00000000, 0x42700000, 0xFFFF005F, 0xFFED6169, 0x00000000, 0x42700000, - 0xFFFF005F, 0xFFED0000, 0x00000000, 0x42700000, 0xFFFF005F, 0xFFED0005, 0x00000000, 0x42700000, 0xFFFF0081, - 0xFFDE7961, 0x00000000, 0x42700000, 0xFFFF00AD, 0xFFED742F, 0x00000000, 0x42700000, 0xFFEF00D9, 0xFFEC2E64, - 0x00000000, 0x42700000, 0xFFE80148, 0xFFF40000, 0x00000000, 0x42700000, 0xFFE501FD, 0xFFFE2F73, 0x00000000, - 0x42700000, 0xFFD7032D, 0x000A6B2F, 0x00000000, 0x42700000, 0xFFC40505, 0x00266D61, 0x00000000, 0x42700000, - 0xFFC60776, 0x005B0000, 0x00000000, 0x42700000, 0xFFCB09DE, 0x00850005, 0x00000000, 0x42700000, 0xFFDF0D75, - 0x00C17961, 0x00000000, 0x42700000, 0x00000F78, 0x00E1742F, 0x00000000, 0x42700000, 0x000710DD, 0x00F56565, - 0x00000000, 0x42700000, 0x000710DC, 0x00F50000, 0x00000000, 0x42700000, 0x000710DC, 0x00F52F73, 0xFF000000, - 0x42700000, 0x000710DC, 0x00F56B2F, 0x00000002, 0x00010000, 0x010E0000, 0x0000001E, 0x42700000, 0xFFEC0055, - 0xFFF72F73, 0x0000001E, 0x42700000, 0xFFEC0055, 0xFFF76B2F, 0x0000001E, 0x42700000, 0xFFEC0055, 0xFFF76169, - 0x0000001E, 0x42700000, 0xFFEC0055, 0xFFF70000, 0x0000001E, 0x42700000, 0xFFEC0055, 0xFFF70005, 0x0000001E, - 0x42700000, 0xFFEC0055, 0xFFF77961, 0x0000001E, 0x42700000, 0xFFEC0055, 0xFFF7742F, 0x0000001E, 0x42700000, - 0xFFEC0055, 0xFFF72E64, 0xFF00001E, 0x42700000, 0xFFEC0055, 0xFFF70000, 0x00000002, 0x00010050, 0x01A90000, - 0x00000005, 0x42700000, 0xFFFF0070, 0x00072F73, 0x00000005, 0x42700000, 0xFFFF0070, 0x00076B2F, 0x00000005, - 0x42700000, 0xFFFF0070, 0x00076169, 0x00000005, 0x42700000, 0xFFFF0070, 0x00070000, 0x0000000F, 0x42700000, - 0xFFFF0070, 0x00070005, 0x00000014, 0x42700000, 0xFFFF0075, 0x00077961, 0x00000019, 0x42700000, 0xFFFF0075, - 0x0007742F, 0x00000019, 0x42700000, 0xFFFF0075, 0x00072E64, 0x00000014, 0x42700000, 0xFFFF0075, 0x00070000, - 0x00000014, 0x42700000, 0xFFFF0075, 0x00072F73, 0x00000014, 0x42700000, 0xFFFF0075, 0x00076B2F, 0x00000014, - 0x42700000, 0xFFFF0075, 0x00076D61, 0x00000014, 0x42700000, 0xFFFF0075, 0x00070000, 0x00000014, 0x42700000, - 0xFFFF0075, 0x00070005, 0x00000014, 0x42700000, 0xFFFF0075, 0x00077961, 0x00000014, 0x42700000, 0xFFFF0075, - 0x0007742F, 0x00000014, 0x42700000, 0xFFFF0075, 0x00076565, 0x00000014, 0x42700000, 0xFFFF0075, 0x00070000, - 0x00000014, 0x42700000, 0xFFFF0075, 0x00072F73, 0xFF000014, 0x42700000, 0xFFFF0075, 0x00076B2F, 0xFFFFFFFF, - 0x00000000, 0x00000000, 0x00000000, -}; - -static u32 D_808BB7A0[] = { - 0x00000009, 0x00000170, 0x00000001, 0x00010000, 0x007E0000, 0x00000000, 0x42700000, 0xFFFF0065, 0xFF92616D, - 0x00000000, 0x42200000, 0xFFFF0065, 0xFF926964, 0x00000000, 0x42200000, 0xFFFF0065, 0xFF9200FB, 0x00000000, - 0x42200000, 0xFFFF0065, 0xFF920111, 0x00000000, 0x42200000, 0xFFFF0065, 0xFF93012D, 0x00000000, 0x42200000, - 0xFFFF0047, 0xFF920033, 0x00000000, 0x42200000, 0xFFFF0048, 0xFF9200FB, 0x00000000, 0x42200000, 0xFFFF0048, - 0xFF9200FB, 0x00000000, 0x42200000, 0xFFFF0048, 0xFF922F68, 0xFF000000, 0x42200000, 0xFFFF0048, 0xFF92612F, - 0x00000001, 0x0001003A, 0x01530000, 0x00000000, 0x42700001, 0xFFF7006A, 0xFFFDA1BC, 0x00000000, 0x42700000, - 0xFFF7006A, 0xFFFDA5F3, 0x00000000, 0x42700000, 0xFFF7006A, 0xFFFDA5EB, 0x00000000, 0x42700000, 0xFFF7006A, - 0xFFFDA5A2, 0x00000000, 0x42700000, 0xFFBD006C, 0xFFCBBAEE, 0x00000000, 0x42700000, 0xFFBD006C, 0xFFCBC9B8, - 0x00000000, 0x42700000, 0xFFBD006C, 0xFFCB0020, 0x00000000, 0x42700000, 0xFFBD006C, 0xFFCBA5A4, 0x00000000, - 0x42700000, 0xFFBD006C, 0xFFCB0020, 0x00000000, 0x42700000, 0xFFAD0066, 0xFFD6A5E1, 0x00000000, 0x42700000, - 0xFF8C0051, 0xFFEDA5D0, 0x00000000, 0x42700000, 0xFF8A0051, 0x00360020, 0x00000000, 0x42700000, 0xFF96004E, - 0x0074A5A6, 0x00000000, 0x42700000, 0xFFE5004B, 0x00E2A5E5, 0x00000000, 0x42700000, 0x00790052, 0x0138C0AE, - 0x00000000, 0x42700000, 0x0128004C, 0x0176A5E5, 0x00000000, 0x42700000, 0x02350050, 0x01010020, 0x00000000, - 0x42700000, 0x02660050, 0xFFFFA5EB, 0x00000000, 0x42700000, 0x02520050, 0xFF6FA5E1, 0x00000000, 0x42700000, - 0x01DB0050, 0xFE840020, 0x00000000, 0x42700000, 0x01430050, 0xFDFFA5E1, 0x00000000, 0x42700000, 0x00C00050, - 0xFDC2A5D0, 0x00000000, 0x42700000, 0xFFD30050, 0xFDA40020, 0x00000000, 0x42700000, 0xFF720050, 0xFDB3A5A6, - 0x00000000, 0x42700000, 0xFF1C0050, 0xFDCEA5E5, 0x00000000, 0x42700000, 0xFE88005D, 0xFE23C0AE, 0x00000000, - 0x42700000, 0xFDB8005F, 0xFF49A5E5, 0x00000000, 0x42700000, 0xFD9B005F, 0xFFDE0020, 0xFF000000, 0x42700000, - 0xFDAD005F, 0x00A1A5EB, 0x00000002, 0x00010000, 0x009B0000, 0x00000005, 0x4221999A, 0xFFFF006F, 0x0005A1BC, - 0x00000005, 0x42200000, 0xFFFF006F, 0x0005A5F3, 0x00000005, 0x42200000, 0xFFFF006F, 0x0005A5EB, 0x0000000F, - 0x42200000, 0xFFFF006F, 0x0005A5A2, 0x0000000F, 0x42200000, 0xFFFF006F, 0x0005BAEE, 0x0000000F, 0x42200000, - 0xFFFF0068, 0x0008C9B8, 0x00000005, 0x42200000, 0xFFFF0068, 0x00080020, 0x0000001E, 0x42200000, 0xFFFF0068, - 0x0008A5A4, 0x0000001E, 0x42200000, 0xFFFF0068, 0x00080020, 0xFF00001E, 0x42200000, 0xFFFF0068, 0x0008A5E1, - 0x00000002, 0x0001003A, 0x01700000, 0x00000005, 0x42700001, 0x00000078, 0x000CA1BC, 0x00000005, 0x42700000, - 0x00000078, 0x000CA5F3, 0x00000005, 0x42700000, 0x00000078, 0x000CA5EB, 0x0000000A, 0x42700000, 0x00000078, - 0x000CA5A2, 0x00000005, 0x42700000, 0xFFFF005F, 0x000BBAEE, 0x00000005, 0x42700000, 0xFFFF005F, 0x000BC9B8, - 0x00000005, 0x42700000, 0xFFFF005F, 0x000B0020, 0x00000005, 0x42700000, 0xFFFF005F, 0x000BA5A4, 0x00000005, - 0x42700000, 0xFFFF005F, 0x000B0020, 0x0000000A, 0x42700000, 0xFFFD005F, 0x0008A5E1, 0x0000000A, 0x42700000, - 0xFFFD005F, 0x0008A5D0, 0x0000000A, 0x42700000, 0xFFFD005F, 0x00080020, 0x0000000A, 0x42700000, 0xFFFD005F, - 0x0008A5A6, 0x0000000A, 0x42700000, 0xFFFD005F, 0x0008A5E5, 0x0000000A, 0x42700000, 0xFFFD005F, 0x0008C0AE, - 0x0000000A, 0x42700000, 0xFFFD005F, 0x0008A5E5, 0x0000000A, 0x42700000, 0xFFFD005F, 0x00080020, 0x0000000A, - 0x42700000, 0xFFFD005F, 0x0008A5EB, 0x0000000A, 0x42700000, 0xFFFD005F, 0x0008A5E1, 0x0000000A, 0x42700000, - 0xFFFD005F, 0x00080020, 0x0000000F, 0x42700000, 0xFFFD005F, 0x0008A5E1, 0x0000000F, 0x42700000, 0xFFFD005F, - 0x0008A5D0, 0x0000000F, 0x42700000, 0xFFFD005F, 0x00080020, 0x0000000F, 0x42700000, 0xFFFD005F, 0x0008A5A6, - 0x0000000F, 0x42700000, 0xFFFD005F, 0x0008A5E5, 0x0000000F, 0x42700000, 0xFFFD005F, 0x0008C0AE, 0x0000000F, - 0x42700000, 0xFFFD005F, 0x0008A5E5, 0x0000000F, 0x42700000, 0xFFFD005F, 0x00080020, 0xFF00001E, 0x42700000, - 0xFFFD005F, 0x0008A5EB, 0x0000000A, 0x00000001, 0x000C0000, 0x00B40000, 0x00000000, 0x00000000, 0x0000001C, - 0xFFFFFFF6, 0x00000000, 0xFFFFFFF2, 0x00000009, 0x00000000, 0xBE6EEEEF, 0x00000000, 0x00000004, 0x00000001, - 0x0002005A, 0x005B0000, 0x00000000, 0x00000000, 0xFFFFFFF2, 0x00000024, 0x00000000, 0xFFFFFFF2, 0x00000024, - 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x000A005A, 0x005B0000, 0x00000000, 0x00000000, - 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0x00000000, 0x00000000, 0x0000002D, - 0x00000001, 0x000100BE, 0x00D200D2, 0x000003E8, 0x00000001, 0x000800D2, 0x00D300D3, 0xFFFFFFFF, 0x00000000, - 0x00000000, 0x00000000, -}; - -static u32 D_808BBD90[] = { - 0x0000000B, 0x00000BB8, 0x00000021, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFF8, - 0xFFFFFFFF, 0x00000000, 0xFFFFFFF8, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x0000000A, 0x00000003, - 0x00050000, 0x00010000, 0x80000000, 0x00000000, 0x00000000, 0x00000334, 0x00000000, 0x00000000, 0x00000334, - 0x00000000, 0x00000000, 0x00000001, 0x00020001, 0x00100000, 0x80000000, 0x00000000, 0x00000000, 0x00000334, - 0x00000000, 0x00000000, 0x000002D0, 0x00000000, 0x00000000, 0x00000001, 0x00050010, 0x00B00000, 0x80000000, - 0x00000000, 0x00000000, 0x000002D0, 0x00000000, 0x00000000, 0x000002D0, 0x00000000, 0x00000000, 0x00000001, - 0x0000003E, 0x00000003, 0x00040028, 0x00467D74, 0x00000000, 0xFFFFFFFF, 0x00000031, 0x000002CF, 0x00000001, - 0x0000002F, 0x000002AF, 0x3D888889, 0xBD888889, 0xBD888889, 0x00040046, 0x00DC8010, 0x00000000, 0x00000001, - 0x0000002F, 0x000002AF, 0x00000000, 0x00000086, 0x00000015, 0xBBDA740E, 0x3F147AE1, 0x3BDA740E, 0x000200DC, - 0x01108000, 0x00000000, 0x00000000, 0x00000086, 0x00000015, 0x00000000, 0x00000065, 0x00000002, 0x00000000, - 0xBF227627, 0x00000000, 0x00000003, 0x00000001, 0x000C0154, 0x01550000, 0x00000000, 0xFFFFFFFF, 0x00000000, - 0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x00000006, - 0xFFFF0000, 0x0032FFFF, 0xFFFFFFFF, 0x70E60032, 0x003C0000, 0x00000000, 0xFFFF003C, 0x00FAFFFF, 0xFFFFFFFF, - 0x70E700FA, 0x01040000, 0x00000000, 0xFFFF0104, 0x0122FFFF, 0xFFFFFFFF, 0x70E80122, 0x01400000, 0x00000000, - 0x00000001, 0x00010000, 0x00FB0000, 0x00000000, 0x42700000, 0xFFC5000C, 0x02B20222, 0x00000000, 0x42700000, - 0xFFC5000C, 0x02B200FA, 0x00000000, 0x42700000, 0xFFC5000C, 0x02B20000, 0x00000000, 0x42700000, 0xFFC5000C, - 0x02B20000, 0x00000000, 0x42700000, 0xFFC5000C, 0x02B20000, 0x00000000, 0x42700000, 0xFFE10018, 0x02BD0000, - 0x00000000, 0x42700000, 0xFFE10018, 0x02BD0000, 0x00000000, 0x42700000, 0xFFE10018, 0x02BD0000, 0x00000000, - 0x42700000, 0xFFE10018, 0x02BD2D70, 0x00000000, 0x42700000, 0xFFE10018, 0x02BD0085, 0x00000000, 0x42700000, - 0xFFE10018, 0x02BD01E6, 0xFF000000, 0x42700000, 0xFFE10018, 0x02BD0000, 0x00000001, 0x0001005A, 0x014B0000, - 0x00000000, 0x42700000, 0xFF66005C, 0x00EC0222, 0x00000000, 0x42700000, 0xFF66005C, 0x00EC00FA, 0x00000000, - 0x42700000, 0xFF66005C, 0x00EC0000, 0x00000000, 0x42700000, 0xFF66005C, 0x00EC0000, 0x00000000, 0x42700000, - 0xFF66005C, 0x00EC0000, 0x00000000, 0x42700000, 0xFF66005C, 0x00EC0000, 0x00000000, 0x42700000, 0xFF66005C, - 0x00EC0000, 0x00000000, 0x42700000, 0xFF66005C, 0x00EC0000, 0xFF000000, 0x42700000, 0xFF66005C, 0x00EC2D70, - 0x00000001, 0x000100DC, 0x01EB0000, 0x00000000, 0x42700001, 0xFFFE007A, 0x00270222, 0x00000000, 0x42700001, - 0xFFFE007A, 0x002700FA, 0x00000000, 0x42700001, 0xFFFE0066, 0x00270000, 0x00000000, 0x42700001, 0xFFFE005A, - 0x00270000, 0x00000000, 0x42700001, 0xFFFE0051, 0x003E0000, 0x00000000, 0x42700001, 0xFFFE0051, 0x003E0000, - 0x00000000, 0x42700001, 0xFFFE0051, 0x003E0000, 0x00000000, 0x42700001, 0xFFFE0051, 0x003E0000, 0x00000000, - 0x42700001, 0xFFFE0051, 0x003E2D70, 0xFF000000, 0x42700001, 0xFFFE0051, 0x003E0085, 0x00000002, 0x00010000, - 0x01180000, 0x0000001E, 0x42700000, 0x002B0034, 0x02CC0222, 0x0000001E, 0x42700000, 0x002B0034, 0x02CC00FA, - 0x0000000A, 0x42700000, 0x002B0034, 0x02CC0000, 0x0000000A, 0x42700000, 0x002B0034, 0x02CC0000, 0x0000000A, - 0x42700000, 0x002B0034, 0x02CC0000, 0x0000000A, 0x42700000, 0x003F0056, 0x02D20000, 0x0000001E, 0x42700000, - 0x003F0056, 0x02D20000, 0x0000001E, 0x42700000, 0x003F0056, 0x02D20000, 0x0000001E, 0x42700000, 0x003F0056, - 0x02D22D70, 0x0000001E, 0x42700000, 0x003F0055, 0x02D10085, 0x0000001E, 0x42700000, 0x003F0055, 0x02D101E6, - 0xFF00001E, 0x42700000, 0x003E0055, 0x02D10000, 0x00000002, 0x0001005A, 0x01680000, 0x0000001E, 0x42700000, - 0xFF970053, 0x016E0222, 0x0000001E, 0x42700000, 0xFF980053, 0x016C00FA, 0x0000001E, 0x42700000, 0xFFC10053, - 0x01530000, 0x0000001E, 0x42700000, 0xFFF00063, 0x00FF0000, 0x0000001E, 0x42700000, 0xFFE2006F, 0x00B10000, - 0x0000001E, 0x42700000, 0xFFB00070, 0x00790000, 0x0000001E, 0x42700000, 0xFFB00070, 0x00790000, 0x0000001E, - 0x42700000, 0xFFB00070, 0x00790000, 0xFF00001E, 0x42700000, 0xFFB00070, 0x00792D70, 0x00000002, 0x000100DC, - 0x02080000, 0x0000001E, 0x42700001, 0x00000089, 0xFFC90222, 0x0000001E, 0x42700001, 0x00000089, 0xFFC900FA, - 0x0000001E, 0x42700001, 0x00000075, 0xFFC90000, 0x0000001E, 0x42700001, 0x00000069, 0xFFC90000, 0x0000001E, - 0x42700001, 0x00000062, 0xFFE10000, 0x0000001E, 0x42700001, 0x00000062, 0xFFE10000, 0x0000001E, 0x42700001, - 0x00000062, 0xFFE10000, 0x0000001E, 0x42700001, 0x00000062, 0xFFE10000, 0x0000001E, 0x42700001, 0x00000062, - 0xFFE12D70, 0xFF00001E, 0x42700001, 0x00000062, 0xFFE10085, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, -}; +#include "z_bg_toki_swd_cutscene_data.c" EARLY const ActorInit Bg_Toki_Swd_InitVars = { ACTOR_BG_TOKI_SWD, diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data.c new file mode 100644 index 0000000000..e997177c02 --- /dev/null +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data.c @@ -0,0 +1,276 @@ +#include "z_bg_toki_swd.h" + +#include + +// clang-format off +static CutsceneData D_808BB2F0[] = { + CS_BEGIN_CUTSCENE(9, 425), + CS_PLAYER_ACTION_LIST(1), + CS_PLAYER_ACTION(0x000C, 0, 256, 0x0000, 0x0000, 0x0000, 0, 54, 52, 0, 54, 52, 0.0f, 0.0f, 0.0f), + CS_LIGHTING_LIST(1), + CS_LIGHTING(0x0002, 110, 111, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5), + CS_MISC_LIST(1), + CS_MISC(0x000A, 110, 111, 0x0000, 0x00000000, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x00000000, 0x00000000), + CS_TERMINATOR(TEMPLE_OF_TIME_AFTER_USE_MS, 230, 231), + CS_SCENE_TRANS_FX(0x0001, 210, 230), + CS_CAM_POS_LIST(0, 241), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x018C), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x019D), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x01AE), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x02A8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x007A), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0064), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0074), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -42, 72, -39, 0x005F), + CS_CAM_POS_LIST(80, 406), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x2F73), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6B2F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6169), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0005), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 129, -34, 0x7961), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 173, -19, 0x742F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -17, 217, -20, 0x2E64), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -24, 328, -12, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -27, 509, -2, 0x2F73), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -41, 813, 10, 0x6B2F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -60, 1285, 38, 0x6D61), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -58, 1910, 91, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -53, 2526, 133, 0x0005), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -33, 3445, 193, 0x7961), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 3960, 225, 0x742F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4317, 245, 0x6565), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x2F73), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, 7, 4316, 245, 0x6B2F), + CS_CAM_FOCUS_POINT_LIST(0, 270), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2F73), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6B2F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6169), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0005), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x7961), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x742F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2E64), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), + CS_CAM_FOCUS_POINT_LIST(80, 425), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x2F73), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6B2F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6169), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -1, 112, 7, 0x0005), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x742F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x2E64), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6D61), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0005), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x742F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6565), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), + CS_END(), + CS_PAD(), + CS_PAD(), + CS_PAD(), +}; + +static CutsceneData D_808BB7A0[] = { + CS_BEGIN_CUTSCENE(9, 368), + CS_CAM_POS_LIST(0, 126), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 101, -110, 0x616D), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x6964), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x00FB), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x0111), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -109, 0x012D), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 71, -110, 0x0033), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x2F68), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 40.0f, -1, 72, -110, 0x612F), + CS_CAM_POS_LIST(58, 339), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -9, 106, -3, 0xA1BC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5F3), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5EB), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5A2), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xBAEE), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xC9B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xA5A4), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -83, 102, -42, 0xA5E1), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -116, 81, -19, 0xA5D0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -118, 81, 54, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -106, 78, 116, 0xA5A6), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -27, 75, 226, 0xA5E5), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 121, 82, 312, 0xC0AE), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 296, 76, 374, 0xA5E5), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 565, 80, 257, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 614, 80, -1, 0xA5EB), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 594, 80, -145, 0xA5E1), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 475, 80, -380, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 323, 80, -513, 0xA5E1), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 192, 80, -574, 0xA5D0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -45, 80, -604, 0x0020), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -142, 80, -589, 0xA5A6), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -228, 80, -562, 0xA5E5), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -376, 93, -477, 0xC0AE), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -584, 95, -183, 0xA5E5), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -613, 95, -34, 0x0020), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -595, 95, 161, 0xA5EB), + CS_CAM_FOCUS_POINT_LIST(0, 155), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 40.4f, -1, 111, 5, 0xA1BC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5F3), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5EB), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xA5A2), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xBAEE), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 104, 8, 0xC9B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 104, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0xA5A4), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 40.0f, -1, 104, 8, 0xA5E1), + CS_CAM_FOCUS_POINT_LIST(58, 368), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.000004f, 0, 120, 12, 0xA1BC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5F3), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5EB), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 0, 120, 12, 0xA5A2), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xBAEE), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xC9B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xA5A4), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5D0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5A6), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xC0AE), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5EB), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5D0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5A6), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xC0AE), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, -3, 95, 8, 0xA5EB), + CS_PLAYER_ACTION_LIST(1), + CS_PLAYER_ACTION(0x000C, 0, 180, 0x0000, 0x0000, 0x0000, 0, 28, -10, 0, -14, 9, 0.0f, -0.23333333f, 0.0f), + CS_LIGHTING_LIST(1), + CS_LIGHTING(0x0002, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF2, 0x00000024, 0x00000000, 0xFFFFFFF2, 0x00000024), + CS_MISC_LIST(1), + CS_MISC(0x000A, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0x00000000, 0x00000000), + CS_SCENE_TRANS_FX(0x0001, 190, 210), + CS_TERMINATOR(TEMPLE_OF_TIME_AFTER_USE_MS, 210, 211), + CS_END(), + CS_PAD(), + CS_PAD(), + CS_PAD(), +}; + +static CutsceneData D_808BBD90[] = { + CS_BEGIN_CUTSCENE(11, 3000), + CS_UNK_DATA_LIST(0x00000021, 1), + CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFF8, 0xFFFFFFFF, 0x00000000, 0xFFFFFFF8, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), + CS_PLAYER_ACTION_LIST(3), + CS_PLAYER_ACTION(0x0005, 0, 1, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 820, 0.0f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0002, 1, 16, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 720, 0.0f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 16, 176, 0x0000, 0x8000, 0x0000, 0, 0, 720, 0, 0, 720, 0.0f, 0.0f, 1.4E-45f), + CS_NPC_ACTION_LIST(62, 3), + CS_NPC_ACTION(0x0004, 40, 70, 0x7D74, 0x0000, 0x0000, -1, 49, 719, 1, 47, 687, 0.06666667f, -0.06666667f, -0.06666667f), + CS_NPC_ACTION(0x0004, 70, 220, 0x8010, 0x0000, 0x0000, 1, 47, 687, 0, 134, 21, -0.006666667f, 0.58f, 0.006666667f), + CS_NPC_ACTION(0x0002, 220, 272, 0x8000, 0x0000, 0x0000, 0, 134, 21, 0, 101, 2, 0.0f, -0.63461536f, 0.0f), + CS_MISC_LIST(1), + CS_MISC(0x000C, 340, 341, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000), + CS_TEXT_LIST(6), + CS_TEXT_NONE(0, 50), + CS_TEXT_DISPLAY_TEXTBOX(0x70E6, 50, 60, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(60, 250), + CS_TEXT_DISPLAY_TEXTBOX(0x70E7, 250, 260, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(260, 290), + CS_TEXT_DISPLAY_TEXTBOX(0x70E8, 290, 320, 0x0000, 0x0000, 0x0000), + CS_CAM_POS_LIST(0, 251), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0222), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x00FA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x2D70), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0085), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x01E6), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POS_LIST(90, 331), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0222), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x00FA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -154, 92, 236, 0x2D70), + CS_CAM_POS_LIST(220, 491), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x0222), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x00FA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 102, 39, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 90, 39, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x2D70), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.000004f, -2, 81, 62, 0x0085), + CS_CAM_FOCUS_POINT_LIST(0, 280), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x0222), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x00FA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x2D70), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x0085), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x01E6), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, 62, 85, 721, 0x0000), + CS_CAM_FOCUS_POINT_LIST(90, 360), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -105, 83, 366, 0x0222), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -104, 83, 364, 0x00FA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -63, 83, 339, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -16, 99, 255, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -30, 111, 177, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.0f, -80, 112, 121, 0x2D70), + CS_CAM_FOCUS_POINT_LIST(220, 520), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x0222), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x00FA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 117, -55, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 105, -55, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x2D70), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.000004f, 0, 98, -31, 0x0085), + CS_END(), + CS_PAD(), + CS_PAD(), + CS_PAD(), +}; +// clang-format on diff --git a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c index 13e027c64b..10934c3096 100644 --- a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c +++ b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c @@ -133,26 +133,26 @@ void func_8097CB0C(DemoGo* this, GlobalContext* globalCtx) { Actor* thisx = &this->actor; PosRot* posRot = &thisx->posRot; CutsceneContext* csCtx = &globalCtx->csCtx; - CsCmdActorAction* actorAction; + CsCmdActorAction* npcAction; f32 temp_ret; s32 pad; Vec3f startPos; Vec3f endPos; if (globalCtx->csCtx.state != 0) { - actorAction = csCtx->actorActions[func_8097C870(this)]; - if (actorAction != NULL) { - temp_ret = func_8006F93C(actorAction->endFrame, actorAction->startFrame, csCtx->frames); - startPos.x = actorAction->startPos.x; - startPos.y = actorAction->startPos.y; - startPos.z = actorAction->startPos.z; - endPos.x = actorAction->endPos.x; - endPos.y = actorAction->endPos.y; - endPos.z = actorAction->endPos.z; + npcAction = csCtx->npcActions[func_8097C870(this)]; + if (npcAction != NULL) { + temp_ret = func_8006F93C(npcAction->endFrame, npcAction->startFrame, csCtx->frames); + startPos.x = npcAction->startPos.x; + startPos.y = npcAction->startPos.y; + startPos.z = npcAction->startPos.z; + endPos.x = npcAction->endPos.x; + endPos.y = npcAction->endPos.y; + endPos.z = npcAction->endPos.z; posRot->pos.x = (((endPos.x - startPos.x) * temp_ret) + startPos.x); posRot->pos.y = (((endPos.y - startPos.y) * temp_ret) + startPos.y); posRot->pos.z = (((endPos.z - startPos.z) * temp_ret) + startPos.z); - posRot->rot.y = thisx->shape.rot.y = actorAction->rot.y; + posRot->rot.y = thisx->shape.rot.y = npcAction->rot.y; } } } @@ -172,19 +172,19 @@ void func_8097CCC0(DemoGo* this) { } void func_8097CCE0(DemoGo* this, GlobalContext* globalCtx) { - CsCmdActorAction* actorAction; + CsCmdActorAction* npcAction; Actor* thisx = &this->actor; s32 rotYDelta; s32 newRotY; s32 thisRotY; if (globalCtx->csCtx.state != 0) { - actorAction = globalCtx->csCtx.actorActions[func_8097C870(this)]; - if (actorAction != NULL) { + npcAction = globalCtx->csCtx.npcActions[func_8097C870(this)]; + if (npcAction != NULL) { thisRotY = thisx->posRot.rot.y; - rotYDelta = actorAction->rot.y - thisRotY; + rotYDelta = npcAction->rot.y - thisRotY; if ((rotYDelta > -(kREG(16) + 0x96)) && (rotYDelta < kREG(16) + 0x96)) { - newRotY = actorAction->rot.y; + newRotY = npcAction->rot.y; } else if (rotYDelta > 0) { newRotY = (thisRotY + kREG(16)) + 0x96; } else { @@ -202,11 +202,11 @@ UNK_TYPE DemoGo_FrameUpdateMatrix(DemoGo* this) { #ifdef NON_MATCHING // return value isn't produced in the same way -s32 func_8097CDB0(DemoGo* this, GlobalContext* globalCtx, u16 csCmdActorAction) { +s32 func_8097CDB0(DemoGo* this, GlobalContext* globalCtx, u16 csCmdNPCAction) { CutsceneContext* csCtx = &globalCtx->csCtx; - CsCmdActorAction* actorAction = csCtx->actorActions[func_8097C870(this)]; + CsCmdActorAction* npcAction = csCtx->npcActions[func_8097C870(this)]; if (csCtx->state != 0) { - if (actorAction != NULL && actorAction->action == csCmdActorAction) { + if (npcAction != NULL && npcAction->action == csCmdNPCAction) { return 1; } } @@ -231,11 +231,11 @@ void func_8097CE20(DemoGo* this, GlobalContext* globalCtx) { void func_8097CE78(DemoGo* this, GlobalContext* globalCtx) { CutsceneContext* csCtx = &globalCtx->csCtx; - CsCmdActorAction* actorAction; + CsCmdActorAction* npcAction; if (globalCtx->csCtx.state != 0) { - actorAction = csCtx->actorActions[func_8097C870(this)]; - if (actorAction != NULL && csCtx->frames >= actorAction->endFrame) { + npcAction = csCtx->npcActions[func_8097C870(this)]; + if (npcAction != NULL && csCtx->frames >= npcAction->endFrame) { func_8097CA78(this, globalCtx); this->action = 3; } diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 0167f3248c..491a86d4c0 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -211,7 +211,7 @@ void func_809B0994(EnAni* this, GlobalContext* globalCtx) { GenericAnimationHeader* objSegFrameCount = &D_060070F0.genericHeader; AnimationHeader* objSegChangeAnime = &D_060070F0; - if (globalCtx->csCtx.actorActions[0]->action == 4) { + if (globalCtx->csCtx.npcActions[0]->action == 4) { SkelAnime_ChangeAnim(&this->skelAnime, objSegChangeAnime, 1.0f, 0.0f, (f32)SkelAnime_GetFrameCount(objSegFrameCount), 2, -4.0f); this->unk_2AA += 1; @@ -229,7 +229,7 @@ void func_809B0A6C(EnAni* this, GlobalContext* globalCtx) { if (SkelAnime_FrameUpdateMatrix(&this->skelAnime) != 0) { this->skelAnime.animCurrentFrame = 0.0f; } - if (globalCtx->csCtx.actorActions[0]->action == 2) { + if (globalCtx->csCtx.npcActions[0]->action == 2) { SkelAnime_ChangeAnim(&this->skelAnime, &D_060067B8, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_060067B8.genericHeader), 2, 0.0f); this->actor.shape.shadowDrawFunc = NULL; @@ -245,7 +245,7 @@ void EnAni_Update(Actor* thisx, GlobalContext* globalCtx) { CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider); Actor_MoveForward(&this->actor); func_8002E4B4(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4); - if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.actorActions[0] != NULL)) { + if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.npcActions[0] != NULL)) { switch (this->unk_2AA) { case 0: func_809B0A6C(this, globalCtx); diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index 3207fe0f46..cbb25458b2 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -94,7 +94,7 @@ u32 D_80AF0870[] = { s32 D_80AF087C = 0; -#include "z_en_ru1_cutscene_data.c" +#include "z_en_ru1_cutscene_data.c" EARLY u32 D_80AF1938 = 0; @@ -260,27 +260,27 @@ s32 func_80AEAF38(GlobalContext* globalCtx) { return 0; } -CsCmdActorAction* func_80AEAF58(GlobalContext* globalCtx, s32 actorActionIdx) { +CsCmdActorAction* func_80AEAF58(GlobalContext* globalCtx, s32 npcActionIdx) { s32 pad[2]; CsCmdActorAction* ret = NULL; if (!func_80AEAF38(globalCtx)) { - ret = globalCtx->csCtx.actorActions[actorActionIdx]; + ret = globalCtx->csCtx.npcActions[npcActionIdx]; } return ret; } -s32 func_80AEAFA0(GlobalContext* globalCtx, u16 action, s32 actorActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AEAF58(globalCtx, actorActionIdx); - if ((csCmdActorAction != NULL) && (csCmdActorAction->action == action)) { +s32 func_80AEAFA0(GlobalContext* globalCtx, u16 action, s32 npcActionIdx) { + CsCmdActorAction* csCmdNPCAction = func_80AEAF58(globalCtx, npcActionIdx); + if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == action)) { return 1; } return 0; } -s32 func_80AEAFE0(GlobalContext* globalCtx, u16 action, s32 actorActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AEAF58(globalCtx, actorActionIdx); - if ((csCmdActorAction != NULL) && (csCmdActorAction->action != action)) { +s32 func_80AEAFE0(GlobalContext* globalCtx, u16 action, s32 npcActionIdx) { + CsCmdActorAction* csCmdNPCAction = func_80AEAF58(globalCtx, npcActionIdx); + if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != action)) { return 1; } return 0; @@ -497,11 +497,11 @@ void func_80AEB7D0(EnRu1* this) { this->skelAnime.flags &= ~0x3; } -f32 func_80AEB7E0(CsCmdActorAction* csCmdActorAction, GlobalContext* globalCtx) { +f32 func_80AEB7E0(CsCmdActorAction* csCmdNPCAction, GlobalContext* globalCtx) { s32 csCtxFrames = globalCtx->csCtx.frames; - if ((csCtxFrames < csCmdActorAction->endFrame) && (csCmdActorAction->endFrame - csCmdActorAction->startFrame > 0)) { - return (Math_Coss(((csCtxFrames - csCmdActorAction->startFrame) / - (f32)(csCmdActorAction->endFrame - csCmdActorAction->startFrame)) * + if ((csCtxFrames < csCmdNPCAction->endFrame) && (csCmdNPCAction->endFrame - csCmdNPCAction->startFrame > 0)) { + return (Math_Coss(((csCtxFrames - csCmdNPCAction->startFrame) / + (f32)(csCmdNPCAction->endFrame - csCmdNPCAction->startFrame)) * 32768.0f) * -0.5f) + 0.5f; @@ -515,16 +515,16 @@ f32 func_80AEB87C(f32 arg0, s32 arg1, s32 arg2) { void func_80AEB89C(EnRu1* this, GlobalContext* globalCtx) { Actor* thisx = &this->actor; - CsCmdActorAction* actorAction = func_80AEB438(globalCtx); - s16 actorActionRotY; + CsCmdActorAction* npcAction = func_80AEB438(globalCtx); + s16 npcActionRotY; - if (actorAction != NULL) { - actorActionRotY = actorAction->rot.y; - thisx->shape.rot.y = actorActionRotY; - thisx->posRot.rot.y = actorActionRotY; - thisx->posRot.pos.x = actorAction->startPos.x; - thisx->posRot.pos.y = actorAction->startPos.y; - thisx->posRot.pos.z = actorAction->startPos.z; + if (npcAction != NULL) { + npcActionRotY = npcAction->rot.y; + thisx->shape.rot.y = npcActionRotY; + thisx->posRot.rot.y = npcActionRotY; + thisx->posRot.pos.x = npcAction->startPos.x; + thisx->posRot.pos.y = npcAction->startPos.y; + thisx->posRot.pos.z = npcAction->startPos.z; } } @@ -543,15 +543,15 @@ void func_80AEB954(EnRu1* this, GlobalContext* globalCtx) { void func_80AEB974(EnRu1* this, GlobalContext* globalCtx) { Vec3f* thisPos; f32 sp30; - CsCmdActorAction* csCmdActorAction = func_80AEB438(globalCtx); + CsCmdActorAction* csCmdNPCAction = func_80AEB438(globalCtx); Actor* thisx = &this->actor; - if (csCmdActorAction != NULL) { - sp30 = func_80AEB7E0(csCmdActorAction, globalCtx); + if (csCmdNPCAction != NULL) { + sp30 = func_80AEB7E0(csCmdNPCAction, globalCtx); thisPos = &thisx->posRot.pos; - thisPos->x = func_80AEB87C(sp30, csCmdActorAction->startPos.x, csCmdActorAction->endPos.x); - thisPos->y = func_80AEB87C(sp30, csCmdActorAction->startPos.y, csCmdActorAction->endPos.y); - thisPos->z = func_80AEB87C(sp30, csCmdActorAction->startPos.z, csCmdActorAction->endPos.z); + thisPos->x = func_80AEB87C(sp30, csCmdNPCAction->startPos.x, csCmdNPCAction->endPos.x); + thisPos->y = func_80AEB87C(sp30, csCmdNPCAction->startPos.y, csCmdNPCAction->endPos.y); + thisPos->z = func_80AEB87C(sp30, csCmdNPCAction->startPos.z, csCmdNPCAction->endPos.z); } } @@ -564,15 +564,15 @@ void func_80AEBA2C(EnRu1* this, GlobalContext* globalCtx) { Vec3f* unk_364 = &this->unk_364; Vec3f* thisPos; f32 temp_ret_2; - CsCmdActorAction* csCmdActorAction = func_80AEB438(globalCtx); + CsCmdActorAction* csCmdNPCAction = func_80AEB438(globalCtx); Actor* thisx = &this->actor; - if (csCmdActorAction != NULL) { - temp_ret_2 = func_80AEB7E0(csCmdActorAction, globalCtx); + if (csCmdNPCAction != NULL) { + temp_ret_2 = func_80AEB7E0(csCmdNPCAction, globalCtx); thisPos = &thisx->posRot.pos; - thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, csCmdActorAction->endPos.x); - thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, csCmdActorAction->endPos.y); - thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, csCmdActorAction->endPos.z); + thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, csCmdNPCAction->endPos.x); + thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, csCmdNPCAction->endPos.y); + thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, csCmdNPCAction->endPos.z); } } @@ -690,15 +690,15 @@ void func_80AEBF60(EnRu1* this, GlobalContext* globalCtx) { } void func_80AEBFD8(EnRu1* this, GlobalContext* globalCtx) { - CsCmdActorAction* csCmdActorAction = func_80AEB438(globalCtx); + CsCmdActorAction* csCmdNPCAction = func_80AEB438(globalCtx); f32 frameCount; u16 csCtxFrames; - u16 csCmdActorActionEndFrame; + u16 endFrame; - if (csCmdActorAction != NULL) { + if (csCmdNPCAction != NULL) { csCtxFrames = globalCtx->csCtx.frames; - csCmdActorActionEndFrame = csCmdActorAction->endFrame; - if (csCtxFrames >= csCmdActorActionEndFrame - 2) { + endFrame = csCmdNPCAction->endFrame; + if (csCtxFrames >= endFrame - 2) { frameCount = SkelAnime_GetFrameCount(&D_06008100.genericHeader); SkelAnime_ChangeAnim(&this->skelAnime, &D_06008100, 1.0, 0, frameCount, 2, -8.0f); this->action = 6; @@ -888,14 +888,14 @@ void func_80AEC780(EnRu1* this, GlobalContext* globalCtx) { void func_80AEC81C(EnRu1* this, GlobalContext* globalCtx) { Actor* thisx = &this->actor; - CsCmdActorAction* csCmdActorAction; + CsCmdActorAction* csCmdNPCAction; s16 newRotY; if (func_80AEAFE0(globalCtx, 1, 3)) { - csCmdActorAction = globalCtx->csCtx.actorActions[3]; - thisx->posRot.pos.x = csCmdActorAction->startPos.x; - thisx->posRot.pos.y = csCmdActorAction->startPos.y; - thisx->posRot.pos.z = csCmdActorAction->startPos.z; - newRotY = csCmdActorAction->rot.y; + csCmdNPCAction = globalCtx->csCtx.npcActions[3]; + thisx->posRot.pos.x = csCmdNPCAction->startPos.x; + thisx->posRot.pos.y = csCmdNPCAction->startPos.y; + thisx->posRot.pos.z = csCmdNPCAction->startPos.z; + newRotY = csCmdNPCAction->rot.y; thisx->shape.rot.y = newRotY; thisx->posRot.rot.y = newRotY; this->action = 9; @@ -1969,25 +1969,25 @@ void func_80AEF5B8(EnRu1* this) { void func_80AEF624(EnRu1* this, GlobalContext* globalCtx) { Actor* thisx = &this->actor; f32 frameCount; - CsCmdActorAction* csCmdActorAction; - CsCmdActorAction* csCmdActorAction2; + CsCmdActorAction* csCmdNPCAction; + CsCmdActorAction* csCmdNPCAction2; s16 newRotTmp; if (func_80AEAFE0(globalCtx, 1, 3)) { frameCount = SkelAnime_GetFrameCount(&D_060063F4.genericHeader); // this weird part with the redundant variable is necessary to match for some reason - csCmdActorAction2 = globalCtx->csCtx.actorActions[3]; - csCmdActorAction = csCmdActorAction2; - thisx->posRot.pos.x = csCmdActorAction->startPos.x; - thisx->posRot.pos.y = csCmdActorAction->startPos.y; - thisx->posRot.pos.z = csCmdActorAction->startPos.z; - newRotTmp = csCmdActorAction->rot.x; + csCmdNPCAction2 = globalCtx->csCtx.npcActions[3]; + csCmdNPCAction = csCmdNPCAction2; + thisx->posRot.pos.x = csCmdNPCAction->startPos.x; + thisx->posRot.pos.y = csCmdNPCAction->startPos.y; + thisx->posRot.pos.z = csCmdNPCAction->startPos.z; + newRotTmp = csCmdNPCAction->rot.x; thisx->shape.rot.x = newRotTmp; thisx->posRot.rot.x = newRotTmp; - newRotTmp = csCmdActorAction->rot.y; + newRotTmp = csCmdNPCAction->rot.y; thisx->shape.rot.y = newRotTmp; thisx->posRot.rot.y = newRotTmp; - newRotTmp = csCmdActorAction->rot.z; + newRotTmp = csCmdNPCAction->rot.z; thisx->shape.rot.z = newRotTmp; thisx->posRot.rot.z = newRotTmp; SkelAnime_ChangeAnim(&this->skelAnime, &D_060063F4, 1.0f, 0.0f, frameCount, 2, 0.0f); diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.c index ced490f95a..c44d2ff975 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.c @@ -1,130 +1,241 @@ #include "z_en_ru1.h" -u32 D_80AF0880[] = { - 0x0000000F, 0x0000051A, 0x0000000A, 0x0000000A, 0x00270000, 0x00320000, 0x6C160000, 0x0000000C, 0xFFFFFEAC, - 0xFFFFF506, 0x0000000C, 0xFFFFFEAC, 0xFFFFF506, 0x0F671408, 0x00000000, 0x00000001, 0x00030032, 0x00460000, - 0x6C160000, 0x0000000C, 0xFFFFFEAC, 0xFFFFF506, 0x0000000C, 0xFFFFFEAC, 0xFFFFF506, 0x0F671408, 0x00000000, - 0x00000001, 0x00050046, 0x006D0000, 0x6C160000, 0x0000000C, 0xFFFFFEAC, 0xFFFFF506, 0x0000000C, 0xFFFFFEAC, - 0xFFFFF506, 0x0F671408, 0x00000000, 0x00000001, 0x0002006D, 0x00870000, 0x6C160000, 0x0000000C, 0xFFFFFEAC, - 0xFFFFF506, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x0F671408, 0x00000000, 0x00000001, 0x00050087, 0x00C70000, - 0x6C160000, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x0F671408, 0x00000000, - 0x00000001, 0x000300C7, 0x00DB0000, 0x6C160000, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x00000064, 0xFFFFFEAC, - 0xFFFFF451, 0x0F671408, 0x00000000, 0x00000001, 0x000500DB, 0x01030000, 0x6C160000, 0x00000064, 0xFFFFFEAC, - 0xFFFFF451, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x0F671408, 0x00000000, 0x00000001, 0x00030103, 0x01140000, - 0x6C160000, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x0F671408, 0x00000000, - 0x00000001, 0x00020114, 0x01290000, 0x6C160000, 0x00000064, 0xFFFFFEAC, 0xFFFFF451, 0x000000B6, 0xFFFFFEAC, - 0xFFFFF3C4, 0x0F671408, 0x00000000, 0x00000001, 0x00050129, 0x034B0000, 0x6C160000, 0x000000B6, 0xFFFFFEAC, - 0xFFFFF3C4, 0x000000B6, 0xFFFFFEAC, 0xFFFFF3C4, 0x0F671408, 0x00000000, 0x00000001, 0x0000003F, 0x00000004, - 0x00020000, 0x00B20000, 0xEC160000, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, - 0x0F671408, 0x00000000, 0x00000001, 0x000300B2, 0x00F50000, 0x6C160000, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, - 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, 0x0F671408, 0x00000000, 0x00000001, 0x000400F5, 0x01040000, 0x6C160000, - 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, 0x0F671408, 0x00000000, 0x00000001, - 0x00050104, 0x018C0000, 0x6C160000, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, 0x0000007F, 0xFFFFFEAC, 0xFFFFF41F, - 0x0F671408, 0x00000000, 0x00000001, 0x00000003, 0x00000001, 0x000C013B, 0x01590000, 0x00000000, 0x00000000, - 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000, 0x00000013, - 0x00000004, 0xFFFF0000, 0x009DFFFF, 0xFFFFFFFF, 0x404B009D, 0x00AF0000, 0xFFFFFFFF, 0xFFFF00AF, 0x00FCFFFF, - 0xFFFFFFFF, 0x401E00FC, 0x012C0000, 0xFFFFFFFF, 0x00000001, 0x00010000, 0x00F70000, 0x00000000, 0x4235998B, - 0x0037FEDE, 0xF54320BA, 0x00000000, 0x4235998B, 0x0037FEDE, 0xF54344B8, 0x00000000, 0x4235998B, 0x0037FEDE, - 0xF5438080, 0x00000000, 0x4235998B, 0x0037FEDE, 0xF543E243, 0x00000000, 0x41F6662C, 0x0037FEDE, 0xF543005E, - 0x00000000, 0x41F6662C, 0x0037FEDE, 0xF543FFFF, 0x00000000, 0x41F6662C, 0x0037FEDE, 0xF5430000, 0x00000000, - 0x41F6662C, 0x0037FEDE, 0xF5435B80, 0xFF000000, 0x41F6662C, 0x0037FEDE, 0xF54349B4, 0x00000001, 0x00010049, - 0x00D00000, 0x00000000, 0x4235998B, 0x0063FECD, 0xF45720BA, 0x00000000, 0x4235998B, 0x0063FECD, 0xF45744B8, - 0x00000000, 0x4235998B, 0x0063FECD, 0xF4578080, 0x00000000, 0x4235998B, 0x0063FECD, 0xF457E243, 0x00000000, - 0x4235998B, 0x0063FECD, 0xF457005E, 0x00000000, 0x4235998B, 0x0063FECD, 0xF457FFFF, 0xFF000000, 0x4235998B, - 0x0063FECD, 0xF4570000, 0x00000001, 0x00010074, 0x04B70000, 0x00000000, 0x42373325, 0x009BFEEC, 0xF4A120BA, - 0x00000000, 0x42373325, 0x009BFEEC, 0xF4A144B8, 0x00000000, 0x42373325, 0x009BFEEC, 0xF4A18080, 0x00000000, - 0x42373325, 0x009BFEEC, 0xF4A1E243, 0xFF000000, 0x42373325, 0x009BFEEC, 0xF4A1005E, 0x00000001, 0x000100BA, - 0x04FD0000, 0x00000000, 0x4235998C, 0x004DFEC5, 0xF45020BA, 0x00000000, 0x4235998C, 0x004DFEC5, 0xF45044B8, - 0x00000000, 0x4235998C, 0x004DFEC5, 0xF4508080, 0x00000000, 0x4235998C, 0x004DFEC5, 0xF450E243, 0xFF000000, - 0x4235998C, 0x004DFEC5, 0xF450005E, 0x00000001, 0x00010100, 0x01A90000, 0x00000000, 0x41E1995C, 0x015EFF13, - 0xF30E20BA, 0x00000000, 0x41E1995C, 0x015EFF13, 0xF30E44B8, 0x00000000, 0x41E1995C, 0x015EFF13, 0xF30E8080, - 0x00000000, 0x41E1995C, 0x015EFF13, 0xF30EE243, 0x00000000, 0x423B3327, 0x015EFF13, 0xF30E005E, 0x00000000, - 0x423B3327, 0x015EFF13, 0xF30EFFFF, 0x00000000, 0x423B3327, 0x015EFF13, 0xF30E0000, 0xFF000000, 0x423B3327, - 0x015EFF13, 0xF30E5B80, 0x00000002, 0x00010000, 0x01140000, 0x00000032, 0x4235998B, 0x0028FF00, 0xF4F920BA, - 0x00000032, 0x4235998B, 0x0028FF00, 0xF4F944B8, 0x00000028, 0x4235998B, 0x0016FEC7, 0xF4F98080, 0x0000000A, - 0x4235998B, 0x0017FEC7, 0xF4F9E243, 0x00000006, 0x41F6662C, 0x0049FED6, 0xF4F4005E, 0x0000001E, 0x41F6662C, - 0x0049FED6, 0xF4F4FFFF, 0x0000001E, 0x41F6662C, 0x0049FED6, 0xF4F40000, 0x0000001E, 0x41F6662C, 0x0049FED6, - 0xF4F45B80, 0xFF00001E, 0x41F6662C, 0x0049FED6, 0xF4F449B4, 0x00000002, 0x00010049, 0x00ED0000, 0x0000001E, - 0x4270CCCD, 0x0088FEC6, 0xF40C20BA, 0x00000007, 0x42726667, 0x0088FEC6, 0xF40C44B8, 0x00000007, 0x4235998B, - 0x0088FEC6, 0xF40C8080, 0x0000001E, 0x4235998B, 0x0088FEC6, 0xF40CE243, 0x0000001E, 0x4235998B, 0x0088FEC6, - 0xF40C005E, 0x0000001E, 0x4235998B, 0x0087FEC7, 0xF40CFFFF, 0xFF00001E, 0x4235998B, 0x0087FEC7, 0xF40D0000, - 0x00000002, 0x00010074, 0x04D40000, 0x0000001E, 0x42373325, 0x0084FECF, 0xF46720BA, 0x0000001E, 0x42373325, - 0x0084FED0, 0xF46744B8, 0x000003E8, 0x42373325, 0x0085FED0, 0xF4678080, 0x0000001E, 0x42373325, 0x0085FED0, - 0xF467E243, 0xFF00001E, 0x42373325, 0x0085FED0, 0xF467005E, 0x00000002, 0x000100BA, 0x051A0000, 0x0000001E, - 0x4235998C, 0x008AFED3, 0xF42820BA, 0x0000001E, 0x4235998C, 0x008AFED3, 0xF42844B8, 0x000003E8, 0x4235998C, - 0x008AFED3, 0xF4288080, 0x0000001E, 0x4235998C, 0x008AFED3, 0xF428E243, 0xFF00001E, 0x4235998C, 0x008AFED3, - 0xF428005E, 0x00000002, 0x00010100, 0x01C60000, 0x0000001E, 0x41E1995C, 0x0133FF02, 0xF34620BA, 0x0000001E, - 0x41E1995C, 0x0133FF02, 0xF34644B8, 0x00000009, 0x41E1995C, 0x0133FF02, 0xF3468080, 0x00000009, 0x423B3327, - 0x0130FEEF, 0xF337E243, 0x0000001E, 0x423B3327, 0x0130FEF0, 0xF336005E, 0x0000001E, 0x423B3327, 0x0130FEF0, - 0xF336FFFF, 0x0000001E, 0x423B3327, 0x0130FEF0, 0xF3360000, 0xFF00001E, 0x423B3327, 0x0131FEF0, 0xF3365B80, - 0x00000056, 0x00000001, 0x0052004A, 0x004B0000, 0x00000000, 0xFFFFFFF1, 0x00000000, 0x0000004E, 0xFFFFFFF1, - 0x00000000, 0x0000004E, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, +#include + +// clang-format off +CutsceneData D_80AF0880[] = { + CS_BEGIN_CUTSCENE(15, 1306), + CS_PLAYER_ACTION_LIST(10), + CS_PLAYER_ACTION(0x0027, 0, 50, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0003, 50, 70, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 70, 109, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0002, 109, 135, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 100, -340, -2991, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 135, 199, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0003, 199, 219, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 219, 259, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0003, 259, 276, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0002, 276, 297, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 182, -340, -3132, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 297, 843, 0x0000, 0x6C16, 0x0000, 182, -340, -3132, 182, -340, -3132, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_NPC_ACTION_LIST(63, 4), + CS_NPC_ACTION(0x0002, 0, 178, 0x0000, 0xEC16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_NPC_ACTION(0x0003, 178, 245, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_NPC_ACTION(0x0004, 245, 260, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_NPC_ACTION(0x0005, 260, 396, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_MISC_LIST(1), + CS_MISC(0x000C, 315, 345, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_TEXT_LIST(4), + CS_TEXT_NONE(0, 157), + CS_TEXT_DISPLAY_TEXTBOX(0x404B, 157, 175, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT_NONE(175, 252), + CS_TEXT_DISPLAY_TEXTBOX(0x401E, 252, 300, 0x0000, 0xFFFF, 0xFFFF), + CS_CAM_POS_LIST(0, 247), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x20BA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x44B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x8080), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0xE243), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x005E), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0xFFFF), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x5B80), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 30.799889f, 55, -290, -2749, 0x49B4), + CS_CAM_POS_LIST(73, 208), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x20BA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x44B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x8080), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xE243), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x005E), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xFFFF), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.399944f, 99, -307, -2985, 0x0000), + CS_CAM_POS_LIST(116, 1207), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x20BA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x44B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x8080), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0xE243), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.799946f, 155, -276, -2911, 0x005E), + CS_CAM_POS_LIST(186, 1277), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x20BA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x44B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x8080), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0xE243), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.39995f, 77, -315, -2992, 0x005E), + CS_CAM_POS_LIST(256, 425), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x20BA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x44B8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x8080), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0xE243), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x005E), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0xFFFF), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 46.799953f, 350, -237, -3314, 0x5B80), + CS_CAM_FOCUS_POINT_LIST(0, 276), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x20BA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x44B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 40, 45.399944f, 22, -313, -2823, 0x8080), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 45.399944f, 23, -313, -2823, 0xE243), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 6, 30.799889f, 73, -298, -2828, 0x005E), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0xFFFF), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x5B80), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 30.799889f, 73, -298, -2828, 0x49B4), + CS_CAM_FOCUS_POINT_LIST(73, 237), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.2f, 136, -314, -3060, 0x20BA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 60.600002f, 136, -314, -3060, 0x44B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 45.399944f, 136, -314, -3060, 0x8080), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0xE243), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0x005E), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 135, -313, -3060, 0xFFFF), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.399944f, 135, -313, -3059, 0x0000), + CS_CAM_FOCUS_POINT_LIST(116, 1236), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 132, -305, -2969, 0x20BA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 132, -304, -2969, 0x44B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.799946f, 133, -304, -2969, 0x8080), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 133, -304, -2969, 0xE243), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.799946f, 133, -304, -2969, 0x005E), + CS_CAM_FOCUS_POINT_LIST(186, 1306), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x20BA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x44B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.39995f, 138, -301, -3032, 0x8080), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0xE243), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.39995f, 138, -301, -3032, 0x005E), + CS_CAM_FOCUS_POINT_LIST(256, 454), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x20BA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x44B8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 9, 28.199883f, 307, -254, -3258, 0x8080), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 9, 46.799953f, 304, -273, -3273, 0xE243), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x005E), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0xFFFF), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 46.799953f, 305, -272, -3274, 0x5B80), + CS_PLAY_BGM_LIST(1), + CS_PLAY_BGM(0x0052, 74, 75, 0x0000, 0x00000000, 0xFFFFFFF1, 0x00000000, 0x0000004E, 0xFFFFFFF1, 0x00000000, 0x0000004E), + CS_END(), + CS_PAD(), + CS_PAD(), }; -u32 D_80AF10A4[] = { - 0x0000000E, 0x00000513, 0x0000000A, 0x00000003, 0x00050000, 0x01100000, 0xC0000000, 0xFFFFFBC3, 0xFFFFFBFF, - 0xFFFFF2ED, 0xFFFFFBC3, 0xFFFFFBFF, 0xFFFFF2ED, 0x0F671408, 0x00000000, 0x00000001, 0x00030110, 0x01240000, - 0xC0000000, 0xFFFFFBC3, 0xFFFFFBFF, 0xFFFFF2ED, 0xFFFFFBC3, 0xFFFFFBFF, 0xFFFFF2ED, 0x0F671408, 0x00000000, - 0x00000001, 0x00050124, 0x03090000, 0xC0000000, 0xFFFFFBC3, 0xFFFFFBFF, 0xFFFFF2ED, 0xFFFFFBC3, 0xFFFFFBFF, - 0xFFFFF2ED, 0x0F671408, 0x00000000, 0x00000001, 0x00000003, 0x00000001, 0x000C014A, 0x02730000, 0x00000000, - 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000, - 0x00000042, 0x00000003, 0x00010000, 0x00280000, 0x40000000, 0xFFFFFAB8, 0xFFFFFC37, 0xFFFFF2F3, 0xFFFFFAB8, - 0xFFFFFC37, 0xFFFFF2F3, 0x00000000, 0x00000000, 0x00000001, 0x00020028, 0x00D50000, 0x40000000, 0xFFFFFAB8, - 0xFFFFFC37, 0xFFFFF2F3, 0xFFFFFAB0, 0xFFFFFC37, 0xFFFFF2F1, 0x00000000, 0x00000000, 0x00000001, 0x000300D5, - 0x03E80000, 0x40000000, 0xFFFFFAB0, 0xFFFFFC37, 0xFFFFF2F1, 0xFFFFFAB0, 0xFFFFFC37, 0xFFFFF2F1, 0x00000000, - 0x00000000, 0x00000001, 0x00000030, 0x00000001, 0x00020000, 0x005A0000, 0x00000000, 0xFFFFFAB0, 0xFFFFFC3D, - 0xFFFFF2F1, 0xFFFFFAB0, 0xFFFFFC3D, 0xFFFFF2F1, 0x00000000, 0x00000000, 0x00000000, 0x00000030, 0x00000002, - 0x0002005A, 0x00D30000, 0x00000000, 0xFFFFFAB8, 0xFFFFFC66, 0xFFFFF2F3, 0xFFFFFAB8, 0xFFFFFC66, 0xFFFFF2F3, - 0x00000000, 0x00000000, 0x00000000, 0x000600D3, 0x01370000, 0x00000000, 0xFFFFFAB8, 0xFFFFFC66, 0xFFFFF2F3, - 0xFFFFFAB8, 0xFFFFFC66, 0xFFFFF2F3, 0x00000000, 0x00000000, 0x00000000, 0x0000003E, 0x00000003, 0x00040000, - 0x00D20000, 0x00000000, 0xFFFFFBD7, 0xFFFFFC34, 0xFFFFF317, 0xFFFFFBD7, 0xFFFFFC2E, 0xFFFFF317, 0x00000000, - 0xBCEA0EA1, 0x00000000, 0x000400D2, 0x00DC8000, 0x00000000, 0xFFFFFBD7, 0xFFFFFC2E, 0xFFFFF317, 0xFFFFFBD7, - 0xFFFFFC33, 0xFFFFF2F0, 0x00000000, 0x3F000000, 0x00000000, 0x000400DC, 0x019A0000, 0x00000000, 0xFFFFFBD7, - 0xFFFFFC33, 0xFFFFF2F0, 0xFFFFFBD7, 0xFFFFFC30, 0xFFFFF2F0, 0x00000000, 0xBC8158ED, 0x00000000, 0x00000013, - 0x00000006, 0xFFFF0000, 0x00A2FFFF, 0xFFFFFFFF, 0x405000A2, 0x00D30000, 0xFFFFFFFF, 0xFFFF00D3, 0x00E8FFFF, - 0xFFFFFFFF, 0x405100E8, 0x00F10000, 0xFFFFFFFF, 0xFFFF00F1, 0x00F7FFFF, 0xFFFFFFFF, 0x405200F7, 0x012B0000, - 0xFFFFFFFF, 0x00000056, 0x00000001, 0x00230070, 0x00710000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x000000B1, - 0x00000000, 0xFFFFFFC7, 0x000000B1, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00010000, 0x04980000, - 0x00000000, 0x4227A05C, 0xFA92FC4C, 0xF2F500C6, 0x00000000, 0x4222D38E, 0xFA92FC4C, 0xF2F500C8, 0x00000000, - 0x4222D38E, 0xFA92FC4C, 0xF2F500D7, 0x00000000, 0x4222D38E, 0xFA76FC56, 0xF2F700E8, 0x00000000, 0x42346D2B, - 0xFA76FC56, 0xF2F700EA, 0x00000000, 0x42346D2B, 0xFA76FC56, 0xF2F7013D, 0x00000000, 0x42346D2B, 0xFA76FC56, - 0xF2F7013F, 0xFF000000, 0x42346D2B, 0xFA76FC56, 0xF2F7006D, 0x00000001, 0x0001005B, 0x04F60000, 0x00000000, - 0x4233A05F, 0xFAD9FC5A, 0xF2F100C6, 0x00000000, 0x4232D392, 0xFAD9FC58, 0xF2F000C8, 0x00000000, 0x4232D392, - 0xFAD9FC58, 0xF2F000D7, 0x00000000, 0x4232D392, 0xFAD9FC58, 0xF2F000E8, 0x00000000, 0x4232D392, 0xFAD2FC78, - 0xF2F200EA, 0x00000000, 0x4273A06F, 0xFAD2FC78, 0xF2F2013D, 0x00000000, 0x4273A06F, 0xFAD2FC78, 0xF2F2013F, - 0x00000000, 0x4273A06F, 0xFAD2FC78, 0xF2F2014E, 0x00000000, 0x4273A06F, 0xFAD2FC78, 0xF2F2015F, 0x00000000, - 0x4273A06F, 0xFAD2FC78, 0xF2F20161, 0xFF000000, 0x4273A06F, 0xFAD2FC00, 0xF2F2652E, 0x00000001, 0x000100D3, - 0x014C0000, 0x00000000, 0x41F273D3, 0xFA41FCCD, 0xF3B300C6, 0x00000000, 0x41F273D3, 0xFA41FCCD, 0xF3B300C8, - 0x00000000, 0x41F273D3, 0xFA41FCCD, 0xF3B300D7, 0x00000000, 0x41F273D3, 0xFA41FCCD, 0xF3B300E8, 0xFF000000, - 0x41F273D3, 0xFA41FCCD, 0xF3B300EA, 0x00000002, 0x00010000, 0x04B50000, 0x0000001E, 0x4222D38E, 0xFAF1FC15, - 0xF2E800C6, 0x00000032, 0x4222D38E, 0xFAF0FC15, 0xF2E800C8, 0x00000014, 0x4222D38E, 0xFAF0FC15, 0xF2E800D7, - 0x0000000F, 0x42346D2B, 0xFADEFC37, 0xF2EE00E8, 0x0000001E, 0x42346D2B, 0xFADFFC36, 0xF2EE00EA, 0x000003E8, - 0x42346D2B, 0xFADFFC37, 0xF2EE013D, 0x0000001E, 0x42346D2B, 0xFADFFC36, 0xF2EE013F, 0xFF00001E, 0x42346D2B, - 0xFADFFC36, 0xF2EE006D, 0x00000002, 0x0001005B, 0x05130000, 0x0000001E, 0x4232D392, 0xFA83FC24, 0xF2F100C6, - 0x00000007, 0x4232D392, 0xFA82FC23, 0xF2F000C8, 0x00000007, 0x4232D392, 0xFA82FC23, 0xF2F000D7, 0x00000007, - 0x4232D392, 0xFA82FC23, 0xF2F000E8, 0x00000007, 0x4273A06F, 0xFA8FFC2E, 0xF2F200EA, 0x0000001E, 0x4273A06F, - 0xFA8FFC2F, 0xF2F2013D, 0x0000001E, 0x4273A06F, 0xFA8FFC2F, 0xF2F2013F, 0x000003E8, 0x4273A06F, 0xFA8FFC2F, - 0xF2F2014E, 0x0000001E, 0x4273A06F, 0xFA8FFC2F, 0xF2F2015F, 0x0000001E, 0x4273A06F, 0xFA8FFC2F, 0xF2F20161, - 0xFF00001E, 0x4273A06F, 0xFA87FBBA, 0xF2ED652E, 0x00000002, 0x000100D3, 0x01690000, 0x0000001E, 0x41F273D3, - 0xFA6EFCA7, 0xF38A00C6, 0x0000001E, 0x41F273D3, 0xFA6EFCA7, 0xF38A00C8, 0x0000001E, 0x41F273D3, 0xFA6EFCA7, - 0xF38A00D7, 0x0000001E, 0x41F273D3, 0xFA6EFCA7, 0xF38A00E8, 0xFF00001E, 0x41F273D3, 0xFA6EFCA7, 0xF38A00EA, - 0xFFFFFFFF, 0x00000000, 0x00000000, +CutsceneData D_80AF10A4[] = { + CS_BEGIN_CUTSCENE(14, 1299), + CS_PLAYER_ACTION_LIST(3), + CS_PLAYER_ACTION(0x0005, 0, 272, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0003, 272, 292, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_PLAYER_ACTION(0x0005, 292, 777, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037E-29f, 0.0f, 1.4E-45f), + CS_MISC_LIST(1), + CS_MISC(0x000C, 330, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_NPC_ACTION_LIST(66, 3), + CS_NPC_ACTION(0x0001, 0, 40, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1352, -969, -3341, 0.0f, 0.0f, 1.4E-45f), + CS_NPC_ACTION(0x0002, 40, 213, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1360, -969, -3343, 0.0f, 0.0f, 1.4E-45f), + CS_NPC_ACTION(0x0003, 213, 1000, 0x0000, 0x4000, 0x0000, -1360, -969, -3343, -1360, -969, -3343, 0.0f, 0.0f, 1.4E-45f), + CS_NPC_ACTION_LIST(48, 1), + CS_NPC_ACTION(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION_LIST(48, 2), + CS_NPC_ACTION(0x0002, 90, 211, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0006, 211, 311, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION_LIST(62, 3), + CS_NPC_ACTION(0x0004, 0, 210, 0x0000, 0x0000, 0x0000, -1065, -972, -3305, -1065, -978, -3305, 0.0f, -0.028571429f, 0.0f), + CS_NPC_ACTION(0x0004, 210, 220, 0x8000, 0x0000, 0x0000, -1065, -978, -3305, -1065, -973, -3344, 0.0f, 0.5f, 0.0f), + CS_NPC_ACTION(0x0004, 220, 410, 0x0000, 0x0000, 0x0000, -1065, -973, -3344, -1065, -976, -3344, 0.0f, -0.015789473f, 0.0f), + CS_TEXT_LIST(6), + CS_TEXT_NONE(0, 162), + CS_TEXT_DISPLAY_TEXTBOX(0x4050, 162, 211, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT_NONE(211, 232), + CS_TEXT_DISPLAY_TEXTBOX(0x4051, 232, 241, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT_NONE(241, 247), + CS_TEXT_DISPLAY_TEXTBOX(0x4052, 247, 299, 0x0000, 0xFFFF, 0xFFFF), + CS_PLAY_BGM_LIST(1), + CS_PLAY_BGM(0x0023, 112, 113, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x000000B1, 0x00000000, 0xFFFFFFC7, 0x000000B1), + CS_CAM_POS_LIST(0, 1176), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 41.9066f, -1390, -948, -3339, 0x00C6), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00C8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00D7), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1418, -938, -3337, 0x00E8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x00EA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013D), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013F), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x006D), + CS_CAM_POS_LIST(91, 1270), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 44.906612f, -1319, -934, -3343, 0x00C6), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00C8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00D7), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00E8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1326, -904, -3342, 0x00EA), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013D), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x014E), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x015F), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x0161), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.906673f, -1326, -1024, -3342, 0x652E), + CS_CAM_POS_LIST(211, 332), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C6), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C8), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00D7), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00E8), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00EA), + CS_CAM_FOCUS_POINT_LIST(0, 1205), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.706596f, -1295, -1003, -3352, 0x00C6), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 40.706596f, -1296, -1003, -3352, 0x00C8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 40.706596f, -1296, -1003, -3352, 0x00D7), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 45.10661f, -1314, -969, -3346, 0x00E8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x00EA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.10661f, -1313, -969, -3346, 0x013D), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x013F), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x006D), + CS_CAM_FOCUS_POINT_LIST(91, 1299), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 44.70661f, -1405, -988, -3343, 0x00C6), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00C8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00D7), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00E8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 7, 60.906673f, -1393, -978, -3342, 0x00EA), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013D), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 60.906673f, -1393, -977, -3342, 0x014E), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x015F), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x0161), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.906673f, -1401, -1094, -3347, 0x652E), + CS_CAM_FOCUS_POINT_LIST(211, 361), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C6), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C8), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00D7), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00E8), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00EA), + CS_END(), + CS_PAD(), + CS_PAD(), }; -u32 D_80AF1728[] = { - 0x00000007, 0x00000488, 0x00000003, 0x00000001, 0x000C004B, 0x02730000, 0x00000000, 0x00000000, 0xFFFFFFC0, - 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000, 0x00000030, 0x00000001, - 0x00020000, 0x005A0000, 0x00000000, 0xFFFFFAB0, 0xFFFFFC3D, 0xFFFFF2F1, 0xFFFFFAB0, 0xFFFFFC3D, 0xFFFFF2F1, - 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00010000, 0x04430000, 0x00000000, 0x42226662, 0xFA9BFC42, - 0xF2FD8BC0, 0x00000000, 0x42226662, 0xFA9BFC42, 0xF2FD2200, 0x00000000, 0x42226662, 0xFA9BFC42, 0xF2FD0000, - 0x00000000, 0x42226662, 0xFA9BFC42, 0xF2FDD0E8, 0xFF000000, 0x42226662, 0xFA9BFC42, 0xF2FD0000, 0x00000005, - 0x00010028, 0x046B0000, 0x00000000, 0x424B3339, 0x00130028, 0x00358BC0, 0x00000000, 0x424B3339, 0x00130028, - 0x00352200, 0x00000000, 0x424B3339, 0x00130028, 0x00350000, 0x00000000, 0x424B3339, 0x00130028, 0x0035D0E8, - 0xFF000000, 0x424B3339, 0x00130028, 0x00350000, 0x00000002, 0x00010000, 0x04600000, 0x0000001E, 0x42226662, - 0xFB38FC2D, 0xF2DA8BC0, 0x0000001E, 0x42226662, 0xFB38FC2D, 0xF2DA2200, 0x000003E8, 0x42226662, 0xFB38FC2D, - 0xF2DA0000, 0x0000001E, 0x42226662, 0xFB38FC2D, 0xF2DAD0E8, 0xFF00001E, 0x42226662, 0xFB38FC2D, 0xF2DA0000, - 0x00000006, 0x00010028, 0x04880000, 0x0000001E, 0x424B3339, 0xFFDD0038, 0xFFA38BC0, 0x0000001E, 0x424B3339, - 0xFFDD0038, 0xFFA32200, 0x000003E8, 0x424B3339, 0xFFDD0038, 0xFFA30000, 0x0000001E, 0x424B3339, 0xFFDD0038, - 0xFFA3D0E8, 0xFF00001E, 0x424B3339, 0xFFDD0038, 0xFFA30000, 0x00000013, 0x00000002, 0xFFFF0000, 0x0023FFFF, - 0xFFFFFFFF, 0x404F0023, 0x00460000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, +CutsceneData D_80AF1728[] = { + CS_BEGIN_CUTSCENE(7, 1160), + CS_MISC_LIST(1), + CS_MISC(0x000C, 75, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_NPC_ACTION_LIST(48, 1), + CS_NPC_ACTION(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), + CS_CAM_POS_LIST(0, 1091), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x8BC0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x2200), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0xD0E8), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), + CS_CAM_POS_PLAYER_LIST(40, 1131), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x8BC0), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x2200), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0xD0E8), + CS_CAM_POS_PLAYER(CS_CMD_STOP, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), + CS_CAM_FOCUS_POINT_LIST(0, 1120), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x8BC0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x2200), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 40.599983f, -1224, -979, -3366, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0xD0E8), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER_LIST(40, 1160), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x8BC0), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x2200), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 50.800022f, -35, 56, -93, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0xD0E8), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_STOP, 0x00, 30, 50.800022f, -35, 56, -93, 0x0000), + CS_TEXT_LIST(2), + CS_TEXT_NONE(0, 35), + CS_TEXT_DISPLAY_TEXTBOX(0x404F, 35, 70, 0x0000, 0xFFFF, 0xFFFF), + CS_END(), + CS_PAD(), }; +// clang-format on diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index 48472ee54d..12ca564032 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -58,7 +58,7 @@ static u32 D_80AF410C[] = { static u32 D_80AF4118 = 0; -#include "z_en_ru2_cutscene_data.c" +#include "z_en_ru2_cutscene_data.c" EARLY static EnRu2ActionFunc D_80AF50BC[] = { func_80AF2CB4, func_80AF2CD4, func_80AF2CF4, func_80AF2D2C, func_80AF2D6C, func_80AF2DAC, func_80AF2DEC, @@ -176,15 +176,15 @@ s32 EnRu2_FrameUpdateMatrix(EnRu2* this) { return SkelAnime_FrameUpdateMatrix(&this->skelAnime); } -CsCmdActorAction* func_80AF27AC(GlobalContext* globalCtx, s32 actorActionIdx) { +CsCmdActorAction* func_80AF27AC(GlobalContext* globalCtx, s32 npcActionIdx) { if (globalCtx->csCtx.state != 0) { - return globalCtx->csCtx.actorActions[actorActionIdx]; + return globalCtx->csCtx.npcActions[npcActionIdx]; } return NULL; } -s32 func_80AF27D0(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 actorActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx); +s32 func_80AF27D0(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 npcActionIdx) { + CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, npcActionIdx); if (csCmdActorAction != NULL && csCmdActorAction->action == arg2) { return 1; @@ -192,25 +192,25 @@ s32 func_80AF27D0(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 actorActi return 0; } -s32 func_80AF281C(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 actorActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx); +s32 func_80AF281C(EnRu2* this, GlobalContext* globalCtx, u16 arg2, s32 npcActionIdx) { + CsCmdActorAction* csCmdNPCAction = func_80AF27AC(globalCtx, npcActionIdx); - if (csCmdActorAction != NULL && csCmdActorAction->action != arg2) { + if (csCmdNPCAction != NULL && csCmdNPCAction->action != arg2) { return 1; } return 0; } -void func_80AF2868(EnRu2* this, GlobalContext* globalCtx, u32 actorActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, actorActionIdx); +void func_80AF2868(EnRu2* this, GlobalContext* globalCtx, u32 npcActionIdx) { + CsCmdActorAction* csCmdNPCAction = func_80AF27AC(globalCtx, npcActionIdx); s16 newRotY; Actor* thisx = &this->actor; - if (csCmdActorAction != NULL) { - thisx->posRot.pos.x = csCmdActorAction->startPos.x; - thisx->posRot.pos.y = csCmdActorAction->startPos.y; - thisx->posRot.pos.z = csCmdActorAction->startPos.z; - newRotY = csCmdActorAction->rot.y; + if (csCmdNPCAction != NULL) { + thisx->posRot.pos.x = csCmdNPCAction->startPos.x; + thisx->posRot.pos.y = csCmdNPCAction->startPos.y; + thisx->posRot.pos.z = csCmdNPCAction->startPos.z; + newRotY = csCmdNPCAction->rot.y; thisx->shape.rot.y = newRotY; thisx->posRot.rot.y = newRotY; } @@ -282,10 +282,10 @@ void func_80AF2AB4(EnRu2* this, GlobalContext* globalCtx) { void func_80AF2B44(EnRu2* this, GlobalContext* globalCtx) { CutsceneContext* csCtx = &globalCtx->csCtx; - CsCmdActorAction* csCmdActorAction; + CsCmdActorAction* csCmdNPCAction; if (csCtx->state != 0) { - csCmdActorAction = csCtx->actorActions[3]; - if (csCmdActorAction != NULL && csCmdActorAction->action == 2) { + csCmdNPCAction = csCtx->npcActions[3]; + if (csCmdNPCAction != NULL && csCmdNPCAction->action == 2) { this->action = 2; this->drawConfig = 1; func_80AF29DC(this, globalCtx); @@ -302,10 +302,10 @@ void func_80AF2B94(EnRu2* this) { void func_80AF2BC0(EnRu2* this, GlobalContext* globalCtx) { AnimationHeader* animation = &D_0600D3DC; - CsCmdActorAction* csCmdActorAction; + CsCmdActorAction* csCmdNPCAction; if (globalCtx->csCtx.state != 0) { - csCmdActorAction = globalCtx->csCtx.actorActions[3]; - if (csCmdActorAction != NULL && csCmdActorAction->action == 3) { + csCmdNPCAction = globalCtx->csCtx.npcActions[3]; + if (csCmdNPCAction != NULL && csCmdNPCAction->action == 3) { SkelAnime_ChangeAnim(&this->skelAnime, animation, 1.0f, 0.0f, SkelAnime_GetFrameCount(&animation->genericHeader), 2, 0.0f); this->action = 4; @@ -320,10 +320,10 @@ void func_80AF2C54(EnRu2* this, UNK_TYPE arg1) { } void func_80AF2C68(EnRu2* this, GlobalContext* globalCtx) { - CsCmdActorAction* csCmdActorAction; + CsCmdActorAction* csCmdNPCAction; if (globalCtx->csCtx.state != 0) { - csCmdActorAction = globalCtx->csCtx.actorActions[6]; - if (csCmdActorAction != NULL && csCmdActorAction->action == 2) { + csCmdNPCAction = globalCtx->csCtx.npcActions[6]; + if (csCmdNPCAction != NULL && csCmdNPCAction->action == 2) { this->action = 6; func_80AF2A38(this, globalCtx); } @@ -537,12 +537,12 @@ void func_80AF3530(EnRu2* this, UNK_TYPE arg1) { } void func_80AF3564(EnRu2* this, GlobalContext* globalCtx) { - CsCmdActorAction* csCmdActorAction = func_80AF27AC(globalCtx, 3); + CsCmdActorAction* csCmdNPCAction = func_80AF27AC(globalCtx, 3); s32 action; s32 unk_2BC; - if (csCmdActorAction != NULL) { - action = csCmdActorAction->action; + if (csCmdNPCAction != NULL) { + action = csCmdNPCAction->action; unk_2BC = this->unk_2BC; if (action != unk_2BC) { switch (action) { diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.c index 8f8d3cb13f..39888924f8 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.c @@ -1,116 +1,226 @@ #include "z_en_ru2.h" -static u32 D_80AF411C[] = { - 0x00000023, 0x00000D0A, 0x00000020, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, - 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x0000001F, 0x00000005, - 0x00010000, 0x033D0000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x0002033D, 0x033E0000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, - 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0004033E, 0x03820000, 0x00000000, - 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00020382, 0x03B40000, 0x00000000, 0x00000000, 0x000000D8, 0x00000000, 0x00000000, 0x00000052, 0x00000000, - 0x00000000, 0xC02B851F, 0x00000000, 0x000303B4, 0x0D0A0000, 0x00000000, 0x00000000, 0x00000052, 0x00000000, - 0x00000000, 0x00000052, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000A, 0x00000005, 0x000D0000, - 0x00F00000, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x000500F0, 0x02080000, 0x40000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, - 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030208, 0x02260000, 0x40000000, 0x00000000, - 0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00050226, - 0x03210000, 0x40000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00130321, 0x07A40000, 0xC0000000, 0x00000000, 0x00000006, 0x00000000, 0x00000000, - 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000001, 0x00010000, 0x0BB80000, - 0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFF87, 0x00000000, 0xFFFFFFF0, 0xFFFFFF87, 0x00000000, 0x00000000, - 0x00000000, 0x00000004, 0x00000005, 0x00050000, 0x01800000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, - 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, 0x00060180, 0x01C60000, 0x00000000, - 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, - 0x000501C6, 0x022A0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058, - 0x00000000, 0x00000000, 0x00000000, 0x0006022A, 0x02700000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, - 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, 0x00050270, 0x0BB90000, 0x00000000, - 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058, 0x00000000, 0x00000000, 0x00000000, - 0x00000027, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFE, 0x00000000, - 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000000, 0x00000000, 0x0000002A, 0x00000003, 0x00010000, 0x00920000, - 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00020092, 0x02F20000, 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x000000C3, 0x00000006, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000302F2, 0x0A440000, 0x00000000, 0x000000C3, 0x00000006, - 0x00000000, 0x000000C3, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000002D, 0x00000001, - 0x0001032A, 0x03370337, 0x0000002D, 0x00000001, 0x00050339, 0x03570357, 0x0000002D, 0x00000001, 0x00010442, - 0x04610461, 0x00000001, 0x00010000, 0x012D0000, 0x00000000, 0x432F65F8, 0xFD97001E, 0x00470000, 0x00000000, - 0x432F65F8, 0xFD97001E, 0x00471FBC, 0x00000000, 0x432F65F8, 0xFD97001E, 0x0047D5E0, 0x00000000, 0x432F65F8, - 0xFD97001E, 0x00470000, 0x00000000, 0x432F65F8, 0xFD97001E, 0x00471F98, 0x00000000, 0x432F65F8, 0xFD97001E, - 0x00470000, 0x00000000, 0x4311CC7C, 0xFE38006B, 0x00380000, 0x00000000, 0x42726667, 0xFFB40036, 0x00470164, - 0x00000000, 0x42726667, 0x00740036, 0x00602100, 0x00000000, 0x42726667, 0x00EC000B, 0x00400049, 0x00000000, - 0x42726667, 0x00EC000B, 0x0040204C, 0x00000000, 0x42726667, 0x00EC000B, 0x0040E990, 0xFF000000, 0x42726667, - 0x00EC000B, 0x00400000, 0x00000001, 0x00010107, 0x05CC0000, 0x00000000, 0x4228E87B, 0x00A10035, 0x001A0000, - 0x00000000, 0x4228E87B, 0x00A10035, 0x001A1FBC, 0x00000000, 0x4228E87B, 0x00A10035, 0x001AD5E0, 0x00000000, - 0x4228E87B, 0x00820009, 0x00600000, 0x00000000, 0x4228E87B, 0x00820009, 0x00601F98, 0x00000000, 0x4228E87B, - 0x00820009, 0x00600000, 0x00000000, 0x4228E87B, 0x00820009, 0x00600000, 0xFF000000, 0x4228E87B, 0x00820009, - 0x00600164, 0x00000001, 0x0001017F, 0x05C20000, 0x00000000, 0x428C743C, 0x00CF002D, 0x00220000, 0x00000000, - 0x428C743C, 0x00CF002D, 0x00221FBC, 0x00000000, 0x428C743C, 0x00CF002D, 0x0022D5E0, 0x00000000, 0x428C743C, - 0x00CF002D, 0x00220000, 0xFF000000, 0x428C743C, 0x00CF002D, 0x00221F98, 0x00000001, 0x000101C5, 0x06080000, - 0x00000000, 0x42341BB1, 0xFFC6005A, 0x00460000, 0x00000000, 0x42341BB1, 0xFFC6005A, 0x00461FBC, 0x00000000, - 0x42341BB1, 0xFFC6005A, 0x0046D5E0, 0x00000000, 0x42341BB1, 0xFFC6005A, 0x00460000, 0xFF000000, 0x42341BB1, - 0xFFC6005A, 0x00461F98, 0x00000001, 0x00010229, 0x066C0000, 0x00000000, 0x428C743C, 0x00CF002D, 0x00220000, - 0x00000000, 0x428C743C, 0x00CF002D, 0x00221FBC, 0x00000000, 0x428C743C, 0x00CF002D, 0x0022D5E0, 0x00000000, - 0x428C743C, 0x00CF002D, 0x00220000, 0xFF000000, 0x428C743C, 0x00CF002D, 0x00221F98, 0x00000001, 0x0001026F, - 0x06B20000, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00000000, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00001FBC, - 0x00000000, 0x4271B55A, 0x00A1003B, 0x0000D5E0, 0x00000000, 0x4271B55A, 0x00A1003B, 0x00000000, 0xFF000000, - 0x4271B55A, 0x00A1003B, 0x00001F98, 0x00000001, 0x000102B5, 0x06F80000, 0x00000000, 0x4271B55A, 0x00970052, - 0x00230000, 0x00000000, 0x4271B55A, 0x00970052, 0x00231FBC, 0x00000000, 0x4271B55A, 0x00970052, 0x0023D5E0, - 0x00000000, 0x4271B55A, 0x00970052, 0x00230000, 0xFF000000, 0x4271B55A, 0x00970052, 0x00231F98, 0x00000001, - 0x000102FB, 0x03B00000, 0x00000000, 0x4271B55A, 0x00E60007, 0x00180000, 0x00000000, 0x4271B55A, 0x00E60007, - 0x00181FBC, 0x00000000, 0x4271B55A, 0x00E60007, 0x0018D5E0, 0x00000000, 0x4271B55A, 0x00CF003E, 0x000F0000, - 0x00000000, 0x428CDAA2, 0x00E600F0, 0x00181F98, 0x00000000, 0x428CDAA2, 0x00E600F0, 0x00180000, 0x00000000, - 0x428CDAA2, 0x00E600F0, 0x00180000, 0xFF000000, 0x428CDAA2, 0x00E600F0, 0x00180164, 0x00000001, 0x00010337, - 0x048D0000, 0x00000000, 0x42700000, 0x000D0356, 0x00020000, 0x00000000, 0x42700000, 0x00090355, 0x00051FBC, - 0x00000000, 0x42700000, 0xFFFD0355, 0x0005D5E0, 0x00000000, 0x42700000, 0xFFF70355, 0xFFFA0000, 0x00000000, - 0x42700000, 0xFFFE0354, 0xFFEF1F98, 0x00000000, 0x42700000, 0x00090354, 0xFFEF0000, 0x00000000, 0x42700000, - 0x00100354, 0xFFFA0000, 0x00000000, 0x42700000, 0x00090354, 0x00050164, 0xFF000000, 0x42700000, 0xFFFD0353, - 0x00052100, 0x00000005, 0x00010383, 0x08200000, 0x00000000, 0x4289332C, 0x00000021, 0xFFE50000, 0x00000000, - 0x4289332C, 0x00000021, 0xFFE51FBC, 0x00000000, 0x4289332C, 0x00000044, 0xFFE6D5E0, 0x00000000, 0x4289332C, - 0x00000067, 0xFFE60000, 0x00000000, 0x4289332C, 0x00000067, 0xFFE61F98, 0x00000000, 0x4289332C, 0x00000067, - 0xFFE60000, 0x00000000, 0x4289332C, 0x00000067, 0xFFE60000, 0xFF000000, 0x4289332C, 0x00000067, 0xFFE60164, - 0x00000002, 0x00010000, 0x014A0000, 0x001E0014, 0x432F65F8, 0xFD77FFB5, 0x00650000, 0x00E20014, 0x432F65F8, - 0xFD74FFB5, 0x00621FBC, 0x001E0014, 0x432F65F8, 0xFD6EFFB5, 0x0057D5E0, 0x00E20014, 0x432F65F8, 0xFD5A007F, - 0x00470000, 0x00000014, 0x432F65F8, 0xFD290000, 0x00471F98, 0x00000014, 0x4311CC7C, 0xFDFF0000, 0x002B0000, - 0x0000001E, 0x42726667, 0xFEA30059, 0x002F0000, 0x0000001E, 0x42726667, 0x0006003D, 0x00010164, 0x0000001E, - 0x42726667, 0x00210042, 0x001C2100, 0x0000001E, 0x42726667, 0x009E002A, 0x00010049, 0x0000001E, 0x42726667, - 0x009E002A, 0x0001204C, 0x0000001E, 0x42726667, 0x009E002A, 0x0001E990, 0xFF00001E, 0x42726667, 0x009E002A, - 0x00010000, 0x00000002, 0x00010107, 0x05E90000, 0x0000001E, 0x4228E87B, 0x0142003E, 0xFF860000, 0x0000001E, - 0x4228E87B, 0x0142003E, 0xFF861FBC, 0x00000032, 0x4228E87B, 0x0142003E, 0xFF86D5E0, 0x00000032, 0x4228E87B, - 0x00E8003F, 0xFFAD0000, 0x0000001E, 0x4228E87B, 0x00E8003F, 0xFFAD1F98, 0x000003E8, 0x4228E87B, 0x00E8003F, - 0xFFAD0000, 0x0000001E, 0x4228E87B, 0x00E8003F, 0xFFAD0000, 0xFF00001E, 0x4228E87B, 0x00E8003F, 0xFFAD0164, - 0x00000002, 0x0001017F, 0x05DF0000, 0x0000001E, 0x428C743C, 0x0033003E, 0xFF970000, 0x0000001E, 0x428C743C, - 0x0033003E, 0xFF971FBC, 0x000003E8, 0x428C743C, 0x0033003E, 0xFF97D5E0, 0x0000001E, 0x428C743C, 0x0033003E, - 0xFF970000, 0xFF00001E, 0x428C743C, 0x0033003E, 0xFF971F98, 0x00000002, 0x000101C5, 0x06250000, 0x0000001E, - 0x42341BB1, 0x00660016, 0xFFE10000, 0x0000001E, 0x42341BB1, 0x00660016, 0xFFE11FBC, 0x000003E8, 0x42341BB1, - 0x00660016, 0xFFE1D5E0, 0x0000001E, 0x42341BB1, 0x00660016, 0xFFE10000, 0xFF00001E, 0x42341BB1, 0x00660016, - 0xFFE11F98, 0x00000002, 0x00010229, 0x06890000, 0x0000001E, 0x428C743C, 0x0033003E, 0xFF970000, 0x0000001E, - 0x428C743C, 0x0033003E, 0xFF971FBC, 0x000003E8, 0x428C743C, 0x0033003E, 0xFF97D5E0, 0x0000001E, 0x428C743C, - 0x0033003E, 0xFF970000, 0xFF00001E, 0x428C743C, 0x0033003E, 0xFF971F98, 0x00000002, 0x0001026F, 0x06CF0000, - 0x0000001E, 0x4271B55A, 0x015B0016, 0x00000000, 0x0000001E, 0x4271B55A, 0x015B0016, 0x00001FBC, 0x000003E8, - 0x4271B55A, 0x015B0016, 0x0000D5E0, 0x0000001E, 0x4271B55A, 0x015B0016, 0x00000000, 0xFF00001E, 0x4271B55A, - 0x015B0016, 0x00001F98, 0x00000002, 0x000102B5, 0x07150000, 0x0000001E, 0x4271B55A, 0x0102FFE2, 0xFFCA0000, - 0x0000001E, 0x4271B55A, 0x0102FFE2, 0xFFCA1FBC, 0x000003E8, 0x4271B55A, 0x0102FFE2, 0xFFCAD5E0, 0x0000001E, - 0x4271B55A, 0x0102FFE2, 0xFFCA0000, 0xFF00001E, 0x4271B55A, 0x0102FFE2, 0xFFCA1F98, 0x00000002, 0x000102FB, - 0x03CD0000, 0x0000001E, 0x4271B55A, 0x00600069, 0xFFE30000, 0x00000028, 0x4271B55A, 0x00600069, 0xFFE31FBC, - 0x0000000F, 0x4271B55A, 0x00600069, 0xFFE3D5E0, 0x0000000F, 0x42701BC0, 0x006E00C4, 0xFFE60000, 0x00000014, - 0x428CDAA2, 0x00B9018F, 0x00061F98, 0x0000001E, 0x428CDAA2, 0x00B9018F, 0x00060000, 0x0000001E, 0x428CDAA2, - 0x00B9018F, 0x00060000, 0xFF00001E, 0x428CDAA2, 0x00B9018F, 0x00060164, 0x00000002, 0x00010337, 0x04BE0000, - 0x00000032, 0x42700000, 0x00030006, 0xFFFA0000, 0x00000028, 0x42700000, 0x00030006, 0xFFFA1FBC, 0x0000001E, - 0x424BFFF7, 0x00030006, 0xFFFAD5E0, 0x00000014, 0x41A4CC7E, 0x00030006, 0xFFFA0000, 0x00000033, 0x412CCC23, - 0x00030006, 0xFFFA1F98, 0x00000032, 0x412665BD, 0x00030006, 0xFFFA0000, 0x00000032, 0x412665BD, 0x00030006, - 0xFFFA0000, 0x00000032, 0x4123328A, 0x00030006, 0xFFFA0164, 0xFF000032, 0x412FFF56, 0x00030006, 0xFFFA2100, - 0x00000006, 0x00010383, 0x083D0000, 0x0000001E, 0x4289332C, 0x00000064, 0x00050000, 0x0000001E, 0x4289332C, - 0x00000065, 0x00061FBC, 0x0000001E, 0x4289332C, 0x00010063, 0x0029D5E0, 0x0000001E, 0x4289332C, 0x0000002A, - 0x00100000, 0x0000001E, 0x4289332C, 0x0000002A, 0x00101F98, 0x000003E8, 0x4289332C, 0x0000002A, 0x00100000, - 0x0000001E, 0x4289332C, 0x0000002A, 0x00100000, 0xFF00001E, 0x4289332C, 0x0000002A, 0x00100164, 0x0000003E, - 0x00000001, 0x00040000, 0x0BB8C10F, 0x00000000, 0x0000004D, 0x00000050, 0xFFFFFFFE, 0x00000000, 0x00000050, - 0x00000000, 0xBCD242E7, 0x00000000, 0x3CD242E7, 0x00000013, 0x0000000E, 0xFFFF0000, 0x018AFFFF, 0xFFFFFFFF, - 0x4041018A, 0x01BC0000, 0x00000000, 0xFFFF01BC, 0x01D0FFFF, 0xFFFFFFFF, 0x404601D0, 0x021F0000, 0x00000000, - 0xFFFF021F, 0x0234FFFF, 0xFFFFFFFF, 0x40490234, 0x02650000, 0x00000000, 0xFFFF0265, 0x027AFFFF, 0xFFFFFFFF, - 0x4047027A, 0x02AC0000, 0x00000000, 0xFFFF02AC, 0x02C0FFFF, 0xFFFFFFFF, 0x404A02C0, 0x02EE0000, 0x00000000, - 0xFFFF02EE, 0x043DFFFF, 0xFFFFFFFF, 0x003D043D, 0x04420000, 0x00000000, 0xFFFF0442, 0x047EFFFF, 0xFFFFFFFF, - 0x4042047E, 0x04880000, 0x00000000, 0x000003E8, 0x00000001, 0x001504A6, 0x04BD04BD, 0x00000056, 0x00000001, - 0x00440384, 0x03850000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x00000034, 0x00000000, 0xFFFFFFC7, 0x00000034, - 0x00000000, 0x00000000, 0x00000000, 0x0000007C, 0x00000001, 0x00040320, 0x03520000, 0x00000000, 0x00000000, - 0xFFFFFFC6, 0x00000030, 0x00000000, 0xFFFFFFC6, 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, - 0x00000000, +#include + +static CutsceneData D_80AF411C[] = { + // clang-format off + CS_BEGIN_CUTSCENE(35, 3338), + 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, 829, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0002, 829, 830, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0004, 830, 898, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0002, 898, 948, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.68f, 0.0f), + CS_NPC_ACTION(0x0003, 948, 3338, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_ACTION_LIST(5), + CS_PLAYER_ACTION(0x000D, 0, 240, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_ACTION(0x0005, 240, 520, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_ACTION(0x0003, 520, 550, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_ACTION(0x0005, 550, 801, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_ACTION(0x0013, 801, 1956, 0x0000, 0xC000, 0x0000, 0, 6, 0, 0, 6, 0, 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_LIGHTING_LIST(5), + CS_LIGHTING(0x0005, 0, 384, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHTING(0x0006, 384, 454, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHTING(0x0005, 454, 554, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHTING(0x0006, 554, 624, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHTING(0x0005, 624, 3001, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + 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_NPC_ACTION_LIST(42, 3), + CS_NPC_ACTION(0x0001, 0, 146, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0002, 146, 754, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_NPC_ACTION(0x0003, 754, 2628, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_SCENE_TRANS_FX(0x0001, 810, 823), + CS_SCENE_TRANS_FX(0x0005, 825, 855), + CS_SCENE_TRANS_FX(0x0001, 1090, 1121), + CS_CAM_POS_LIST(0, 301), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1F98), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 145.79877f, -456, 107, 56, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -76, 54, 71, 0x0164), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 116, 54, 96, 0x2100), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x0049), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x204C), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0xE990), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.600002f, 236, 11, 64, 0x0000), + CS_CAM_POS_LIST(263, 1484), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x1F98), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 42.22703f, 130, 9, 96, 0x0164), + CS_CAM_POS_LIST(383, 1474), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), + CS_CAM_POS_LIST(453, 1544), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.027042f, -58, 90, 70, 0x1F98), + CS_CAM_POS_LIST(553, 1644), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), + CS_CAM_POS_LIST(623, 1714), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.4271f, 161, 59, 0, 0x1F98), + CS_CAM_POS_LIST(693, 1784), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.4271f, 151, 82, 35, 0x1F98), + CS_CAM_POS_LIST(763, 944), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 207, 62, 15, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x1F98), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 70.42702f, 230, 240, 24, 0x0164), + CS_CAM_POS_LIST(823, 1165), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x1FBC), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0xD5E0), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x1F98), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x0000), + CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x0164), + CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x2100), + CS_CAM_POS_PLAYER_LIST(899, 2080), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x0000), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x1FBC), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0xD5E0), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x1F98), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POS_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POS_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x0164), + CS_CAM_FOCUS_POINT_LIST(0, 330), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x1E, 20, 175.39832f, -649, -75, 101, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0xE2, 20, 175.39832f, -652, -75, 98, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x1E, 20, 175.39832f, -658, -75, 87, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0xE2, 20, 175.39832f, -678, 127, 71, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 175.39832f, -727, 0, 71, 0x1F98), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 145.79877f, -513, 0, 43, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -349, 89, 47, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 6, 61, 1, 0x0164), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 33, 66, 28, 0x2100), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x0049), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x204C), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0xE990), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.600002f, 158, 42, 1, 0x0000), + CS_CAM_FOCUS_POINT_LIST(263, 1513), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 42.22703f, 322, 62, -122, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x1F98), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 42.22703f, 232, 63, -83, 0x0164), + CS_CAM_FOCUS_POINT_LIST(383, 1503), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), + CS_CAM_FOCUS_POINT_LIST(453, 1573), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.027042f, 102, 22, -31, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.027042f, 102, 22, -31, 0x1F98), + CS_CAM_FOCUS_POINT_LIST(553, 1673), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), + CS_CAM_FOCUS_POINT_LIST(623, 1743), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 60.4271f, 347, 22, 0, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.4271f, 347, 22, 0, 0x1F98), + CS_CAM_FOCUS_POINT_LIST(693, 1813), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 60.4271f, 258, -30, -54, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.4271f, 258, -30, -54, 0x1F98), + CS_CAM_FOCUS_POINT_LIST(763, 973), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 96, 105, -29, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 40, 60.4271f, 96, 105, -29, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.4271f, 96, 105, -29, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 15, 60.0271f, 110, 196, -26, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 70.42702f, 185, 399, 6, 0x1F98), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 70.42702f, 185, 399, 6, 0x0164), + CS_CAM_FOCUS_POINT_LIST(823, 1214), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x1FBC), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0xD5E0), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x1F98), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), + CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x0164), + CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x2100), + CS_CAM_FOCUS_POINT_PLAYER_LIST(899, 2109), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x1FBC), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0xD5E0), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x1F98), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_FOCUS_POINT_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x0164), + CS_NPC_ACTION_LIST(62, 1), + CS_NPC_ACTION(0x0004, 0, 3000, 0xC10F, 0x0000, 0x0000, 77, 80, -2, 0, 80, 0, -0.025666667f, 0.0f, 0.025666667f), + CS_TEXT_LIST(14), + CS_TEXT_NONE(0, 394), + CS_TEXT_DISPLAY_TEXTBOX(0x4041, 394, 444, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(444, 464), + CS_TEXT_DISPLAY_TEXTBOX(0x4046, 464, 543, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(543, 564), + CS_TEXT_DISPLAY_TEXTBOX(0x4049, 564, 613, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(613, 634), + CS_TEXT_DISPLAY_TEXTBOX(0x4047, 634, 684, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(684, 704), + CS_TEXT_DISPLAY_TEXTBOX(0x404A, 704, 750, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(750, 1085), + CS_TEXT_DISPLAY_TEXTBOX(0x003D, 1085, 1090, 0x0000, 0x0000, 0x0000), + CS_TEXT_NONE(1090, 1150), + CS_TEXT_DISPLAY_TEXTBOX(0x4042, 1150, 1160, 0x0000, 0x0000, 0x0000), + CS_TERMINATOR(LAKE_HYLIA_WATER_RISES, 1190, 1213), + CS_PLAY_BGM_LIST(1), + CS_PLAY_BGM(0x0044, 900, 901, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x00000034, 0x00000000, 0xFFFFFFC7, 0x00000034), + CS_FADE_BGM_LIST(1), + CS_FADE_BGM(0x0004, 800, 850, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC6, 0x00000030, 0x00000000, 0xFFFFFFC6, 0x00000030), + CS_END(), + CS_PAD(), + // clang-format on }; diff --git a/tools/asm_processor/asm_processor.py b/tools/asm_processor/asm_processor.py index 1ff25db813..50d2a91d59 100644 --- a/tools/asm_processor/asm_processor.py +++ b/tools/asm_processor/asm_processor.py @@ -7,6 +7,7 @@ import sys import re import os from collections import namedtuple +from io import StringIO MAX_FN_SIZE = 100 @@ -660,6 +661,9 @@ class GlobalAsmBlock: }) return src, fn +def repl_float_hex(m): + return str(struct.unpack(">I", struct.pack(">f", float(m.group(0).strip().rstrip("f"))))[0]) + def parse_source(f, opt, framepointer, input_enc, output_enc, print_source=None): if opt in ['O2', 'O1']: if framepointer: @@ -688,6 +692,7 @@ def parse_source(f, opt, framepointer, input_enc, output_enc, print_source=None) state = GlobalState(min_instr_count, skip_instr_count) global_asm = None + is_cutscene_data = False asm_functions = [] output_lines = [] @@ -724,15 +729,34 @@ def parse_source(f, opt, framepointer, input_enc, output_enc, print_source=None) output_lines[-1] = ''.join(src) asm_functions.append(fn) global_asm = None + elif ((line.startswith('#include "')) and line.endswith('" EARLY')): + fpath = os.path.dirname(f.name) + fname = line[line.index(' ') + 2 : -7] + include_src = StringIO() + with open(fpath + os.path.sep + fname, encoding=input_enc) as include_file: + parse_source(include_file, opt, framepointer, input_enc, output_enc, include_src) + output_lines[-1] = include_src.getvalue() + include_src.write('#line ' + str(line_no) + '\n') + include_src.close() else: + if re.compile(r"(CutsceneData (.|\n)*\[\] = {)").search(line) is not None: + is_cutscene_data = True + elif line.endswith("};"): + is_cutscene_data = False + if is_cutscene_data: + raw_line = re.sub(re.compile(r"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?f"), repl_float_hex, raw_line) output_lines[-1] = raw_line if print_source: - for line in output_lines: - print_source.write(line.encode(output_enc) + b'\n') - print_source.flush() - if print_source != sys.stdout.buffer: - print_source.close() + if isinstance(print_source, StringIO): + for line in output_lines: + print_source.write(line + '\n') + else: + for line in output_lines: + print_source.write(line.encode(output_enc) + b'\n') + print_source.flush() + if print_source != sys.stdout.buffer: + print_source.close() return asm_functions