#ifndef _Z64CUTSCENE_H_ #define _Z64CUTSCENE_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 /* 0x03 */ u8 flag; // event_chk_inf flag bound to the entrance cutscene /* 0x04 */ u32 segAddr; // segment offset location of the cutscene } EntranceCutscene; // size = 0x8 typedef struct { /* 0x00 */ s8 continueFlag; /* 0x01 */ s8 cameraRoll; /* 0x02 */ s16 nextPointFrame; /* 0x04 */ f32 viewAngle; // in degrees /* 0x08 */ Vec3s pos; } CutsceneCameraPoint; // size = 0x10 typedef struct { /* 0x00 */ u16 base; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; } CsCmdBase; typedef struct { /* 0x00 */ u8 unk_00; /* 0x01 */ u8 setting; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; } CsCmdEnvLighting; typedef struct { /* 0x00 */ u8 unk_00; /* 0x01 */ u8 sequence; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; } CsCmdMusicChange; typedef struct { /* 0x00 */ u16 type; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; } CsCmdMusicFade; typedef struct { /* 0x00 */ u16 unk_00; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; /* 0x06 */ u8 unk_06; /* 0x07 */ u8 unk_07; /* 0x08 */ u8 unk_08; } CsCmdUnknown9; typedef struct { /* 0x00 */ u16 unk_00; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; /* 0x06 */ u8 hour; /* 0x07 */ u8 minute; } CsCmdDayTime; typedef struct { /* 0x00 */ u16 base; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; /* 0x06 */ u16 type; /* 0x08 */ u16 textId1; /* 0x0A */ u16 textId2; } CsCmdTextbox; // size = 0xC typedef struct { /* 0x00 */ u16 action; /* 0x02 */ u16 startFrame; /* 0x04 */ u16 endFrame; /* 0x06 */ Vec3s rot; /* 0x0C */ Vec3f startPos; /* 0x18 */ Vec3f endPos; /* 0x24 */ Vec3f normal; } CsCmdActorAction; // size = 0x30 typedef enum { CS_STATE_IDLE, CS_STATE_SKIPPABLE_INIT, CS_STATE_SKIPPABLE_EXEC, CS_STATE_UNSKIPPABLE_INIT, CS_STATE_UNSKIPPABLE_EXEC } CutsceneState; typedef enum { CS_CMD_00 = 0x0000, CS_CMD_CAMERA_POS = 0x0001, 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_07 = 0x0007, CS_CMD_08 = 0x0008, CS_CMD_09 = 0x0009, CS_CMD_TEXTBOX = 0x0013, CS_CMD_SET_ACTOR_ACTION_0 = 0x000A, CS_CMD_SET_ACTOR_ACTION_1 = 0x000F, CS_CMD_SET_ACTOR_ACTION_2 = 0x000E, CS_CMD_SET_ACTOR_ACTION_3 = 0x0019, CS_CMD_SET_ACTOR_ACTION_4 = 0x001D, CS_CMD_SET_ACTOR_ACTION_5 = 0x001E, CS_CMD_SET_ACTOR_ACTION_6 = 0x002C, CS_CMD_SET_ACTOR_ACTION_7 = 0x001F, CS_CMD_SET_ACTOR_ACTION_8 = 0x0031, CS_CMD_SET_ACTOR_ACTION_9 = 0x003E, CS_CMD_SET_ACTOR_ACTION_10 = 0x008F, CS_CMD_SCENE_TRANS_FX = 0x002D, CS_CMD_NOP = 0x000B, CS_CMD_PLAYBGM = 0x0056, CS_CMD_STOPBGM = 0x0057, CS_CMD_FADEBGM = 0x007C, CS_CMD_SETTIME = 0x008C, CS_CMD_TERMINATOR = 0x03E8, CS_CMD_END = 0xFFFF } CutsceneCmd; #endif