From 9a4319827b474ed2954f1143e21a2afecd2709ed Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Sun, 7 Aug 2022 16:43:58 -0700 Subject: [PATCH] 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 --- include/z64.h | 133 ++++++----- include/z64actor.h | 24 +- include/z64animation.h | 158 ++++++------- include/z64bgcheck.h | 28 +-- include/z64collision_check.h | 102 ++++---- include/z64cutscene.h | 24 +- include/z64dma.h | 8 +- include/z64effect.h | 24 +- include/z64item.h | 22 +- include/z64light.h | 6 +- include/z64math.h | 72 +++--- include/z64player.h | 58 ++--- include/z64save.h | 56 ++--- include/z64scene.h | 438 +++++++++++++++++------------------ include/z64schedule.h | 38 +-- include/z64skin.h | 38 +-- include/z64transition.h | 6 +- 17 files changed, 618 insertions(+), 617 deletions(-) diff --git a/include/z64.h b/include/z64.h index c9cbeb1bc..50667fc3e 100644 --- a/include/z64.h +++ b/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 diff --git a/include/z64actor.h b/include/z64actor.h index e1fc334a3..175d9ef22 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -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, diff --git a/include/z64animation.h b/include/z64animation.h index cceb2547f..b697dbfdf 100644 --- a/include/z64animation.h +++ b/include/z64animation.h @@ -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); diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h index f0d24fd6f..b42938354 100644 --- a/include/z64bgcheck.h +++ b/include/z64bgcheck.h @@ -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 diff --git a/include/z64collision_check.h b/include/z64collision_check.h index fbfcff7ae..434b74a3a 100644 --- a/include/z64collision_check.h +++ b/include/z64collision_check.h @@ -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 { diff --git a/include/z64cutscene.h b/include/z64cutscene.h index aa0681de5..430cef331 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -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 { diff --git a/include/z64dma.h b/include/z64dma.h index 570aa8432..3b17d04d0 100644 --- a/include/z64dma.h +++ b/include/z64dma.h @@ -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 diff --git a/include/z64effect.h b/include/z64effect.h index fb9d9e159..dde996eb7 100644 --- a/include/z64effect.h +++ b/include/z64effect.h @@ -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; diff --git a/include/z64item.h b/include/z64item.h index 3e3c608b9..b823443bb 100644 --- a/include/z64item.h +++ b/include/z64item.h @@ -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 { diff --git a/include/z64light.h b/include/z64light.h index 60736b62e..df7c1b4fa 100644 --- a/include/z64light.h +++ b/include/z64light.h @@ -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); diff --git a/include/z64math.h b/include/z64math.h index 3732222cc..16ab72e8a 100644 --- a/include/z64math.h +++ b/include/z64math.h @@ -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)) diff --git a/include/z64player.h b/include/z64player.h index 0f74f5a6c..4dd47424e 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -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) diff --git a/include/z64save.h b/include/z64save.h index b153f745d..6ed297e6e 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -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 { diff --git a/include/z64scene.h b/include/z64scene.h index 297bb2672..9eff2f291 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -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? diff --git a/include/z64schedule.h b/include/z64schedule.h index 8dba85d4d..cff6224f4 100644 --- a/include/z64schedule.h +++ b/include/z64schedule.h @@ -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 { diff --git a/include/z64skin.h b/include/z64skin.h index fdc61a5ef..360e265e6 100644 --- a/include/z64skin.h +++ b/include/z64skin.h @@ -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); diff --git a/include/z64transition.h b/include/z64transition.h index 998dd9198..9630b4a3f 100644 --- a/include/z64transition.h +++ b/include/z64transition.h @@ -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;