Player Docs: Spin Attack (#1741)

* spin attack

* cleanup

* fix bss

* PR review

* sync func name

* add todo
This commit is contained in:
engineer124
2024-11-21 10:48:50 +11:00
committed by GitHub
parent 70e97dc285
commit 0b51a16453
10 changed files with 142 additions and 140 deletions
+13 -5
View File
@@ -560,6 +560,14 @@ typedef enum PlayerLedgeClimbType {
#define LEDGE_DIST_MAX 399.96002f
typedef enum PlayerStickDirection {
/* -1 */ PLAYER_STICK_DIR_NONE = -1,
/* 0 */ PLAYER_STICK_DIR_FORWARD,
/* 1 */ PLAYER_STICK_DIR_LEFT,
/* 2 */ PLAYER_STICK_DIR_BACKWARD,
/* 3 */ PLAYER_STICK_DIR_RIGHT
} PlayerStickDirection;
// TODO: less dumb name
#define SFX_VOICE_BANK_SIZE 0x20
@@ -893,8 +901,8 @@ typedef enum PlayerCueId {
#define PLAYER_STATE1_400 (1 << 10)
// Currently carrying an actor
#define PLAYER_STATE1_CARRYING_ACTOR (1 << 11)
// charging spin attack
#define PLAYER_STATE1_1000 (1 << 12)
// Currently charging a spin attack (by holding down the B button)
#define PLAYER_STATE1_CHARGING_SPIN_ATTACK (1 << 12)
//
#define PLAYER_STATE1_2000 (1 << 13)
//
@@ -1250,9 +1258,9 @@ typedef struct Player {
/* 0xADB */ s8 meleeWeaponState;
/* 0xADC */ s8 unk_ADC;
/* 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 ?
/* 0xADE */ u8 controlStickDataIndex; // cycles between 0 - 3. Used to index `controlStickSpinAngles` and `controlStickDirections`
/* 0xADF */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins.
/* 0xAE3 */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`.
/* 0xAE7 */ union {
s8 actionVar1;
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running