mirror of
https://github.com/HarbourMasters/2ship2harkinian.git
synced 2024-11-27 16:20:34 +00:00
General Cleanup 9 (#961)
* small z64animation cleanup * z64 * actor * bgcheck * collisioncheck * curve * cutscene * effect * item * light * math * player * save * save * schedule * skin * transition * Remove leading 0s from size = 0x10 * z64schedule enum * PR * enums
This commit is contained in:
parent
dbe98b9776
commit
9a4319827b
133
include/z64.h
133
include/z64.h
@ -98,17 +98,17 @@ typedef struct {
|
||||
} AnimatedMaterial; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s pos;
|
||||
/* 0x06 */ s16 unk_06;
|
||||
/* 0x08 */ Gfx* opa;
|
||||
/* 0x0C */ Gfx* xlu;
|
||||
} PolygonDlist2; // size = 0x8
|
||||
/* 0x0 */ Vec3s pos;
|
||||
/* 0x6 */ s16 unk_06;
|
||||
/* 0x8 */ Gfx* opa;
|
||||
/* 0xC */ Gfx* xlu;
|
||||
} PolygonDlist2; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x01 */ u8 num; // number of dlist entries
|
||||
/* 0x04 */ void* start;
|
||||
/* 0x08 */ void* end;
|
||||
/* 0x0 */ u8 type;
|
||||
/* 0x1 */ u8 num; // number of dlist entries
|
||||
/* 0x4 */ void* start;
|
||||
/* 0x8 */ void* end;
|
||||
} PolygonType2; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
@ -156,7 +156,7 @@ typedef struct {
|
||||
/* 0xA */ u8 colorsIndex;
|
||||
/* 0xB */ u8 flags;
|
||||
/* 0xC */ u8 lightParamsIndex;
|
||||
} FireObjInitParams; // size = 0xD
|
||||
} FireObjInitParams; // size = 0x10
|
||||
|
||||
typedef struct FireObjColors {
|
||||
/* 0x0 */ Color_RGBA8 primColor;
|
||||
@ -183,17 +183,17 @@ typedef struct {
|
||||
} GameInfo; // size = 0x15D4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u32 size;
|
||||
/* 0x0004 */ void* bufp;
|
||||
/* 0x0008 */ void* head;
|
||||
/* 0x000C */ void* tail;
|
||||
/* 0x0 */ u32 size;
|
||||
/* 0x4 */ void* bufp;
|
||||
/* 0x8 */ void* head;
|
||||
/* 0xC */ void* tail;
|
||||
} TwoHeadArena; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u32 size;
|
||||
/* 0x0004 */ Gfx* bufp;
|
||||
/* 0x0008 */ Gfx* p;
|
||||
/* 0x000C */ Gfx* d;
|
||||
/* 0x0 */ u32 size;
|
||||
/* 0x4 */ Gfx* bufp;
|
||||
/* 0x8 */ Gfx* p;
|
||||
/* 0xC */ Gfx* d;
|
||||
} TwoHeadGfxArena; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -663,29 +663,29 @@ typedef struct {
|
||||
} EnvironmentContext; // size = 0x100
|
||||
|
||||
typedef struct {
|
||||
/* 0x00000 */ View view;
|
||||
/* 0x00168 */ void* skyboxStaticSegment[4];
|
||||
/* 0x00178 */ void* skyboxPaletteStaticSegment;
|
||||
/* 0x0017C */ Gfx* dListBuf;
|
||||
/* 0x00180 */ Gfx* roomDL;
|
||||
/* 0x00184 */ Vtx* roomVtx;
|
||||
/* 0x00188 */ DmaRequest unk188;
|
||||
/* 0x001A8 */ DmaRequest unk1A8;
|
||||
/* 0x001C8 */ DmaRequest unk1C8;
|
||||
/* 0x001E8 */ OSMesgQueue loadQueue;
|
||||
/* 0x00200 */ OSMesg loadMsg;
|
||||
/* 0x00204 */ s16 skyboxShouldDraw;
|
||||
/* 0x00208 */ f32 rotX;
|
||||
/* 0x0020C */ f32 rotY;
|
||||
/* 0x00210 */ f32 rotZ;
|
||||
/* 0x00214 */ Vec3f eye;
|
||||
/* 0x00220 */ s16 angle;
|
||||
/* 0x00222 */ u8 primR;
|
||||
/* 0x00223 */ u8 primG;
|
||||
/* 0x00224 */ u8 primB;
|
||||
/* 0x00225 */ u8 envR;
|
||||
/* 0x00226 */ u8 envG;
|
||||
/* 0x00227 */ u8 envB;
|
||||
/* 0x000 */ View view;
|
||||
/* 0x168 */ void* skyboxStaticSegment[4];
|
||||
/* 0x178 */ void* skyboxPaletteStaticSegment;
|
||||
/* 0x17C */ Gfx* dListBuf;
|
||||
/* 0x180 */ Gfx* roomDL;
|
||||
/* 0x184 */ Vtx* roomVtx;
|
||||
/* 0x188 */ DmaRequest unk188;
|
||||
/* 0x1A8 */ DmaRequest unk1A8;
|
||||
/* 0x1C8 */ DmaRequest unk1C8;
|
||||
/* 0x1E8 */ OSMesgQueue loadQueue;
|
||||
/* 0x200 */ OSMesg loadMsg;
|
||||
/* 0x204 */ s16 skyboxShouldDraw;
|
||||
/* 0x208 */ f32 rotX;
|
||||
/* 0x20C */ f32 rotY;
|
||||
/* 0x210 */ f32 rotZ;
|
||||
/* 0x214 */ Vec3f eye;
|
||||
/* 0x220 */ s16 angle;
|
||||
/* 0x222 */ u8 primR;
|
||||
/* 0x223 */ u8 primG;
|
||||
/* 0x224 */ u8 primB;
|
||||
/* 0x225 */ u8 envR;
|
||||
/* 0x226 */ u8 envG;
|
||||
/* 0x227 */ u8 envB;
|
||||
} SkyboxContext; // size = 0x228
|
||||
|
||||
typedef enum {
|
||||
@ -693,8 +693,8 @@ typedef enum {
|
||||
} SkyboxId;
|
||||
|
||||
typedef struct ListAlloc {
|
||||
/* 0x00 */ struct ListAlloc* prev;
|
||||
/* 0x04 */ struct ListAlloc* next;
|
||||
/* 0x0 */ struct ListAlloc* prev;
|
||||
/* 0x4 */ struct ListAlloc* next;
|
||||
} ListAlloc; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
@ -1003,7 +1003,7 @@ struct FireObjLight {
|
||||
/* 0x00 */ LightNode* light;
|
||||
/* 0x04 */ LightInfo lightInfo;
|
||||
/* 0x12 */ u8 lightParamsIndex;
|
||||
}; // size = 0x13
|
||||
}; // size = 0x14
|
||||
|
||||
#define OS_SC_RETRACE_MSG 1
|
||||
#define OS_SC_DONE_MSG 2
|
||||
@ -1062,22 +1062,21 @@ struct FireObj {
|
||||
}; // size = 0x8B
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 seqIndex;
|
||||
/* 0x01 */ u8 nightSeqIndex;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x0 */ u8 seqIndex;
|
||||
/* 0x1 */ u8 nightSeqIndex;
|
||||
/* 0x2 */ u8 unk_02;
|
||||
} SoundContext; // size = 0x3
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 enabled;
|
||||
/* 0x04 */ s32 timer;
|
||||
/* 0x0 */ s32 enabled;
|
||||
/* 0x4 */ s32 timer;
|
||||
} FrameAdvanceContext; // size = 0x8
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ GAMEOVER_INACTIVE,
|
||||
/* 01 */ GAMEOVER_DEATH_START,
|
||||
/* 02 */ GAMEOVER_DEATH_WAIT_GROUND, // wait for player to fall and hit the ground
|
||||
/* 03 */ GAMEOVER_DEATH_FADE_OUT, // wait before fading out
|
||||
|
||||
/* 0 */ GAMEOVER_INACTIVE,
|
||||
/* 1 */ GAMEOVER_DEATH_START,
|
||||
/* 2 */ GAMEOVER_DEATH_WAIT_GROUND, // wait for player to fall and hit the ground
|
||||
/* 3 */ GAMEOVER_DEATH_FADE_OUT, // wait before fading out
|
||||
/* 20 */ GAMEOVER_REVIVE_START = 20,
|
||||
/* 21 */ GAMEOVER_REVIVE_RUMBLE,
|
||||
/* 22 */ GAMEOVER_REVIVE_WAIT_GROUND, // wait for player to fall and hit the ground
|
||||
@ -1086,8 +1085,8 @@ typedef enum {
|
||||
} GameOverState;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 state;
|
||||
} GameOverContext; // size = 0x02
|
||||
/* 0x0 */ u16 state;
|
||||
} GameOverContext; // size = 0x2
|
||||
|
||||
struct PlayState {
|
||||
/* 0x00000 */ GameState state;
|
||||
@ -1199,17 +1198,17 @@ typedef struct {
|
||||
} struct_800BD888_arg1; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 type;
|
||||
/* 0x04 */ u32 setScissor;
|
||||
/* 0x08 */ Color_RGBA8 color;
|
||||
/* 0x0C */ Color_RGBA8 envColor;
|
||||
/* 0x0 */ u32 type;
|
||||
/* 0x4 */ u32 setScissor;
|
||||
/* 0x8 */ Color_RGBA8 color;
|
||||
/* 0xC */ Color_RGBA8 envColor;
|
||||
} struct_801F8010; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 useRgba;
|
||||
/* 0x04 */ u32 setScissor;
|
||||
/* 0x08 */ Color_RGBA8 primColor;
|
||||
/* 0x08 */ Color_RGBA8 envColor;
|
||||
/* 0x0 */ u32 useRgba;
|
||||
/* 0x4 */ u32 setScissor;
|
||||
/* 0x8 */ Color_RGBA8 primColor;
|
||||
/* 0xC */ Color_RGBA8 envColor;
|
||||
} struct_801F8020; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -1237,9 +1236,9 @@ typedef struct {
|
||||
} TargetRangeParams; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8* value;
|
||||
/* 0x04 */ const char* name;
|
||||
} FlagSetEntry; // size = 0x08
|
||||
/* 0x0 */ u8* value;
|
||||
/* 0x4 */ const char* name;
|
||||
} FlagSetEntry; // size = 0x8
|
||||
|
||||
// TODO: Dedicated Header?
|
||||
#define FRAM_BASE_ADDRESS 0x08000000 // FRAM Base Address in Cart Memory
|
||||
|
@ -32,18 +32,18 @@ typedef struct {
|
||||
} DamageTable; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 health;
|
||||
/* 0x02 */ s16 cylRadius;
|
||||
/* 0x04 */ s16 cylHeight;
|
||||
/* 0x06 */ u8 mass;
|
||||
} CollisionCheckInfoInit;
|
||||
/* 0x0 */ u8 health;
|
||||
/* 0x2 */ s16 cylRadius;
|
||||
/* 0x4 */ s16 cylHeight;
|
||||
/* 0x6 */ u8 mass;
|
||||
} CollisionCheckInfoInit; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 health;
|
||||
/* 0x02 */ s16 cylRadius;
|
||||
/* 0x04 */ s16 cylHeight;
|
||||
/* 0x06 */ s16 cylYShift;
|
||||
/* 0x08 */ u8 mass;
|
||||
/* 0x0 */ u8 health;
|
||||
/* 0x2 */ s16 cylRadius;
|
||||
/* 0x4 */ s16 cylHeight;
|
||||
/* 0x6 */ s16 cylYShift;
|
||||
/* 0x8 */ u8 mass;
|
||||
} CollisionCheckInfoInit2; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
@ -398,8 +398,8 @@ typedef struct ActorContext {
|
||||
} ActorContext; // size = 0x284
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ ACTOR_DRAW_DMGEFF_FIRE,
|
||||
/* 01 */ ACTOR_DRAW_DMGEFF_BLUE_FIRE,
|
||||
/* 0 */ ACTOR_DRAW_DMGEFF_FIRE,
|
||||
/* 1 */ ACTOR_DRAW_DMGEFF_BLUE_FIRE,
|
||||
/* 10 */ ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX = 10,
|
||||
/* 11 */ ACTOR_DRAW_DMGEFF_FROZEN_SFX,
|
||||
/* 20 */ ACTOR_DRAW_DMGEFF_LIGHT_ORBS = 20,
|
||||
|
@ -34,49 +34,49 @@ typedef enum {
|
||||
} AnimationTapers;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child; // The first child's index into the limb table.
|
||||
/* 0x07 */ u8 sibling; // The parent limb's next limb index into the limb table.
|
||||
/* 0x08 */ Gfx* dList; // Display lists for the limb. Index 0 is the normal display list, index 1 is the
|
||||
/* 0x0 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x6 */ u8 child; // The first child's index into the limb table.
|
||||
/* 0x7 */ u8 sibling; // The parent limb's next limb index into the limb table.
|
||||
/* 0x8 */ Gfx* dList; // Display lists for the limb. Index 0 is the normal display list, index 1 is the
|
||||
// far model display list.
|
||||
} StandardLimb; // size = 0xC
|
||||
|
||||
// Model has limbs with only rigid meshes
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ Gfx* dLists[2]; // Near and far
|
||||
/* 0x0 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x6 */ u8 child;
|
||||
/* 0x7 */ u8 sibling;
|
||||
/* 0x8 */ Gfx* dLists[2]; // Near and far
|
||||
} LodLimb; // size = 0x10
|
||||
|
||||
// Model has limbs with only rigid meshes
|
||||
typedef struct {
|
||||
/* 0x00 */ void** segment;
|
||||
/* 0x04 */ u8 limbCount;
|
||||
/* 0x0 */ void** segment;
|
||||
/* 0x4 */ u8 limbCount;
|
||||
} SkeletonHeader; // size = 0x8
|
||||
|
||||
// Model has limbs with flexible meshes
|
||||
typedef struct {
|
||||
/* 0x00 */ SkeletonHeader sh;
|
||||
/* 0x08 */ u8 dListCount;
|
||||
/* 0x0 */ SkeletonHeader sh;
|
||||
/* 0x8 */ u8 dListCount;
|
||||
} FlexSkeletonHeader; // size = 0xC
|
||||
|
||||
// Index into the frame data table.
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 x;
|
||||
/* 0x02 */ u16 y;
|
||||
/* 0x04 */ u16 z;
|
||||
} JointIndex; // size = 0x06
|
||||
/* 0x0 */ u16 x;
|
||||
/* 0x2 */ u16 y;
|
||||
/* 0x4 */ u16 z;
|
||||
} JointIndex; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 frameCount;
|
||||
} AnimationHeaderCommon;
|
||||
/* 0x0 */ s16 frameCount;
|
||||
} AnimationHeaderCommon; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ AnimationHeaderCommon common;
|
||||
/* 0x004 */ s16* frameData; // referenced as tbl
|
||||
/* 0x008 */ JointIndex* jointIndices; // referenced as ref_tbl
|
||||
/* 0x00C */ u16 staticIndexMax;
|
||||
/* 0x0 */ AnimationHeaderCommon common;
|
||||
/* 0x4 */ s16* frameData; // referenced as tbl
|
||||
/* 0x8 */ JointIndex* jointIndices; // referenced as ref_tbl
|
||||
/* 0xC */ u16 staticIndexMax;
|
||||
} AnimationHeader; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -89,10 +89,10 @@ typedef struct {
|
||||
} JointKey; // size = 0x12
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 frameCount;
|
||||
/* 0x02 */ s16 limbCount;
|
||||
/* 0x04 */ s16* frameData;
|
||||
/* 0x08 */ JointKey* jointKey;
|
||||
/* 0x0 */ s16 frameCount;
|
||||
/* 0x2 */ s16 limbCount;
|
||||
/* 0x4 */ s16* frameData;
|
||||
/* 0x8 */ JointKey* jointKey;
|
||||
} LegacyAnimationHeader; // size = 0xC
|
||||
|
||||
typedef enum {
|
||||
@ -105,46 +105,46 @@ typedef enum {
|
||||
} AnimationType;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ DmaRequest req;
|
||||
/* 0x020 */ OSMesgQueue msgQueue;
|
||||
/* 0x038 */ OSMesg msg;
|
||||
/* 0x00 */ DmaRequest req;
|
||||
/* 0x20 */ OSMesgQueue msgQueue;
|
||||
/* 0x38 */ OSMesg msg;
|
||||
} AnimEntryLoadFrame; // size = 0x3C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 queueFlag;
|
||||
/* 0x001 */ u8 vecCount;
|
||||
/* 0x004 */ Vec3s* dst;
|
||||
/* 0x008 */ Vec3s* src;
|
||||
/* 0x0 */ u8 queueFlag;
|
||||
/* 0x1 */ u8 vecCount;
|
||||
/* 0x4 */ Vec3s* dst;
|
||||
/* 0x8 */ Vec3s* src;
|
||||
} AnimEntryCopyAll; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 queueFlag;
|
||||
/* 0x001 */ u8 vecCount;
|
||||
/* 0x004 */ Vec3s* base;
|
||||
/* 0x008 */ Vec3s* mod;
|
||||
/* 0x00C */ f32 weight;
|
||||
/* 0x0 */ u8 queueFlag;
|
||||
/* 0x1 */ u8 vecCount;
|
||||
/* 0x4 */ Vec3s* base;
|
||||
/* 0x8 */ Vec3s* mod;
|
||||
/* 0xC */ f32 weight;
|
||||
} AnimEntryInterp; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 queueFlag;
|
||||
/* 0x001 */ u8 vecCount;
|
||||
/* 0x004 */ Vec3s* dst;
|
||||
/* 0x008 */ Vec3s* src;
|
||||
/* 0x00C */ u8* copyFlag;
|
||||
/* 0x0 */ u8 queueFlag;
|
||||
/* 0x1 */ u8 vecCount;
|
||||
/* 0x4 */ Vec3s* dst;
|
||||
/* 0x8 */ Vec3s* src;
|
||||
/* 0xC */ u8* copyFlag;
|
||||
} AnimEntryCopyTrue; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 queueFlag;
|
||||
/* 0x001 */ u8 vecCount;
|
||||
/* 0x004 */ Vec3s* dst;
|
||||
/* 0x008 */ Vec3s* src;
|
||||
/* 0x00C */ u8* copyFlag;
|
||||
/* 0x0 */ u8 queueFlag;
|
||||
/* 0x1 */ u8 vecCount;
|
||||
/* 0x4 */ Vec3s* dst;
|
||||
/* 0x8 */ Vec3s* src;
|
||||
/* 0xC */ u8* copyFlag;
|
||||
} AnimEntryCopyFalse; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ struct Actor* actor;
|
||||
/* 0x004 */ struct SkelAnime* skelAnime;
|
||||
/* 0x008 */ f32 unk08;
|
||||
/* 0x0 */ struct Actor* actor;
|
||||
/* 0x4 */ struct SkelAnime* skelAnime;
|
||||
/* 0x8 */ f32 unk08;
|
||||
} AnimEntryMoveActor; // size = 0xC
|
||||
|
||||
typedef union {
|
||||
@ -157,8 +157,8 @@ typedef union {
|
||||
} AnimationEntryData; // size = 0x3C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 type;
|
||||
/* 0x004 */ AnimationEntryData data;
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x04 */ AnimationEntryData data;
|
||||
} AnimationEntry; // size = 0x40
|
||||
|
||||
typedef struct AnimationContext {
|
||||
@ -167,8 +167,8 @@ typedef struct AnimationContext {
|
||||
} AnimationContext; // size = 0xC84
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ AnimationHeaderCommon common;
|
||||
/* 0x004 */ u32 segment;
|
||||
/* 0x0 */ AnimationHeaderCommon common;
|
||||
/* 0x4 */ u32 segment;
|
||||
} LinkAnimationHeader; // size = 0x8
|
||||
|
||||
typedef struct SkelAnime {
|
||||
@ -234,19 +234,19 @@ typedef struct {
|
||||
} AnimationInfo; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 playSpeed;
|
||||
/* 0x08 */ s16 startFrame;
|
||||
/* 0x0A */ s16 frameCount;
|
||||
/* 0x0C */ u8 mode;
|
||||
/* 0x0E */ s16 morphFrames;
|
||||
/* 0x0 */ AnimationHeader* animation;
|
||||
/* 0x4 */ f32 playSpeed;
|
||||
/* 0x8 */ s16 startFrame;
|
||||
/* 0xA */ s16 frameCount;
|
||||
/* 0xC */ u8 mode;
|
||||
/* 0xE */ s16 morphFrames;
|
||||
} AnimationInfoS; // size = 0x10
|
||||
|
||||
typedef struct AnimationSpeedInfo {
|
||||
/* 0x00 */ AnimationHeader* animation;
|
||||
/* 0x04 */ f32 playSpeed;
|
||||
/* 0x08 */ u8 mode;
|
||||
/* 0x0C */ f32 morphFrames;
|
||||
/* 0x0 */ AnimationHeader* animation;
|
||||
/* 0x4 */ f32 playSpeed;
|
||||
/* 0x8 */ u8 mode;
|
||||
/* 0xC */ f32 morphFrames;
|
||||
} AnimationSpeedInfo; // size = 0x10
|
||||
|
||||
struct SkeletonInfo;
|
||||
@ -256,18 +256,18 @@ typedef s32 (*UnkKeyframeCallback)(struct PlayState* play, struct SkeletonInfo*
|
||||
|
||||
// Keyframe limb?
|
||||
typedef struct {
|
||||
/* 0x00 */ Gfx* dList;
|
||||
/* 0x04 */ u8 unk_4;
|
||||
/* 0x05 */ u8 flags;
|
||||
/* 0x06 */ Vec3s root;
|
||||
/* 0x0 */ Gfx* dList;
|
||||
/* 0x4 */ u8 unk_4;
|
||||
/* 0x5 */ u8 flags;
|
||||
/* 0x6 */ Vec3s root;
|
||||
} Struct_801BFA14_Arg1_Field4; // size = 0xC
|
||||
|
||||
// Other limb type?
|
||||
typedef struct {
|
||||
/* 0x00 */ Gfx* dList;
|
||||
/* 0x04 */ u8 unk_4;
|
||||
/* 0x05 */ u8 flags;
|
||||
/* 0x06 */ u8 unk_6; // transform limb draw index
|
||||
/* 0x0 */ Gfx* dList;
|
||||
/* 0x4 */ u8 unk_4;
|
||||
/* 0x5 */ u8 flags;
|
||||
/* 0x6 */ u8 unk_6; // transform limb draw index
|
||||
} Struct_801BFA14_Arg1_Field4_2; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
@ -279,18 +279,18 @@ typedef struct {
|
||||
};
|
||||
/* 0x08 */ s16* unk_8;
|
||||
/* 0x0C */ s16* unk_C;
|
||||
/* 0x0C */ char unk_10[0x2];
|
||||
/* 0x10 */ char unk_10[0x2];
|
||||
/* 0x12 */ s16 unk_12;
|
||||
} Struct_801BFA14_Arg1;
|
||||
} Struct_801BFA14_Arg1; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16* unk_0;
|
||||
/* 0x04 */ s16* unk_4;
|
||||
/* 0x08 */ s16* unk_8;
|
||||
/* 0x0C */ s16* unk_C;
|
||||
/* 0x0C */ char unk_10[0x2];
|
||||
/* 0x10 */ char unk_10[0x2];
|
||||
/* 0x12 */ s16 unk_12;
|
||||
} SkeletonInfo_1C;
|
||||
} SkeletonInfo_1C; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_0;
|
||||
@ -299,7 +299,7 @@ typedef struct {
|
||||
/* 0x0C */ f32 unk_C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
} FrameControl;
|
||||
} FrameControl; // size = 0x18
|
||||
|
||||
// FlexKeyframeSkeleton ?
|
||||
typedef struct SkeletonInfo {
|
||||
@ -310,7 +310,7 @@ typedef struct SkeletonInfo {
|
||||
/* 0x24 */ f32 unk_24; // duration? current time?
|
||||
/* 0x28 */ Vec3s* frameData; // array of 3 Vec3s
|
||||
/* 0x2C */ s16* unk_2C;
|
||||
} SkeletonInfo;
|
||||
} SkeletonInfo; // size = 0x30
|
||||
|
||||
typedef s32 (*OverrideKeyframeDrawScaled)(struct PlayState* play, SkeletonInfo* skeletonInfo, s32 limbIndex, Gfx** dList,
|
||||
u8* flags, struct Actor* actor, Vec3f* scale, Vec3s* rot, Vec3f* pos);
|
||||
|
@ -72,20 +72,20 @@ typedef struct {
|
||||
} ScaleRotPos; // size = 0x20
|
||||
|
||||
typedef struct CollisionPoly {
|
||||
/* 0x00 */ u16 type;
|
||||
/* 0x0 */ u16 type;
|
||||
union {
|
||||
u16 vtxData[3];
|
||||
/* 0x2 */ u16 vtxData[3];
|
||||
struct {
|
||||
/* 0x02 */ u16 flags_vIA; // 0xE000 is poly exclusion flags (xpFlags), 0x1FFF is vtxId
|
||||
/* 0x04 */ u16 flags_vIB; // 0xE000 is flags, 0x1FFF is vtxId
|
||||
/* 0x2 */ u16 flags_vIA; // 0xE000 is poly exclusion flags (xpFlags), 0x1FFF is vtxId
|
||||
/* 0x4 */ u16 flags_vIB; // 0xE000 is flags, 0x1FFF is vtxId
|
||||
// 0x2000 = poly IsConveyor surface
|
||||
/* 0x06 */ u16 vIC;
|
||||
/* 0x6 */ u16 vIC;
|
||||
};
|
||||
};
|
||||
/* 0x08 */ Vec3s normal; // Unit normal vector
|
||||
/* 0x8 */ Vec3s normal; // Unit normal vector
|
||||
// Value ranges from -0x7FFF to 0x7FFF, representing -1.0 to 1.0; 0x8000 is invalid
|
||||
|
||||
/* 0x0E */ s16 dist; // Plane distance from origin along the normal
|
||||
/* 0xE */ s16 dist; // Plane distance from origin along the normal
|
||||
} CollisionPoly; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -158,9 +158,10 @@ typedef struct {
|
||||
/* 0x2 */ u16 next; // index of the next SSNode in the list, or SS_NULL if last element
|
||||
} SSNode; // size = 0x4
|
||||
|
||||
// represents a linked list of type SSNode
|
||||
typedef struct {
|
||||
u16 head; // index of the first SSNode in the list, or SS_NULL if the list is empty
|
||||
} SSList; // represents a linked list of type SSNode
|
||||
/* 0x0 */ u16 head; // index of the first SSNode in the list, or SS_NULL if the list is empty
|
||||
} SSList; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u16 max;
|
||||
@ -313,8 +314,9 @@ typedef struct {
|
||||
} BgSpecialSceneMeshSubdivision; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
s16 sceneId;
|
||||
Vec3s subdivAmount;
|
||||
s32 nodeListMax; // if -1, dynamically compute max nodes
|
||||
} BgCheckSceneSubdivisionEntry;
|
||||
/* 0x0 */ s16 sceneId;
|
||||
/* 0x2 */ Vec3s subdivAmount;
|
||||
/* 0x8 */ s32 nodeListMax; // if -1, dynamically compute max nodes
|
||||
} BgCheckSceneSubdivisionEntry; // size = 0xC
|
||||
|
||||
#endif
|
||||
|
@ -21,54 +21,54 @@ typedef struct {
|
||||
} Collider; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x02 */ u8 acFlags; // Information flags for OC collisions.
|
||||
/* 0x03 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x04 */ u8 ocFlags2; // Flags related to which colliders it can OC collide with.
|
||||
/* 0x05 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInit; // size = 0x06
|
||||
/* 0x0 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x1 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x2 */ u8 acFlags; // Information flags for OC collisions.
|
||||
/* 0x3 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x4 */ u8 ocFlags2; // Flags related to which colliders it can OC collide with.
|
||||
/* 0x5 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInit; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x01 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x02 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x03 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x04 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInitType1; // size = 0x05
|
||||
/* 0x0 */ u8 colType; // Determines hitmarks and sound effects during AC collisions.
|
||||
/* 0x1 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x2 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x3 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x4 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInitType1; // size = 0x5
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ struct Actor* actor; // Attached actor
|
||||
/* 0x04 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x05 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x06 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x07 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInitToActor; // size = 0x08
|
||||
/* 0x0 */ struct Actor* actor; // Attached actor
|
||||
/* 0x4 */ u8 atFlags; // Information flags for AT collisions.
|
||||
/* 0x5 */ u8 acFlags; // Information flags for AC collisions.
|
||||
/* 0x6 */ u8 ocFlags1; // Information flags for OC collisions.
|
||||
/* 0x7 */ u8 shape; // JntSph, Cylinder, Tris, or Quad
|
||||
} ColliderInitToActor; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 dmgFlags; // Toucher damage type flags.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x05 */ u8 damage; // Damage or Stun Timer
|
||||
} ColliderTouch; // size = 0x08
|
||||
/* 0x0 */ u32 dmgFlags; // Toucher damage type flags.
|
||||
/* 0x4 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x5 */ u8 damage; // Damage or Stun Timer
|
||||
} ColliderTouch; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 dmgFlags; // Toucher damage type flags.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x05 */ u8 damage; // Damage or Stun Timer
|
||||
} ColliderTouchInit; // size = 0x08
|
||||
/* 0x0 */ u32 dmgFlags; // Toucher damage type flags.
|
||||
/* 0x4 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x5 */ u8 damage; // Damage or Stun Timer
|
||||
} ColliderTouchInit; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 dmgFlags; // Bumper damage type flags.
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x05 */ u8 defense; // Damage Resistance
|
||||
/* 0x06 */ Vec3s hitPos; // Point of contact
|
||||
} ColliderBump; // size = 0x0C
|
||||
/* 0x0 */ u32 dmgFlags; // Bumper damage type flags.
|
||||
/* 0x4 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x5 */ u8 defense; // Damage Resistance
|
||||
/* 0x6 */ Vec3s hitPos; // Point of contact
|
||||
} ColliderBump; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 dmgFlags; // Bumper exclusion mask
|
||||
/* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x05 */ u8 defense; // Damage Resistance
|
||||
} ColliderBumpInit; // size = 0x08
|
||||
/* 0x0 */ u32 dmgFlags; // Bumper exclusion mask
|
||||
/* 0x4 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
|
||||
/* 0x5 */ u8 defense; // Damage Resistance
|
||||
} ColliderBumpInit; // size = 0x8
|
||||
|
||||
typedef struct ColliderInfo {
|
||||
/* 0x00 */ ColliderTouch toucher; // Damage properties when acting as an AT collider
|
||||
@ -100,10 +100,10 @@ typedef struct {
|
||||
} ColliderJntSphElementDim; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 limb; // attached limb
|
||||
/* 0x02 */ Sphere16 modelSphere; // model space sphere
|
||||
/* 0x0A */ s16 scale; // world space sphere = model * scale * 0.01
|
||||
} ColliderJntSphElementDimInit; // size = 0x0C
|
||||
/* 0x0 */ u8 limb; // attached limb
|
||||
/* 0x2 */ Sphere16 modelSphere; // model space sphere
|
||||
/* 0xA */ s16 scale; // world space sphere = model * scale * 0.01
|
||||
} ColliderJntSphElementDimInit; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ ColliderInfo info;
|
||||
@ -128,15 +128,15 @@ typedef struct {
|
||||
} ColliderJntSphInit; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ ColliderInitType1 base;
|
||||
/* 0x08 */ s32 count;
|
||||
/* 0x0C */ ColliderJntSphElementInit* elements;
|
||||
/* 0x0 */ ColliderInitType1 base;
|
||||
/* 0x8 */ s32 count;
|
||||
/* 0xC */ ColliderJntSphElementInit* elements;
|
||||
} ColliderJntSphInitType1; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ ColliderInitToActor base;
|
||||
/* 0x08 */ s32 count;
|
||||
/* 0x0C */ ColliderJntSphElementInit* elements;
|
||||
/* 0x0 */ ColliderInitToActor base;
|
||||
/* 0x8 */ s32 count;
|
||||
/* 0xC */ ColliderJntSphElementInit* elements;
|
||||
} ColliderJntSphInitToActor; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -190,9 +190,9 @@ typedef struct {
|
||||
} ColliderTrisInit; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ ColliderInitType1 base;
|
||||
/* 0x08 */ s32 count;
|
||||
/* 0x0C */ ColliderTrisElementInit* elements;
|
||||
/* 0x0 */ ColliderInitType1 base;
|
||||
/* 0x8 */ s32 count;
|
||||
/* 0xC */ ColliderTrisElementInit* elements;
|
||||
} ColliderTrisInitType1; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -254,8 +254,8 @@ typedef struct {
|
||||
} CollisionCheckContext; // size = 0x29C
|
||||
|
||||
typedef struct {
|
||||
/* 0 */ u8 blood;
|
||||
/* 1 */ u8 effect;
|
||||
/* 0x0 */ u8 blood;
|
||||
/* 0x1 */ u8 effect;
|
||||
} HitInfo; // size = 0x2
|
||||
|
||||
typedef enum {
|
||||
|
@ -5,11 +5,11 @@
|
||||
#include "unk.h"
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s8 continueFlag;
|
||||
/* 0x01 */ s8 cameraRoll;
|
||||
/* 0x02 */ u16 nextPointFrame;
|
||||
/* 0x04 */ f32 viewAngle; // in degrees
|
||||
/* 0x08 */ Vec3s pos;
|
||||
/* 0x0 */ s8 continueFlag;
|
||||
/* 0x1 */ s8 cameraRoll;
|
||||
/* 0x2 */ u16 nextPointFrame;
|
||||
/* 0x4 */ f32 viewAngle; // in degrees
|
||||
/* 0x8 */ Vec3s pos;
|
||||
} CutsceneCameraPoint; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -86,13 +86,13 @@ typedef struct {
|
||||
} CsCmdTextbox; // size = 0xC
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ CS_TEXTBOX_TYPE_DEFAULT,
|
||||
/* 1 */ CS_TEXTBOX_TYPE_1,
|
||||
/* 2 */ CS_TEXTBOX_TYPE_LEARN_SONG,
|
||||
/* 3 */ CS_TEXTBOX_TYPE_3,
|
||||
/* 4 */ CS_TEXTBOX_TYPE_BOSSES_REMAINS,
|
||||
/* 5 */ CS_TEXTBOX_TYPE_ALL_NORMAL_MASKS,
|
||||
/* 0xFFFF */ CS_TEXTBOX_TYPE_NONE = 0xFFFF
|
||||
/* -1 */ CS_TEXTBOX_TYPE_NONE = -1,
|
||||
/* 0 */ CS_TEXTBOX_TYPE_DEFAULT,
|
||||
/* 1 */ CS_TEXTBOX_TYPE_1,
|
||||
/* 2 */ CS_TEXTBOX_TYPE_LEARN_SONG,
|
||||
/* 3 */ CS_TEXTBOX_TYPE_3,
|
||||
/* 4 */ CS_TEXTBOX_TYPE_BOSSES_REMAINS,
|
||||
/* 5 */ CS_TEXTBOX_TYPE_ALL_NORMAL_MASKS
|
||||
} CutsceneTextboxType;
|
||||
|
||||
typedef struct {
|
||||
|
@ -15,10 +15,10 @@ typedef struct {
|
||||
} DmaRequest; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vromStart;
|
||||
/* 0x04 */ u32 vromEnd;
|
||||
/* 0x08 */ u32 romStart;
|
||||
/* 0x0C */ u32 romEnd;
|
||||
/* 0x0 */ u32 vromStart;
|
||||
/* 0x4 */ u32 vromEnd;
|
||||
/* 0x8 */ u32 romStart;
|
||||
/* 0xC */ u32 romEnd;
|
||||
} DmaEntry; // size = 0x10
|
||||
|
||||
#endif
|
||||
|
@ -33,10 +33,10 @@ struct PlayState;
|
||||
#define rgObjBankIndex regs[11]
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 active;
|
||||
/* 0x01 */ u8 unk1;
|
||||
/* 0x02 */ u8 unk2;
|
||||
} EffectStatus; // size = 0x03
|
||||
/* 0x0 */ u8 active;
|
||||
/* 0x1 */ u8 unk1;
|
||||
/* 0x2 */ u8 unk2;
|
||||
} EffectStatus; // size = 0x3
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f velocity;
|
||||
@ -227,11 +227,11 @@ typedef struct {
|
||||
} EffectInfo; // size = 0x14
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ EFFECT_SPARK,
|
||||
/* 0x01 */ EFFECT_BLURE1,
|
||||
/* 0x02 */ EFFECT_BLURE2,
|
||||
/* 0x03 */ EFFECT_SHIELD_PARTICLE,
|
||||
/* 0x04 */ EFFECT_TIRE_MARK
|
||||
/* 0 */ EFFECT_SPARK,
|
||||
/* 1 */ EFFECT_BLURE1,
|
||||
/* 2 */ EFFECT_BLURE2,
|
||||
/* 3 */ EFFECT_SHIELD_PARTICLE,
|
||||
/* 4 */ EFFECT_TIRE_MARK
|
||||
} EffectType;
|
||||
|
||||
/* Effect Soft Sprites */
|
||||
@ -243,9 +243,9 @@ typedef void(*EffectSsUpdateFunc)(struct PlayState* play, u32 index, struct Effe
|
||||
typedef void(*EffectSsDrawFunc)(struct PlayState* play, u32 index, struct EffectSs* particle);
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 type;
|
||||
/* 0x04 */ EffectSsInitFunc init;
|
||||
} EffectSsInit; // size = 0x08
|
||||
/* 0x0 */ u32 type;
|
||||
/* 0x4 */ EffectSsInitFunc init;
|
||||
} EffectSsInit; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 vromStart;
|
||||
|
@ -7,9 +7,9 @@
|
||||
// TODO fill out these enums
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ EQUIP_TYPE_SWORD,
|
||||
/* 0x1 */ EQUIP_TYPE_SHIELD,
|
||||
/* 0x2 */ EQUIP_TYPE_MAX
|
||||
/* 0 */ EQUIP_TYPE_SWORD,
|
||||
/* 1 */ EQUIP_TYPE_SHIELD,
|
||||
/* 2 */ EQUIP_TYPE_MAX
|
||||
} EquipmentType;
|
||||
|
||||
typedef enum {
|
||||
@ -29,14 +29,14 @@ typedef enum {
|
||||
} EquipValueShield;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ UPG_QUIVER,
|
||||
/* 0x01 */ UPG_BOMB_BAG,
|
||||
/* 0x02 */ UPG_STRENGTH,
|
||||
/* 0x03 */ UPG_SCALE,
|
||||
/* 0x04 */ UPG_WALLET,
|
||||
/* 0x05 */ UPG_BULLET_BAG,
|
||||
/* 0x06 */ UPG_STICKS,
|
||||
/* 0x07 */ UPG_NUTS
|
||||
/* 0 */ UPG_QUIVER,
|
||||
/* 1 */ UPG_BOMB_BAG,
|
||||
/* 2 */ UPG_STRENGTH,
|
||||
/* 3 */ UPG_SCALE,
|
||||
/* 4 */ UPG_WALLET,
|
||||
/* 5 */ UPG_BULLET_BAG,
|
||||
/* 6 */ UPG_STICKS,
|
||||
/* 7 */ UPG_NUTS
|
||||
} UpgradeType;
|
||||
|
||||
typedef enum {
|
||||
|
@ -82,9 +82,9 @@ typedef struct LightContext {
|
||||
} LightContext; // size = 0x10
|
||||
|
||||
typedef enum LightType {
|
||||
/* 0x00 */ LIGHT_POINT_NOGLOW,
|
||||
/* 0x01 */ LIGHT_DIRECTIONAL,
|
||||
/* 0x02 */ LIGHT_POINT_GLOW
|
||||
/* 0 */ LIGHT_POINT_NOGLOW,
|
||||
/* 1 */ LIGHT_DIRECTIONAL,
|
||||
/* 2 */ LIGHT_POINT_GLOW
|
||||
} LightType;
|
||||
|
||||
typedef void (*LightsBindFunc)(Lights* lights, LightParams* params, Vec3f* vec);
|
||||
|
@ -6,47 +6,47 @@
|
||||
#define VEC_SET(V,X,Y,Z) V.x=X;V.y=Y;V.z=Z
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 z;
|
||||
} Vec2s; // size = 0x04
|
||||
/* 0x0 */ s16 x;
|
||||
/* 0x2 */ s16 z;
|
||||
} Vec2s; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 x;
|
||||
/* 0x04 */ f32 z;
|
||||
} Vec2f; // size = 0x08
|
||||
/* 0x0 */ f32 x;
|
||||
/* 0x4 */ f32 z;
|
||||
} Vec2f; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 x;
|
||||
/* 0x04 */ f32 y;
|
||||
/* 0x08 */ f32 z;
|
||||
} Vec3f; // size = 0x0C
|
||||
/* 0x0 */ f32 x;
|
||||
/* 0x4 */ f32 y;
|
||||
/* 0x8 */ f32 z;
|
||||
} Vec3f; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 x;
|
||||
/* 0x02 */ u16 y;
|
||||
/* 0x04 */ u16 z;
|
||||
} Vec3us; // size = 0x06
|
||||
/* 0x0 */ u16 x;
|
||||
/* 0x2 */ u16 y;
|
||||
/* 0x4 */ u16 z;
|
||||
} Vec3us; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s16 z;
|
||||
} Vec3s; // size = 0x06
|
||||
/* 0x0 */ s16 x;
|
||||
/* 0x2 */ s16 y;
|
||||
/* 0x4 */ s16 z;
|
||||
} Vec3s; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 x;
|
||||
/* 0x04 */ s32 y;
|
||||
/* 0x08 */ s32 z;
|
||||
} Vec3i; // size = 0x0C
|
||||
/* 0x0 */ s32 x;
|
||||
/* 0x4 */ s32 y;
|
||||
/* 0x8 */ s32 z;
|
||||
} Vec3i; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s center;
|
||||
/* 0x06 */ s16 radius;
|
||||
} Sphere16; // size = 0x08
|
||||
/* 0x0 */ Vec3s center;
|
||||
/* 0x6 */ s16 radius;
|
||||
} Sphere16; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f center;
|
||||
/* 0x0C */ f32 radius;
|
||||
/* 0x0 */ Vec3f center;
|
||||
/* 0xC */ f32 radius;
|
||||
} Spheref; // size = 0x10
|
||||
|
||||
/*
|
||||
@ -64,11 +64,11 @@ typedef struct {
|
||||
} TriNorm; // size = 0x34
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 radius;
|
||||
/* 0x02 */ s16 height;
|
||||
/* 0x04 */ s16 yShift;
|
||||
/* 0x06 */ Vec3s pos;
|
||||
} Cylinder16; // size = 0x0C
|
||||
/* 0x0 */ s16 radius;
|
||||
/* 0x2 */ s16 height;
|
||||
/* 0x4 */ s16 yShift;
|
||||
/* 0x6 */ Vec3s pos;
|
||||
} Cylinder16; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 radius;
|
||||
@ -89,10 +89,10 @@ typedef struct {
|
||||
|
||||
// Defines a point in the spherical coordinate system
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 r; // radius
|
||||
/* 0x04 */ s16 pitch; // polar (zenith) angle
|
||||
/* 0x06 */ s16 yaw; // azimuthal angle
|
||||
} VecSph; // size = 0x08
|
||||
/* 0x0 */ f32 r; // radius
|
||||
/* 0x4 */ s16 pitch; // polar (zenith) angle
|
||||
/* 0x6 */ s16 yaw; // azimuthal angle
|
||||
} VecSph; // size = 0x8
|
||||
|
||||
#define LERPIMP(v0, v1, t) ((v0) + (((v1) - (v0)) * (t)))
|
||||
#define F32_LERP(v0, v1, t) ((1.0f - (t)) * (f32)(v0) + (t) * (f32)(v1))
|
||||
|
@ -7,38 +7,38 @@
|
||||
struct Player;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_SHIELD_NONE,
|
||||
/* 0x01 */ PLAYER_SHIELD_HEROS_SHIELD,
|
||||
/* 0x02 */ PLAYER_SHIELD_MIRROR_SHIELD,
|
||||
/* 0x03 */ PLAYER_SHIELD_MAX
|
||||
/* 0 */ PLAYER_SHIELD_NONE,
|
||||
/* 1 */ PLAYER_SHIELD_HEROS_SHIELD,
|
||||
/* 2 */ PLAYER_SHIELD_MIRROR_SHIELD,
|
||||
/* 3 */ PLAYER_SHIELD_MAX
|
||||
} PlayerShield;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_BOOTS_FIERCE_DEITY,
|
||||
/* 0x01 */ PLAYER_BOOTS_HYLIAN,
|
||||
/* 0x02 */ PLAYER_BOOTS_GIANT,
|
||||
/* 0x03 */ PLAYER_BOOTS_DEKU,
|
||||
/* 0x04 */ PLAYER_BOOTS_ZORA_LAND,
|
||||
/* 0x05 */ PLAYER_BOOTS_ZORA_UNDERWATER,
|
||||
/* 0x06 */ PLAYER_BOOTS_GORON,
|
||||
/* 0x07 */ PLAYER_BOOTS_MAX
|
||||
/* 0 */ PLAYER_BOOTS_FIERCE_DEITY,
|
||||
/* 1 */ PLAYER_BOOTS_HYLIAN,
|
||||
/* 2 */ PLAYER_BOOTS_GIANT,
|
||||
/* 3 */ PLAYER_BOOTS_DEKU,
|
||||
/* 4 */ PLAYER_BOOTS_ZORA_LAND,
|
||||
/* 5 */ PLAYER_BOOTS_ZORA_UNDERWATER,
|
||||
/* 6 */ PLAYER_BOOTS_GORON,
|
||||
/* 7 */ PLAYER_BOOTS_MAX
|
||||
} PlayerBoots;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_STRENGTH_DEKU,
|
||||
/* 0x01 */ PLAYER_STRENGTH_HUMAN,
|
||||
/* 0x02 */ PLAYER_STRENGTH_ZORA,
|
||||
/* 0x03 */ PLAYER_STRENGTH_GORON,
|
||||
/* 0x04 */ PLAYER_STRENGTH_MAX
|
||||
/* 0 */ PLAYER_STRENGTH_DEKU,
|
||||
/* 1 */ PLAYER_STRENGTH_HUMAN,
|
||||
/* 2 */ PLAYER_STRENGTH_ZORA,
|
||||
/* 3 */ PLAYER_STRENGTH_GORON,
|
||||
/* 4 */ PLAYER_STRENGTH_MAX
|
||||
} PlayerStrength;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ PLAYER_FORM_FIERCE_DEITY,
|
||||
/* 0x01 */ PLAYER_FORM_GORON,
|
||||
/* 0x02 */ PLAYER_FORM_ZORA,
|
||||
/* 0x03 */ PLAYER_FORM_DEKU,
|
||||
/* 0x04 */ PLAYER_FORM_HUMAN,
|
||||
/* 0x05 */ PLAYER_FORM_MAX
|
||||
/* 0 */ PLAYER_FORM_FIERCE_DEITY,
|
||||
/* 1 */ PLAYER_FORM_GORON,
|
||||
/* 2 */ PLAYER_FORM_ZORA,
|
||||
/* 3 */ PLAYER_FORM_DEKU,
|
||||
/* 4 */ PLAYER_FORM_HUMAN,
|
||||
/* 5 */ PLAYER_FORM_MAX
|
||||
} PlayerTransformation;
|
||||
|
||||
typedef enum {
|
||||
@ -248,12 +248,12 @@ typedef struct {
|
||||
} struct_80122D44_arg1; // size >= 0x114
|
||||
|
||||
typedef struct struct_80122744_arg1 {
|
||||
/* 0x00 */ s8 unk_00;
|
||||
/* 0x01 */ s8 unk_01;
|
||||
/* 0x02 */ s8 unk_02;
|
||||
/* 0x03 */ s8 unk_03;
|
||||
/* 0x04 */ Vec3s* unk_04;
|
||||
} struct_80122744_arg1; // size = 0x08
|
||||
/* 0x0 */ s8 unk_00;
|
||||
/* 0x1 */ s8 unk_01;
|
||||
/* 0x2 */ s8 unk_02;
|
||||
/* 0x3 */ s8 unk_03;
|
||||
/* 0x4 */ Vec3s* unk_04;
|
||||
} struct_80122744_arg1; // size = 0x8
|
||||
|
||||
//
|
||||
#define PLAYER_STATE1_1 (1 << 0)
|
||||
|
@ -56,10 +56,10 @@ typedef struct Inventory {
|
||||
} Inventory; // size = 0x88
|
||||
|
||||
typedef struct HorseData {
|
||||
/* 0x00 */ s16 scene; // "spot_no"
|
||||
/* 0x02 */ Vec3s pos; // "horse_x", "horse_y" and "horse_z"
|
||||
/* 0x08 */ s16 yaw; // "horse_a"
|
||||
} HorseData; // size = 0x0A
|
||||
/* 0x0 */ s16 scene; // "spot_no"
|
||||
/* 0x2 */ Vec3s pos; // "horse_x", "horse_y" and "horse_z"
|
||||
/* 0x8 */ s16 yaw; // "horse_a"
|
||||
} HorseData; // size = 0xA
|
||||
|
||||
typedef struct RespawnData {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
@ -92,32 +92,32 @@ typedef struct CycleSceneFlags {
|
||||
} CycleSceneFlags; // size = 0x14
|
||||
|
||||
typedef struct SaveOptions {
|
||||
/* 0x00 */ u16 optionId; // "option_id"
|
||||
/* 0x02 */ u8 language; // "j_n"
|
||||
/* 0x03 */ s8 audioSetting; // "s_sound"
|
||||
/* 0x04 */ u8 languageSetting; // "language"
|
||||
/* 0x05 */ u8 zTargetSetting; // "z_attention", 0: Switch; 1: Hold
|
||||
} SaveOptions; // size = 0x06
|
||||
/* 0x0 */ u16 optionId; // "option_id"
|
||||
/* 0x2 */ u8 language; // "j_n"
|
||||
/* 0x3 */ s8 audioSetting; // "s_sound"
|
||||
/* 0x4 */ u8 languageSetting; // "language"
|
||||
/* 0x5 */ u8 zTargetSetting; // "z_attention", 0: Switch; 1: Hold
|
||||
} SaveOptions; // size = 0x6
|
||||
|
||||
typedef struct SavePlayerData {
|
||||
/* 0x0000 */ char newf[6]; // "newf" Will always be "ZELDA3 for a valid save
|
||||
/* 0x0006 */ u16 deaths; // "savect"
|
||||
/* 0x0008 */ char playerName[8]; // "player_name"
|
||||
/* 0x0010 */ s16 healthCapacity; // "max_life"
|
||||
/* 0x0012 */ s16 health; // "now_life"
|
||||
/* 0x0014 */ s8 magicLevel; // "magic_max"
|
||||
/* 0x0015 */ s8 magic; // "magic_now"
|
||||
/* 0x0016 */ s16 rupees; // "lupy_count"
|
||||
/* 0x0018 */ u16 swordHealth; // "long_sword_hp"
|
||||
/* 0x001A */ u16 tatlTimer; // "navi_timer"
|
||||
/* 0x001C */ u8 magicAcquired; // "magic_mode"
|
||||
/* 0x001D */ u8 doubleMagic; // "magic_ability"
|
||||
/* 0x001E */ u8 doubleDefense; // "life_ability"
|
||||
/* 0x001F */ u8 unk_1F; // "ocarina_round"
|
||||
/* 0x0020 */ u8 unk_20; // "first_memory"
|
||||
/* 0x0022 */ u16 owlActivationFlags; // "memory_warp_point"
|
||||
/* 0x0024 */ u8 unk_24; // "last_warp_pt"
|
||||
/* 0x0026 */ s16 savedSceneNum; // "scene_data_ID"
|
||||
/* 0x00 */ char newf[6]; // "newf" Will always be "ZELDA3 for a valid save
|
||||
/* 0x06 */ u16 deaths; // "savect"
|
||||
/* 0x08 */ char playerName[8]; // "player_name"
|
||||
/* 0x10 */ s16 healthCapacity; // "max_life"
|
||||
/* 0x12 */ s16 health; // "now_life"
|
||||
/* 0x14 */ s8 magicLevel; // "magic_max"
|
||||
/* 0x15 */ s8 magic; // "magic_now"
|
||||
/* 0x16 */ s16 rupees; // "lupy_count"
|
||||
/* 0x18 */ u16 swordHealth; // "long_sword_hp"
|
||||
/* 0x1A */ u16 tatlTimer; // "navi_timer"
|
||||
/* 0x1C */ u8 magicAcquired; // "magic_mode"
|
||||
/* 0x1D */ u8 doubleMagic; // "magic_ability"
|
||||
/* 0x1E */ u8 doubleDefense; // "life_ability"
|
||||
/* 0x1F */ u8 unk_1F; // "ocarina_round"
|
||||
/* 0x20 */ u8 unk_20; // "first_memory"
|
||||
/* 0x22 */ u16 owlActivationFlags; // "memory_warp_point"
|
||||
/* 0x24 */ u8 unk_24; // "last_warp_pt"
|
||||
/* 0x26 */ s16 savedSceneNum; // "scene_data_ID"
|
||||
} SavePlayerData; // size = 0x28
|
||||
|
||||
typedef struct Save {
|
||||
|
@ -9,211 +9,210 @@
|
||||
#define SPAWN_ROT_FLAGS(rotation, flags) (((rotation) << 7) | (flags))
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ uintptr_t vromStart;
|
||||
/* 0x04 */ uintptr_t vromEnd;
|
||||
/* 0x0 */ uintptr_t vromStart;
|
||||
/* 0x4 */ uintptr_t vromEnd;
|
||||
} RomFile; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdBase;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdBase; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdSpawnList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdSpawnList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdActorList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdActorList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCsCameraList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdCsCameraList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdColHeader;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdColHeader; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdRoomList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdRoomList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ s8 west;
|
||||
/* 0x05 */ s8 vertical;
|
||||
/* 0x06 */ s8 south;
|
||||
/* 0x07 */ u8 clothIntensity;
|
||||
} SCmdWindSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x4 */ s8 west;
|
||||
/* 0x5 */ s8 vertical;
|
||||
/* 0x6 */ s8 south;
|
||||
/* 0x7 */ u8 clothIntensity;
|
||||
} SCmdWindSettings; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdEntranceList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdEntranceList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 cUpElfMsgNum;
|
||||
/* 0x04 */ u32 subKeepIndex;
|
||||
} SCmdSpecialFiles;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 cUpElfMsgNum;
|
||||
/* 0x4 */ u32 subKeepIndex;
|
||||
} SCmdSpecialFiles; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 gpFlag1;
|
||||
/* 0x04 */ u32 gpFlag2;
|
||||
} SCmdRoomBehavior;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 gpFlag1;
|
||||
/* 0x4 */ u32 gpFlag2;
|
||||
} SCmdRoomBehavior; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMesh;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdMesh; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdObjectList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdObjectList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdLightList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdLightList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdPathList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdPathList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdTransiActorList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdTransiActorList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdLightSettingList;
|
||||
// Cloudmodding has this as Environment Settings
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdLightSettingList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 hour;
|
||||
/* 0x05 */ u8 min;
|
||||
/* 0x06 */ u8 unk6;
|
||||
} SCmdTimeSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x4 */ u8 hour;
|
||||
/* 0x5 */ u8 min;
|
||||
/* 0x6 */ u8 unk6;
|
||||
} SCmdTimeSettings; // size = 0x7
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 skyboxId;
|
||||
/* 0x05 */ u8 unk5;
|
||||
/* 0x06 */ u8 unk6;
|
||||
} SCmdSkyboxSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x4 */ u8 skyboxId;
|
||||
/* 0x5 */ u8 unk5;
|
||||
/* 0x6 */ u8 unk6;
|
||||
} SCmdSkyboxSettings; // size = 0x7
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x04 */ u8 unk4;
|
||||
/* 0x05 */ u8 unk5;
|
||||
} SCmdSkyboxDisables;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[2];
|
||||
/* 0x4 */ u8 unk4;
|
||||
/* 0x5 */ u8 unk5;
|
||||
} SCmdSkyboxDisables; // size = 0x6
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdExitList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdExitList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdEndMarker;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdEndMarker; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 bgmId;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[4];
|
||||
/* 0x06 */ u8 nighttimeSFX;
|
||||
/* 0x07 */ u8 musicSeq;
|
||||
} SCmdSoundSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 bgmId;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[4];
|
||||
/* 0x6 */ u8 nighttimeSFX;
|
||||
/* 0x7 */ u8 musicSeq;
|
||||
} SCmdSoundSettings; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x02 */ UNK_TYPE1 pad2[5];
|
||||
/* 0x07 */ u8 echo;
|
||||
} SCmdEchoSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x2 */ UNK_TYPE1 pad2[5];
|
||||
/* 0x7 */ u8 echo;
|
||||
} SCmdEchoSettings; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCutsceneData;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdCutsceneData; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 cameraMovement;
|
||||
/* 0x04 */ u32 area;
|
||||
} SCmdMiscSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 cameraMovement;
|
||||
/* 0x4 */ u32 area;
|
||||
} SCmdMiscSettings; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdAltHeaders;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdAltHeaders; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ u32 data2;
|
||||
} SCmdWorldMapVisited;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ u32 data2;
|
||||
} SCmdWorldMapVisited; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdTextureAnimations;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdTextureAnimations; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdCutsceneActorList;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdCutsceneActorList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 data1;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMinimapSettings;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdMinimapSettings; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 code;
|
||||
/* 0x01 */ u8 num;
|
||||
/* 0x04 */ void* segment;
|
||||
} SCmdMinimapChests;
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdMinimapChests; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ Gfx* opaqueDl;
|
||||
@ -292,17 +291,17 @@ typedef struct {
|
||||
struct {
|
||||
s8 room; // Room to switch to
|
||||
s8 bgCamDataId; // How the camera reacts during the transition. -2 for spiral staircase. -1 for generic door. 0+ will index scene CamData
|
||||
} /* 0x00 */ sides[2]; // 0 = front, 1 = back
|
||||
/* 0x04 */ s16 id;
|
||||
/* 0x06 */ Vec3s pos;
|
||||
/* 0x0C */ s16 rotY;
|
||||
/* 0x0E */ u16 params;
|
||||
} /* 0x0 */ sides[2]; // 0 = front, 1 = back
|
||||
/* 0x4 */ s16 id;
|
||||
/* 0x6 */ Vec3s pos;
|
||||
/* 0xC */ s16 rotY;
|
||||
/* 0xE */ u16 params;
|
||||
} TransitionActorEntry; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 numTransitionActors;
|
||||
/* 0x04 */ TransitionActorEntry* transitionActorList;
|
||||
} DoorContext;
|
||||
/* 0x0 */ u8 numTransitionActors;
|
||||
/* 0x4 */ TransitionActorEntry* transitionActorList;
|
||||
} DoorContext; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 id;
|
||||
@ -343,7 +342,7 @@ typedef struct {
|
||||
/* 0xA */ u8 unk_A;
|
||||
/* 0xB */ u8 drawConfig;
|
||||
/* 0xC */ u8 unk_C;
|
||||
} SceneTableEntry; // size = 0x10;
|
||||
} SceneTableEntry; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 r;
|
||||
@ -392,101 +391,102 @@ typedef struct {
|
||||
} ObjectContext; // size = 0x958
|
||||
|
||||
typedef struct {
|
||||
u8 headerType;
|
||||
} MeshHeaderBase;
|
||||
/* 0x0 */ u8 headerType;
|
||||
} MeshHeaderBase; // size = 0x1
|
||||
|
||||
typedef struct {
|
||||
MeshHeaderBase base;
|
||||
|
||||
u8 numEntries;
|
||||
u32 dListStart;
|
||||
u32 dListEnd;
|
||||
} MeshHeader0;
|
||||
/* 0x0 */ MeshHeaderBase base;
|
||||
/* 0x1 */ u8 numEntries;
|
||||
/* 0x4 */ u32 dListStart;
|
||||
/* 0x8 */ u32 dListEnd;
|
||||
} MeshHeader0; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
u32 opaqueDList;
|
||||
u32 translucentDList;
|
||||
} MeshEntry0;
|
||||
/* 0x0 */ u32 opaqueDList;
|
||||
/* 0x4 */ u32 translucentDList;
|
||||
} MeshEntry0; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
MeshHeaderBase base;
|
||||
u8 format;
|
||||
u32 entryRecord;
|
||||
} MeshHeader1Base;
|
||||
/* 0x0 */ MeshHeaderBase base;
|
||||
/* 0x1 */ u8 format;
|
||||
/* 0x4 */ u32 entryRecord;
|
||||
} MeshHeader1Base; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
MeshHeader1Base base;
|
||||
u32 imagePtr; // 0x08
|
||||
u32 unknown; // 0x0C
|
||||
u32 unknown2; // 0x10
|
||||
u16 bgWidth; // 0x14
|
||||
u16 bgHeight; // 0x16
|
||||
u8 imageFormat; // 0x18
|
||||
u8 imageSize; // 0x19
|
||||
u16 imagePal; // 0x1A
|
||||
u16 imageFlip; // 0x1C
|
||||
} MeshHeader1Single;
|
||||
/* 0x00 */ MeshHeader1Base base;
|
||||
/* 0x08 */ u32 imagePtr;
|
||||
/* 0x0C */ u32 unknown;
|
||||
/* 0x10 */ u32 unknown2;
|
||||
/* 0x14 */ u16 bgWidth;
|
||||
/* 0x16 */ u16 bgHeight;
|
||||
/* 0x18 */ u8 imageFormat;
|
||||
/* 0x19 */ u8 imageSize;
|
||||
/* 0x1A */ u16 imagePal;
|
||||
/* 0x1C */ u16 imageFlip;
|
||||
} MeshHeader1Single; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
MeshHeader1Base base;
|
||||
u8 bgCnt;
|
||||
u32 bgRecordPtr;
|
||||
} MeshHeader1Multi;
|
||||
/* 0x0 */ MeshHeader1Base base;
|
||||
/* 0x8 */ u8 bgCnt;
|
||||
/* 0xC */ u32 bgRecordPtr;
|
||||
} MeshHeader1Multi; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
u16 unknown; // 0x00
|
||||
s8 bgID; // 0x02
|
||||
u32 imagePtr; // 0x04
|
||||
u32 unknown2; // 0x08
|
||||
u32 unknown3; // 0x0C
|
||||
u16 bgWidth; // 0x10
|
||||
u16 bgHeight; // 0x12
|
||||
u8 imageFmt; // 0x14
|
||||
u8 imageSize; // 0x15
|
||||
u16 imagePal; // 0x16
|
||||
u16 imageFlip; // 0x18
|
||||
} BackgroundRecord;
|
||||
/* 0x00 */ u16 unknown;
|
||||
/* 0x02 */ s8 bgID;
|
||||
/* 0x04 */ u32 imagePtr;
|
||||
/* 0x08 */ u32 unknown2;
|
||||
/* 0x0C */ u32 unknown3;
|
||||
/* 0x10 */ u16 bgWidth;
|
||||
/* 0x12 */ u16 bgHeight;
|
||||
/* 0x14 */ u8 imageFmt;
|
||||
/* 0x15 */ u8 imageSize;
|
||||
/* 0x16 */ u16 imagePal;
|
||||
/* 0x18 */ u16 imageFlip;
|
||||
} BackgroundRecord; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
s16 playerXMax, playerZMax;
|
||||
s16 playerXMin, playerZMin;
|
||||
u32 opaqueDList;
|
||||
u32 translucentDList;
|
||||
} MeshEntry2;
|
||||
/* 0x0 */ s16 playerXMax;
|
||||
/* 0x2 */ s16 playerZMax;
|
||||
/* 0x4 */ s16 playerXMin;
|
||||
/* 0x6 */ s16 playerZMin;
|
||||
/* 0x8 */ u32 opaqueDList;
|
||||
/* 0xC */ u32 translucentDList;
|
||||
} MeshEntry2; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
MeshHeaderBase base;
|
||||
u8 numEntries;
|
||||
u32 dListStart;
|
||||
u32 dListEnd;
|
||||
} MeshHeader2;
|
||||
/* 0x0 */ MeshHeaderBase base;
|
||||
/* 0x1 */ u8 numEntries;
|
||||
/* 0x4 */ u32 dListStart;
|
||||
/* 0x8 */ u32 dListEnd;
|
||||
} MeshHeader2; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 count; // number of points in the path
|
||||
/* 0x01 */ u8 unk1;
|
||||
/* 0x02 */ s16 unk2;
|
||||
/* 0x04 */ Vec3s* points; // Segment Address to the array of points
|
||||
/* 0x0 */ u8 count; // number of points in the path
|
||||
/* 0x1 */ u8 unk1;
|
||||
/* 0x2 */ s16 unk2;
|
||||
/* 0x4 */ Vec3s* points; // Segment Address to the array of points
|
||||
} Path; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ UNK_TYPE2 unk0;
|
||||
/* 0x02 */ UNK_TYPE2 unk2;
|
||||
/* 0x04 */ UNK_TYPE2 unk4;
|
||||
/* 0x06 */ UNK_TYPE2 unk6;
|
||||
/* 0x08 */ UNK_TYPE2 unk8;
|
||||
/* 0x0 */ UNK_TYPE2 unk0;
|
||||
/* 0x2 */ UNK_TYPE2 unk2;
|
||||
/* 0x4 */ UNK_TYPE2 unk4;
|
||||
/* 0x6 */ UNK_TYPE2 unk6;
|
||||
/* 0x8 */ UNK_TYPE2 unk8;
|
||||
} MinimapEntry; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ MinimapEntry* entry;
|
||||
/* 0x04 */ UNK_TYPE unk4;
|
||||
/* 0x0 */ MinimapEntry* entry;
|
||||
/* 0x4 */ UNK_TYPE unk4;
|
||||
} MinimapList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ UNK_TYPE2 unk0;
|
||||
/* 0x02 */ UNK_TYPE2 unk2;
|
||||
/* 0x04 */ UNK_TYPE2 unk4;
|
||||
/* 0x06 */ UNK_TYPE2 unk6;
|
||||
/* 0x08 */ UNK_TYPE2 unk8;
|
||||
/* 0x0 */ UNK_TYPE2 unk0;
|
||||
/* 0x2 */ UNK_TYPE2 unk2;
|
||||
/* 0x4 */ UNK_TYPE2 unk4;
|
||||
/* 0x6 */ UNK_TYPE2 unk6;
|
||||
/* 0x8 */ UNK_TYPE2 unk8;
|
||||
} MinimapChest; // size = 0xA
|
||||
|
||||
// TODO: consider merging with bgCamInfo?
|
||||
|
@ -32,25 +32,25 @@
|
||||
#define SCHEDULE_TIME_NOW SCHEDULE_CONVERT_TIME(gSaveContext.save.time)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ SCHEDULE_CMD_ID_CHECK_FLAG_S, // Checks if a weekEventReg flag is set and branches if so, short range branch
|
||||
/* 1 */ SCHEDULE_CMD_ID_CHECK_FLAG_L, // Checks if a weekEventReg flag is set and branches if so, long range branch
|
||||
/* 2 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, // Checks if the current time is within the range of the two provided times and branches if so, short range branch
|
||||
/* 3 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, // Checks if the current time is within the range of the two provided times and branches if so, long range branch
|
||||
/* 4 */ SCHEDULE_CMD_ID_RET_VAL_L, // Ends script and returns 2-byte value (Note: bugged as the return value size is only 1 byte in the struct)
|
||||
/* 5 */ SCHEDULE_CMD_ID_RET_NONE, // Ends script without returning anything
|
||||
/* 6 */ SCHEDULE_CMD_ID_RET_EMPTY, // Ends script and indicates return without changing existing value
|
||||
/* 7 */ SCHEDULE_CMD_ID_NOP, // No-Op
|
||||
/* 8 */ SCHEDULE_CMD_ID_CHECK_MISC_S, // Special check based on items or masks and branches if check passes, short range branch
|
||||
/* 9 */ SCHEDULE_CMD_ID_RET_VAL_S, // Ends script and returns byte value
|
||||
/* 10 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, // Checks if the current scene is not SceneNum and branches if so, short range branch
|
||||
/* 11 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, // Checks if the current scene is not SceneNum and branches if so, long range branch
|
||||
/* 12 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, // Checks if the current day is not Day and branches if so, short range branch
|
||||
/* 13 */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, // Checks if the current day is not Day and branches if so, long range branch
|
||||
/* 14 */ SCHEDULE_CMD_ID_RET_TIME, // Returns 2 time values
|
||||
/* 15 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, // Branches if the current time is less than the command time, short range branch
|
||||
/* 16 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, // Branches if the current time is less than the command time, long range branch
|
||||
/* 17 */ SCHEDULE_CMD_ID_BRANCH_S, // Always branch, short range branch
|
||||
/* 18 */ SCHEDULE_CMD_ID_BRANCH_L, // Always branch, long range branch
|
||||
/* 0x00 */ SCHEDULE_CMD_ID_CHECK_FLAG_S, // Checks if a weekEventReg flag is set and branches if so, short range branch
|
||||
/* 0x01 */ SCHEDULE_CMD_ID_CHECK_FLAG_L, // Checks if a weekEventReg flag is set and branches if so, long range branch
|
||||
/* 0x02 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, // Checks if the current time is within the range of the two provided times and branches if so, short range branch
|
||||
/* 0x03 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, // Checks if the current time is within the range of the two provided times and branches if so, long range branch
|
||||
/* 0x04 */ SCHEDULE_CMD_ID_RET_VAL_L, // Ends script and returns 2-byte value (Note: bugged as the return value size is only 1 byte in the struct)
|
||||
/* 0x05 */ SCHEDULE_CMD_ID_RET_NONE, // Ends script without returning anything
|
||||
/* 0x06 */ SCHEDULE_CMD_ID_RET_EMPTY, // Ends script and indicates return without changing existing value
|
||||
/* 0x07 */ SCHEDULE_CMD_ID_NOP, // No-Op
|
||||
/* 0x08 */ SCHEDULE_CMD_ID_CHECK_MISC_S, // Special check based on items or masks and branches if check passes, short range branch
|
||||
/* 0x09 */ SCHEDULE_CMD_ID_RET_VAL_S, // Ends script and returns byte value
|
||||
/* 0x0A */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, // Checks if the current scene is not SceneNum and branches if so, short range branch
|
||||
/* 0x0B */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, // Checks if the current scene is not SceneNum and branches if so, long range branch
|
||||
/* 0x0C */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, // Checks if the current day is not Day and branches if so, short range branch
|
||||
/* 0x0D */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, // Checks if the current day is not Day and branches if so, long range branch
|
||||
/* 0x0E */ SCHEDULE_CMD_ID_RET_TIME, // Returns 2 time values
|
||||
/* 0x0F */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, // Branches if the current time is less than the command time, short range branch
|
||||
/* 0x10 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, // Branches if the current time is less than the command time, long range branch
|
||||
/* 0x11 */ SCHEDULE_CMD_ID_BRANCH_S, // Always branch, short range branch
|
||||
/* 0x12 */ SCHEDULE_CMD_ID_BRANCH_L, // Always branch, long range branch
|
||||
} ScheduleCommandId;
|
||||
|
||||
typedef enum {
|
||||
|
@ -33,18 +33,18 @@ typedef struct {
|
||||
} SkinTransformation; // size = 0xA
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 vtxCount; // number of vertices in this modif entry
|
||||
/* 0x02 */ u16 transformCount;
|
||||
/* 0x04 */ u16 unk_04; // index of limbTransformations
|
||||
/* 0x08 */ SkinVertex* skinVertices;
|
||||
/* 0x0C */ SkinTransformation* limbTransformations;
|
||||
/* 0x0 */ u16 vtxCount; // number of vertices in this modif entry
|
||||
/* 0x2 */ u16 transformCount;
|
||||
/* 0x4 */ u16 unk_04; // index of limbTransformations
|
||||
/* 0x8 */ SkinVertex* skinVertices;
|
||||
/* 0xC */ SkinTransformation* limbTransformations;
|
||||
} SkinLimbModif; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 totalVtxCount; // total vertex count for all modif entries
|
||||
/* 0x02 */ u16 limbModifCount; // count of limbModifCount
|
||||
/* 0x04 */ SkinLimbModif* limbModifications;
|
||||
/* 0x08 */ Gfx* dlist;
|
||||
/* 0x0 */ u16 totalVtxCount; // total vertex count for all modif entries
|
||||
/* 0x2 */ u16 limbModifCount; // count of limbModifCount
|
||||
/* 0x4 */ SkinLimbModif* limbModifications;
|
||||
/* 0x8 */ Gfx* dlist;
|
||||
} SkinAnimatedLimbData; // size = 0xC
|
||||
|
||||
// ZAPD compatibility typedefs
|
||||
@ -58,11 +58,11 @@ typedef SkinLimbModif Struct_800A598C;
|
||||
#define SKIN_LIMB_TYPE_NORMAL 11
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x06 */ u8 child;
|
||||
/* 0x07 */ u8 sibling;
|
||||
/* 0x08 */ s32 segmentType; // Type of data contained in segment
|
||||
/* 0x0C */ void* segment; // Gfx* if segmentType is SKIN_LIMB_TYPE_NORMAL, SkinAnimatedLimbData if segmentType is SKIN_LIMB_TYPE_ANIMATED, NULL otherwise
|
||||
/* 0x0 */ Vec3s jointPos; // Root is position in model space, children are relative to parent
|
||||
/* 0x6 */ u8 child;
|
||||
/* 0x7 */ u8 sibling;
|
||||
/* 0x8 */ s32 segmentType; // Type of data contained in segment
|
||||
/* 0xC */ void* segment; // Gfx* if segmentType is SKIN_LIMB_TYPE_NORMAL, SkinAnimatedLimbData if segmentType is SKIN_LIMB_TYPE_ANIMATED, NULL otherwise
|
||||
} SkinLimb; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@ -71,11 +71,11 @@ typedef struct {
|
||||
} SkinLimbVtx; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ SkeletonHeader* skeletonHeader;
|
||||
/* 0x004 */ MtxF mtx;
|
||||
/* 0x044 */ s32 limbCount;
|
||||
/* 0x048 */ SkinLimbVtx* vtxTable; // double buffered list of vertices for each limb
|
||||
/* 0x04C */ SkelAnime skelAnime;
|
||||
/* 0x00 */ SkeletonHeader* skeletonHeader;
|
||||
/* 0x04 */ MtxF mtx;
|
||||
/* 0x44 */ s32 limbCount;
|
||||
/* 0x48 */ SkinLimbVtx* vtxTable; // double buffered list of vertices for each limb
|
||||
/* 0x4C */ SkelAnime skelAnime;
|
||||
} Skin; // size = 0x90
|
||||
|
||||
typedef void (*SkinPostDraw)(struct Actor* thisx, struct PlayState* play, Skin* skin);
|
||||
|
@ -13,16 +13,16 @@ typedef struct {
|
||||
/* 0x18 */ void (*setColor)(void* transition, u32 color);
|
||||
/* 0x1C */ void (*setEnvColor)(void* transition, u32 color);
|
||||
/* 0x20 */ s32 (*isDone)(void* transition);
|
||||
} TransitionInit;
|
||||
} TransitionInit; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ char unk_0[0xC];
|
||||
/* 0x0 */ char unk_0[0xC];
|
||||
} TransitionFade; // size = 0xC
|
||||
|
||||
extern const TransitionInit TransitionFade_InitVars;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ char unk_0[0x20];
|
||||
/* 0x00 */ char unk_0[0x20];
|
||||
} TransitionCircle; // size = 0x20
|
||||
|
||||
extern const TransitionInit TransitionCircle_InitVars;
|
||||
|
Loading…
Reference in New Issue
Block a user