Player Docs: Idle and Fidget (#1723)

* idle and fidget docs

* more cleanup

* cleanup

* regs

* spacing
This commit is contained in:
engineer124
2024-10-21 01:35:03 +11:00
committed by GitHub
parent 781d1d1119
commit d03e8719e6
8 changed files with 645 additions and 294 deletions
+1 -1
View File
@@ -17,7 +17,7 @@
#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]))
#define ARRAY_COUNT_2D(arr) (s32)(sizeof(arr) / sizeof(arr[0][0]))
#define CLOCK_TIME(hr, min) (s32)(((hr) * 60 + (min)) * 0x10000 / (24 * 60))
#define CLOCK_TIME_MINUTE (CLOCK_TIME(0, 1))
+1
View File
@@ -64,6 +64,7 @@ extern RegEditor* gRegEditor;
#define R_ENV_DISABLE_DBG REG(9)
#define R_TIME_SPEED REG(15)
#define R_DECELERATE_RATE REG(43)
#define R_RUN_SPEED_LIMIT REG(45)
#define R_ENABLE_ARENA_DBG SREG(0) // Same as OoT
+10 -3
View File
@@ -57,6 +57,12 @@ typedef enum {
/* 4 */ PLAYER_ENV_HAZARD_UNDERWATER_FREE
} PlayerEnvHazard;
typedef enum PlayerIdleType {
/* -0x1 */ PLAYER_IDLE_CRIT_HEALTH = -1,
/* 0x0 */ PLAYER_IDLE_DEFAULT,
/* 0x1 */ PLAYER_IDLE_FIDGET
} PlayerIdleType;
/*
* Current known usages for PLAYER_IA_MINUS1:
* 1. With TalkExchange requests, used to continue a current conversation after a textbox is closed
@@ -984,8 +990,8 @@ typedef enum PlayerCueId {
#define PLAYER_STATE2_4000000 (1 << 26)
//
#define PLAYER_STATE2_8000000 (1 << 27)
//
#define PLAYER_STATE2_10000000 (1 << 28)
// Playing a fidget idle animation (under typical circumstances, see `Player_ChooseNextIdleAnim` for more info)
#define PLAYER_STATE2_IDLE_FIDGET (1 << 28)
// Disable drawing player
#define PLAYER_STATE2_20000000 (1 << 29)
// Lunge: small forward boost at the end of certain attack animations
@@ -1220,7 +1226,7 @@ typedef struct Player {
/* 0xA98 */ Actor* unk_A98;
/* 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;
/* 0xAA4 */ s8 idleType;
/* 0xAA5 */ u8 unk_AA5; // PlayerUnkAA5 enum
/* 0xAA6 */ u16 unk_AA6_rotFlags; // See `UNKAA6_ROT_` macros. If its flag isn't set, a rot steps to 0.
/* 0xAA8 */ s16 upperLimbYawSecondary;
@@ -1251,6 +1257,7 @@ typedef struct Player {
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
/* 0xAE8 */ union {
s16 actionVar2;
s16 fallDamageStunTimer; // Player_Action_Idle: Prevents any movement and shakes model up and down quickly to indicate fall damage stun
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
/* 0xAEC */ f32 unk_AEC;
/* 0xAF0 */ union {