Document Player_ChooseNextIdleAnim (#2262)

* document most of Player_ChooseNextIdleAnim

* finish documenting Player_ChooseNextIdleAnim

* capital letter

* dummy block numbers for the script

* fix bss

* bug comment

* SpeicalIdle -> Fidget, clean up related things

* fix rng chance comment

* normal -> default

* rework Player_CheckForIdleAnim

* swap idle anim defines

* remove COMMON_FIDGET

* add ARRAY_COUNT_2D

* change macro def
This commit is contained in:
fig02
2024-10-08 00:19:10 -04:00
committed by GitHub
parent 93f22fcc42
commit 7dd8f2b6ad
14 changed files with 232 additions and 133 deletions
+1
View File
@@ -18,6 +18,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) (s32)(sizeof(arr) / sizeof(arr[0][0]))
#define PHYSICAL_TO_VIRTUAL(addr) (void*)((uintptr_t)(addr) + 0x80000000)
#define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - 0x80000000)
+8 -2
View File
@@ -70,6 +70,12 @@ typedef enum PlayerEnvHazard {
/* 0x4 */ PLAYER_ENV_HAZARD_UNDERWATER_FREE
} PlayerEnvHazard;
typedef enum PlayerIdleType {
/* -0x1 */ PLAYER_IDLE_CRIT_HEALTH = -1,
/* 0x0 */ PLAYER_IDLE_DEFAULT,
/* 0x1 */ PLAYER_IDLE_FIDGET
} PlayerIdleType;
typedef enum PlayerItemAction {
/* 0x00 */ PLAYER_IA_NONE,
/* 0x01 */ PLAYER_IA_SWORD_CS, // Hold sword without shield in hand. The sword is not usable.
@@ -724,7 +730,7 @@ typedef struct WeaponInfo {
#define PLAYER_STATE2_25 (1 << 25)
#define PLAYER_STATE2_26 (1 << 26)
#define PLAYER_STATE2_27 (1 << 27)
#define PLAYER_STATE2_28 (1 << 28)
#define PLAYER_STATE2_IDLE_FIDGET (1 << 28) // Playing a fidget idle animation (under typical circumstances, see `Player_ChooseNextIdleAnim` for more info)
#define PLAYER_STATE2_29 (1 << 29)
#define PLAYER_STATE2_30 (1 << 30)
#define PLAYER_STATE2_31 (1 << 31)
@@ -830,7 +836,7 @@ typedef struct Player {
/* 0x06A0 */ f32 unk_6A0;
/* 0x06A4 */ f32 closestSecretDistSq;
/* 0x06A8 */ Actor* unk_6A8;
/* 0x06AC */ s8 unk_6AC;
/* 0x06AC */ s8 idleType;
/* 0x06AD */ u8 unk_6AD;
/* 0x06AE */ u16 unk_6AE;
/* 0x06B0 */ s16 unk_6B0;