mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-09 05:43:18 -04:00
ovl_player_actor: Dawn of a new PR (#1227)
* Rename Player_UpdateBottleHeld * Match func_808497A0 * func_80852290 NON_MATCHING * Match func_8083B3B4 * Params cleanup * Match func_8083FBC4 * sfxId cleanups and others * Fix declaration of functions from D_8085D990 * Change D_8085BE84 to be a 2D array * ARRAY_COUNT_2D * Match func_8085ADA0 * func_808426F0 nonmatching * Match func_80852290 * Match func_808426F0 Co-authored-by: engineer124 <engineer124engineer124@gmail.com> * Add notes to Player_SetDoAction * Name putAwayCountdown * rebase * Match func_80856918 * format * func_8084933C nonmatching small amount of boomerang documentation * Progress on moving data near where it is used * finish moving data * format * cleanup up remaining data * more match * Some minor cleanups * PlayerCsMode enum * func_80851F18 nonmatching * Fix unk_B10 * Purge ExchangeItemID enum * Rename `targetActor` to `talkActor` * Name `targetedActor` * PLAYER_LIMB_BUF_SIZE Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com> * Change SkelAnime Player functions to take a void pointer for the corresponding buffers * Use PlayerAnimationFrame on Player_DrawImpl * Match func_8082F1AC * Match func_8083D23C * cleanup * Match and clean up func_808373F8 * Match and document func_8083A98C * PLAYER_PARAMS macro and PlayerInitMode enum * Preliminary names for InitMode functions * Match func_8083C8E8 * remove redundant externs * Match func_8084933C * cleanup func_8084933C * Access D_8085BE84 directly instead of using a macro * Match func_8084AC84 * Fix boomearng typo * OK boomerang * cleanup func_8083D168 * untargetedRotY * this->unk_14E = ABS_ALT(var_v1); * GIFIELD macros * sort of a match * Match func_8084C16C Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com> * Use the same trick to match func_808573A4 * Add note on Deku spinning * Match func_8084D18C * Match func_80850D68 * Improve func_80832660 * Match func_80854EFC Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com> * Rename unk_B2A to getItemDrawId * Some cleanup * fix merge issues * format * minor anim docs * Match func_808553F4 * Cleanup func_808553F4 * func_8083D860 nonmatching * Match func_8083D860 * Defake func_80859BA8 * () * Add notes to PlayerAnimGroup enum * underwaterTimer Co-authored-by: engineer124 <engineer124engineer124@gmail.com> * some stateFlags cleaning * more stateFlags cleaning * some notes and minor cleanups * more general cleanups * Slightly less fake func_80832CAC * Document some melee weapon damage stuff * Mark lunge storage * Note PCS patch * match * add notes to bss * yeet extra indentation * add reloc as nonmatching to spec * floorSfxOffset * Player_GetFloorSfx * Player_GetFloorSfxByAge * Comments for AnimSfx dunctions * Name some AnimSfx functions * Name AnimSfx stuff * Some PlayerAgeProperties notes * use animflag defines * Player_SpawnExplosive * fix enum and some other minor fixes * Bit more misc. cleanup * Use OoT's version of func_808333CC * Note on quickspin buffer * Final nonmatching, func_80851F18 Co-authored-by: Synray <31429825+Synray@users.noreply.github.com> * RIP player.c * Name Player_StopHorizontalMovement * misc fixes * Actor_DeactivateLens * fixes * typos and tweaks * minor stuff * add names as comments on the animgoup array * Correct some function names and data type * add anim commets to ageproperties * some notes * De-fake func_80840F90 * Defake & clean up func_8085ADA0 * Improve func_80859BA8 * Enums in func_80852B28 * Name some secret-related things * 3 small things * stuff * Player_TalkWithPlayer * SurfaceType_GetFloorType * SurfaceType_GetWallFlags * and more bgcheck stuff * more bss naming * sPlayerControlInput * clean up func_80836F10 a bit * name the parameters of func_80835BF8 * door stuff * remove NON_MATCHING * remove D_8085D2B0 padding * Name some Player_Cutscene_ functions * various cleanups * format * remainingHopsCounter * some cleanups on the struct * Actor_RequestRumble * this->exchangeItemId = PLAYER_AP_NONE; * fix merge stuff * format * PlayerUnkAA5 * Name two cylinder-related functions * BSS * Add MagicConsume's enum, treat lensActive as bool * Update func_808332A0 based on better info * fix merge * fix merge issues * remove redundant comments * Name Player_AddQuake * ANIM_FLAG_UPDATE*_*Y * Format * AT_TYPE_ENEMY * fix merge issues * format * fix uintptr_ts * Rename * Name leftHandMf * fix merge issues * format * exchangeItemId <= PLAYER_IA_MINUS1 * getItemDrawIdPlusOne * currentActorCsIndex * <= PLAYER_IA_MINUS1 * fix merge issues * format * namefixer and bss * fix build * bombs parameters cleanup * bss * Fix building * fix building * Fix building * Fix building and cleanups * Pre-PR cleanup * really... * format * review * stateFlag Mistakes * 268 * 0.1f * z64door.h * fix cutscene stuff * bss * Update include/z64player.h Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * Update include/z64player.h Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com> * reiew * PR Review * collision * review * format and a few stuff i missed * EnBomExplosiveType * weekeventregconvert and eventinfconvert * more review * review * bss * review * re format sGetItemTable * Entangle PlayerMask and PlayerItemAction * a few extra cases i missed * bss * review * EnArrow stuff * ARROW_MAGIC_DEKU_BUBBLE * minor format * merge * fix bss * review * !ARROW_IS_ARROW * review * bool cleanup * fix merge * review * Player_StopCutscene * Player_RequestQuake * quakeIndex * Player_RequestQuakeAndRumble * knobDoor and slidingDoor * bss * fix * review * dog and float --------- Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com> Co-authored-by: engineer124 <engineer124engineer124@gmail.com> Co-authored-by: petrie911 <pmontag@PHYS-S129.iowa.uiowa.edu> Co-authored-by: petrie911 <69443847+petrie911@users.noreply.github.com> Co-authored-by: Synray <31429825+Synray@users.noreply.github.com>
This commit is contained in:
+3
-2
@@ -726,8 +726,9 @@ Actor* Actor_SpawnAsChildAndCutscene(ActorContext* actorCtx, PlayState* play, s1
|
||||
Actor* Actor_SpawnAsChild(ActorContext* actorCtx, Actor* parent, PlayState* play, s16 actorId, f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, s32 params);
|
||||
void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx);
|
||||
void Enemy_StartFinishingBlow(PlayState* play, Actor* actor);
|
||||
s16 func_800BBAC0(s16 arg0[2], s16 arg1, s16 arg2, s16 arg3);
|
||||
s16 func_800BBB74(s16 arg0[2], s16 arg1, s16 arg2, s16 arg3);
|
||||
s16 func_800BBAC0(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
|
||||
s16 func_800BBB74(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
|
||||
s16 func_800BBC20(BlinkInfo* info, s16 arg1, s16 arg2, s16 arg3);
|
||||
void Actor_SpawnBodyParts(Actor* actor, PlayState* play, s32 partParams, Gfx** dList);
|
||||
void Actor_SpawnFloorDustRing(PlayState* play, Actor* actor, Vec3f* posXZ, f32 radius, s32 countMinusOne, f32 randAccelWeight, s16 scale, s16 scaleStep, u8 useLighting);
|
||||
void func_800BBFB0(PlayState* play, Vec3f* position, f32 arg2, s32 arg3, s16 arg4, s16 scaleStep, u8 arg6);
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||
#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
#define ARRAY_COUNT_2D(arr) (ARRAY_COUNT(arr) * ARRAY_COUNT(arr[0]))
|
||||
|
||||
// TODO: After uintptr_t cast change should have an AVOID_UB target that just toggles the KSEG0 bit in the address rather than add/sub 0x80000000
|
||||
#define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t)(addr) + RDRAM_CACHED)
|
||||
#define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - RDRAM_CACHED)
|
||||
|
||||
+7
-6
@@ -82,11 +82,12 @@
|
||||
#define Z_PRIORITY_IRQMGR 18
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_SLOT_B,
|
||||
/* 1 */ EQUIP_SLOT_C_LEFT,
|
||||
/* 2 */ EQUIP_SLOT_C_DOWN,
|
||||
/* 3 */ EQUIP_SLOT_C_RIGHT,
|
||||
/* 4 */ EQUIP_SLOT_A
|
||||
/* -1 */ EQUIP_SLOT_NONE = -1,
|
||||
/* 0 */ EQUIP_SLOT_B,
|
||||
/* 1 */ EQUIP_SLOT_C_LEFT,
|
||||
/* 2 */ EQUIP_SLOT_C_DOWN,
|
||||
/* 3 */ EQUIP_SLOT_C_RIGHT,
|
||||
/* 4 */ EQUIP_SLOT_A
|
||||
} EquipSlot;
|
||||
|
||||
typedef struct {
|
||||
@@ -517,7 +518,7 @@ typedef struct PlayState {
|
||||
/* 0x18770 */ void (*unk_18770)(struct PlayState* play, Player* player);
|
||||
/* 0x18774 */ s32 (*startPlayerFishing)(struct PlayState* play);
|
||||
/* 0x18778 */ s32 (*grabPlayer)(struct PlayState* play, Player* player);
|
||||
/* 0x1877C */ s32 (*startPlayerCutscene)(struct PlayState* play, Player* player, s32 mode);
|
||||
/* 0x1877C */ s32 (*startPlayerCutscene)(struct PlayState* play, Player* player, PlayerCsMode csMode);
|
||||
/* 0x18780 */ void (*func_18780)(Player* player, struct PlayState* play);
|
||||
/* 0x18784 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage);
|
||||
/* 0x18788 */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor);
|
||||
|
||||
@@ -739,6 +739,11 @@ typedef struct NpcInteractInfo {
|
||||
/* 0x24 */ UNK_TYPE1 unk_24[0x4];
|
||||
} NpcInteractInfo; // size = 0x28
|
||||
|
||||
typedef struct BlinkInfo {
|
||||
/* 0x0 */ s16 eyeTexIndex;
|
||||
/* 0x2 */ s16 blinkTimer;
|
||||
} BlinkInfo; // size = 0x4
|
||||
|
||||
extern TargetRangeParams gTargetRanges[];
|
||||
extern s16 D_801AED48[8];
|
||||
extern Gfx D_801AEF88[];
|
||||
|
||||
@@ -14,9 +14,13 @@ struct PlayerAnimationFrame;
|
||||
#define LIMB_DONE 0xFF
|
||||
|
||||
#define ANIM_FLAG_1 (1 << 0)
|
||||
#define ANIM_FLAG_UPDATEY (1 << 1)
|
||||
#define ANIM_FLAG_UPDATE_Y (1 << 1)
|
||||
#define ANIM_FLAG_4 (1 << 2)
|
||||
#define ANIM_FLAG_8 (1 << 3)
|
||||
#define ANIM_FLAG_NOMOVE (1 << 4)
|
||||
#define ANIM_FLAG_80 (1 << 7)
|
||||
#define ANIM_FLAG_100 (1 << 8)
|
||||
#define ANIM_FLAG_200 (1 << 9)
|
||||
|
||||
typedef enum AnimationMode {
|
||||
/* 0 */ ANIMMODE_LOOP,
|
||||
@@ -326,6 +330,7 @@ void AnimationContext_Update(struct PlayState* play, AnimationContext* animation
|
||||
void SkelAnime_InitPlayer(struct PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, PlayerAnimationHeader* animation, s32 flags, void* jointTableBuffer, void* morphTableBuffer, s32 limbBufCount);
|
||||
void PlayerAnimation_SetUpdateFunction(SkelAnime* skelAnime);
|
||||
s32 PlayerAnimation_Update(struct PlayState* play, SkelAnime* skelAnime);
|
||||
void PlayerAnimation_AnimateFrame(struct PlayState* play, SkelAnime* skelAnime);
|
||||
void Animation_SetMorph(struct PlayState* play, SkelAnime* skelAnime, f32 morphFrames);
|
||||
void PlayerAnimation_Change(struct PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation, f32 playSpeed, f32 startFrame, f32 endFrame, u8 mode, f32 morphFrames);
|
||||
void PlayerAnimation_PlayOnce(struct PlayState* play, SkelAnime* skelAnime, PlayerAnimationHeader* animation);
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef Z64_DOOR_H
|
||||
#define Z64_DOOR_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "z64actor.h"
|
||||
|
||||
typedef struct KnobDoorActor {
|
||||
/* 0x000 */ DynaPolyActor dyna;
|
||||
/* 0x15C */ SkelAnime skelAnime;
|
||||
/* 0x1A0 */ u8 animIndex;
|
||||
/* 0x1A1 */ u8 playOpenAnim;
|
||||
/* 0x1A2 */ s8 requiredObjBankIndex;
|
||||
/* 0x1A3 */ s8 dlIndex;
|
||||
} KnobDoorActor; // size = 0x1A4
|
||||
|
||||
typedef struct SlidingDoorActor {
|
||||
/* 0x000 */ DynaPolyActor dyna;
|
||||
/* 0x15C */ s16 unk_15C;
|
||||
/* 0x15E */ s16 unk_15E;
|
||||
} SlidingDoorActor; // size = 0x160
|
||||
|
||||
#define DOOR_GET_TRANSITION_ID(thisx) ((u16)(thisx)->params >> 10)
|
||||
|
||||
#endif
|
||||
+4
-4
@@ -118,10 +118,10 @@ typedef struct {
|
||||
/* 0x188 */ u16 flags;
|
||||
/* 0x18A */ s16 addAngleChange;
|
||||
/* 0x18C */ s16 addAngle;
|
||||
/* 0x18E */ Color_RGBA8 p1StartColor;
|
||||
/* 0x192 */ Color_RGBA8 p2StartColor;
|
||||
/* 0x196 */ Color_RGBA8 p1EndColor;
|
||||
/* 0x19A */ Color_RGBA8 p2EndColor;
|
||||
/* 0x18E */ u8 p1StartColor[4];
|
||||
/* 0x192 */ u8 p2StartColor[4];
|
||||
/* 0x196 */ u8 p1EndColor[4];
|
||||
/* 0x19A */ u8 p2EndColor[4];
|
||||
/* 0x19E */ u8 numElements; // "now_edge_num"
|
||||
/* 0x19F */ u8 elemDuration;
|
||||
/* 0x1A0 */ u8 unkFlag;
|
||||
|
||||
+51
-13
@@ -332,12 +332,16 @@ typedef enum GetItemId {
|
||||
/* 0x08 */ GI_WALLET_ADULT,
|
||||
/* 0x09 */ GI_WALLET_GIANT,
|
||||
/* 0x0A */ GI_RECOVERY_HEART,
|
||||
/* 0x0C */ GI_HEART_PIECE = 0x0C,
|
||||
/* 0x0B */ GI_0B,
|
||||
/* 0x0C */ GI_HEART_PIECE,
|
||||
/* 0x0D */ GI_HEART_CONTAINER,
|
||||
/* 0x0E */ GI_MAGIC_SMALL,
|
||||
/* 0x0F */ GI_MAGIC_LARGE,
|
||||
/* 0x11 */ GI_STRAY_FAIRY = 0x11,
|
||||
/* 0x14 */ GI_BOMBS_1 = 0x14,
|
||||
/* 0x10 */ GI_10,
|
||||
/* 0x11 */ GI_STRAY_FAIRY,
|
||||
/* 0x12 */ GI_12,
|
||||
/* 0x13 */ GI_13,
|
||||
/* 0x14 */ GI_BOMBS_1,
|
||||
/* 0x15 */ GI_BOMBS_5,
|
||||
/* 0x16 */ GI_BOMBS_10,
|
||||
/* 0x17 */ GI_BOMBS_20,
|
||||
@@ -360,8 +364,14 @@ typedef enum GetItemId {
|
||||
/* 0x28 */ GI_NUTS_1,
|
||||
/* 0x29 */ GI_NUTS_5,
|
||||
/* 0x2A */ GI_NUTS_10,
|
||||
/* 0x2E */ GI_BOMBCHUS_20 = 0x2E,
|
||||
/* 0x32 */ GI_SHIELD_HERO = 0x32,
|
||||
/* 0x2B */ GI_2B,
|
||||
/* 0x2C */ GI_2C,
|
||||
/* 0x2D */ GI_2D,
|
||||
/* 0x2E */ GI_BOMBCHUS_20,
|
||||
/* 0x2F */ GI_2F,
|
||||
/* 0x30 */ GI_30,
|
||||
/* 0x31 */ GI_31,
|
||||
/* 0x32 */ GI_SHIELD_HERO,
|
||||
/* 0x33 */ GI_SHIELD_MIRROR,
|
||||
/* 0x34 */ GI_POWDER_KEG,
|
||||
/* 0x35 */ GI_MAGIC_BEANS,
|
||||
@@ -379,10 +389,24 @@ typedef enum GetItemId {
|
||||
/* 0x41 */ GI_HOOKSHOT,
|
||||
/* 0x42 */ GI_LENS,
|
||||
/* 0x43 */ GI_PICTO_BOX,
|
||||
/* 0x4C */ GI_OCARINA = 0x4C,
|
||||
/* 0x50 */ GI_BOMBERS_NOTEBOOK = 0x50,
|
||||
/* 0x52 */ GI_SKULL_TOKEN = 0x52,
|
||||
/* 0x55 */ GI_REMAINS_ODOLWA = 0x55,
|
||||
/* 0x44 */ GI_44,
|
||||
/* 0x45 */ GI_45,
|
||||
/* 0x46 */ GI_46,
|
||||
/* 0x47 */ GI_47,
|
||||
/* 0x48 */ GI_48,
|
||||
/* 0x49 */ GI_49,
|
||||
/* 0x4A */ GI_4A,
|
||||
/* 0x4B */ GI_4B,
|
||||
/* 0x4C */ GI_OCARINA,
|
||||
/* 0x4D */ GI_4D,
|
||||
/* 0x4E */ GI_4E,
|
||||
/* 0x4F */ GI_4F,
|
||||
/* 0x50 */ GI_BOMBERS_NOTEBOOK,
|
||||
/* 0x51 */ GI_51,
|
||||
/* 0x52 */ GI_SKULL_TOKEN,
|
||||
/* 0x53 */ GI_53,
|
||||
/* 0x54 */ GI_54,
|
||||
/* 0x55 */ GI_REMAINS_ODOLWA,
|
||||
/* 0x56 */ GI_REMAINS_GOHT,
|
||||
/* 0x57 */ GI_REMAINS_GYORG,
|
||||
/* 0x58 */ GI_REMAINS_TWINMOLD,
|
||||
@@ -410,9 +434,14 @@ typedef enum GetItemId {
|
||||
/* 0x6E */ GI_SEAHORSE,
|
||||
/* 0x6F */ GI_CHATEAU_BOTTLE,
|
||||
/* 0x70 */ GI_HYLIAN_LOACH,
|
||||
/* 0x75 */ GI_75 = 0x75,
|
||||
/* 0x71 */ GI_71,
|
||||
/* 0x72 */ GI_72,
|
||||
/* 0x73 */ GI_73,
|
||||
/* 0x74 */ GI_74,
|
||||
/* 0x75 */ GI_75,
|
||||
/* 0x76 */ GI_ICE_TRAP,
|
||||
/* 0x78 */ GI_MASK_DEKU = 0x78,
|
||||
/* 0x77 */ GI_77,
|
||||
/* 0x78 */ GI_MASK_DEKU,
|
||||
/* 0x79 */ GI_MASK_GORON,
|
||||
/* 0x7A */ GI_MASK_ZORA,
|
||||
/* 0x7B */ GI_MASK_FIERCE_DEITY,
|
||||
@@ -436,7 +465,8 @@ typedef enum GetItemId {
|
||||
/* 0x8D */ GI_MASK_BLAST,
|
||||
/* 0x8E */ GI_MASK_SCENTS,
|
||||
/* 0x8F */ GI_MASK_KAFEIS_MASK,
|
||||
/* 0x91 */ GI_CHATEAU = 0x91,
|
||||
/* 0x90 */ GI_90,
|
||||
/* 0x91 */ GI_CHATEAU,
|
||||
/* 0x92 */ GI_MILK,
|
||||
/* 0x93 */ GI_GOLD_DUST_2,
|
||||
/* 0x94 */ GI_HYLIAN_LOACH_2, // Unused bottled eel
|
||||
@@ -463,7 +493,15 @@ typedef enum GetItemId {
|
||||
/* 0xA9 */ GI_BOTTLE_STOLEN, // buy back stolen bottle
|
||||
/* 0xAA */ GI_LETTER_TO_KAFEI,
|
||||
/* 0xAB */ GI_PENDANT_OF_MEMORIES,
|
||||
/* 0xB4 */ GI_TINGLE_MAP_CLOCK_TOWN = 0xB4,
|
||||
/* 0xAC */ GI_AC,
|
||||
/* 0xAD */ GI_AD,
|
||||
/* 0xAE */ GI_AE,
|
||||
/* 0xAF */ GI_AF,
|
||||
/* 0xB0 */ GI_B0,
|
||||
/* 0xB1 */ GI_B1,
|
||||
/* 0xB2 */ GI_B2,
|
||||
/* 0xB3 */ GI_B3,
|
||||
/* 0xB4 */ GI_TINGLE_MAP_CLOCK_TOWN,
|
||||
/* 0xB5 */ GI_TINGLE_MAP_WOODFALL,
|
||||
/* 0xB6 */ GI_TINGLE_MAP_SNOWHEAD,
|
||||
/* 0xB7 */ GI_TINGLE_MAP_ROMANI_RANCH,
|
||||
|
||||
+132
-80
@@ -43,35 +43,6 @@ typedef enum PlayerTransformation {
|
||||
/* 5 */ PLAYER_FORM_MAX
|
||||
} PlayerTransformation;
|
||||
|
||||
typedef enum PlayerMask {
|
||||
/* 0x00 */ PLAYER_MASK_NONE,
|
||||
/* 0x01 */ PLAYER_MASK_TRUTH,
|
||||
/* 0x02 */ PLAYER_MASK_KAFEIS_MASK,
|
||||
/* 0x03 */ PLAYER_MASK_ALL_NIGHT,
|
||||
/* 0x04 */ PLAYER_MASK_BUNNY,
|
||||
/* 0x05 */ PLAYER_MASK_KEATON,
|
||||
/* 0x06 */ PLAYER_MASK_GARO,
|
||||
/* 0x07 */ PLAYER_MASK_ROMANI,
|
||||
/* 0x08 */ PLAYER_MASK_CIRCUS_LEADER,
|
||||
/* 0x09 */ PLAYER_MASK_POSTMAN,
|
||||
/* 0x0A */ PLAYER_MASK_COUPLE,
|
||||
/* 0x0B */ PLAYER_MASK_GREAT_FAIRY,
|
||||
/* 0x0C */ PLAYER_MASK_GIBDO,
|
||||
/* 0x0D */ PLAYER_MASK_DON_GERO,
|
||||
/* 0x0E */ PLAYER_MASK_KAMARO,
|
||||
/* 0x0F */ PLAYER_MASK_CAPTAIN,
|
||||
/* 0x10 */ PLAYER_MASK_STONE,
|
||||
/* 0x11 */ PLAYER_MASK_BREMEN,
|
||||
/* 0x12 */ PLAYER_MASK_BLAST,
|
||||
/* 0x13 */ PLAYER_MASK_SCENTS,
|
||||
/* 0x14 */ PLAYER_MASK_GIANT,
|
||||
/* 0x15 */ PLAYER_MASK_FIERCE_DEITY,
|
||||
/* 0x16 */ PLAYER_MASK_GORON,
|
||||
/* 0x17 */ PLAYER_MASK_ZORA,
|
||||
/* 0x18 */ PLAYER_MASK_DEKU,
|
||||
/* 0x19 */ PLAYER_MASK_MAX
|
||||
} PlayerMask;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ PLAYER_ENV_HAZARD_NONE,
|
||||
/* 1 */ PLAYER_ENV_HAZARD_HOTROOM,
|
||||
@@ -89,7 +60,7 @@ typedef enum PlayerItemAction {
|
||||
/* 0x03 */ PLAYER_IA_SWORD_KOKIRI = PLAYER_IA_SWORD_MIN,
|
||||
/* 0x04 */ PLAYER_IA_SWORD_RAZOR,
|
||||
/* 0x05 */ PLAYER_IA_SWORD_GILDED,
|
||||
/* 0x06 */ PLAYER_IA_SWORD_GREAT_FAIRY,
|
||||
/* 0x06 */ PLAYER_IA_SWORD_TWO_HANDED,
|
||||
/* 0x07 */ PLAYER_IA_STICK,
|
||||
/* 0x08 */ PLAYER_IA_ZORA_FINS,
|
||||
/* 0x09 */ PLAYER_IA_BOW,
|
||||
@@ -143,7 +114,8 @@ typedef enum PlayerItemAction {
|
||||
/* 0x37 */ PLAYER_IA_37,
|
||||
/* 0x38 */ PLAYER_IA_38,
|
||||
/* 0x39 */ PLAYER_IA_39,
|
||||
/* 0x3A */ PLAYER_IA_MASK_TRUTH,
|
||||
/* 0x3A */ PLAYER_IA_MASK_MIN,
|
||||
/* 0x3A */ PLAYER_IA_MASK_TRUTH = PLAYER_IA_MASK_MIN,
|
||||
/* 0x3B */ PLAYER_IA_MASK_KAFEIS_MASK,
|
||||
/* 0x3C */ PLAYER_IA_MASK_ALL_NIGHT,
|
||||
/* 0x3D */ PLAYER_IA_MASK_BUNNY,
|
||||
@@ -163,10 +135,12 @@ typedef enum PlayerItemAction {
|
||||
/* 0x4B */ PLAYER_IA_MASK_BLAST,
|
||||
/* 0x4C */ PLAYER_IA_MASK_SCENTS,
|
||||
/* 0x4D */ PLAYER_IA_MASK_GIANT,
|
||||
/* 0x4E */ PLAYER_IA_MASK_FIERCE_DEITY,
|
||||
/* 0x4E */ PLAYER_IA_MASK_TRANSFORMATION_MIN,
|
||||
/* 0x4E */ PLAYER_IA_MASK_FIERCE_DEITY = PLAYER_IA_MASK_TRANSFORMATION_MIN,
|
||||
/* 0x4F */ PLAYER_IA_MASK_GORON,
|
||||
/* 0x50 */ PLAYER_IA_MASK_ZORA,
|
||||
/* 0x51 */ PLAYER_IA_MASK_DEKU,
|
||||
/* 0x51 */ PLAYER_IA_MASK_MAX = PLAYER_IA_MASK_DEKU,
|
||||
/* 0x52 */ PLAYER_IA_LENS,
|
||||
/* 0x53 */ PLAYER_IA_MAX
|
||||
} PlayerItemAction;
|
||||
@@ -190,12 +164,45 @@ typedef enum PlayerMeleeWeapon {
|
||||
/* 1 */ PLAYER_MELEEWEAPON_SWORD_KOKIRI = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_SWORD_KOKIRI),
|
||||
/* 2 */ PLAYER_MELEEWEAPON_SWORD_RAZOR = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_SWORD_RAZOR),
|
||||
/* 3 */ PLAYER_MELEEWEAPON_SWORD_GILDED = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_SWORD_GILDED),
|
||||
/* 4 */ PLAYER_MELEEWEAPON_SWORD_GREAT_FAIRY = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_SWORD_GREAT_FAIRY),
|
||||
/* 4 */ PLAYER_MELEEWEAPON_SWORD_TWO_HANDED = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_SWORD_TWO_HANDED),
|
||||
/* 5 */ PLAYER_MELEEWEAPON_STICK = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_STICK),
|
||||
/* 6 */ PLAYER_MELEEWEAPON_ZORA_FINS = GET_MELEE_WEAPON_FROM_IA(PLAYER_IA_ZORA_FINS),
|
||||
/* 7 */ PLAYER_MELEEWEAPON_MAX
|
||||
} PlayerMeleeWeapon;
|
||||
|
||||
// Relies on mask item actions to be contiguous
|
||||
#define GET_MASK_FROM_IA(itemAction) ((itemAction) - (PLAYER_IA_MASK_MIN - 1))
|
||||
#define GET_IA_FROM_MASK(mask) ((mask) + (PLAYER_IA_MASK_MIN - 1))
|
||||
|
||||
typedef enum PlayerMask {
|
||||
/* 0x00 */ PLAYER_MASK_NONE,
|
||||
/* 0x01 */ PLAYER_MASK_TRUTH = GET_MASK_FROM_IA(PLAYER_IA_MASK_TRUTH),
|
||||
/* 0x02 */ PLAYER_MASK_KAFEIS_MASK = GET_MASK_FROM_IA(PLAYER_IA_MASK_KAFEIS_MASK),
|
||||
/* 0x03 */ PLAYER_MASK_ALL_NIGHT = GET_MASK_FROM_IA(PLAYER_IA_MASK_ALL_NIGHT),
|
||||
/* 0x04 */ PLAYER_MASK_BUNNY = GET_MASK_FROM_IA(PLAYER_IA_MASK_BUNNY),
|
||||
/* 0x05 */ PLAYER_MASK_KEATON = GET_MASK_FROM_IA(PLAYER_IA_MASK_KEATON),
|
||||
/* 0x06 */ PLAYER_MASK_GARO = GET_MASK_FROM_IA(PLAYER_IA_MASK_GARO),
|
||||
/* 0x07 */ PLAYER_MASK_ROMANI = GET_MASK_FROM_IA(PLAYER_IA_MASK_ROMANI),
|
||||
/* 0x08 */ PLAYER_MASK_CIRCUS_LEADER = GET_MASK_FROM_IA(PLAYER_IA_MASK_CIRCUS_LEADER),
|
||||
/* 0x09 */ PLAYER_MASK_POSTMAN = GET_MASK_FROM_IA(PLAYER_IA_MASK_POSTMAN),
|
||||
/* 0x0A */ PLAYER_MASK_COUPLE = GET_MASK_FROM_IA(PLAYER_IA_MASK_COUPLE),
|
||||
/* 0x0B */ PLAYER_MASK_GREAT_FAIRY = GET_MASK_FROM_IA(PLAYER_IA_MASK_GREAT_FAIRY),
|
||||
/* 0x0C */ PLAYER_MASK_GIBDO = GET_MASK_FROM_IA(PLAYER_IA_MASK_GIBDO),
|
||||
/* 0x0D */ PLAYER_MASK_DON_GERO = GET_MASK_FROM_IA(PLAYER_IA_MASK_DON_GERO),
|
||||
/* 0x0E */ PLAYER_MASK_KAMARO = GET_MASK_FROM_IA(PLAYER_IA_MASK_KAMARO),
|
||||
/* 0x0F */ PLAYER_MASK_CAPTAIN = GET_MASK_FROM_IA(PLAYER_IA_MASK_CAPTAIN),
|
||||
/* 0x10 */ PLAYER_MASK_STONE = GET_MASK_FROM_IA(PLAYER_IA_MASK_STONE),
|
||||
/* 0x11 */ PLAYER_MASK_BREMEN = GET_MASK_FROM_IA(PLAYER_IA_MASK_BREMEN),
|
||||
/* 0x12 */ PLAYER_MASK_BLAST = GET_MASK_FROM_IA(PLAYER_IA_MASK_BLAST),
|
||||
/* 0x13 */ PLAYER_MASK_SCENTS = GET_MASK_FROM_IA(PLAYER_IA_MASK_SCENTS),
|
||||
/* 0x14 */ PLAYER_MASK_GIANT = GET_MASK_FROM_IA(PLAYER_IA_MASK_GIANT),
|
||||
/* 0x15 */ PLAYER_MASK_FIERCE_DEITY = GET_MASK_FROM_IA(PLAYER_IA_MASK_FIERCE_DEITY),
|
||||
/* 0x16 */ PLAYER_MASK_GORON = GET_MASK_FROM_IA(PLAYER_IA_MASK_GORON),
|
||||
/* 0x17 */ PLAYER_MASK_ZORA = GET_MASK_FROM_IA(PLAYER_IA_MASK_ZORA),
|
||||
/* 0x18 */ PLAYER_MASK_DEKU = GET_MASK_FROM_IA(PLAYER_IA_MASK_DEKU),
|
||||
/* 0x19 */ PLAYER_MASK_MAX
|
||||
} PlayerMask;
|
||||
|
||||
// Relies on bottle-related item actions to be contiguous
|
||||
#define GET_BOTTLE_FROM_IA(itemAction) ((itemAction) - PLAYER_IA_BOTTLE_MIN)
|
||||
|
||||
@@ -244,7 +251,7 @@ typedef enum PlayerSword {
|
||||
/* 0 */ PLAYER_SWORD_KOKIRI = GET_SWORD_FROM_IA(PLAYER_IA_SWORD_KOKIRI),
|
||||
/* 1 */ PLAYER_SWORD_RAZOR = GET_SWORD_FROM_IA(PLAYER_IA_SWORD_RAZOR),
|
||||
/* 2 */ PLAYER_SWORD_GILDED = GET_SWORD_FROM_IA(PLAYER_IA_SWORD_GILDED),
|
||||
/* 3 */ PLAYER_SWORD_GREAT_FAIRY = GET_SWORD_FROM_IA(PLAYER_IA_SWORD_GREAT_FAIRY),
|
||||
/* 3 */ PLAYER_SWORD_TWO_HANDED = GET_SWORD_FROM_IA(PLAYER_IA_SWORD_TWO_HANDED),
|
||||
/* 4 */ PLAYER_SWORD_MAX
|
||||
} PlayerSword;
|
||||
|
||||
@@ -287,6 +294,12 @@ typedef enum PlayerMeleeWeaponAnimation {
|
||||
/* 34 */ PLAYER_MWA_MAX
|
||||
} PlayerMeleeWeaponAnimation;
|
||||
|
||||
typedef enum PlayerMeleeWeaponState {
|
||||
/* -1 */ PLAYER_MELEE_WEAPON_STATE_MINUS_1 = -1,
|
||||
/* 0 */ PLAYER_MELEE_WEAPON_STATE_0,
|
||||
/* 1 */ PLAYER_MELEE_WEAPON_STATE_1
|
||||
} PlayerMeleeWeaponState;
|
||||
|
||||
typedef enum PlayerDoorType {
|
||||
/* -1 */ PLAYER_DOORTYPE_TALKING = -1, // Displays a message instead of opening
|
||||
/* 0 */ PLAYER_DOORTYPE_NONE,
|
||||
@@ -300,13 +313,61 @@ typedef enum PlayerDoorType {
|
||||
typedef enum PlayerAnimType {
|
||||
/* 0 */ PLAYER_ANIMTYPE_DEFAULT, // DEFAULT
|
||||
/* 1 */ PLAYER_ANIMTYPE_1,
|
||||
/* 2 */ PLAYER_ANIMTYPE_2,
|
||||
/* 2 */ PLAYER_ANIMTYPE_2, // Shield but no sword?
|
||||
/* 3 */ PLAYER_ANIMTYPE_3, // Two hand weapon
|
||||
/* 4 */ PLAYER_ANIMTYPE_4,
|
||||
/* 5 */ PLAYER_ANIMTYPE_5,
|
||||
/* 6 */ PLAYER_ANIMTYPE_MAX
|
||||
} PlayerAnimType;
|
||||
|
||||
typedef enum PlayerAnimGroup {
|
||||
/* 0 */ PLAYER_ANIMGROUP_0, // STANDING_IDLE
|
||||
/* 1 */ PLAYER_ANIMGROUP_1, // WALKING
|
||||
/* 2 */ PLAYER_ANIMGROUP_2, // RUNNING
|
||||
/* 3 */ PLAYER_ANIMGROUP_3,
|
||||
/* 4 */ PLAYER_ANIMGROUP_4,
|
||||
/* 5 */ PLAYER_ANIMGROUP_5, // Z-Targeting ?
|
||||
/* 6 */ PLAYER_ANIMGROUP_6, // Start or finishing some animation
|
||||
/* 7 */ PLAYER_ANIMGROUP_7, // DRAW_MELEE_WEAPON
|
||||
/* 8 */ PLAYER_ANIMGROUP_8, // OPEN_DOOR_LEFT_FIERCE_DEITY
|
||||
/* 9 */ PLAYER_ANIMGROUP_9, // OPEN_DOOR_LEFT_HUMAN
|
||||
/* 10 */ PLAYER_ANIMGROUP_10, // OPEN_DOOR_RIGHT_FIERCE_DEITY
|
||||
/* 11 */ PLAYER_ANIMGROUP_11, // OPEN_DOOR_RIGHT_HUMAN
|
||||
/* 12 */ PLAYER_ANIMGROUP_12, // GRABBING
|
||||
/* 13 */ PLAYER_ANIMGROUP_13, // FALLING/LANDING?
|
||||
/* 14 */ PLAYER_ANIMGROUP_14, // landing from short distances?
|
||||
/* 15 */ PLAYER_ANIMGROUP_15, // ROLLING
|
||||
/* 16 */ PLAYER_ANIMGROUP_16, // BONK/BONKING
|
||||
/* 17 */ PLAYER_ANIMGROUP_17,
|
||||
/* 18 */ PLAYER_ANIMGROUP_18,
|
||||
/* 19 */ PLAYER_ANIMGROUP_19, // START_SHIELDING
|
||||
/* 20 */ PLAYER_ANIMGROUP_20, // SHIELDING
|
||||
/* 21 */ PLAYER_ANIMGROUP_21, // STOP_SHIELDING/END_SHIELDING
|
||||
/* 22 */ PLAYER_ANIMGROUP_22, // SLOW_SIDE_WALK?
|
||||
/* 23 */ PLAYER_ANIMGROUP_23, // SIDE_WALK
|
||||
/* 24 */ PLAYER_ANIMGROUP_24, // SIDE_WALK_RIGHT
|
||||
/* 25 */ PLAYER_ANIMGROUP_25,
|
||||
/* 26 */ PLAYER_ANIMGROUP_26,
|
||||
/* 27 */ PLAYER_ANIMGROUP_27,
|
||||
/* 28 */ PLAYER_ANIMGROUP_28, // THROWING
|
||||
/* 29 */ PLAYER_ANIMGROUP_29, // PUT_DOWN_OBJECT?
|
||||
/* 30 */ PLAYER_ANIMGROUP_30, // back walking slow?
|
||||
/* 31 */ PLAYER_ANIMGROUP_31,
|
||||
/* 32 */ PLAYER_ANIMGROUP_32,
|
||||
/* 33 */ PLAYER_ANIMGROUP_33,
|
||||
/* 34 */ PLAYER_ANIMGROUP_34, // PULLING_START
|
||||
/* 35 */ PLAYER_ANIMGROUP_35, // PULLING
|
||||
/* 36 */ PLAYER_ANIMGROUP_36, // PULLING_END
|
||||
/* 37 */ PLAYER_ANIMGROUP_37, // climbing from a ledge?
|
||||
/* 38 */ PLAYER_ANIMGROUP_38, // ledge
|
||||
/* 39 */ PLAYER_ANIMGROUP_39, // ledge
|
||||
/* 40 */ PLAYER_ANIMGROUP_40, // climbing from a ledge
|
||||
/* 41 */ PLAYER_ANIMGROUP_41,
|
||||
/* 42 */ PLAYER_ANIMGROUP_42,
|
||||
/* 43 */ PLAYER_ANIMGROUP_43,
|
||||
/* 44 */ PLAYER_ANIMGROUP_MAX
|
||||
} PlayerAnimGroup;
|
||||
|
||||
typedef enum PlayerModelType {
|
||||
// left hand
|
||||
/* 0 */ PLAYER_MODELTYPE_LH_OPEN,
|
||||
@@ -464,7 +525,7 @@ typedef struct PlayerAnimationFrame {
|
||||
#define GET_RIGHT_HAND_INDEX_FROM_JOINT_TABLE(jointTable) (GET_APPEARANCE_FROM_JOINT_TABLE(jointTable) & 0x0F00)
|
||||
|
||||
typedef struct PlayerAgeProperties {
|
||||
/* 0x00 */ f32 unk_00; // ceilingCheckHeight?
|
||||
/* 0x00 */ f32 unk_00; // ceilingCheckHeight
|
||||
/* 0x04 */ f32 shadowScale;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
@@ -478,7 +539,7 @@ typedef struct PlayerAgeProperties {
|
||||
/* 0x2C */ f32 unk_2C; // water stuff // depthInWater
|
||||
/* 0x30 */ f32 unk_30; // water stuff // depthInWater
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38; // wallCheckHeight?
|
||||
/* 0x38 */ f32 unk_38; // wallCheckHeight
|
||||
/* 0x3C */ f32 unk_3C;
|
||||
/* 0x40 */ f32 unk_40;
|
||||
/* 0x44 */ Vec3s unk_44;
|
||||
@@ -489,9 +550,9 @@ typedef struct PlayerAgeProperties {
|
||||
/* 0x94 */ u16 surfaceSfxIdOffset;
|
||||
/* 0x98 */ f32 unk_98;
|
||||
/* 0x9C */ f32 unk_9C;
|
||||
/* 0xA0 */ PlayerAnimationHeader* unk_A0;
|
||||
/* 0xA4 */ PlayerAnimationHeader* unk_A4;
|
||||
/* 0xA8 */ PlayerAnimationHeader* unk_A8;
|
||||
/* 0xA0 */ PlayerAnimationHeader* openChestAnim;
|
||||
/* 0xA4 */ PlayerAnimationHeader* unk_A4; // OoT leftovers to interact with the Master Sword
|
||||
/* 0xA8 */ PlayerAnimationHeader* unk_A8; // OoT leftovers to interact with the Master Sword
|
||||
/* 0xAC */ PlayerAnimationHeader* unk_AC;
|
||||
/* 0xB0 */ PlayerAnimationHeader* unk_B0;
|
||||
/* 0xB4 */ PlayerAnimationHeader* unk_B4[4];
|
||||
@@ -547,7 +608,7 @@ typedef enum PlayerCsMode {
|
||||
/* 0x0F */ PLAYER_CSMODE_15,
|
||||
/* 0x10 */ PLAYER_CSMODE_16,
|
||||
/* 0x11 */ PLAYER_CSMODE_17,
|
||||
/* 0x12 */ PLAYER_CSMODE_18,
|
||||
/* 0x12 */ PLAYER_CSMODE_18, // Strangled by Wallmaster
|
||||
/* 0x13 */ PLAYER_CSMODE_19,
|
||||
/* 0x14 */ PLAYER_CSMODE_20,
|
||||
/* 0x15 */ PLAYER_CSMODE_21,
|
||||
@@ -555,7 +616,7 @@ typedef enum PlayerCsMode {
|
||||
/* 0x17 */ PLAYER_CSMODE_23,
|
||||
/* 0x18 */ PLAYER_CSMODE_24,
|
||||
/* 0x19 */ PLAYER_CSMODE_25,
|
||||
/* 0x1A */ PLAYER_CSMODE_26,
|
||||
/* 0x1A */ PLAYER_CSMODE_26, // Halt!
|
||||
/* 0x1B */ PLAYER_CSMODE_27,
|
||||
/* 0x1C */ PLAYER_CSMODE_28,
|
||||
/* 0x1D */ PLAYER_CSMODE_29,
|
||||
@@ -613,7 +674,7 @@ typedef enum PlayerCsMode {
|
||||
/* 0x51 */ PLAYER_CSMODE_81,
|
||||
/* 0x52 */ PLAYER_CSMODE_82,
|
||||
/* 0x53 */ PLAYER_CSMODE_83,
|
||||
/* 0x54 */ PLAYER_CSMODE_84,
|
||||
/* 0x54 */ PLAYER_CSMODE_84, // Sucked by the moon
|
||||
/* 0x55 */ PLAYER_CSMODE_85,
|
||||
/* 0x56 */ PLAYER_CSMODE_86,
|
||||
/* 0x57 */ PLAYER_CSMODE_87,
|
||||
@@ -867,10 +928,11 @@ typedef enum PlayerCsMode {
|
||||
#define PLAYER_STATE3_20000000 (1 << 29)
|
||||
//
|
||||
#define PLAYER_STATE3_40000000 (1 << 30)
|
||||
//
|
||||
// TARGETING_HOSTILE?
|
||||
#define PLAYER_STATE3_80000000 (1 << 31)
|
||||
|
||||
|
||||
#define PLAYER_GET_BG_CAM_INDEX(thisx) ((thisx)->params & 0xFF)
|
||||
#define PLAYER_GET_INITMODE(thisx) (((thisx)->params & 0xF00) >> 8)
|
||||
|
||||
typedef enum PlayerInitMode {
|
||||
@@ -894,6 +956,15 @@ typedef enum PlayerInitMode {
|
||||
|
||||
#define PLAYER_PARAMS(startBgCamIndex, initMode) ((startBgCamIndex & 0xFF) | ((initMode & 0xF) << 8))
|
||||
|
||||
typedef enum PlayerUnkAA5 {
|
||||
/* 0 */ PLAYER_UNKAA5_0,
|
||||
/* 1 */ PLAYER_UNKAA5_1,
|
||||
/* 2 */ PLAYER_UNKAA5_2,
|
||||
/* 3 */ PLAYER_UNKAA5_3,
|
||||
/* 4 */ PLAYER_UNKAA5_4,
|
||||
/* 5 */ PLAYER_UNKAA5_5,
|
||||
} PlayerUnkAA5;
|
||||
|
||||
typedef void (*PlayerActionFunc)(struct Player* this, struct PlayState* play);
|
||||
typedef s32 (*PlayerFuncAC4)(struct Player* this, struct PlayState* play);
|
||||
typedef void (*PlayerFuncD58)(struct PlayState* play, struct Player* this);
|
||||
@@ -917,31 +988,13 @@ typedef struct Player {
|
||||
/* 0x151 */ u8 rightHandType;
|
||||
/* 0x152 */ u8 sheathType;
|
||||
/* 0x153 */ u8 currentMask; // PlayerMask enum
|
||||
/* 0x154 */ s8 unk_154;
|
||||
/* 0x154 */ s8 unk_154; // EquipSlot enum // Last pressed equip slot?
|
||||
/* 0x155 */ u8 prevMask;
|
||||
/* 0x158 */ Gfx** rightHandDLists;
|
||||
/* 0x15C */ Gfx** leftHandDLists;
|
||||
/* 0x160 */ Gfx** sheathDLists;
|
||||
/* 0x164 */ Gfx** waistDLists;
|
||||
/* 0x168 */ f32 unk_168;
|
||||
/* 0x16C */ f32 unk_16C;
|
||||
/* 0x170 */ f32 unk_170;
|
||||
/* 0x174 */ f32 unk_174;
|
||||
/* 0x178 */ f32 unk_178;
|
||||
/* 0x17C */ f32 unk_17C;
|
||||
/* 0x180 */ f32 unk_180;
|
||||
/* 0x184 */ f32 unk_184;
|
||||
/* 0x188 */ f32 unk_188;
|
||||
/* 0x18C */ f32 unk_18C;
|
||||
/* 0x190 */ f32 unk_190;
|
||||
/* 0x194 */ f32 unk_194;
|
||||
/* 0x198 */ f32 unk_198;
|
||||
/* 0x19C */ f32 unk_19C;
|
||||
/* 0x1A0 */ f32 unk_1A0;
|
||||
/* 0x1A4 */ f32 unk_1A4;
|
||||
/* 0x1A8 */ f32 unk_1A8;
|
||||
/* 0x1AC */ f32 unk_1AC;
|
||||
/* 0x1B0 */ f32 unk_1B0;
|
||||
/* 0x168 */ UNK_TYPE1 unk_168[0x4C];
|
||||
/* 0x1B4 */ s16 unk_1B4;
|
||||
/* 0x1B6 */ char unk_1B6[2];
|
||||
/* 0x1B8 */ u8 giObjectLoading;
|
||||
@@ -960,8 +1013,7 @@ typedef struct Player {
|
||||
/* 0x2C8 */ SkelAnime unk_2C8;
|
||||
/* 0x30C */ Vec3s jointTable[5];
|
||||
/* 0x32A */ Vec3s morphTable[5];
|
||||
/* 0x348 */ s16 eyeTexId;
|
||||
/* 0x34A */ s16 eyeAnimTimer;
|
||||
/* 0x348 */ BlinkInfo blinkInfo;
|
||||
/* 0x34C */ Actor* heldActor;
|
||||
/* 0x350 */ PosRot leftHandWorld;
|
||||
/* 0x364 */ Actor* rightHandActor;
|
||||
@@ -980,12 +1032,12 @@ typedef struct Player {
|
||||
/* 0x395 */ u8 prevCsMode; // PlayerCsMode enum
|
||||
/* 0x396 */ u8 unk_396; // currentActorActionId?
|
||||
/* 0x397 */ u8 unk_397; // PlayerDoorType enum
|
||||
/* 0x398 */ Actor* unk_398;
|
||||
/* 0x398 */ Actor* unk_398; // csActor?
|
||||
/* 0x39C */ UNK_TYPE1 unk_39C[0x4];
|
||||
/* 0x3A0 */ Vec3f unk_3A0;
|
||||
/* 0x3AC */ Vec3f unk_3AC;
|
||||
/* 0x3B8 */ u16 unk_3B8;
|
||||
/* 0x3BA */ s16 unk_3BA;
|
||||
/* 0x3BA */ s16 doorBgCamIndex;
|
||||
/* 0x3BC */ s16 subCamId;
|
||||
/* 0x3BE */ char unk_3BE[2];
|
||||
/* 0x3C0 */ Vec3f unk_3C0;
|
||||
@@ -1028,7 +1080,7 @@ typedef struct Player {
|
||||
/* 0xA9C */ f32 secretRumbleCharge; // builds per frame until discharges with a rumble request
|
||||
/* 0xAA0 */ f32 closestSecretDistSq; // Used to augment `secretRumbleCharge`. Cleared every frame
|
||||
/* 0xAA4 */ s8 unk_AA4;
|
||||
/* 0xAA5 */ u8 unk_AA5;
|
||||
/* 0xAA5 */ u8 unk_AA5; // PlayerUnkAA5 enum
|
||||
/* 0xAA6 */ u16 unk_AA6; // flags of some kind
|
||||
/* 0xAA8 */ s16 unk_AA8;
|
||||
/* 0xAAA */ s16 unk_AAA;
|
||||
@@ -1049,20 +1101,21 @@ typedef struct Player {
|
||||
/* 0xADA */ s8 meleeWeaponAnimation;
|
||||
/* 0xADB */ s8 meleeWeaponState;
|
||||
/* 0xADC */ s8 unk_ADC;
|
||||
/* 0xADD */ s8 unk_ADD;
|
||||
/* 0xADD */ s8 unk_ADD; // Some sort of combo counter
|
||||
/* 0xADE */ u8 unk_ADE;
|
||||
/* 0xADF */ s8 unk_ADF[4]; // Circular buffer used for testing for triggering a quickspin
|
||||
/* 0xAE3 */ s8 unk_AE3[4]; // Circular buffer used for ?
|
||||
/* 0xAE7 */ s8 unk_AE7; // a timer
|
||||
/* 0xAE7 */ s8 unk_AE7; // a timer, used as an index for multiple kinds of animations too, room index?, etc
|
||||
/* 0xAE8 */ s16 unk_AE8; // multipurpose timer
|
||||
/* 0xAEC */ f32 unk_AEC;
|
||||
/* 0xAF0 */ union { // TODO: this may be an union of two structs
|
||||
/* 0xAF0 */ union {
|
||||
Vec3f unk_AF0[2];
|
||||
f32 arr_AF0[6];
|
||||
};
|
||||
/* 0xB08 */ f32 unk_B08[2]; // TODO: Investigate if this member actually is an array
|
||||
/* 0xB08 */ f32 unk_B08;
|
||||
/* 0xB0C */ f32 unk_B0C;
|
||||
/* 0xB10 */ f32 unk_B10[6];
|
||||
/* 0xB28 */ s16 unk_B28; //Burning stick timer?
|
||||
/* 0xB28 */ s16 unk_B28; // Burning stick timer?
|
||||
/* 0xB2A */ s8 getItemDrawIdPlusOne;
|
||||
/* 0xB2B */ s8 unk_B2B;
|
||||
/* 0xB2C */ f32 windSpeed;
|
||||
@@ -1088,7 +1141,7 @@ typedef struct Player {
|
||||
/* 0xB64 */ u8 unk_B64;
|
||||
/* 0xB65 */ u8 shockTimer;
|
||||
/* 0xB66 */ u8 unk_B66;
|
||||
/* 0xB67 */ u8 unk_B67; // deku remaining hops counter
|
||||
/* 0xB67 */ u8 remainingHopsCounter; // Deku hopping on water
|
||||
/* 0xB68 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||
/* 0xB6A */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||
/* 0xB6C */ s16 unk_B6C;
|
||||
@@ -1100,8 +1153,8 @@ typedef struct Player {
|
||||
/* 0xB76 */ s16 unk_B76;
|
||||
/* 0xB78 */ f32 unk_B78;
|
||||
/* 0xB7C */ f32 unk_B7C;
|
||||
/* 0xB80 */ f32 unk_B80;
|
||||
/* 0xB84 */ s16 unk_B84;
|
||||
/* 0xB80 */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||
/* 0xB84 */ s16 pushedYaw; // Yaw of direction in which player is being pushed
|
||||
/* 0xB86 */ s16 unk_B86[2]; // unknown length
|
||||
/* 0xB8A */ s16 unk_B8A;
|
||||
/* 0xB8C */ s16 unk_B8C;
|
||||
@@ -1112,7 +1165,7 @@ typedef struct Player {
|
||||
/* 0xB96 */ s16 unk_B96;
|
||||
/* 0xB98 */ WeaponInfo meleeWeaponInfo[3];
|
||||
/* 0xBEC */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||
/* 0xCC4 */ MtxF mf_CC4;
|
||||
/* 0xCC4 */ MtxF leftHandMf;
|
||||
/* 0xD04 */ MtxF shieldMf;
|
||||
/* 0xD44 */ u8 isBurning;
|
||||
/* 0xD45 */ u8 flameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||
@@ -1120,8 +1173,7 @@ typedef struct Player {
|
||||
/* 0xD58 */ PlayerFuncD58 unk_D58;
|
||||
/* 0xD5C */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||
/* 0xD5D */ u8 unk_D5D;
|
||||
/* 0xD5E */ u8 unk_D5E;
|
||||
/* 0xD5F */ u8 unk_D5F;
|
||||
/* 0xD5E */ u8 floorProperty; // FloorProperty enum
|
||||
/* 0xD60 */ f32 unk_D60;
|
||||
/* 0xD64 */ s16 unk_D64;
|
||||
/* 0xD66 */ u16 unk_D66; // sfx
|
||||
|
||||
+1
-1
@@ -338,7 +338,7 @@ typedef struct SaveContext {
|
||||
/* 0x3DB8 */ u16 entranceSound; // "player_wipe_door_SE"
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBC */ s16 dogParams; // "dog_flag"
|
||||
/* 0x3DBC */ s16 dogParams; // OoT leftover. "dog_flag"
|
||||
/* 0x3DBE */ u8 envHazardTextTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
|
||||
Reference in New Issue
Block a user