mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 17:54:15 +00:00
373dc7d2d8
`z_demo_go.c` is now functionally equivalent and almost fully matched. Note that I added a Vec3i struct in `z64actor.h` now used in `CsCmdActorAction`. Also fixed some missing VT codes in various actor strings.
134 lines
3.2 KiB
C
134 lines
3.2 KiB
C
#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 */ Vec3i startPos;
|
|
/* 0x18 */ Vec3i endPos;
|
|
/* 0x24 */ Vec3i 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
|