1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-17 20:41:28 +00:00

Create Macros for Cutscene Data (#63)

* Added additional (potentially unused) fields to macros, now builds OK

* Ran formatter, attempted better macro formatting

* Formatted unknown fields as hex, further cleanups

* Rename and prefix macros, use command base macros, format cutscenes with indents

* Move command macros into a new file and include it globally

* Generate cutscene command macros for Bg_Toki_Swd, Cleanups

* Rename CS_TEXTBOX commands to CS_TEXT, fix typo ic command_macros_base.h

* Introduce CS_CMD_CONTINUE and CS_CMD_STOP

* Remove apparently redundant arguments in certain commands, include the values in the macros directly

* Re-add cutscene terminator destination enum values to example cutscene data

* Format what should be floats as hex, Change actorAnim to actorAction

* Allow floating-point representation of values in cutscene data (asm-processor hack)

* Include cutscene commands only where necessary, documentation fixes

* Rename actor actions to npc actions, separate player action from npc actions

* Remove PlayerActionIDs for now as relevant information on it is not yet decompiled

* Generate cutscene data for en_ru1, remove apparent redundancies in CS_LIGHTING and CS_PLAY/STOP/FADE_BGM commands, relax static requirement in asm-processor CutsceneData float conversion
This commit is contained in:
Tharo 2020-05-20 12:37:28 +01:00 committed by GitHub
parent 2bccbe7679
commit 43dfaa7518
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 1538 additions and 506 deletions

View file

@ -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

View file

@ -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 {

View file

@ -1,6 +1,8 @@
#ifndef _Z64CUTSCENE_H_
#define _Z64CUTSCENE_H_
#include <ultra64.h>
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

View file

@ -0,0 +1,442 @@
#ifndef _Z64CUTSCENE_CMMANDS_H_
#define _Z64CUTSCENE_CMMANDS_H_
#include <command_macros_base.h>
#include <z64cutscene.h>
/**
* 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

View file

@ -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++;

View file

@ -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;

View file

@ -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,

View file

@ -0,0 +1,276 @@
#include "z_bg_toki_swd.h"
#include <z64cutscene_commands.h>
// 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

View file

@ -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;
}

View file

@ -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);

View file

@ -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);

View file

@ -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 <z64cutscene_commands.h>
// 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

View file

@ -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) {

View file

@ -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 <z64cutscene_commands.h>
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
};

View file

@ -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