1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-29 16:26:18 +00:00
oot/include/z64cutscene.h

123 lines
3.2 KiB
C
Raw Normal View History

2020-03-17 04:31:30 +00:00
#ifndef _Z64CUTSCENE_H_
#define _Z64CUTSCENE_H_
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 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
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ s8 continueFlag;
/* 0x01 */ s8 cameraRoll;
/* 0x02 */ s16 nextPointFrame;
/* 0x04 */ f32 viewAngle; // in degrees
/* 0x08 */ Vec3s pos;
} CutsceneCameraPoint; // size = 0x10
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 base;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
} CsCmdBase;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 setting;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
} CsCmdEnvLighting;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 sequence;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
} CsCmdMusicChange;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 type;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
} CsCmdMusicFade;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ u8 unk_06;
/* 0x07 */ u8 unk_07;
/* 0x08 */ u8 unk_08;
} CsCmdUnknown9;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 unk_00;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ u8 hour;
/* 0x07 */ u8 minute;
} CsCmdDayTime;
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 base;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ u16 type;
/* 0x08 */ u16 textId1;
/* 0x0A */ u16 textId2;
} CsCmdTextbox; // size = 0xC
2020-03-22 21:50:11 +00:00
typedef struct {
2020-03-17 04:31:30 +00:00
/* 0x00 */ u16 action;
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ Vec3s rot;
/* 0x0C */ Vec3i startPos;
/* 0x18 */ Vec3i endPos;
/* 0x24 */ Vec3i normal;
2020-03-17 04:31:30 +00:00
} CsCmdActorAction; // size = 0x30
2020-03-22 21:50:11 +00:00
typedef enum {
2020-03-17 04:31:30 +00:00
CS_STATE_IDLE,
CS_STATE_SKIPPABLE_INIT,
CS_STATE_SKIPPABLE_EXEC,
CS_STATE_UNSKIPPABLE_INIT,
CS_STATE_UNSKIPPABLE_EXEC
} CutsceneState;
2020-03-22 21:50:11 +00:00
typedef enum {
2020-03-17 04:31:30 +00:00
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