mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-16 07:10:34 -05:00
More player documentation from decomp (#3819)
* FallImpactInfo & AnimSfx stuff * IA function naming & Player_UseItem * ActionChange * Speed modes * Fix build * Misc cleanup * Name Player_Action funcs * PlayerAgeProperties * Most of the Player struct * Update z_player.c --------- Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
This commit is contained in:
parent
4797c9ad35
commit
7319e4db57
@ -345,7 +345,7 @@ typedef enum {
|
||||
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ f32 unk_00;
|
||||
/* 0x00 */ f32 ceilingCheckHeight;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
@ -359,7 +359,7 @@ typedef struct {
|
||||
/* 0x2C */ f32 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
/* 0x38 */ f32 wallCheckRadius;
|
||||
/* 0x3C */ f32 unk_3C;
|
||||
/* 0x40 */ f32 unk_40;
|
||||
/* 0x44 */ Vec3s unk_44;
|
||||
@ -489,180 +489,187 @@ typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*);
|
||||
typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*);
|
||||
|
||||
typedef struct Player {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
||||
/* 0x014D */ s8 currentSwordItemId;
|
||||
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
||||
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
||||
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
||||
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
||||
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
||||
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
||||
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
||||
/* 0x0155 */ char unk_155[0x003];
|
||||
/* 0x0158 */ u8 modelGroup;
|
||||
/* 0x0159 */ u8 nextModelGroup;
|
||||
/* 0x015A */ s8 itemChangeType;
|
||||
/* 0x015B */ u8 modelAnimType;
|
||||
/* 0x015C */ u8 leftHandType;
|
||||
/* 0x015D */ u8 rightHandType;
|
||||
/* 0x015E */ u8 sheathType;
|
||||
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
||||
/* 0x0160 */ Gfx** rightHandDLists;
|
||||
/* 0x0164 */ Gfx** leftHandDLists;
|
||||
/* 0x0168 */ Gfx** sheathDLists;
|
||||
/* 0x016C */ Gfx** waistDLists;
|
||||
/* 0x0170 */ u8 giObjectLoading;
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ s8 currentTunic; // current tunic from `PlayerTunic`
|
||||
/* 0x014D */ s8 currentSwordItemId;
|
||||
/* 0x014E */ s8 currentShield; // current shield from `PlayerShield`
|
||||
/* 0x014F */ s8 currentBoots; // current boots from `PlayerBoots`
|
||||
/* 0x0150 */ s8 heldItemButton; // Button index for the item currently used
|
||||
/* 0x0151 */ s8 heldItemAction; // Item action for the item currently used
|
||||
/* 0x0152 */ u8 heldItemId; // Item id for the item currently used
|
||||
/* 0x0153 */ s8 prevBoots; // previous boots from `PlayerBoots`
|
||||
/* 0x0154 */ s8 itemAction; // the difference between this and heldItemAction is unclear
|
||||
/* 0x0155 */ char unk_155[0x003];
|
||||
/* 0x0158 */ u8 modelGroup;
|
||||
/* 0x0159 */ u8 nextModelGroup;
|
||||
/* 0x015A */ s8 itemChangeType;
|
||||
/* 0x015B */ u8 modelAnimType;
|
||||
/* 0x015C */ u8 leftHandType;
|
||||
/* 0x015D */ u8 rightHandType;
|
||||
/* 0x015E */ u8 sheathType;
|
||||
/* 0x015F */ u8 currentMask; // current mask equipped from `PlayerMask`
|
||||
/* 0x0160 */ Gfx** rightHandDLists;
|
||||
/* 0x0164 */ Gfx** leftHandDLists;
|
||||
/* 0x0168 */ Gfx** sheathDLists;
|
||||
/* 0x016C */ Gfx** waistDLists;
|
||||
/* 0x0170 */ u8 giObjectLoading;
|
||||
/* 0x0174 */ DmaRequest giObjectDmaRequest;
|
||||
/* 0x0194 */ OSMesgQueue giObjectLoadQueue;
|
||||
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
||||
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
||||
/* 0x01B4 */ SkelAnime skelAnime;
|
||||
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x03A8 */ s16 unk_3A8[2];
|
||||
/* 0x03AC */ Actor* heldActor;
|
||||
/* 0x03B0 */ Vec3f leftHandPos;
|
||||
/* 0x03BC */ Vec3s unk_3BC;
|
||||
/* 0x03C4 */ Actor* unk_3C4;
|
||||
/* 0x03C8 */ Vec3f unk_3C8;
|
||||
/* 0x03D4 */ char unk_3D4[0x058];
|
||||
/* 0x042C */ s8 doorType;
|
||||
/* 0x042D */ s8 doorDirection;
|
||||
/* 0x042E */ s16 doorTimer;
|
||||
/* 0x0430 */ Actor* doorActor;
|
||||
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
||||
/* 0x0436 */ u16 getItemDirection;
|
||||
/* 0x0438 */ Actor* interactRangeActor;
|
||||
/* 0x043C */ s8 mountSide;
|
||||
/* 0x043D */ char unk_43D[0x003];
|
||||
/* 0x0440 */ Actor* rideActor;
|
||||
/* 0x0444 */ u8 csAction;
|
||||
/* 0x0445 */ u8 prevCsAction;
|
||||
/* 0x0446 */ u8 cueId;
|
||||
/* 0x0447 */ u8 unk_447;
|
||||
/* 0x0448 */ Actor* csActor;
|
||||
/* 0x044C */ char unk_44C[0x004];
|
||||
/* 0x0450 */ Vec3f unk_450;
|
||||
/* 0x045C */ Vec3f unk_45C;
|
||||
/* 0x0468 */ char unk_468[0x002];
|
||||
/* 0x046A */ s16 doorBgCamIndex;
|
||||
/* 0x046C */ s16 subCamId;
|
||||
/* 0x046E */ char unk_46E[0x02A];
|
||||
/* 0x01AC */ OSMesg giObjectLoadMsg;
|
||||
/* 0x01B0 */ void* giObjectSegment; // also used for title card textures
|
||||
/* 0x01B4 */ SkelAnime skelAnime;
|
||||
/* 0x01F8 */ Vec3s jointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0288 */ Vec3s morphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x0318 */ Vec3s blendTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x03A8 */ s16 unk_3A8[2];
|
||||
/* 0x03AC */ Actor* heldActor;
|
||||
/* 0x03B0 */ Vec3f leftHandPos;
|
||||
/* 0x03BC */ Vec3s unk_3BC;
|
||||
/* 0x03C4 */ Actor* unk_3C4;
|
||||
/* 0x03C8 */ Vec3f unk_3C8;
|
||||
/* 0x03D4 */ char unk_3D4[0x058];
|
||||
/* 0x042C */ s8 doorType;
|
||||
/* 0x042D */ s8 doorDirection;
|
||||
/* 0x042E */ s16 doorTimer;
|
||||
/* 0x0430 */ Actor* doorActor;
|
||||
/* 0x0434 */ s16 getItemId; // Upstream TODO: Document why this is s16 while it's s8 upstream
|
||||
/* 0x0436 */ u16 getItemDirection;
|
||||
/* 0x0438 */ Actor* interactRangeActor;
|
||||
/* 0x043C */ s8 mountSide;
|
||||
/* 0x043D */ char unk_43D[0x003];
|
||||
/* 0x0440 */ Actor* rideActor;
|
||||
/* 0x0444 */ u8 csAction;
|
||||
/* 0x0445 */ u8 prevCsAction;
|
||||
/* 0x0446 */ u8 cueId;
|
||||
/* 0x0447 */ u8 unk_447;
|
||||
/* 0x0448 */ Actor* csActor; // Actor involved in a `csAction`. Typically the actor that invoked the cutscene.
|
||||
/* 0x044C */ char unk_44C[0x004];
|
||||
/* 0x0450 */ Vec3f unk_450;
|
||||
/* 0x045C */ Vec3f unk_45C;
|
||||
/* 0x0468 */ char unk_468[0x002];
|
||||
/* 0x046A */ s16 doorBgCamIndex;
|
||||
/* 0x046C */ s16 subCamId;
|
||||
/* 0x046E */ char unk_46E[0x02A];
|
||||
/* 0x0498 */ ColliderCylinder cylinder;
|
||||
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
||||
/* 0x05E4 */ ColliderQuad shieldQuad;
|
||||
/* 0x0664 */ Actor* unk_664;
|
||||
/* 0x0668 */ char unk_668[0x004];
|
||||
/* 0x066C */ s32 unk_66C;
|
||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||
/* 0x0664 */ Actor* unk_664;
|
||||
/* 0x0668 */ char unk_668[0x004];
|
||||
/* 0x066C */ s32 unk_66C;
|
||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||
/* 0x0674 */ PlayerActionFunc actionFunc;
|
||||
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
||||
/* 0x067C */ u32 stateFlags1;
|
||||
/* 0x0680 */ u32 stateFlags2;
|
||||
/* 0x0684 */ Actor* unk_684;
|
||||
/* 0x0688 */ Actor* boomerangActor;
|
||||
/* 0x068C */ Actor* naviActor;
|
||||
/* 0x0690 */ s16 naviTextId;
|
||||
/* 0x0692 */ u8 stateFlags3;
|
||||
/* 0x0693 */ s8 exchangeItemId;
|
||||
/* 0x0694 */ Actor* targetActor;
|
||||
/* 0x0698 */ f32 targetActorDistance;
|
||||
/* 0x069C */ char unk_69C[0x004];
|
||||
/* 0x06A0 */ f32 unk_6A0;
|
||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||
/* 0x06A8 */ Actor* unk_6A8;
|
||||
/* 0x06AC */ s8 unk_6AC;
|
||||
/* 0x06AD */ u8 unk_6AD;
|
||||
/* 0x06AE */ u16 unk_6AE;
|
||||
/* 0x06B0 */ s16 unk_6B0;
|
||||
/* 0x06B2 */ char unk_6B4[0x004];
|
||||
/* 0x06B6 */ s16 unk_6B6;
|
||||
/* 0x06B8 */ s16 unk_6B8;
|
||||
/* 0x06BA */ s16 unk_6BA;
|
||||
/* 0x06BC */ s16 unk_6BC;
|
||||
/* 0x06BE */ s16 unk_6BE;
|
||||
/* 0x06C0 */ s16 unk_6C0;
|
||||
/* 0x06C2 */ s16 unk_6C2;
|
||||
/* 0x06C4 */ f32 unk_6C4;
|
||||
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
||||
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x067C */ u32 stateFlags1;
|
||||
/* 0x0680 */ u32 stateFlags2;
|
||||
/* 0x0684 */ Actor* unk_684;
|
||||
/* 0x0688 */ Actor* boomerangActor;
|
||||
/* 0x068C */ Actor* naviActor;
|
||||
/* 0x0690 */ s16 naviTextId;
|
||||
/* 0x0692 */ u8 stateFlags3;
|
||||
/* 0x0693 */ s8 exchangeItemId;
|
||||
/* 0x0694 */ Actor* targetActor;
|
||||
/* 0x0698 */ f32 targetActorDistance;
|
||||
/* 0x069C */ char unk_69C[0x004];
|
||||
/* 0x06A0 */ f32 unk_6A0;
|
||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||
/* 0x06A8 */ Actor* unk_6A8;
|
||||
/* 0x06AC */ s8 unk_6AC;
|
||||
/* 0x06AD */ u8 unk_6AD;
|
||||
/* 0x06AE */ u16 unk_6AE;
|
||||
/* 0x06B0 */ s16 unk_6B0;
|
||||
/* 0x06B2 */ char unk_6B4[0x004];
|
||||
/* 0x06B6 */ s16 unk_6B6;
|
||||
/* 0x06B8 */ s16 unk_6B8;
|
||||
/* 0x06BA */ s16 unk_6BA;
|
||||
/* 0x06BC */ s16 unk_6BC;
|
||||
/* 0x06BE */ s16 unk_6BE;
|
||||
/* 0x06C0 */ s16 unk_6C0;
|
||||
/* 0x06C2 */ s16 unk_6C2;
|
||||
/* 0x06C4 */ f32 unk_6C4;
|
||||
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
||||
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
||||
/* 0x082C */ UpperActionFunc upperActionFunc;
|
||||
/* 0x0830 */ f32 upperAnimBlendWeight;
|
||||
/* 0x0834 */ s16 unk_834;
|
||||
/* 0x0836 */ s8 unk_836;
|
||||
/* 0x0837 */ u8 unk_837;
|
||||
/* 0x0838 */ f32 linearVelocity;
|
||||
/* 0x083C */ s16 currentYaw;
|
||||
/* 0x083E */ s16 targetYaw;
|
||||
/* 0x0840 */ u16 underwaterTimer;
|
||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||
/* 0x0843 */ s8 meleeWeaponState;
|
||||
/* 0x0844 */ s8 unk_844;
|
||||
/* 0x0845 */ u8 unk_845;
|
||||
/* 0x0846 */ u8 unk_846;
|
||||
/* 0x0847 */ s8 unk_847[4];
|
||||
/* 0x084B */ s8 unk_84B[4];
|
||||
/* 0x084F */ s8 unk_84F;
|
||||
/* 0x0850 */ s16 unk_850; // multipurpose timer
|
||||
/* 0x0854 */ f32 unk_854;
|
||||
/* 0x0858 */ f32 unk_858;
|
||||
/* 0x085C */ f32 unk_85C; // stick length among other things
|
||||
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
||||
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
||||
/* 0x0864 */ f32 unk_864;
|
||||
/* 0x0868 */ f32 unk_868;
|
||||
/* 0x086C */ f32 unk_86C;
|
||||
/* 0x0870 */ f32 unk_870;
|
||||
/* 0x0874 */ f32 unk_874;
|
||||
/* 0x0878 */ f32 unk_878;
|
||||
/* 0x087C */ s16 unk_87C;
|
||||
/* 0x087E */ s16 unk_87E;
|
||||
/* 0x0880 */ f32 unk_880;
|
||||
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
||||
/* 0x0888 */ f32 distToInteractWall; // distance to the colliding wall plane
|
||||
/* 0x088C */ u8 unk_88C;
|
||||
/* 0x088D */ u8 unk_88D;
|
||||
/* 0x088E */ u8 unk_88E;
|
||||
/* 0x088F */ u8 unk_88F;
|
||||
/* 0x0890 */ u8 unk_890;
|
||||
/* 0x0891 */ u8 shockTimer;
|
||||
/* 0x0892 */ u8 unk_892;
|
||||
/* 0x0893 */ u8 hoverBootsTimer;
|
||||
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||
/* 0x0898 */ s16 floorPitch; // angle of the floor slope in the direction of current world yaw (positive for ascending slope)
|
||||
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
||||
/* 0x089C */ s16 unk_89C;
|
||||
/* 0x089E */ u16 floorSfxOffset;
|
||||
/* 0x08A0 */ u8 unk_8A0;
|
||||
/* 0x08A1 */ u8 unk_8A1;
|
||||
/* 0x08A2 */ s16 unk_8A2;
|
||||
/* 0x08A4 */ f32 unk_8A4;
|
||||
/* 0x08A8 */ f32 unk_8A8;
|
||||
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
||||
/* 0x0830 */ f32 upperAnimBlendWeight;
|
||||
/* 0x0834 */ s16 unk_834;
|
||||
/* 0x0836 */ s8 unk_836;
|
||||
/* 0x0837 */ u8 unk_837;
|
||||
/* 0x0838 */ f32 linearVelocity;
|
||||
/* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context.
|
||||
/* 0x083E */ s16 zTargetYaw; // yaw relating to Z targeting/"parallel" mode
|
||||
/* 0x0840 */ u16 underwaterTimer;
|
||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||
/* 0x0843 */ s8 meleeWeaponState;
|
||||
/* 0x0844 */ s8 unk_844;
|
||||
/* 0x0845 */ u8 unk_845;
|
||||
/* 0x0846 */ u8 unk_846;
|
||||
/* 0x0847 */ s8 unk_847[4];
|
||||
/* 0x084B */ s8 unk_84B[4];
|
||||
|
||||
/* 0x084F */ union {
|
||||
s8 actionVar1;
|
||||
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
|
||||
|
||||
/* 0x0850 */ union {
|
||||
s16 actionVar2;
|
||||
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
|
||||
|
||||
/* 0x0854 */ f32 unk_854;
|
||||
/* 0x0858 */ f32 unk_858;
|
||||
/* 0x085C */ f32 unk_85C; // stick length among other things
|
||||
/* 0x0860 */ s16 unk_860; // stick flame timer among other things
|
||||
/* 0x0862 */ s16 unk_862; // get item draw ID + 1
|
||||
/* 0x0864 */ f32 unk_864;
|
||||
/* 0x0868 */ f32 unk_868;
|
||||
/* 0x086C */ f32 unk_86C;
|
||||
/* 0x0870 */ f32 unk_870;
|
||||
/* 0x0874 */ f32 unk_874;
|
||||
/* 0x0878 */ f32 unk_878;
|
||||
/* 0x087C */ s16 unk_87C;
|
||||
/* 0x087E */ s16 unk_87E;
|
||||
/* 0x0880 */ f32 unk_880;
|
||||
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
||||
/* 0x0888 */ f32 distToInteractWall; // xyz distance to the interact wall
|
||||
/* 0x088C */ u8 ledgeClimbType;
|
||||
/* 0x088D */ u8 ledgeClimbDelayTimer;
|
||||
/* 0x088E */ u8 unk_88E;
|
||||
/* 0x088F */ u8 unk_88F;
|
||||
/* 0x0890 */ u8 unk_890;
|
||||
/* 0x0891 */ u8 bodyShockTimer;
|
||||
/* 0x0892 */ u8 unk_892;
|
||||
/* 0x0893 */ u8 hoverBootsTimer;
|
||||
/* 0x0894 */ s16 fallStartHeight; // last truncated Y position before falling
|
||||
/* 0x0896 */ s16 fallDistance; // truncated Y distance the player has fallen so far (positive is down)
|
||||
/* 0x0898 */ s16 floorPitch; // angle of the floor slope in the direction of current world yaw (positive for ascending slope)
|
||||
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
||||
/* 0x089C */ s16 unk_89C;
|
||||
/* 0x089E */ u16 floorSfxOffset;
|
||||
/* 0x08A0 */ u8 unk_8A0;
|
||||
/* 0x08A1 */ u8 unk_8A1;
|
||||
/* 0x08A2 */ s16 unk_8A2;
|
||||
/* 0x08A4 */ f32 unk_8A4;
|
||||
/* 0x08A8 */ f32 unk_8A8;
|
||||
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
||||
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
||||
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||
/* 0x09E0 */ MtxF mf_9E0;
|
||||
/* 0x0A20 */ MtxF shieldMf;
|
||||
/* 0x0A60 */ u8 isBurning;
|
||||
/* 0x0A61 */ u8 flameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||
/* 0x0A73 */ u8 unk_A73;
|
||||
/* 0x0908 */ Vec3f bodyPartsPos[PLAYER_BODYPART_MAX];
|
||||
/* 0x09E0 */ MtxF mf_9E0;
|
||||
/* 0x0A20 */ MtxF shieldMf;
|
||||
/* 0x0A60 */ u8 bodyIsBurning;
|
||||
/* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||
/* 0x0A73 */ u8 unk_A73;
|
||||
/* 0x0A74 */ PlayerFuncA74 func_A74;
|
||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||
/* 0x0A79 */ u8 unk_A79;
|
||||
/* 0x0A7A */ u8 unk_A7A;
|
||||
/* 0x0A7B */ u8 unk_A7B;
|
||||
/* 0x0A7C */ f32 unk_A7C;
|
||||
/* 0x0A80 */ s16 unk_A80;
|
||||
/* 0x0A82 */ u16 unk_A82;
|
||||
/* 0x0A84 */ s16 unk_A84;
|
||||
/* 0x0A86 */ s8 unk_A86;
|
||||
/* 0x0A87 */ u8 unk_A87;
|
||||
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
||||
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
||||
/* 0x0A7A */ u8 floorProperty;
|
||||
/* 0x0A7B */ u8 prevFloorType;
|
||||
/* 0x0A7C */ f32 prevControlStickMagnitude;
|
||||
/* 0x0A80 */ s16 prevControlStickAngle;
|
||||
/* 0x0A82 */ u16 prevFloorSfxOffset;
|
||||
/* 0x0A84 */ s16 unk_A84;
|
||||
/* 0x0A86 */ s8 unk_A86;
|
||||
/* 0x0A87 */ u8 unk_A87;
|
||||
/* 0x0A88 */ Vec3f unk_A88; // previous body part 0 position
|
||||
// #region SOH [General]
|
||||
// Upstream TODO: Rename these to be more obviously SoH specific
|
||||
/* */ PendingFlag pendingFlag;
|
||||
@ -670,7 +677,7 @@ typedef struct Player {
|
||||
// #endregion
|
||||
// #region SOH [Enhancements]
|
||||
// Upstream TODO: Rename this to make it more obvious it is apart of an enhancement
|
||||
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
||||
/* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still?
|
||||
// #endregion
|
||||
u8 ivanFloating;
|
||||
u8 ivanDamageMultiplier;
|
||||
|
@ -111,9 +111,9 @@ void GameInteractor::RawAction::FreezePlayer() {
|
||||
void GameInteractor::RawAction::BurnPlayer() {
|
||||
Player* player = GET_PLAYER(gPlayState);
|
||||
for (int i = 0; i < 18; i++) {
|
||||
player->flameTimers[i] = Rand_S16Offset(0, 200);
|
||||
player->bodyFlameTimers[i] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
player->isBurning = true;
|
||||
player->bodyIsBurning = true;
|
||||
func_80837C0C(gPlayState, player, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ void func_800432A0(CollisionContext* colCtx, s32 bgId, Actor* actor) {
|
||||
s16 rot = colCtx->dyna.bgActors[bgId].curTransform.rot.y - colCtx->dyna.bgActors[bgId].prevTransform.rot.y;
|
||||
|
||||
if (actor->id == ACTOR_PLAYER) {
|
||||
((Player*)actor)->currentYaw += rot;
|
||||
((Player*)actor)->yaw += rot;
|
||||
}
|
||||
|
||||
actor->shape.rot.y += rot;
|
||||
|
@ -634,7 +634,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
|
||||
Play_CameraSetAtEye(play, camIdx, &spC0, &spB4);
|
||||
csCam->roll = 0;
|
||||
csCam->fov = 75.0f;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = spD0.yaw + 0x7FFF;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = spD0.yaw + 0x7FFF;
|
||||
func_8002DF54(play, NULL, 8);
|
||||
break;
|
||||
case 3240:
|
||||
@ -674,7 +674,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
|
||||
Quake_SetCountdown(i, D_80120698 - 20);
|
||||
break;
|
||||
case 3390:
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = -0x3FD9;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = -0x3FD9;
|
||||
|
||||
csInfo->keyFrames = D_80121DB4;
|
||||
csInfo->keyFrameCnt = 9;
|
||||
@ -697,7 +697,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
|
||||
D_80121F1C[0].eyeTargetInit = play->view.eye;
|
||||
D_80121F1C[0].fovTargetInit = play->view.fovy;
|
||||
Actor_GetFocus(&spA0, actor);
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = spA0.rot.y;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = spA0.rot.y;
|
||||
|
||||
csInfo->keyFrames = D_80121F1C;
|
||||
csInfo->keyFrameCnt = 4;
|
||||
@ -817,7 +817,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 camIdx, s16 csId, Actor* actor
|
||||
csInfo->keyFrameCnt = 2;
|
||||
}
|
||||
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->currentYaw = 0x3FFC;
|
||||
player->actor.shape.rot.y = player->actor.world.rot.y = player->yaw = 0x3FFC;
|
||||
func_800C0808(play, camIdx, player, CAM_SET_CS_C);
|
||||
func_8002DF54(play, NULL, 8);
|
||||
break;
|
||||
|
@ -1480,11 +1480,11 @@ void BossFd_UpdateEffects(BossFd* this, PlayState* play) {
|
||||
if ((this->timers[3] == 0) && (sqrtf(SQ(diff.x) + SQ(diff.y) + SQ(diff.z)) < 20.0f)) {
|
||||
this->timers[3] = 50;
|
||||
func_8002F6D4(play, NULL, 5.0f, effect->kbAngle, 0.0f, 0x30);
|
||||
if (player->isBurning == false) {
|
||||
for (i2 = 0; i2 < ARRAY_COUNT(player->flameTimers); i2++) {
|
||||
player->flameTimers[i2] = Rand_S16Offset(0, 200);
|
||||
if (player->bodyIsBurning == false) {
|
||||
for (i2 = 0; i2 < ARRAY_COUNT(player->bodyFlameTimers); i2++) {
|
||||
player->bodyFlameTimers[i2] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
player->isBurning = true;
|
||||
player->bodyIsBurning = true;
|
||||
}
|
||||
}
|
||||
if (effect->timer2 == 0) {
|
||||
|
@ -1918,11 +1918,11 @@ void func_80902348(BossGanon2* this, PlayState* play) {
|
||||
temp_f12 = -200.0f - player->actor.world.pos.z;
|
||||
|
||||
if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) > 784.0f) {
|
||||
for (j = 0; j < ARRAY_COUNT(player->flameTimers); j++) {
|
||||
player->flameTimers[j] = Rand_S16Offset(0, 200);
|
||||
for (j = 0; j < ARRAY_COUNT(player->bodyFlameTimers); j++) {
|
||||
player->bodyFlameTimers[j] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
|
||||
player->isBurning = true;
|
||||
player->bodyIsBurning = true;
|
||||
func_8002F6D4(play, &this->actor, 10.0f, Math_Atan2S(temp_f12, temp_f2), 0.0f, 0x10);
|
||||
sBossGanon2Zelda->unk_3C8 = 8;
|
||||
}
|
||||
|
@ -775,7 +775,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
||||
}
|
||||
}
|
||||
if (this->work[MO_TENT_ACTION_STATE] == MO_TENT_GRAB) {
|
||||
player->unk_850 = 0xA;
|
||||
player->av2.actionVar2 = 0xA;
|
||||
player->actor.speedXZ = player->actor.velocity.y = 0;
|
||||
Math_ApproachF(&player->actor.world.pos.x, this->grabPosRot.pos.x, 0.5f, 20.0f);
|
||||
Math_ApproachF(&player->actor.world.pos.y, this->grabPosRot.pos.y, 0.5f, 20.0f);
|
||||
@ -833,7 +833,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
||||
Math_ApproachS(&this->tentRot[indS1].z, tempf2, 1.0f / this->tentMaxAngle, this->tentSpeed);
|
||||
}
|
||||
}
|
||||
player->unk_850 = 0xA;
|
||||
player->av2.actionVar2 = 0xA;
|
||||
player->actor.world.pos.x = this->grabPosRot.pos.x;
|
||||
player->actor.world.pos.y = this->grabPosRot.pos.y;
|
||||
player->actor.world.pos.z = this->grabPosRot.pos.z;
|
||||
@ -852,7 +852,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
||||
this->work[MO_TENT_ACTION_STATE] = MO_TENT_RETREAT;
|
||||
this->work[MO_TENT_INVINC_TIMER] = 50;
|
||||
if (&this->actor == player->actor.parent) {
|
||||
player->unk_850 = 0x65;
|
||||
player->av2.actionVar2 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csAction = 0;
|
||||
if (this->timers[0] == 0) {
|
||||
@ -882,7 +882,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
|
||||
case MO_TENT_CUT:
|
||||
func_80078914(&this->tentTipPos, NA_SE_EV_WATER_WALL - SFX_FLAG);
|
||||
if (&this->actor == player->actor.parent) {
|
||||
player->unk_850 = 0x65;
|
||||
player->av2.actionVar2 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csAction = 0;
|
||||
}
|
||||
@ -1804,7 +1804,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
|
||||
sMorphaTent2->tent2KillTimer = 1;
|
||||
}
|
||||
if (player->actor.parent != NULL) {
|
||||
player->unk_850 = 0x65;
|
||||
player->av2.actionVar2 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csAction = 0;
|
||||
}
|
||||
@ -1823,7 +1823,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
|
||||
sMorphaTent1->timers[0] = 40;
|
||||
sMorphaTent1->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
|
||||
if (player->actor.parent == &sMorphaTent1->actor) {
|
||||
player->unk_850 = 0x65;
|
||||
player->av2.actionVar2 = 0x65;
|
||||
player->actor.parent = NULL;
|
||||
player->csAction = 0;
|
||||
}
|
||||
|
@ -384,8 +384,8 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) {
|
||||
player->actor.world.pos.z = sRoomCenter.z;
|
||||
player->linearVelocity = player->actor.velocity.y = 0.0f;
|
||||
player->actor.shape.rot.y = -0x8000;
|
||||
player->targetYaw = -0x8000;
|
||||
player->currentYaw = -0x8000;
|
||||
player->zTargetYaw = -0x8000;
|
||||
player->yaw = -0x8000;
|
||||
player->fallStartHeight = 0;
|
||||
player->stateFlags1 |= PLAYER_STATE1_INPUT_DISABLED;
|
||||
|
||||
@ -443,8 +443,8 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) {
|
||||
player->actor.world.pos.z = sRoomCenter.z;
|
||||
player->linearVelocity = 0;
|
||||
player->actor.shape.rot.y = -0x8000;
|
||||
player->targetYaw = -0x8000;
|
||||
player->currentYaw = -0x8000;
|
||||
player->zTargetYaw = -0x8000;
|
||||
player->yaw = -0x8000;
|
||||
}
|
||||
|
||||
Math_Vec3f_Copy(&sCameraAt, &player->actor.world.pos);
|
||||
@ -1757,7 +1757,7 @@ void BossSst_HandClap(BossSst* this, PlayState* play) {
|
||||
}
|
||||
|
||||
if (player->actor.parent == &this->actor) {
|
||||
player->unk_850 = 0;
|
||||
player->av2.actionVar2 = 0;
|
||||
player->actor.world.pos = this->actor.world.pos;
|
||||
}
|
||||
}
|
||||
@ -1852,7 +1852,7 @@ void BossSst_HandGrab(BossSst* this, PlayState* play) {
|
||||
this->actor.world.pos.x += this->actor.speedXZ * Math_SinS(this->actor.world.rot.y);
|
||||
this->actor.world.pos.z += this->actor.speedXZ * Math_CosS(this->actor.world.rot.y);
|
||||
if (player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) {
|
||||
player->unk_850 = 0;
|
||||
player->av2.actionVar2 = 0;
|
||||
player->actor.world.pos = this->actor.world.pos;
|
||||
player->actor.shape.rot.y = this->actor.shape.rot.y;
|
||||
}
|
||||
@ -1946,7 +1946,7 @@ void BossSst_HandSwing(BossSst* this, PlayState* play) {
|
||||
}
|
||||
|
||||
if (player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) {
|
||||
player->unk_850 = 0;
|
||||
player->av2.actionVar2 = 0;
|
||||
Math_Vec3f_Copy(&player->actor.world.pos, &this->actor.world.pos);
|
||||
player->actor.shape.rot.x = this->actor.shape.rot.x;
|
||||
player->actor.shape.rot.z = (this->vParity * -0x4000) + this->actor.shape.rot.z;
|
||||
@ -2429,7 +2429,7 @@ void BossSst_HandReleasePlayer(BossSst* this, PlayState* play, s32 dropPlayer) {
|
||||
|
||||
if (player->actor.parent == &this->actor) {
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 100;
|
||||
player->av2.actionVar2 = 100;
|
||||
this->colliderJntSph.base.ocFlags1 |= OC1_ON;
|
||||
OTHER_HAND(this)->colliderJntSph.base.ocFlags1 |= OC1_ON;
|
||||
if (dropPlayer) {
|
||||
|
@ -777,12 +777,12 @@ s32 BossTw_BeamHitPlayerCheck(BossTw* this, PlayState* play) {
|
||||
if (sFreezeState == 0) {
|
||||
sFreezeState = 1;
|
||||
}
|
||||
} else if (!player->isBurning) {
|
||||
for (i = 0; i < ARRAY_COUNT(player->flameTimers); i++) {
|
||||
player->flameTimers[i] = Rand_S16Offset(0, 200);
|
||||
} else if (!player->bodyIsBurning) {
|
||||
for (i = 0; i < ARRAY_COUNT(player->bodyFlameTimers); i++) {
|
||||
player->bodyFlameTimers[i] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
|
||||
player->isBurning = true;
|
||||
player->bodyIsBurning = true;
|
||||
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
|
||||
}
|
||||
}
|
||||
@ -3154,7 +3154,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) {
|
||||
}
|
||||
}
|
||||
|
||||
if (player->isBurning && sShieldIceCharge != 0) {
|
||||
if (player->bodyIsBurning && sShieldIceCharge != 0) {
|
||||
sShieldIceCharge = 4;
|
||||
}
|
||||
}
|
||||
@ -4039,15 +4039,15 @@ void BossTw_BlastFire(BossTw* this, PlayState* play) {
|
||||
yDiff = sKoumePtr->groundBlastPos2.y - player->actor.world.pos.y;
|
||||
zDiff = sKoumePtr->groundBlastPos2.z - player->actor.world.pos.z;
|
||||
|
||||
if (!player->isBurning && (player->actor.bgCheckFlags & 1) && (fabsf(yDiff) < 10.0f) &&
|
||||
if (!player->bodyIsBurning && (player->actor.bgCheckFlags & 1) && (fabsf(yDiff) < 10.0f) &&
|
||||
(sqrtf(SQ(xDiff) + SQ(zDiff)) < (sKoumePtr->workf[UNK_F13] * 4550.0f))) {
|
||||
s16 j;
|
||||
|
||||
for (j = 0; j < 18; j++) {
|
||||
player->flameTimers[j] = Rand_S16Offset(0, 200);
|
||||
player->bodyFlameTimers[j] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
|
||||
player->isBurning = 1;
|
||||
player->bodyIsBurning = 1;
|
||||
|
||||
if (this->work[BURN_TMR] == 0) {
|
||||
Player_PlaySfx(&player->actor, player->ageProperties->unk_92 + NA_SE_VO_LI_DEMO_DAMAGE);
|
||||
|
@ -135,7 +135,7 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) {
|
||||
player = GET_PLAYER(play);
|
||||
if (Math_StepToF(&this->actor.scale.x, 0.01f, 0.001f)) {
|
||||
if ((this->actor.targetMode != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (player->stateFlags1 & PLAYER_STATE1_FLOOR_DISABLED) &&
|
||||
(player->unk_84F == 0)) {
|
||||
(player->av1.actionVar1 == 0)) {
|
||||
destinationIdx = ((this->actor.params >> 0xC) & 7) - 1;
|
||||
Play_SetupRespawnPoint(play, RESPAWN_MODE_RETURN, 0x4FF);
|
||||
gSaveContext.respawn[RESPAWN_MODE_RETURN].pos.y = this->actor.world.pos.y;
|
||||
|
@ -174,13 +174,13 @@ void func_809BC598(EnBdfire* this, PlayState* play) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
} else if (!player->isBurning) {
|
||||
} else if (!player->bodyIsBurning) {
|
||||
distToBurn = (this->actor.scale.x * 130.0f) / 4.2000003f;
|
||||
if (this->actor.xyzDistToPlayerSq < SQ(distToBurn)) {
|
||||
for (i = 0; i < 18; i++) {
|
||||
player->flameTimers[i] = Rand_S16Offset(0, 200);
|
||||
player->bodyFlameTimers[i] = Rand_S16Offset(0, 200);
|
||||
}
|
||||
player->isBurning = true;
|
||||
player->bodyIsBurning = true;
|
||||
func_8002F6D4(play, &this->actor, 20.0f, this->actor.world.rot.y, 0.0f, 8);
|
||||
osSyncPrintf("POWER\n");
|
||||
}
|
||||
|
@ -248,7 +248,7 @@ void EnDha_Wait(EnDha* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && (&this->actor == player->actor.parent)) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
}
|
||||
|
||||
if (this->actor.home.rot.z != 0) {
|
||||
@ -288,7 +288,7 @@ void EnDha_Wait(EnDha* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && (&this->actor == player->actor.parent)) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
}
|
||||
|
||||
this->actor.home.rot.z = 1;
|
||||
@ -309,7 +309,7 @@ void EnDha_TakeDamage(EnDha* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && (&this->actor == player->actor.parent)) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
}
|
||||
|
||||
Math_SmoothStepToS(&this->limbAngleX[1], 0, 1, 2000, 0);
|
||||
@ -347,7 +347,7 @@ void EnDha_Die(EnDha* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && (&this->actor == player->actor.parent)) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
}
|
||||
|
||||
Math_SmoothStepToS(&this->limbAngleX[1], 0, 1, 0x7D0, 0);
|
||||
|
@ -616,7 +616,7 @@ void EnFr_Idle(EnFr* this, PlayState* play) {
|
||||
player->actor.world.pos.x = this->actor.world.pos.x; // x = 990.0f
|
||||
player->actor.world.pos.y = this->actor.world.pos.y; // y = 205.0f
|
||||
player->actor.world.pos.z = this->actor.world.pos.z; // z = -1220.0f
|
||||
player->currentYaw = player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
player->yaw = player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
this->reward = GI_NONE;
|
||||
this->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
this->actionFunc = EnFr_Activate;
|
||||
|
@ -615,7 +615,7 @@ void EnMb_Stunned(EnMb* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && player->actor.parent == &this->actor) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||
this->attack = ENMB_ATTACK_NONE;
|
||||
}
|
||||
@ -740,7 +740,7 @@ void EnMb_SpearPatrolEndCharge(EnMb* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && player->actor.parent == &this->actor) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||
}
|
||||
|
||||
@ -967,7 +967,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) {
|
||||
hasHitPlayer = true;
|
||||
player->actor.world.pos.z = this->actor.world.pos.z + Math_SinS(this->actor.shape.rot.y) * 10.0f +
|
||||
Math_CosS(this->actor.shape.rot.y) * 89.0f;
|
||||
player->unk_850 = 0;
|
||||
player->av2.actionVar2 = 0;
|
||||
player->actor.speedXZ = 0.0f;
|
||||
player->actor.velocity.y = 0.0f;
|
||||
}
|
||||
@ -978,7 +978,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) {
|
||||
if (player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||
}
|
||||
}
|
||||
@ -1036,7 +1036,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) {
|
||||
hasHitPlayer = true;
|
||||
player->actor.world.pos.z = this->actor.world.pos.z + Math_SinS(this->actor.shape.rot.y) * 10.0f +
|
||||
Math_CosS(this->actor.shape.rot.y) * 89.0f;
|
||||
player->unk_850 = 0;
|
||||
player->av2.actionVar2 = 0;
|
||||
player->actor.speedXZ = 0.0f;
|
||||
player->actor.velocity.y = 0.0f;
|
||||
}
|
||||
@ -1047,7 +1047,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) {
|
||||
if (player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||
}
|
||||
this->attack = ENMB_ATTACK_NONE;
|
||||
@ -1342,7 +1342,7 @@ void EnMb_SpearDead(EnMb* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && player->actor.parent == &this->actor) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||
this->attack = ENMB_ATTACK_NONE;
|
||||
}
|
||||
@ -1425,7 +1425,7 @@ void EnMb_CheckColliding(EnMb* this, PlayState* play) {
|
||||
if ((player->stateFlags2 & PLAYER_STATE2_GRABBED_BY_ENEMY) && player->actor.parent == &this->actor) {
|
||||
player->stateFlags2 &= ~PLAYER_STATE2_GRABBED_BY_ENEMY;
|
||||
player->actor.parent = NULL;
|
||||
player->unk_850 = 200;
|
||||
player->av2.actionVar2 = 200;
|
||||
func_8002F71C(play, &this->actor, 6.0f, this->actor.world.rot.y, 6.0f);
|
||||
}
|
||||
this->damageEffect = this->actor.colChkInfo.damageEffect;
|
||||
|
@ -190,7 +190,7 @@ void func_80AFB950(EnSi* this, PlayState* play) {
|
||||
player->actor.freezeTimer = 0;
|
||||
func_8083C148(GET_PLAYER(play), play);
|
||||
func_80078884(NA_SE_SY_CAMERA_ZOOM_UP);
|
||||
player->currentYaw = player->actor.shape.rot.y;
|
||||
player->yaw = player->actor.shape.rot.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ void func_80AFBE8C(EnSiofuki* this, PlayState* play) {
|
||||
} else {
|
||||
if (this->applySpeed) {
|
||||
player->linearVelocity = this->appliedSpeed + player->linearVelocity;
|
||||
player->currentYaw = this->appliedYaw;
|
||||
player->yaw = this->appliedYaw;
|
||||
}
|
||||
|
||||
this->targetAppliedSpeed = 0.0f;
|
||||
|
@ -1367,7 +1367,7 @@ void EnSkj_SariasSongShortStumpUpdate(Actor* thisx, PlayState* play) {
|
||||
void EnSkj_TurnPlayer(EnSkj* this, Player* player) {
|
||||
Math_SmoothStepToS(&player->actor.shape.rot.y, this->actor.world.rot.y, 5, 2000, 0);
|
||||
player->actor.world.rot.y = player->actor.shape.rot.y;
|
||||
player->currentYaw = player->actor.shape.rot.y;
|
||||
player->yaw = player->actor.shape.rot.y;
|
||||
}
|
||||
|
||||
void EnSkj_SetupWaitForOcarina(EnSkj* this, PlayState* play) {
|
||||
|
@ -107,7 +107,7 @@ void EnSyatekiItm_Idle(EnSyatekiItm* this, PlayState* play) {
|
||||
player->actor.world.pos.x = -12.0f;
|
||||
player->actor.world.pos.y = 20.0f;
|
||||
player->actor.world.pos.z = 182.0f;
|
||||
player->currentYaw = player->actor.world.rot.y = player->actor.shape.rot.y = 0x7F03;
|
||||
player->yaw = player->actor.world.rot.y = player->actor.shape.rot.y = 0x7F03;
|
||||
player->actor.world.rot.x = player->actor.shape.rot.x = player->actor.world.rot.z = player->actor.shape.rot.z =
|
||||
0;
|
||||
s32 ammunition = 15;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user