mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 06:24:30 +00:00
EnWf OK and documented (#967)
* a ton of progress, 14 functions remain * cleanup * a few more functions done, 11 remain * finally all updated * another function matched * another action finished * damage table * death action done * started very large action func * more progress on long action funcs * large action func matched * 5 functions remain * another large action finished * start another action, doesn't match yet * a few new functions, neither match * done working on this for now * Correct one nonmatching, fix compiler warnings * Two functions left * one left * remove remaining gotos * OK * Delete outdated comment * namefixer * Flag macros * audio, dmgeff, some colour * Import symbols from object, reloc, name a few things * Rest of object done * Named a few more things, add action enum * Name body parts and another couple of actions * Last few names * Delete asm * Format * undefined_syms, mods where possible * Correct parent to EnEncount1 * Review * Last newline * louis and Dragorn's reviews * Format * More review * Put back to isInvisible and or, as in EnGeldB * Remove if (0)s in func_8009728C and change pointer arithmetic cast * More review * Unname headRot, make "fallthrough" case clearer, other review * Format * Even more review * Rephrase Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com>
This commit is contained in:
parent
8e318d257e
commit
16471bb68d
51 changed files with 1583 additions and 4805 deletions
|
@ -578,7 +578,7 @@ void EnTorch2_Update(Actor* thisx, GlobalContext* globalCtx2) {
|
|||
input->cur.button = ((sCounterState == 0) && (this->swordState == 0)) ? BTN_R : input->cur.button ^ BTN_R;
|
||||
}
|
||||
input->rel.button = input->prev.button & pad54;
|
||||
input->prev.button = input->cur.button & (u16)~(BTN_A | BTN_B);
|
||||
input->prev.button = input->cur.button & (u16) ~(BTN_A | BTN_B);
|
||||
PadUtils_UpdateRelXY(input);
|
||||
|
||||
input->press.stick_x += (s8)(input->cur.stick_x - input->prev.stick_x);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,9 +6,86 @@
|
|||
|
||||
struct EnWf;
|
||||
|
||||
typedef void (*EnWfActionFunc)(struct EnWf*, GlobalContext*);
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ WOLFOS_LIMB_NONE,
|
||||
/* 1 */ WOLFOS_LIMB_ROOT,
|
||||
/* 2 */ WOLFOS_LIMB_BACK_LEFT_THIGH,
|
||||
/* 3 */ WOLFOS_LIMB_BACK_LEFT_SHIN,
|
||||
/* 4 */ WOLFOS_LIMB_BACK_LEFT_PASTERN,
|
||||
/* 5 */ WOLFOS_LIMB_BACK_LEFT_PAW,
|
||||
/* 6 */ WOLFOS_LIMB_TAIL,
|
||||
/* 7 */ WOLFOS_LIMB_ABDOMEN,
|
||||
/* 8 */ WOLFOS_LIMB_BACK_RIGHT_THIGH,
|
||||
/* 9 */ WOLFOS_LIMB_BACK_RIGHT_SHIN,
|
||||
/* 10 */ WOLFOS_LIMB_BACK_RIGHT_PASTERN,
|
||||
/* 11 */ WOLFOS_LIMB_BACK_RIGHT_PAW,
|
||||
/* 12 */ WOLFOS_LIMB_THORAX,
|
||||
/* 13 */ WOLFOS_LIMB_FRONT_RIGHT_UPPER_LEG,
|
||||
/* 14 */ WOLFOS_LIMB_FRONT_RIGHT_LOWER_LEG,
|
||||
/* 15 */ WOLFOS_LIMB_FRONT_RIGHT_CLAW,
|
||||
/* 16 */ WOLFOS_LIMB_HEAD_ROOT,
|
||||
/* 17 */ WOLFOS_LIMB_HEAD,
|
||||
/* 18 */ WOLFOS_LIMB_EYES,
|
||||
/* 19 */ WOLFOS_LIMB_FRONT_LEFT_UPPER_LEG,
|
||||
/* 20 */ WOLFOS_LIMB_FRONT_LEFT_LOWER_LEG,
|
||||
/* 21 */ WOLFOS_LIMB_FRONT_LEFT_CLAW,
|
||||
/* 22 */ WOLFOS_LIMB_MAX
|
||||
} EnWfLimb;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ WOLFOS_ACTION_WAIT_TO_APPEAR,
|
||||
/* 2 */ WOLFOS_ACTION_DIE = 2,
|
||||
/* 3 */ WOLFOS_ACTION_DAMAGED,
|
||||
/* 4 */ WOLFOS_ACTION_TURN_TOWARDS_PLAYER,
|
||||
/* 5 */ WOLFOS_ACTION_BACKFLIP_AWAY,
|
||||
/* 6 */ WOLFOS_ACTION_WAIT,
|
||||
/* 7 */ WOLFOS_ACTION_BLOCKING,
|
||||
/* 8 */ WOLFOS_ACTION_SLASH,
|
||||
/* 9 */ WOLFOS_ACTION_RUN_AT_PLAYER,
|
||||
/* 10 */ WOLFOS_ACTION_SEARCH_FOR_PLAYER,
|
||||
/* 11 */ WOLFOS_ACTION_RUN_AROUND_PLAYER,
|
||||
/* 12 */ WOLFOS_ACTION_RECOIL_FROM_BLOCKED_SLASH,
|
||||
/* 14 */ WOLFOS_ACTION_SIDESTEP = 14,
|
||||
/* 15 */ WOLFOS_ACTION_STUNNED
|
||||
} EnWfAction;
|
||||
|
||||
typedef struct EnWf {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x390];
|
||||
/* 0x014C */ Vec3s bodyPartsPos[10];
|
||||
/* 0x0188 */ SkelAnime skelAnime;
|
||||
/* 0x01CC */ Vec3s jointTable[WOLFOS_LIMB_MAX];
|
||||
/* 0x0250 */ Vec3s morphTable[WOLFOS_LIMB_MAX];
|
||||
/* 0x02D4 */ s32 action; // Used instead of checking the actionFunc directly (but also in range comparisons)
|
||||
/* 0x02D8 */ char unk_2D8[4]; // Unused
|
||||
/* 0x02DC */ EnWfActionFunc actionFunc;
|
||||
/* 0x02E0 */ s16 unk_2E0; // Used, but has no effect
|
||||
/* 0x02E2 */ s16 unk_2E2;
|
||||
/* 0x02E4 */ s16 fireTimer;
|
||||
/* 0x02E6 */ u8 damageEffect;
|
||||
/* 0x02E8 */ s32 actionTimer; // Used to make an action last for a certain amount of time
|
||||
/* 0x02EC */ f32 runSpeed;
|
||||
/* 0x02F0 */ char unk_2F0[4];
|
||||
/* 0x02F4 */ f32 unk_2F4; // Set and not used
|
||||
/* 0x02F8 */ s16 slashStatus; // Whether to slash again or not, and whether to cry
|
||||
/* 0x02FA */ s16 unk_2FA; // Set and not used
|
||||
/* 0x02FC */ s16 switchFlag;
|
||||
/* 0x02FE */ s16 runAngle;
|
||||
/* 0x0300 */ s16 unk_300; // Set, but ineffectual (see comment in Draw)
|
||||
/* 0x0302 */ u8 eyeIndex;
|
||||
/* 0x0304 */ ColliderJntSph colliderSpheres;
|
||||
/* 0x0324 */ ColliderJntSphElement colliderSpheresElements[4];
|
||||
/* 0x0424 */ ColliderCylinder colliderCylinderBody;
|
||||
/* 0x0470 */ ColliderCylinder colliderCylinderTail;
|
||||
/* 0x04BC */ Vec3f unk_4BC;
|
||||
/* 0x04C8 */ Vec3f unk_4C8;
|
||||
/* 0x04D4 */ Vec3s unk_4D4;
|
||||
} EnWf; // size = 0x04DC
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ WOLFOS_NORMAL,
|
||||
/* 1 */ WOLFOS_WHITE
|
||||
} EnWfType;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue