mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-10-31 23:55:06 -04:00
z_player
documentation 2024-10-11 (#4407)
* Add names to start of typedefs * Idle stuff * 2 functions * Player state flags * Name functions + misc * ActionChange => ActionHandler * Some player unks * More player unks * Header misc * Misc * More misc * Player Actions * Missed comments * Move ship specific stuff * Fix build * CsCmdActorAction to CsCmdActorCue * Fix build
This commit is contained in:
parent
3c5d9faba3
commit
b5c6545d6f
@ -415,7 +415,7 @@ f32 Actor_WorldDistXZToPoint(Actor* actor, Vec3f* refPoint);
|
|||||||
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
|
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
|
||||||
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
|
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
|
||||||
f32 Player_GetHeight(Player* player);
|
f32 Player_GetHeight(Player* player);
|
||||||
s32 Player_ActionChange_2(Player* player, PlayState* play);
|
s32 Player_ActionHandler_2(Player* player, PlayState* play);
|
||||||
f32 func_8002DCE4(Player* player);
|
f32 func_8002DCE4(Player* player);
|
||||||
s32 func_8002DD6C(Player* player);
|
s32 func_8002DD6C(Player* player);
|
||||||
s32 func_8002DD78(Player* player);
|
s32 func_8002DD78(Player* player);
|
||||||
@ -1107,7 +1107,7 @@ void Player_SetBootData(PlayState* play, Player* player);
|
|||||||
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
|
s32 Player_InBlockingCsMode(PlayState* play, Player* player);
|
||||||
s32 Player_TryCsAction(PlayState* play, Actor* actor, s32 csAction);
|
s32 Player_TryCsAction(PlayState* play, Actor* actor, s32 csAction);
|
||||||
s32 Player_InCsMode(PlayState* play);
|
s32 Player_InCsMode(PlayState* play);
|
||||||
s32 func_8008E9C4(Player* player);
|
s32 Player_CheckHostileLockOn(Player* player);
|
||||||
s32 Player_IsChildWithHylianShield(Player* player);
|
s32 Player_IsChildWithHylianShield(Player* player);
|
||||||
s32 Player_ActionToModelGroup(Player* player, s32 actionParam);
|
s32 Player_ActionToModelGroup(Player* player, s32 actionParam);
|
||||||
void Player_SetModelsForHoldingShield(Player* player);
|
void Player_SetModelsForHoldingShield(Player* player);
|
||||||
@ -1117,9 +1117,9 @@ void func_8008EC70(Player* player);
|
|||||||
void Player_SetEquipmentData(PlayState* play, Player* player);
|
void Player_SetEquipmentData(PlayState* play, Player* player);
|
||||||
void Player_UpdateBottleHeld(PlayState* play, Player* player, s32 item, s32 actionParam);
|
void Player_UpdateBottleHeld(PlayState* play, Player* player, s32 item, s32 actionParam);
|
||||||
void func_80837C0C(PlayState* play, Player* this, s32 arg2, f32 arg3, f32 arg4, s16 arg5, s32 arg6);
|
void func_80837C0C(PlayState* play, Player* this, s32 arg2, f32 arg3, f32 arg4, s16 arg5, s32 arg6);
|
||||||
void func_8008EDF0(Player* player);
|
void Player_ReleaseLockOn(Player* player);
|
||||||
void func_8008EE08(Player* player);
|
void Player_ClearZTargeting(Player* player);
|
||||||
void func_8008EEAC(PlayState* play, Actor* actor);
|
void Player_SetAutoLockOnActor(PlayState* play, Actor* actor);
|
||||||
s32 func_8008EF44(PlayState* play, s32 ammo);
|
s32 func_8008EF44(PlayState* play, s32 ammo);
|
||||||
s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 radius, f32 arg3);
|
s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 radius, f32 arg3);
|
||||||
s32 Player_GetStrength(void);
|
s32 Player_GetStrength(void);
|
||||||
|
@ -8,17 +8,23 @@
|
|||||||
// #define __attribute__(x)
|
// #define __attribute__(x)
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// #ifndef AVOID_UB
|
// SoH [Port] Always use the AVOID_UB version (we don't set AVOID_UB while building yet)
|
||||||
// #define BAD_RETURN(type) type
|
/*
|
||||||
// #else
|
#ifndef AVOID_UB
|
||||||
// #define BAD_RETURN(type) void
|
#define BAD_RETURN(type) type
|
||||||
// #endif
|
#else
|
||||||
|
#define BAD_RETURN(type) void
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
#define BAD_RETURN(type) void
|
||||||
|
|
||||||
|
// Upstream TODO: Document reasoning for change
|
||||||
// #define UNUSED __attribute__((unused))
|
// #define UNUSED __attribute__((unused))
|
||||||
// #define FALLTHROUGH __attribute__((fallthrough))
|
// #define FALLTHROUGH __attribute__((fallthrough))
|
||||||
|
|
||||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||||
#define ARRAY_COUNTU(arr) (u32)(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 PHYSICAL_TO_VIRTUAL(addr) (void*)((uintptr_t)(addr) + 0x80000000)
|
||||||
#define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - 0x80000000)
|
#define VIRTUAL_TO_PHYSICAL(addr) (uintptr_t)((u8*)(addr) - 0x80000000)
|
||||||
|
@ -382,8 +382,8 @@ typedef struct {
|
|||||||
/* 0x1B */ u8 unk_1B;
|
/* 0x1B */ u8 unk_1B;
|
||||||
/* 0x1C */ CutsceneCameraPoint* cameraFocus;
|
/* 0x1C */ CutsceneCameraPoint* cameraFocus;
|
||||||
/* 0x20 */ CutsceneCameraPoint* cameraPosition;
|
/* 0x20 */ CutsceneCameraPoint* cameraPosition;
|
||||||
/* 0x24 */ CsCmdActorAction* linkAction;
|
/* 0x24 */ CsCmdActorCue* linkAction;
|
||||||
/* 0x28 */ CsCmdActorAction* npcActions[10]; // "npcdemopnt"
|
/* 0x28 */ CsCmdActorCue* npcActions[10]; // "npcdemopnt"
|
||||||
} CutsceneContext; // size = 0x50
|
} CutsceneContext; // size = 0x50
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -92,7 +92,7 @@ typedef struct {
|
|||||||
/* 0x0C */ Vec3i startPos;
|
/* 0x0C */ Vec3i startPos;
|
||||||
/* 0x18 */ Vec3i endPos;
|
/* 0x18 */ Vec3i endPos;
|
||||||
/* 0x24 */ Vec3i normal;
|
/* 0x24 */ Vec3i normal;
|
||||||
} CsCmdActorAction; // size = 0x30
|
} CsCmdActorCue; // size = 0x30
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CS_STATE_IDLE,
|
CS_STATE_IDLE,
|
||||||
|
@ -7,9 +7,7 @@
|
|||||||
|
|
||||||
struct Player;
|
struct Player;
|
||||||
|
|
||||||
extern GetItemEntry sGetItemTable[195];
|
typedef enum PlayerSword {
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
/* 0 */ PLAYER_SWORD_NONE,
|
/* 0 */ PLAYER_SWORD_NONE,
|
||||||
/* 1 */ PLAYER_SWORD_KOKIRI,
|
/* 1 */ PLAYER_SWORD_KOKIRI,
|
||||||
/* 2 */ PLAYER_SWORD_MASTER,
|
/* 2 */ PLAYER_SWORD_MASTER,
|
||||||
@ -17,7 +15,7 @@ typedef enum {
|
|||||||
/* 4 */ PLAYER_SWORD_MAX
|
/* 4 */ PLAYER_SWORD_MAX
|
||||||
} PlayerSword;
|
} PlayerSword;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerShield {
|
||||||
/* 0x00 */ PLAYER_SHIELD_NONE,
|
/* 0x00 */ PLAYER_SHIELD_NONE,
|
||||||
/* 0x01 */ PLAYER_SHIELD_DEKU,
|
/* 0x01 */ PLAYER_SHIELD_DEKU,
|
||||||
/* 0x02 */ PLAYER_SHIELD_HYLIAN,
|
/* 0x02 */ PLAYER_SHIELD_HYLIAN,
|
||||||
@ -25,14 +23,14 @@ typedef enum {
|
|||||||
/* 0x04 */ PLAYER_SHIELD_MAX
|
/* 0x04 */ PLAYER_SHIELD_MAX
|
||||||
} PlayerShield;
|
} PlayerShield;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerTunic {
|
||||||
/* 0x00 */ PLAYER_TUNIC_KOKIRI,
|
/* 0x00 */ PLAYER_TUNIC_KOKIRI,
|
||||||
/* 0x01 */ PLAYER_TUNIC_GORON,
|
/* 0x01 */ PLAYER_TUNIC_GORON,
|
||||||
/* 0x02 */ PLAYER_TUNIC_ZORA,
|
/* 0x02 */ PLAYER_TUNIC_ZORA,
|
||||||
/* 0x03 */ PLAYER_TUNIC_MAX
|
/* 0x03 */ PLAYER_TUNIC_MAX
|
||||||
} PlayerTunic;
|
} PlayerTunic;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerBoots {
|
||||||
/* 0x00 */ PLAYER_BOOTS_KOKIRI,
|
/* 0x00 */ PLAYER_BOOTS_KOKIRI,
|
||||||
/* 0x01 */ PLAYER_BOOTS_IRON,
|
/* 0x01 */ PLAYER_BOOTS_IRON,
|
||||||
/* 0x02 */ PLAYER_BOOTS_HOVER,
|
/* 0x02 */ PLAYER_BOOTS_HOVER,
|
||||||
@ -43,7 +41,7 @@ typedef enum {
|
|||||||
/* 0x06 */ PLAYER_BOOTS_MAX
|
/* 0x06 */ PLAYER_BOOTS_MAX
|
||||||
} PlayerBoots;
|
} PlayerBoots;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerStrength {
|
||||||
/* 0x00 */ PLAYER_STR_NONE,
|
/* 0x00 */ PLAYER_STR_NONE,
|
||||||
/* 0x01 */ PLAYER_STR_BRACELET,
|
/* 0x01 */ PLAYER_STR_BRACELET,
|
||||||
/* 0x02 */ PLAYER_STR_SILVER_G,
|
/* 0x02 */ PLAYER_STR_SILVER_G,
|
||||||
@ -51,7 +49,7 @@ typedef enum {
|
|||||||
/* 0x04 */ PLAYER_STR_MAX
|
/* 0x04 */ PLAYER_STR_MAX
|
||||||
} PlayerStrength;
|
} PlayerStrength;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerMask {
|
||||||
/* 0x00 */ PLAYER_MASK_NONE,
|
/* 0x00 */ PLAYER_MASK_NONE,
|
||||||
/* 0x01 */ PLAYER_MASK_KEATON,
|
/* 0x01 */ PLAYER_MASK_KEATON,
|
||||||
/* 0x02 */ PLAYER_MASK_SKULL,
|
/* 0x02 */ PLAYER_MASK_SKULL,
|
||||||
@ -64,9 +62,15 @@ typedef enum {
|
|||||||
/* 0x09 */ PLAYER_MASK_MAX
|
/* 0x09 */ PLAYER_MASK_MAX
|
||||||
} PlayerMask;
|
} PlayerMask;
|
||||||
|
|
||||||
typedef enum {
|
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,
|
/* 0x00 */ PLAYER_IA_NONE,
|
||||||
/* 0x01 */ PLAYER_IA_LAST_USED,
|
/* 0x01 */ PLAYER_IA_SWORD_CS, // Hold sword without shield in hand. The sword is not usable.
|
||||||
/* 0x02 */ PLAYER_IA_FISHING_POLE,
|
/* 0x02 */ PLAYER_IA_FISHING_POLE,
|
||||||
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
|
/* 0x03 */ PLAYER_IA_SWORD_MASTER,
|
||||||
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
|
/* 0x04 */ PLAYER_IA_SWORD_KOKIRI,
|
||||||
@ -132,10 +136,10 @@ typedef enum {
|
|||||||
/* 0x40 */ PLAYER_IA_MASK_GERUDO,
|
/* 0x40 */ PLAYER_IA_MASK_GERUDO,
|
||||||
/* 0x41 */ PLAYER_IA_MASK_TRUTH,
|
/* 0x41 */ PLAYER_IA_MASK_TRUTH,
|
||||||
/* 0x42 */ PLAYER_IA_LENS_OF_TRUTH,
|
/* 0x42 */ PLAYER_IA_LENS_OF_TRUTH,
|
||||||
/* 0x4C */ PLAYER_IA_MAX
|
/* 0x43 */ PLAYER_IA_MAX
|
||||||
} PlayerItemAction;
|
} PlayerItemAction;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerLimb {
|
||||||
/* 0x00 */ PLAYER_LIMB_NONE,
|
/* 0x00 */ PLAYER_LIMB_NONE,
|
||||||
/* 0x01 */ PLAYER_LIMB_ROOT,
|
/* 0x01 */ PLAYER_LIMB_ROOT,
|
||||||
/* 0x02 */ PLAYER_LIMB_WAIST,
|
/* 0x02 */ PLAYER_LIMB_WAIST,
|
||||||
@ -161,7 +165,7 @@ typedef enum {
|
|||||||
/* 0x16 */ PLAYER_LIMB_MAX
|
/* 0x16 */ PLAYER_LIMB_MAX
|
||||||
} PlayerLimb;
|
} PlayerLimb;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerBodyPart {
|
||||||
/* 0x00 */ PLAYER_BODYPART_WAIST, // PLAYER_LIMB_WAIST
|
/* 0x00 */ PLAYER_BODYPART_WAIST, // PLAYER_LIMB_WAIST
|
||||||
/* 0x01 */ PLAYER_BODYPART_R_THIGH, // PLAYER_LIMB_R_THIGH
|
/* 0x01 */ PLAYER_BODYPART_R_THIGH, // PLAYER_LIMB_R_THIGH
|
||||||
/* 0x02 */ PLAYER_BODYPART_R_SHIN, // PLAYER_LIMB_R_SHIN
|
/* 0x02 */ PLAYER_BODYPART_R_SHIN, // PLAYER_LIMB_R_SHIN
|
||||||
@ -183,7 +187,7 @@ typedef enum {
|
|||||||
/* 0x12 */ PLAYER_BODYPART_MAX
|
/* 0x12 */ PLAYER_BODYPART_MAX
|
||||||
} PlayerBodyPart;
|
} PlayerBodyPart;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerMeleeWeaponAnimation {
|
||||||
/* 0 */ PLAYER_MWA_FORWARD_SLASH_1H,
|
/* 0 */ PLAYER_MWA_FORWARD_SLASH_1H,
|
||||||
/* 1 */ PLAYER_MWA_FORWARD_SLASH_2H,
|
/* 1 */ PLAYER_MWA_FORWARD_SLASH_2H,
|
||||||
/* 2 */ PLAYER_MWA_FORWARD_COMBO_1H,
|
/* 2 */ PLAYER_MWA_FORWARD_COMBO_1H,
|
||||||
@ -215,7 +219,7 @@ typedef enum {
|
|||||||
/* 28 */ PLAYER_MWA_MAX
|
/* 28 */ PLAYER_MWA_MAX
|
||||||
} PlayerMeleeWeaponAnimation;
|
} PlayerMeleeWeaponAnimation;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerDoorType {
|
||||||
/* -1 */ PLAYER_DOORTYPE_AJAR = -1,
|
/* -1 */ PLAYER_DOORTYPE_AJAR = -1,
|
||||||
/* 0 */ PLAYER_DOORTYPE_NONE,
|
/* 0 */ PLAYER_DOORTYPE_NONE,
|
||||||
/* 1 */ PLAYER_DOORTYPE_HANDLE,
|
/* 1 */ PLAYER_DOORTYPE_HANDLE,
|
||||||
@ -223,10 +227,10 @@ typedef enum {
|
|||||||
/* 3 */ PLAYER_DOORTYPE_FAKE
|
/* 3 */ PLAYER_DOORTYPE_FAKE
|
||||||
} PlayerDoorType;
|
} PlayerDoorType;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerModelGroup {
|
||||||
/* 0x00 */ PLAYER_MODELGROUP_0, // unused (except with the `Player_OverrideLimbDrawPause` bug)
|
/* 0x00 */ PLAYER_MODELGROUP_0, // unused (except for a bug in `Player_OverrideLimbDrawPause`)
|
||||||
/* 0x01 */ PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD, // kokiri/master sword, shield not in hand
|
/* 0x01 */ PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD, //hold sword only. used for holding sword only as child link with hylian shield equipped
|
||||||
/* 0x02 */ PLAYER_MODELGROUP_SWORD, // kokiri/master sword and possibly shield
|
/* 0x02 */ PLAYER_MODELGROUP_SWORD_AND_SHIELD, // hold sword and shield or just sword if no shield is equipped
|
||||||
/* 0x03 */ PLAYER_MODELGROUP_DEFAULT, // non-specific models, for items that don't have particular link models
|
/* 0x03 */ PLAYER_MODELGROUP_DEFAULT, // non-specific models, for items that don't have particular link models
|
||||||
/* 0x04 */ PLAYER_MODELGROUP_4, // unused, same as PLAYER_MODELGROUP_DEFAULT
|
/* 0x04 */ PLAYER_MODELGROUP_4, // unused, same as PLAYER_MODELGROUP_DEFAULT
|
||||||
/* 0x05 */ PLAYER_MODELGROUP_BGS, // biggoron sword
|
/* 0x05 */ PLAYER_MODELGROUP_BGS, // biggoron sword
|
||||||
@ -239,11 +243,11 @@ typedef enum {
|
|||||||
/* 0x0C */ PLAYER_MODELGROUP_OCARINA, // ocarina
|
/* 0x0C */ PLAYER_MODELGROUP_OCARINA, // ocarina
|
||||||
/* 0x0D */ PLAYER_MODELGROUP_OOT, // ocarina of time
|
/* 0x0D */ PLAYER_MODELGROUP_OOT, // ocarina of time
|
||||||
/* 0x0E */ PLAYER_MODELGROUP_BOTTLE, // bottles (drawn separately)
|
/* 0x0E */ PLAYER_MODELGROUP_BOTTLE, // bottles (drawn separately)
|
||||||
/* 0x0F */ PLAYER_MODELGROUP_15, // "last used"
|
/* 0x0F */ PLAYER_MODELGROUP_SWORD, // hold sword and no shield, even if one is equipped
|
||||||
/* 0x10 */ PLAYER_MODELGROUP_MAX
|
/* 0x10 */ PLAYER_MODELGROUP_MAX
|
||||||
} PlayerModelGroup;
|
} PlayerModelGroup;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerModelGroupEntry {
|
||||||
/* 0x00 */ PLAYER_MODELGROUPENTRY_ANIM,
|
/* 0x00 */ PLAYER_MODELGROUPENTRY_ANIM,
|
||||||
/* 0x01 */ PLAYER_MODELGROUPENTRY_LEFT_HAND,
|
/* 0x01 */ PLAYER_MODELGROUPENTRY_LEFT_HAND,
|
||||||
/* 0x02 */ PLAYER_MODELGROUPENTRY_RIGHT_HAND,
|
/* 0x02 */ PLAYER_MODELGROUPENTRY_RIGHT_HAND,
|
||||||
@ -252,7 +256,7 @@ typedef enum {
|
|||||||
/* 0x05 */ PLAYER_MODELGROUPENTRY_MAX
|
/* 0x05 */ PLAYER_MODELGROUPENTRY_MAX
|
||||||
} PlayerModelGroupEntry;
|
} PlayerModelGroupEntry;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerModelType {
|
||||||
// left hand
|
// left hand
|
||||||
/* 0x00 */ PLAYER_MODELTYPE_LH_OPEN, // empty open hand
|
/* 0x00 */ PLAYER_MODELTYPE_LH_OPEN, // empty open hand
|
||||||
/* 0x01 */ PLAYER_MODELTYPE_LH_CLOSED, // empty closed hand
|
/* 0x01 */ PLAYER_MODELTYPE_LH_CLOSED, // empty closed hand
|
||||||
@ -282,7 +286,7 @@ typedef enum {
|
|||||||
/* 0xFF */ PLAYER_MODELTYPE_RH_FF = 0xFF // disable shield collider, cutscene-specific
|
/* 0xFF */ PLAYER_MODELTYPE_RH_FF = 0xFF // disable shield collider, cutscene-specific
|
||||||
} PlayerModelType;
|
} PlayerModelType;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum PlayerAnimType {
|
||||||
/* 0x00 */ PLAYER_ANIMTYPE_0,
|
/* 0x00 */ PLAYER_ANIMTYPE_0,
|
||||||
/* 0x01 */ PLAYER_ANIMTYPE_1,
|
/* 0x01 */ PLAYER_ANIMTYPE_1,
|
||||||
/* 0x02 */ PLAYER_ANIMTYPE_2,
|
/* 0x02 */ PLAYER_ANIMTYPE_2,
|
||||||
@ -292,7 +296,10 @@ typedef enum {
|
|||||||
/* 0x06 */ PLAYER_ANIMTYPE_MAX
|
/* 0x06 */ PLAYER_ANIMTYPE_MAX
|
||||||
} PlayerAnimType;
|
} PlayerAnimType;
|
||||||
|
|
||||||
typedef enum {
|
/**
|
||||||
|
* Temporary names, derived from original animation names in `D_80853914`
|
||||||
|
*/
|
||||||
|
typedef enum PlayerAnimGroup {
|
||||||
/* 0x00 */ PLAYER_ANIMGROUP_wait,
|
/* 0x00 */ PLAYER_ANIMGROUP_wait,
|
||||||
/* 0x01 */ PLAYER_ANIMGROUP_walk,
|
/* 0x01 */ PLAYER_ANIMGROUP_walk,
|
||||||
/* 0x02 */ PLAYER_ANIMGROUP_run,
|
/* 0x02 */ PLAYER_ANIMGROUP_run,
|
||||||
@ -344,7 +351,227 @@ typedef enum {
|
|||||||
#define LIMB_BUF_COUNT(limbCount) ((ALIGN16((limbCount) * sizeof(Vec3s)) + sizeof(Vec3s) - 1) / sizeof(Vec3s))
|
#define LIMB_BUF_COUNT(limbCount) ((ALIGN16((limbCount) * sizeof(Vec3s)) + sizeof(Vec3s) - 1) / sizeof(Vec3s))
|
||||||
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
#define PLAYER_LIMB_BUF_COUNT LIMB_BUF_COUNT(PLAYER_LIMB_MAX)
|
||||||
|
|
||||||
typedef struct {
|
typedef enum PlayerCsAction {
|
||||||
|
/* 0x00 */ PLAYER_CSACTION_NONE,
|
||||||
|
/* 0x01 */ PLAYER_CSACTION_1,
|
||||||
|
/* 0x02 */ PLAYER_CSACTION_2,
|
||||||
|
/* 0x03 */ PLAYER_CSACTION_3,
|
||||||
|
/* 0x04 */ PLAYER_CSACTION_4,
|
||||||
|
/* 0x05 */ PLAYER_CSACTION_5,
|
||||||
|
/* 0x06 */ PLAYER_CSACTION_6,
|
||||||
|
/* 0x07 */ PLAYER_CSACTION_7,
|
||||||
|
/* 0x08 */ PLAYER_CSACTION_8,
|
||||||
|
/* 0x09 */ PLAYER_CSACTION_9,
|
||||||
|
/* 0x0A */ PLAYER_CSACTION_10,
|
||||||
|
/* 0x0B */ PLAYER_CSACTION_11,
|
||||||
|
/* 0x0C */ PLAYER_CSACTION_12,
|
||||||
|
/* 0x0D */ PLAYER_CSACTION_13,
|
||||||
|
/* 0x0E */ PLAYER_CSACTION_14,
|
||||||
|
/* 0x0F */ PLAYER_CSACTION_15,
|
||||||
|
/* 0x10 */ PLAYER_CSACTION_16,
|
||||||
|
/* 0x11 */ PLAYER_CSACTION_17,
|
||||||
|
/* 0x12 */ PLAYER_CSACTION_18,
|
||||||
|
/* 0x13 */ PLAYER_CSACTION_19,
|
||||||
|
/* 0x14 */ PLAYER_CSACTION_20,
|
||||||
|
/* 0x15 */ PLAYER_CSACTION_21,
|
||||||
|
/* 0x16 */ PLAYER_CSACTION_22,
|
||||||
|
/* 0x17 */ PLAYER_CSACTION_23,
|
||||||
|
/* 0x18 */ PLAYER_CSACTION_24,
|
||||||
|
/* 0x19 */ PLAYER_CSACTION_25,
|
||||||
|
/* 0x1A */ PLAYER_CSACTION_26,
|
||||||
|
/* 0x1B */ PLAYER_CSACTION_27,
|
||||||
|
/* 0x1C */ PLAYER_CSACTION_28,
|
||||||
|
/* 0x1D */ PLAYER_CSACTION_29,
|
||||||
|
/* 0x1E */ PLAYER_CSACTION_30,
|
||||||
|
/* 0x1F */ PLAYER_CSACTION_31,
|
||||||
|
/* 0x20 */ PLAYER_CSACTION_32,
|
||||||
|
/* 0x21 */ PLAYER_CSACTION_33,
|
||||||
|
/* 0x22 */ PLAYER_CSACTION_34,
|
||||||
|
/* 0x23 */ PLAYER_CSACTION_35,
|
||||||
|
/* 0x24 */ PLAYER_CSACTION_36,
|
||||||
|
/* 0x25 */ PLAYER_CSACTION_37,
|
||||||
|
/* 0x26 */ PLAYER_CSACTION_38,
|
||||||
|
/* 0x27 */ PLAYER_CSACTION_39,
|
||||||
|
/* 0x28 */ PLAYER_CSACTION_40,
|
||||||
|
/* 0x29 */ PLAYER_CSACTION_41,
|
||||||
|
/* 0x2A */ PLAYER_CSACTION_42,
|
||||||
|
/* 0x2B */ PLAYER_CSACTION_43,
|
||||||
|
/* 0x2C */ PLAYER_CSACTION_44,
|
||||||
|
/* 0x2D */ PLAYER_CSACTION_45,
|
||||||
|
/* 0x2E */ PLAYER_CSACTION_46,
|
||||||
|
/* 0x2F */ PLAYER_CSACTION_47,
|
||||||
|
/* 0x30 */ PLAYER_CSACTION_48,
|
||||||
|
/* 0x31 */ PLAYER_CSACTION_49,
|
||||||
|
/* 0x32 */ PLAYER_CSACTION_50,
|
||||||
|
/* 0x33 */ PLAYER_CSACTION_51,
|
||||||
|
/* 0x34 */ PLAYER_CSACTION_52,
|
||||||
|
/* 0x35 */ PLAYER_CSACTION_53,
|
||||||
|
/* 0x36 */ PLAYER_CSACTION_54,
|
||||||
|
/* 0x37 */ PLAYER_CSACTION_55,
|
||||||
|
/* 0x38 */ PLAYER_CSACTION_56,
|
||||||
|
/* 0x39 */ PLAYER_CSACTION_57,
|
||||||
|
/* 0x3A */ PLAYER_CSACTION_58,
|
||||||
|
/* 0x3B */ PLAYER_CSACTION_59,
|
||||||
|
/* 0x3C */ PLAYER_CSACTION_60,
|
||||||
|
/* 0x3D */ PLAYER_CSACTION_61,
|
||||||
|
/* 0x3E */ PLAYER_CSACTION_62,
|
||||||
|
/* 0x3F */ PLAYER_CSACTION_63,
|
||||||
|
/* 0x40 */ PLAYER_CSACTION_64,
|
||||||
|
/* 0x41 */ PLAYER_CSACTION_65,
|
||||||
|
/* 0x42 */ PLAYER_CSACTION_66,
|
||||||
|
/* 0x43 */ PLAYER_CSACTION_67,
|
||||||
|
/* 0x44 */ PLAYER_CSACTION_68,
|
||||||
|
/* 0x45 */ PLAYER_CSACTION_69,
|
||||||
|
/* 0x46 */ PLAYER_CSACTION_70,
|
||||||
|
/* 0x47 */ PLAYER_CSACTION_71,
|
||||||
|
/* 0x48 */ PLAYER_CSACTION_72,
|
||||||
|
/* 0x49 */ PLAYER_CSACTION_73,
|
||||||
|
/* 0x4A */ PLAYER_CSACTION_74,
|
||||||
|
/* 0x4B */ PLAYER_CSACTION_75,
|
||||||
|
/* 0x4C */ PLAYER_CSACTION_76,
|
||||||
|
/* 0x4D */ PLAYER_CSACTION_77,
|
||||||
|
/* 0x4E */ PLAYER_CSACTION_78,
|
||||||
|
/* 0x4F */ PLAYER_CSACTION_79,
|
||||||
|
/* 0x50 */ PLAYER_CSACTION_80,
|
||||||
|
/* 0x51 */ PLAYER_CSACTION_81,
|
||||||
|
/* 0x52 */ PLAYER_CSACTION_82,
|
||||||
|
/* 0x53 */ PLAYER_CSACTION_83,
|
||||||
|
/* 0x54 */ PLAYER_CSACTION_84,
|
||||||
|
/* 0x55 */ PLAYER_CSACTION_85,
|
||||||
|
/* 0x56 */ PLAYER_CSACTION_86,
|
||||||
|
/* 0x57 */ PLAYER_CSACTION_87,
|
||||||
|
/* 0x58 */ PLAYER_CSACTION_88,
|
||||||
|
/* 0x59 */ PLAYER_CSACTION_89,
|
||||||
|
/* 0x5A */ PLAYER_CSACTION_90,
|
||||||
|
/* 0x5B */ PLAYER_CSACTION_91,
|
||||||
|
/* 0x5C */ PLAYER_CSACTION_92,
|
||||||
|
/* 0x5D */ PLAYER_CSACTION_93,
|
||||||
|
/* 0x5E */ PLAYER_CSACTION_94,
|
||||||
|
/* 0x5F */ PLAYER_CSACTION_95,
|
||||||
|
/* 0x60 */ PLAYER_CSACTION_96,
|
||||||
|
/* 0x61 */ PLAYER_CSACTION_97,
|
||||||
|
/* 0x62 */ PLAYER_CSACTION_98,
|
||||||
|
/* 0x63 */ PLAYER_CSACTION_99,
|
||||||
|
/* 0x64 */ PLAYER_CSACTION_100,
|
||||||
|
/* 0x65 */ PLAYER_CSACTION_101,
|
||||||
|
/* 0x66 */ PLAYER_CSACTION_102,
|
||||||
|
/* 0x67 */ PLAYER_CSACTION_MAX
|
||||||
|
} PlayerCsAction;
|
||||||
|
|
||||||
|
typedef enum PlayerCueId {
|
||||||
|
/* 0x00 */ PLAYER_CUEID_NONE,
|
||||||
|
/* 0x01 */ PLAYER_CUEID_1,
|
||||||
|
/* 0x02 */ PLAYER_CUEID_2,
|
||||||
|
/* 0x03 */ PLAYER_CUEID_3,
|
||||||
|
/* 0x04 */ PLAYER_CUEID_4,
|
||||||
|
/* 0x05 */ PLAYER_CUEID_5,
|
||||||
|
/* 0x06 */ PLAYER_CUEID_6,
|
||||||
|
/* 0x07 */ PLAYER_CUEID_7,
|
||||||
|
/* 0x08 */ PLAYER_CUEID_8,
|
||||||
|
/* 0x09 */ PLAYER_CUEID_9,
|
||||||
|
/* 0x0A */ PLAYER_CUEID_10,
|
||||||
|
/* 0x0B */ PLAYER_CUEID_11,
|
||||||
|
/* 0x0C */ PLAYER_CUEID_12,
|
||||||
|
/* 0x0D */ PLAYER_CUEID_13,
|
||||||
|
/* 0x0E */ PLAYER_CUEID_14,
|
||||||
|
/* 0x0F */ PLAYER_CUEID_15,
|
||||||
|
/* 0x10 */ PLAYER_CUEID_16,
|
||||||
|
/* 0x11 */ PLAYER_CUEID_17,
|
||||||
|
/* 0x12 */ PLAYER_CUEID_18,
|
||||||
|
/* 0x13 */ PLAYER_CUEID_19,
|
||||||
|
/* 0x14 */ PLAYER_CUEID_20,
|
||||||
|
/* 0x15 */ PLAYER_CUEID_21,
|
||||||
|
/* 0x16 */ PLAYER_CUEID_22,
|
||||||
|
/* 0x17 */ PLAYER_CUEID_23,
|
||||||
|
/* 0x18 */ PLAYER_CUEID_24,
|
||||||
|
/* 0x19 */ PLAYER_CUEID_25,
|
||||||
|
/* 0x1A */ PLAYER_CUEID_26,
|
||||||
|
/* 0x1B */ PLAYER_CUEID_27,
|
||||||
|
/* 0x1C */ PLAYER_CUEID_28,
|
||||||
|
/* 0x1D */ PLAYER_CUEID_29,
|
||||||
|
/* 0x1E */ PLAYER_CUEID_30,
|
||||||
|
/* 0x1F */ PLAYER_CUEID_31,
|
||||||
|
/* 0x20 */ PLAYER_CUEID_32,
|
||||||
|
/* 0x21 */ PLAYER_CUEID_33,
|
||||||
|
/* 0x22 */ PLAYER_CUEID_34,
|
||||||
|
/* 0x23 */ PLAYER_CUEID_35,
|
||||||
|
/* 0x24 */ PLAYER_CUEID_36,
|
||||||
|
/* 0x25 */ PLAYER_CUEID_37,
|
||||||
|
/* 0x26 */ PLAYER_CUEID_38,
|
||||||
|
/* 0x27 */ PLAYER_CUEID_39,
|
||||||
|
/* 0x28 */ PLAYER_CUEID_40,
|
||||||
|
/* 0x29 */ PLAYER_CUEID_41,
|
||||||
|
/* 0x2A */ PLAYER_CUEID_42,
|
||||||
|
/* 0x2B */ PLAYER_CUEID_43,
|
||||||
|
/* 0x2C */ PLAYER_CUEID_44,
|
||||||
|
/* 0x2D */ PLAYER_CUEID_45,
|
||||||
|
/* 0x2E */ PLAYER_CUEID_46,
|
||||||
|
/* 0x2F */ PLAYER_CUEID_47,
|
||||||
|
/* 0x30 */ PLAYER_CUEID_48,
|
||||||
|
/* 0x31 */ PLAYER_CUEID_49,
|
||||||
|
/* 0x32 */ PLAYER_CUEID_50,
|
||||||
|
/* 0x33 */ PLAYER_CUEID_51,
|
||||||
|
/* 0x34 */ PLAYER_CUEID_52,
|
||||||
|
/* 0x35 */ PLAYER_CUEID_53,
|
||||||
|
/* 0x36 */ PLAYER_CUEID_54,
|
||||||
|
/* 0x37 */ PLAYER_CUEID_55,
|
||||||
|
/* 0x38 */ PLAYER_CUEID_56,
|
||||||
|
/* 0x39 */ PLAYER_CUEID_57,
|
||||||
|
/* 0x3A */ PLAYER_CUEID_58,
|
||||||
|
/* 0x3B */ PLAYER_CUEID_59,
|
||||||
|
/* 0x3C */ PLAYER_CUEID_60,
|
||||||
|
/* 0x3D */ PLAYER_CUEID_61,
|
||||||
|
/* 0x3E */ PLAYER_CUEID_62,
|
||||||
|
/* 0x3F */ PLAYER_CUEID_63,
|
||||||
|
/* 0x40 */ PLAYER_CUEID_64,
|
||||||
|
/* 0x41 */ PLAYER_CUEID_65,
|
||||||
|
/* 0x42 */ PLAYER_CUEID_66,
|
||||||
|
/* 0x43 */ PLAYER_CUEID_67,
|
||||||
|
/* 0x44 */ PLAYER_CUEID_68,
|
||||||
|
/* 0x45 */ PLAYER_CUEID_69,
|
||||||
|
/* 0x46 */ PLAYER_CUEID_70,
|
||||||
|
/* 0x47 */ PLAYER_CUEID_71,
|
||||||
|
/* 0x48 */ PLAYER_CUEID_72,
|
||||||
|
/* 0x49 */ PLAYER_CUEID_73,
|
||||||
|
/* 0x4A */ PLAYER_CUEID_74,
|
||||||
|
/* 0x4B */ PLAYER_CUEID_75,
|
||||||
|
/* 0x4C */ PLAYER_CUEID_76,
|
||||||
|
/* 0x4D */ PLAYER_CUEID_77,
|
||||||
|
/* 0x4E */ PLAYER_CUEID_MAX
|
||||||
|
} PlayerCueId;
|
||||||
|
|
||||||
|
typedef enum PlayerLedgeClimbType {
|
||||||
|
/* 0 */ PLAYER_LEDGE_CLIMB_NONE,
|
||||||
|
/* 1 */ PLAYER_LEDGE_CLIMB_1,
|
||||||
|
/* 2 */ PLAYER_LEDGE_CLIMB_2,
|
||||||
|
/* 3 */ PLAYER_LEDGE_CLIMB_3,
|
||||||
|
/* 4 */ PLAYER_LEDGE_CLIMB_4
|
||||||
|
} PlayerLedgeClimbType;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/* 0 */ PLAYER_KNOCKBACK_NONE, // No knockback
|
||||||
|
/* 1 */ PLAYER_KNOCKBACK_SMALL, // A small hop, remains standing up
|
||||||
|
/* 2 */ PLAYER_KNOCKBACK_LARGE, // Sent flying in the air and lands laying down on the floor
|
||||||
|
/* 3 */ PLAYER_KNOCKBACK_LARGE_SHOCK // Same as`PLAYER_KNOCKBACK_LARGE` with a shock effect
|
||||||
|
} PlayerKnockbackType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/* 0 */ PLAYER_HIT_RESPONSE_NONE,
|
||||||
|
/* 1 */ PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE,
|
||||||
|
/* 2 */ PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL,
|
||||||
|
/* 3 */ PLAYER_HIT_RESPONSE_ICE_TRAP,
|
||||||
|
/* 4 */ PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK
|
||||||
|
} PlayerDamageResponseType;
|
||||||
|
|
||||||
|
typedef struct PlayerAgeProperties {
|
||||||
/* 0x00 */ f32 ceilingCheckHeight;
|
/* 0x00 */ f32 ceilingCheckHeight;
|
||||||
/* 0x04 */ f32 unk_04;
|
/* 0x04 */ f32 unk_04;
|
||||||
/* 0x08 */ f32 unk_08;
|
/* 0x08 */ f32 unk_08;
|
||||||
@ -380,7 +607,7 @@ typedef struct {
|
|||||||
/* 0xCC */ LinkAnimationHeader* unk_CC[2];
|
/* 0xCC */ LinkAnimationHeader* unk_CC[2];
|
||||||
} PlayerAgeProperties; // size = 0xD4
|
} PlayerAgeProperties; // size = 0xD4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct WeaponInfo {
|
||||||
/* 0x00 */ s32 active;
|
/* 0x00 */ s32 active;
|
||||||
/* 0x04 */ Vec3f tip;
|
/* 0x04 */ Vec3f tip;
|
||||||
/* 0x10 */ Vec3f base;
|
/* 0x10 */ Vec3f base;
|
||||||
@ -389,7 +616,7 @@ typedef struct {
|
|||||||
// #region SOH [General]
|
// #region SOH [General]
|
||||||
// Supporting pendingFlag
|
// Supporting pendingFlag
|
||||||
// Upstream TODO: Rename these to be more obviously SoH specific
|
// Upstream TODO: Rename these to be more obviously SoH specific
|
||||||
typedef enum {
|
typedef enum FlagType {
|
||||||
FLAG_NONE,
|
FLAG_NONE,
|
||||||
FLAG_SCENE_SWITCH,
|
FLAG_SCENE_SWITCH,
|
||||||
FLAG_SCENE_TREASURE,
|
FLAG_SCENE_TREASURE,
|
||||||
@ -403,47 +630,47 @@ typedef enum {
|
|||||||
FLAG_GS_TOKEN,
|
FLAG_GS_TOKEN,
|
||||||
} FlagType;
|
} FlagType;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct PendingFlag {
|
||||||
/* 0x00 */ s32 flagID; // which flag to set when Player_SetPendingFlag is called
|
/* 0x00 */ s32 flagID; // which flag to set when Player_SetPendingFlag is called
|
||||||
/* 0x04 */ FlagType flagType; // type of flag to set when Player_SetPendingFlag is called
|
/* 0x04 */ FlagType flagType; // type of flag to set when Player_SetPendingFlag is called
|
||||||
} PendingFlag; // size = 0x06
|
} PendingFlag; // size = 0x06
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
#define PLAYER_STATE1_LOADING (1 << 0) //Transitioning to a new scene
|
#define PLAYER_STATE1_LOADING (1 << 0) //Transitioning to a new scene
|
||||||
#define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1)
|
#define PLAYER_STATE1_SWINGING_BOTTLE (1 << 1) // Bottle is swung; Bottle is active and can catch things
|
||||||
#define PLAYER_STATE1_HOOKSHOT_FALLING (1 << 2)
|
#define PLAYER_STATE1_HOOKSHOT_FALLING (1 << 2)
|
||||||
#define PLAYER_STATE1_ITEM_IN_HAND (1 << 3)
|
#define PLAYER_STATE1_ITEM_IN_HAND (1 << 3)
|
||||||
#define PLAYER_STATE1_ENEMY_TARGET (1 << 4)
|
#define PLAYER_STATE1_HOSTILE_LOCK_ON (1 << 4) // Currently locked onto a hostile actor. Triggers a "battle" variant of many actions.
|
||||||
#define PLAYER_STATE1_INPUT_DISABLED (1 << 5)
|
#define PLAYER_STATE1_INPUT_DISABLED (1 << 5)
|
||||||
#define PLAYER_STATE1_TEXT_ON_SCREEN (1 << 6)
|
#define PLAYER_STATE1_TALKING (1 << 6) // Currently talking to an actor. This includes item exchanges.
|
||||||
#define PLAYER_STATE1_DEAD (1 << 7)
|
#define PLAYER_STATE1_DEAD (1 << 7) // Player has died. Note that this gets set when the death cutscene has started, after landing from the air.
|
||||||
#define PLAYER_STATE1_START_PUTAWAY (1 << 8)
|
#define PLAYER_STATE1_START_CHANGING_HELD_ITEM (1 << 8) // Item change process has begun
|
||||||
#define PLAYER_STATE1_READY_TO_FIRE (1 << 9)
|
#define PLAYER_STATE1_READY_TO_FIRE (1 << 9)
|
||||||
#define PLAYER_STATE1_GETTING_ITEM (1 << 10)
|
#define PLAYER_STATE1_GETTING_ITEM (1 << 10)
|
||||||
#define PLAYER_STATE1_ITEM_OVER_HEAD (1 << 11)
|
#define PLAYER_STATE1_CARRYING_ACTOR (1 << 11) // Currently carrying an actor
|
||||||
#define PLAYER_STATE1_CHARGING_SPIN_ATTACK (1 << 12)
|
#define PLAYER_STATE1_CHARGING_SPIN_ATTACK (1 << 12) // Currently charing a spin attack (by holding down the B button)
|
||||||
#define PLAYER_STATE1_HANGING_OFF_LEDGE (1 << 13)
|
#define PLAYER_STATE1_HANGING_OFF_LEDGE (1 << 13)
|
||||||
#define PLAYER_STATE1_CLIMBING_LEDGE (1 << 14)
|
#define PLAYER_STATE1_CLIMBING_LEDGE (1 << 14)
|
||||||
#define PLAYER_STATE1_TARGETING (1 << 15)
|
#define PLAYER_STATE1_Z_TARGETING (1 << 15) // Either lock-on or parallel is active. This flag is never checked for and is practically unused.
|
||||||
#define PLAYER_STATE1_TARGET_LOCKED (1 << 16)
|
#define PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS (1 << 16) // Currently focusing on a friendly actor. Includes friendly lock-on, talking, and more. Usually does not include hostile actor lock-on, see `PLAYER_STATE1_HOSTILE_LOCK_ON`.
|
||||||
#define PLAYER_STATE1_TARGET_NOTHING (1 << 17)
|
#define PLAYER_STATE1_PARALLEL (1 << 17) // "Parallel" mode, Z-Target without an actor lock-on
|
||||||
#define PLAYER_STATE1_JUMPING (1 << 18)
|
#define PLAYER_STATE1_JUMPING (1 << 18)
|
||||||
#define PLAYER_STATE1_FREEFALL (1 << 19)
|
#define PLAYER_STATE1_FREEFALL (1 << 19)
|
||||||
#define PLAYER_STATE1_FIRST_PERSON (1 << 20)
|
#define PLAYER_STATE1_FIRST_PERSON (1 << 20)
|
||||||
#define PLAYER_STATE1_CLIMBING_LADDER (1 << 21)
|
#define PLAYER_STATE1_CLIMBING_LADDER (1 << 21)
|
||||||
#define PLAYER_STATE1_SHIELDING (1 << 22)
|
#define PLAYER_STATE1_SHIELDING (1 << 22)
|
||||||
#define PLAYER_STATE1_ON_HORSE (1 << 23)
|
#define PLAYER_STATE1_ON_HORSE (1 << 23)
|
||||||
#define PLAYER_STATE1_BOOMERANG_IN_HAND (1 << 24)
|
#define PLAYER_STATE1_USING_BOOMERANG (1 << 24) // Currently using the boomerang. This includes all phases (aiming, throwing, and catching).
|
||||||
#define PLAYER_STATE1_THREW_BOOMERANG (1 << 25)
|
#define PLAYER_STATE1_BOOMERANG_THROWN (1 << 25) // Boomerang has been thrown and is flying in the air
|
||||||
#define PLAYER_STATE1_DAMAGED (1 << 26)
|
#define PLAYER_STATE1_DAMAGED (1 << 26)
|
||||||
#define PLAYER_STATE1_IN_WATER (1 << 27)
|
#define PLAYER_STATE1_IN_WATER (1 << 27)
|
||||||
#define PLAYER_STATE1_IN_ITEM_CS (1 << 28)
|
#define PLAYER_STATE1_IN_ITEM_CS (1 << 28)
|
||||||
#define PLAYER_STATE1_IN_CUTSCENE (1 << 29)
|
#define PLAYER_STATE1_IN_CUTSCENE (1 << 29)
|
||||||
#define PLAYER_STATE1_30 (1 << 30) //Unknown, potentially target related?
|
#define PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE (1 << 30) // Lock-on was released automatically, for example by leaving the lock-on leash range
|
||||||
#define PLAYER_STATE1_FLOOR_DISABLED (1 << 31) //Used for grottos
|
#define PLAYER_STATE1_FLOOR_DISABLED (1 << 31) //Used for grottos
|
||||||
|
|
||||||
#define PLAYER_STATE2_DO_ACTION_GRAB (1 << 0)
|
#define PLAYER_STATE2_DO_ACTION_GRAB (1 << 0)
|
||||||
#define PLAYER_STATE2_SPEAK_OR_CHECK (1 << 1)
|
#define PLAYER_STATE2_CAN_ACCEPT_TALK_OFFER (1 << 1) // Can accept a talk offer. "Speak" or "Check" is shown on the A button.
|
||||||
#define PLAYER_STATE2_DO_ACTION_CLIMB (1 << 2)
|
#define PLAYER_STATE2_DO_ACTION_CLIMB (1 << 2)
|
||||||
#define PLAYER_STATE2_FOOTSTEP (1 << 3)
|
#define PLAYER_STATE2_FOOTSTEP (1 << 3)
|
||||||
#define PLAYER_STATE2_MOVING_DYNAPOLY (1 << 4)
|
#define PLAYER_STATE2_MOVING_DYNAPOLY (1 << 4)
|
||||||
@ -451,18 +678,18 @@ typedef struct {
|
|||||||
#define PLAYER_STATE2_DISABLE_ROTATION_ALWAYS (1 << 6)
|
#define PLAYER_STATE2_DISABLE_ROTATION_ALWAYS (1 << 6)
|
||||||
#define PLAYER_STATE2_GRABBED_BY_ENEMY (1 << 7)
|
#define PLAYER_STATE2_GRABBED_BY_ENEMY (1 << 7)
|
||||||
#define PLAYER_STATE2_GRABBING_DYNAPOLY (1 << 8)
|
#define PLAYER_STATE2_GRABBING_DYNAPOLY (1 << 8)
|
||||||
#define PLAYER_STATE2_SPAWN_DUST (1 << 9)
|
#define PLAYER_STATE2_FORCE_SAND_FLOOR_SOUND (1 << 9) // Forces sand footstep sounds regardless of current floor type
|
||||||
#define PLAYER_STATE2_UNDERWATER (1 << 10)
|
#define PLAYER_STATE2_UNDERWATER (1 << 10)
|
||||||
#define PLAYER_STATE2_DIVING (1 << 11)
|
#define PLAYER_STATE2_DIVING (1 << 11)
|
||||||
#define PLAYER_STATE2_STATIONARY_LADDER (1 << 12)
|
#define PLAYER_STATE2_STATIONARY_LADDER (1 << 12)
|
||||||
#define PLAYER_STATE2_SWITCH_TARGETING (1 << 13)
|
#define PLAYER_STATE2_LOCK_ON_WITH_SWITCH (1 << 13) // Actor lock-on is active, specifically with Switch Targeting. Hold Targeting checks the state of the Z button instead of this flag.
|
||||||
#define PLAYER_STATE2_FROZEN (1 << 14)
|
#define PLAYER_STATE2_FROZEN (1 << 14)
|
||||||
#define PLAYER_STATE2_PAUSE_MOST_UPDATING (1 << 15)
|
#define PLAYER_STATE2_PAUSE_MOST_UPDATING (1 << 15)
|
||||||
#define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Turns on the "Enter On A" DoAction
|
#define PLAYER_STATE2_DO_ACTION_ENTER (1 << 16) // Sets the "Enter On A" DoAction
|
||||||
#define PLAYER_STATE2_SPIN_ATTACKING (1 << 17) //w/o magic
|
#define PLAYER_STATE2_SPIN_ATTACKING (1 << 17) //w/o magic
|
||||||
#define PLAYER_STATE2_CRAWLING (1 << 18) // Crawling through a crawlspace
|
#define PLAYER_STATE2_CRAWLING (1 << 18) // Crawling through a crawlspace
|
||||||
#define PLAYER_STATE2_HOPPING (1 << 19) //Sidehop/backflip
|
#define PLAYER_STATE2_HOPPING (1 << 19) //Sidehop/backflip
|
||||||
#define PLAYER_STATE2_NAVI_OUT (1 << 20)
|
#define PLAYER_STATE2_NAVI_ACTIVE (1 << 20) // Navi is visible and active. Could be hovering idle near Link or hovering over other actors.
|
||||||
#define PLAYER_STATE2_NAVI_ALERT (1 << 21)
|
#define PLAYER_STATE2_NAVI_ALERT (1 << 21)
|
||||||
#define PLAYER_STATE2_DO_ACTION_DOWN (1 << 22)
|
#define PLAYER_STATE2_DO_ACTION_DOWN (1 << 22)
|
||||||
#define PLAYER_STATE2_NEAR_OCARINA_ACTOR (1 << 23)
|
#define PLAYER_STATE2_NEAR_OCARINA_ACTOR (1 << 23)
|
||||||
@ -470,7 +697,7 @@ typedef struct {
|
|||||||
#define PLAYER_STATE2_PLAY_FOR_ACTOR (1 << 25)
|
#define PLAYER_STATE2_PLAY_FOR_ACTOR (1 << 25)
|
||||||
#define PLAYER_STATE2_REFLECTION (1 << 26) //Handles Dark Link's Reflection
|
#define PLAYER_STATE2_REFLECTION (1 << 26) //Handles Dark Link's Reflection
|
||||||
#define PLAYER_STATE2_OCARINA_PLAYING (1 << 27)
|
#define PLAYER_STATE2_OCARINA_PLAYING (1 << 27)
|
||||||
#define PLAYER_STATE2_IDLING (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_DISABLE_DRAW (1 << 29)
|
#define PLAYER_STATE2_DISABLE_DRAW (1 << 29)
|
||||||
#define PLAYER_STATE2_SWORD_LUNGE (1 << 30)
|
#define PLAYER_STATE2_SWORD_LUNGE (1 << 30)
|
||||||
#define PLAYER_STATE2_FORCED_VOID_OUT (1 << 31)
|
#define PLAYER_STATE2_FORCED_VOID_OUT (1 << 31)
|
||||||
@ -480,13 +707,23 @@ typedef struct {
|
|||||||
#define PLAYER_STATE3_PAUSE_ACTION_FUNC (1 << 2)
|
#define PLAYER_STATE3_PAUSE_ACTION_FUNC (1 << 2)
|
||||||
#define PLAYER_STATE3_FINISHED_ATTACKING (1 << 3)
|
#define PLAYER_STATE3_FINISHED_ATTACKING (1 << 3)
|
||||||
#define PLAYER_STATE3_CHECK_FLOOR_WATER_COLLISION (1 << 4)
|
#define PLAYER_STATE3_CHECK_FLOOR_WATER_COLLISION (1 << 4)
|
||||||
#define PLAYER_STATE3_FORCE_PULL_OCARINA (1 << 5)
|
#define PLAYER_STATE3_FORCE_PULL_OCARINA (1 << 5)
|
||||||
#define PLAYER_STATE3_RESTORE_NAYRUS_LOVE (1 << 6) // Set by ocarina effects actors when destroyed to signal Nayru's Love may be restored (see `ACTOROVL_ALLOC_ABSOLUTE`)
|
#define PLAYER_STATE3_RESTORE_NAYRUS_LOVE (1 << 6) // Set by ocarina effects actors when destroyed to signal Nayru's Love may be restored (see `ACTOROVL_ALLOC_ABSOLUTE`)
|
||||||
#define PLAYER_STATE3_HOOKSHOT_TRAVELLING (1 << 7) //Travelling to target
|
#define PLAYER_STATE3_FLYING_WITH_HOOKSHOT (1 << 7) // Flying in the air with the hookshot as it pulls Player toward its destination
|
||||||
|
|
||||||
typedef void (*PlayerActionFunc)(struct Player*, struct PlayState*);
|
typedef void (*PlayerActionFunc)(struct Player*, struct PlayState*);
|
||||||
typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*);
|
typedef s32 (*UpperActionFunc)(struct Player*, struct PlayState*);
|
||||||
typedef void (*PlayerFuncA74)(struct PlayState*, struct Player*);
|
typedef void (*AfterPutAwayFunc)(struct PlayState*, struct Player*);
|
||||||
|
|
||||||
|
#define UNK6AE_ROT_FOCUS_X (1 << 0)
|
||||||
|
#define UNK6AE_ROT_FOCUS_Y (1 << 1)
|
||||||
|
#define UNK6AE_ROT_FOCUS_Z (1 << 2)
|
||||||
|
#define UNK6AE_ROT_HEAD_X (1 << 3)
|
||||||
|
#define UNK6AE_ROT_HEAD_Y (1 << 4)
|
||||||
|
#define UNK6AE_ROT_HEAD_Z (1 << 5)
|
||||||
|
#define UNK6AE_ROT_UPPER_X (1 << 6)
|
||||||
|
#define UNK6AE_ROT_UPPER_Y (1 << 7)
|
||||||
|
#define UNK6AE_ROT_UPPER_Z (1 << 8)
|
||||||
|
|
||||||
typedef struct Player {
|
typedef struct Player {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
@ -547,71 +784,76 @@ typedef struct Player {
|
|||||||
/* 0x0450 */ Vec3f unk_450;
|
/* 0x0450 */ Vec3f unk_450;
|
||||||
/* 0x045C */ Vec3f unk_45C;
|
/* 0x045C */ Vec3f unk_45C;
|
||||||
/* 0x0468 */ char unk_468[0x002];
|
/* 0x0468 */ char unk_468[0x002];
|
||||||
/* 0x046A */ s16 doorBgCamIndex;
|
/* 0x046A */ union {
|
||||||
|
s16 haltActorsDuringCsAction; // If true, halt actors belonging to certain categories during a `csAction`
|
||||||
|
s16 slidingDoorBgCamIndex; // `BgCamIndex` used during a sliding door cutscene
|
||||||
|
} cv; // "Cutscene Variable": context dependent variable that has different meanings depending on what function is called
|
||||||
/* 0x046C */ s16 subCamId;
|
/* 0x046C */ s16 subCamId;
|
||||||
/* 0x046E */ char unk_46E[0x02A];
|
/* 0x046E */ char unk_46E[0x02A];
|
||||||
/* 0x0498 */ ColliderCylinder cylinder;
|
/* 0x0498 */ ColliderCylinder cylinder;
|
||||||
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
/* 0x04E4 */ ColliderQuad meleeWeaponQuads[2];
|
||||||
/* 0x05E4 */ ColliderQuad shieldQuad;
|
/* 0x05E4 */ ColliderQuad shieldQuad;
|
||||||
/* 0x0664 */ Actor* unk_664;
|
/* 0x0664 */ Actor* focusActor; // Actor that Player and the camera are looking at; Used for lock-on, talking, and more
|
||||||
/* 0x0668 */ char unk_668[0x004];
|
/* 0x0668 */ char unk_668[0x004];
|
||||||
/* 0x066C */ s32 unk_66C;
|
/* 0x066C */ s32 zTargetActiveTimer; // Non-zero values indicate Z-Targeting should update; Values under 5 indicate lock-on is releasing
|
||||||
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
/* 0x0670 */ s32 meleeWeaponEffectIndex;
|
||||||
/* 0x0674 */ PlayerActionFunc actionFunc;
|
/* 0x0674 */ PlayerActionFunc actionFunc;
|
||||||
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
/* 0x0678 */ PlayerAgeProperties* ageProperties;
|
||||||
/* 0x067C */ u32 stateFlags1;
|
/* 0x067C */ u32 stateFlags1;
|
||||||
/* 0x0680 */ u32 stateFlags2;
|
/* 0x0680 */ u32 stateFlags2;
|
||||||
/* 0x0684 */ Actor* unk_684;
|
/* 0x0684 */ Actor* autoLockOnActor; // Actor that is locked onto automatically without player input; see `Player_SetAutoLockOnActor`
|
||||||
/* 0x0688 */ Actor* boomerangActor;
|
/* 0x0688 */ Actor* boomerangActor;
|
||||||
/* 0x068C */ Actor* naviActor;
|
/* 0x068C */ Actor* naviActor;
|
||||||
/* 0x0690 */ s16 naviTextId;
|
/* 0x0690 */ s16 naviTextId;
|
||||||
/* 0x0692 */ u8 stateFlags3;
|
/* 0x0692 */ u8 stateFlags3;
|
||||||
/* 0x0693 */ s8 exchangeItemId;
|
/* 0x0693 */ s8 exchangeItemId;
|
||||||
/* 0x0694 */ Actor* targetActor;
|
/* 0x0694 */ Actor* talkActor; // Actor offering to talk, or currently talking to, depending on context
|
||||||
/* 0x0698 */ f32 targetActorDistance;
|
/* 0x0698 */ f32 talkActorDistance; // xz distance away from `talkActor`
|
||||||
/* 0x069C */ char unk_69C[0x004];
|
/* 0x069C */ char unk_69C[0x004];
|
||||||
/* 0x06A0 */ f32 unk_6A0;
|
/* 0x06A0 */ f32 unk_6A0;
|
||||||
/* 0x06A4 */ f32 closestSecretDistSq;
|
/* 0x06A4 */ f32 closestSecretDistSq;
|
||||||
/* 0x06A8 */ Actor* unk_6A8;
|
/* 0x06A8 */ Actor* unk_6A8;
|
||||||
/* 0x06AC */ s8 unk_6AC;
|
/* 0x06AC */ s8 idleType;
|
||||||
/* 0x06AD */ u8 unk_6AD;
|
/* 0x06AD */ u8 unk_6AD;
|
||||||
/* 0x06AE */ u16 unk_6AE;
|
/* 0x06AE */ u16 unk_6AE_rotFlags; // See `UNK6AE_ROT_` macros. If its flag isn't set, a rot steps to 0.
|
||||||
/* 0x06B0 */ s16 unk_6B0;
|
/* 0x06B0 */ s16 upperLimbYawSecondary;
|
||||||
/* 0x06B2 */ char unk_6B4[0x004];
|
/* 0x06B2 */ char unk_6B4[0x004];
|
||||||
/* 0x06B6 */ s16 unk_6B6;
|
/* 0x06B6 */ Vec3s headLimbRot;
|
||||||
/* 0x06B8 */ s16 unk_6B8;
|
/* 0x06BC */ Vec3s upperLimbRot;
|
||||||
/* 0x06BA */ s16 unk_6BA;
|
|
||||||
/* 0x06BC */ s16 unk_6BC;
|
|
||||||
/* 0x06BE */ s16 unk_6BE;
|
|
||||||
/* 0x06C0 */ s16 unk_6C0;
|
|
||||||
/* 0x06C2 */ s16 unk_6C2;
|
/* 0x06C2 */ s16 unk_6C2;
|
||||||
/* 0x06C4 */ f32 unk_6C4;
|
/* 0x06C4 */ f32 unk_6C4;
|
||||||
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
/* 0x06C8 */ SkelAnime upperSkelAnime;
|
||||||
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x070C */ Vec3s upperJointTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
/* 0x079C */ Vec3s upperMorphTable[PLAYER_LIMB_BUF_COUNT];
|
||||||
/* 0x082C */ UpperActionFunc upperActionFunc;
|
/* 0x082C */ UpperActionFunc upperActionFunc;
|
||||||
/* 0x0830 */ f32 upperAnimBlendWeight;
|
/* 0x0830 */ f32 upperAnimInterpWeight;
|
||||||
/* 0x0834 */ s16 unk_834;
|
/* 0x0834 */ s16 unk_834;
|
||||||
/* 0x0836 */ s8 unk_836;
|
/* 0x0836 */ s8 unk_836;
|
||||||
/* 0x0837 */ u8 unk_837;
|
/* 0x0837 */ u8 putAwayCooldownTimer;
|
||||||
/* 0x0838 */ f32 linearVelocity;
|
/* 0x0838 */ f32 linearVelocity; // Controls horizontal speed, used for `actor.speed`. Current or target value depending on context.
|
||||||
/* 0x083C */ s16 yaw; // General yaw value, used both for world and shape rotation. Current or target value depending on context.
|
/* 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
|
/* 0x083E */ s16 parallelYaw; // yaw in "parallel" mode, Z-Target without an actor lock-on
|
||||||
/* 0x0840 */ u16 underwaterTimer;
|
/* 0x0840 */ u16 underwaterTimer;
|
||||||
/* 0x0842 */ s8 meleeWeaponAnimation;
|
/* 0x0842 */ s8 meleeWeaponAnimation;
|
||||||
/* 0x0843 */ s8 meleeWeaponState;
|
/* 0x0843 */ s8 meleeWeaponState;
|
||||||
/* 0x0844 */ s8 unk_844;
|
/* 0x0844 */ s8 unk_844;
|
||||||
/* 0x0845 */ u8 unk_845;
|
/* 0x0845 */ u8 unk_845;
|
||||||
/* 0x0846 */ u8 unk_846;
|
/* 0x0846 */ u8 controlStickDataIndex; // cycles between 0 - 3. Used to index `controlStickSpinAngles` and `controlStickDirections`
|
||||||
/* 0x0847 */ s8 unk_847[4];
|
/* 0x0847 */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins.
|
||||||
/* 0x084B */ s8 unk_84B[4];
|
/* 0x084B */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`.
|
||||||
|
|
||||||
/* 0x084F */ union {
|
/* 0x084F */ union {
|
||||||
s8 actionVar1;
|
s8 actionVar1;
|
||||||
|
s8 facingUpSlope; // Player_Action_SlideOnSlope: facing uphill when sliding on a slope
|
||||||
|
s8 bottleCatchType; // Player_Action_SwingBottle: entry type for `sBottleCatchInfo`, corresponds to actor caught in a bottle
|
||||||
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
|
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
|
||||||
|
|
||||||
/* 0x0850 */ union {
|
/* 0x0850 */ union {
|
||||||
s16 actionVar2;
|
s16 actionVar2;
|
||||||
|
s16 fallDamageStunTimer; // Player_Action_Idle: Prevents any movement and shakes model up and down quickly to indicate fall damage stun
|
||||||
|
s16 bonked; // Player_Action_Roll: set to true after bonking into a wall or an actor
|
||||||
|
s16 startedTextbox; // Player_Action_SwingBottle: set to true when the textbox is started
|
||||||
|
s16 inWater; // Player_Action_SwingBottle: true if a bottle is swung in water. Used to determine which bottle swing animation to use.
|
||||||
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
|
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
|
||||||
|
|
||||||
/* 0x0854 */ f32 unk_854;
|
/* 0x0854 */ f32 unk_854;
|
||||||
@ -626,14 +868,14 @@ typedef struct Player {
|
|||||||
/* 0x0874 */ f32 unk_874;
|
/* 0x0874 */ f32 unk_874;
|
||||||
/* 0x0878 */ f32 unk_878;
|
/* 0x0878 */ f32 unk_878;
|
||||||
/* 0x087C */ s16 unk_87C;
|
/* 0x087C */ s16 unk_87C;
|
||||||
/* 0x087E */ s16 unk_87E;
|
/* 0x087E */ s16 turnRate; // Amount angle is changed every frame when turning in place
|
||||||
/* 0x0880 */ f32 unk_880;
|
/* 0x0880 */ f32 unk_880;
|
||||||
/* 0x0884 */ f32 yDistToLedge; // y distance to ground above an interact wall. LEDGE_DIST_MAX if no ground is found
|
/* 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
|
/* 0x0888 */ f32 distToInteractWall; // xyz distance to the interact wall
|
||||||
/* 0x088C */ u8 ledgeClimbType;
|
/* 0x088C */ u8 ledgeClimbType;
|
||||||
/* 0x088D */ u8 ledgeClimbDelayTimer;
|
/* 0x088D */ u8 ledgeClimbDelayTimer;
|
||||||
/* 0x088E */ u8 unk_88E;
|
/* 0x088E */ u8 textboxBtnCooldownTimer; // Prevents usage of A/B/C-up when counting down
|
||||||
/* 0x088F */ u8 unk_88F;
|
/* 0x088F */ u8 damageFlickerAnimCounter; // Used to flicker Link after taking damage
|
||||||
/* 0x0890 */ u8 unk_890;
|
/* 0x0890 */ u8 unk_890;
|
||||||
/* 0x0891 */ u8 bodyShockTimer;
|
/* 0x0891 */ u8 bodyShockTimer;
|
||||||
/* 0x0892 */ u8 unk_892;
|
/* 0x0892 */ u8 unk_892;
|
||||||
@ -644,11 +886,11 @@ typedef struct Player {
|
|||||||
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
/* 0x089A */ s16 floorPitchAlt; // the calculation for this value is bugged and doesn't represent anything meaningful
|
||||||
/* 0x089C */ s16 unk_89C;
|
/* 0x089C */ s16 unk_89C;
|
||||||
/* 0x089E */ u16 floorSfxOffset;
|
/* 0x089E */ u16 floorSfxOffset;
|
||||||
/* 0x08A0 */ u8 unk_8A0;
|
/* 0x08A0 */ u8 knockbackDamage;
|
||||||
/* 0x08A1 */ u8 unk_8A1;
|
/* 0x08A1 */ u8 knockbackType;
|
||||||
/* 0x08A2 */ s16 unk_8A2;
|
/* 0x08A2 */ s16 knockbackRot;
|
||||||
/* 0x08A4 */ f32 unk_8A4;
|
/* 0x08A4 */ f32 knockbackSpeed;
|
||||||
/* 0x08A8 */ f32 unk_8A8;
|
/* 0x08A8 */ f32 knockbackYVelocity;
|
||||||
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
/* 0x08AC */ f32 pushedSpeed; // Pushing player, examples include water currents, floor conveyors, climbing sloped surfaces
|
||||||
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
/* 0x08B0 */ s16 pushedYaw; // Yaw direction of player being pushed
|
||||||
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
/* 0x08B4 */ WeaponInfo meleeWeaponInfo[3];
|
||||||
@ -658,8 +900,8 @@ typedef struct Player {
|
|||||||
/* 0x0A60 */ u8 bodyIsBurning;
|
/* 0x0A60 */ u8 bodyIsBurning;
|
||||||
/* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
/* 0x0A61 */ u8 bodyFlameTimers[PLAYER_BODYPART_MAX]; // one flame per body part
|
||||||
/* 0x0A73 */ u8 unk_A73;
|
/* 0x0A73 */ u8 unk_A73;
|
||||||
/* 0x0A74 */ PlayerFuncA74 func_A74;
|
/* 0x0A74 */ AfterPutAwayFunc afterPutAwayFunc; // See `Player_SetupWaitForPutAway` and `Player_Action_WaitForPutAway`
|
||||||
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero (positive = visible, counts towards zero each frame)
|
/* 0x0A78 */ s8 invincibilityTimer; // prevents damage when nonzero. Positive values are intangibility, negative are invulnerability
|
||||||
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
/* 0x0A79 */ u8 floorTypeTimer; // counts up every frame the current floor type is the same as the last frame
|
||||||
/* 0x0A7A */ u8 floorProperty;
|
/* 0x0A7A */ u8 floorProperty;
|
||||||
/* 0x0A7B */ u8 prevFloorType;
|
/* 0x0A7B */ u8 prevFloorType;
|
||||||
@ -678,9 +920,9 @@ typedef struct Player {
|
|||||||
// #region SOH [Enhancements]
|
// #region SOH [Enhancements]
|
||||||
// Upstream TODO: Rename this to make it more obvious it is apart of an enhancement
|
// 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?
|
||||||
|
/* */ u8 ivanFloating;
|
||||||
|
/* */ u8 ivanDamageMultiplier;
|
||||||
// #endregion
|
// #endregion
|
||||||
u8 ivanFloating;
|
|
||||||
u8 ivanDamageMultiplier;
|
|
||||||
} Player; // size = 0xA94
|
} Player; // size = 0xA94
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1060,7 +1060,7 @@ void ActorViewerWindow::DrawElement() {
|
|||||||
|
|
||||||
if (ImGui::Button("Fetch from Target")) {
|
if (ImGui::Button("Fetch from Target")) {
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
fetch = player->targetActor;
|
fetch = player->talkActor;
|
||||||
if (fetch != NULL) {
|
if (fetch != NULL) {
|
||||||
display = fetch;
|
display = fetch;
|
||||||
category = fetch->category;
|
category = fetch->category;
|
||||||
|
@ -613,8 +613,8 @@ void DrawFlagsTab() {
|
|||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
||||||
DrawGroupWithBorder([&]() {
|
DrawGroupWithBorder([&]() {
|
||||||
ImGui::Text("unk_6AE");
|
ImGui::Text("unk_6AE_rotFlags");
|
||||||
UIWidgets::DrawFlagArray16("unk_6AE", player->unk_6AE);
|
UIWidgets::DrawFlagArray16("unk_6AE_rotFlags", player->unk_6AE_rotFlags);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
|
@ -50,8 +50,8 @@ extern "C" {
|
|||||||
extern SaveContext gSaveContext;
|
extern SaveContext gSaveContext;
|
||||||
extern PlayState* gPlayState;
|
extern PlayState* gPlayState;
|
||||||
extern void func_8084DFAC(PlayState* play, Player* player);
|
extern void func_8084DFAC(PlayState* play, Player* player);
|
||||||
extern void func_80835DAC(PlayState* play, Player* player, PlayerActionFunc actionFunc, s32 flags);
|
extern void Player_SetupActionPreserveAnimMovement(PlayState* play, Player* player, PlayerActionFunc actionFunc, s32 flags);
|
||||||
extern s32 func_80836898(PlayState* play, Player* player, PlayerFuncA74 func);
|
extern s32 Player_SetupWaitForPutAway(PlayState* play, Player* player, AfterPutAwayFunc func);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define RAND_GET_OPTION(option) Rando::Context::GetInstance()->GetOption(option).GetSelectedOptionIndex()
|
#define RAND_GET_OPTION(option) Rando::Context::GetInstance()->GetOption(option).GetSelectedOptionIndex()
|
||||||
@ -252,7 +252,7 @@ void RandomizerOnPlayerUpdateForRCQueueHandler() {
|
|||||||
|
|
||||||
// If we're in a cutscene, don't queue
|
// If we're in a cutscene, don't queue
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
if (Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ void RandomizerOnPlayerUpdateForItemQueueHandler() {
|
|||||||
if (randomizerQueuedCheck == RC_UNKNOWN_CHECK) return;
|
if (randomizerQueuedCheck == RC_UNKNOWN_CHECK) return;
|
||||||
|
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -306,7 +306,7 @@ void RandomizerOnPlayerUpdateForItemQueueHandler() {
|
|||||||
if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
|
if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
|
||||||
// Allow the player to receive the item while swimming
|
// Allow the player to receive the item while swimming
|
||||||
player->stateFlags2 |= PLAYER_STATE2_UNDERWATER;
|
player->stateFlags2 |= PLAYER_STATE2_UNDERWATER;
|
||||||
Player_ActionChange_2(player, gPlayState);
|
Player_ActionHandler_2(player, gPlayState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,7 +342,7 @@ void RandomizerOnItemReceiveHandler(GetItemEntry receivedItemEntry) {
|
|||||||
static uint32_t updateHook;
|
static uint32_t updateHook;
|
||||||
updateHook = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnPlayerUpdate>([]() {
|
updateHook = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnPlayerUpdate>([]() {
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -604,7 +604,7 @@ void Player_Action_8084E6D4_override(Player* player, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8083A434_override(PlayState* play, Player* player) {
|
void func_8083A434_override(PlayState* play, Player* player) {
|
||||||
func_80835DAC(play, player, Player_Action_8084E6D4_override, 0);
|
Player_SetupActionPreserveAnimMovement(play, player, Player_Action_8084E6D4_override, 0);
|
||||||
player->stateFlags1 |= PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_IN_CUTSCENE;
|
player->stateFlags1 |= PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_IN_CUTSCENE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,7 +643,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
|||||||
RandomizerSetChestGameRandomizerInf(rc);
|
RandomizerSetChestGameRandomizerInf(rc);
|
||||||
|
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
func_80836898(gPlayState, player, func_8083A434_override);
|
Player_SetupWaitForPutAway(gPlayState, player, func_8083A434_override);
|
||||||
|
|
||||||
*should = false;
|
*should = false;
|
||||||
break;
|
break;
|
||||||
|
@ -991,7 +991,7 @@ void TimeSaverOnPlayerUpdateHandler() {
|
|||||||
if (vanillaQueuedItemEntry.itemId == ITEM_NONE) return;
|
if (vanillaQueuedItemEntry.itemId == ITEM_NONE) return;
|
||||||
|
|
||||||
Player* player = GET_PLAYER(gPlayState);
|
Player* player = GET_PLAYER(gPlayState);
|
||||||
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (player == NULL || Player_InBlockingCsMode(gPlayState, player) || player->stateFlags1 & PLAYER_STATE1_IN_ITEM_CS || player->stateFlags1 & PLAYER_STATE1_GETTING_ITEM || player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1000,7 +1000,7 @@ void TimeSaverOnPlayerUpdateHandler() {
|
|||||||
if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
|
if (player->stateFlags1 & PLAYER_STATE1_IN_WATER) {
|
||||||
// Allow the player to receive the item while swimming
|
// Allow the player to receive the item while swimming
|
||||||
player->stateFlags2 |= PLAYER_STATE2_UNDERWATER;
|
player->stateFlags2 |= PLAYER_STATE2_UNDERWATER;
|
||||||
Player_ActionChange_2(player, gPlayState);
|
Player_ActionHandler_2(player, gPlayState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2588,7 +2588,7 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||||||
Player_GetMask(play) == PLAYER_MASK_TRUTH) ||
|
Player_GetMask(play) == PLAYER_MASK_TRUTH) ||
|
||||||
(Randomizer_GetSettingValue(RSK_GOSSIP_STONE_HINTS) == RO_GOSSIP_STONES_NEED_STONE && CHECK_QUEST_ITEM(QUEST_STONE_OF_AGONY)))) {
|
(Randomizer_GetSettingValue(RSK_GOSSIP_STONE_HINTS) == RO_GOSSIP_STONES_NEED_STONE && CHECK_QUEST_ITEM(QUEST_STONE_OF_AGONY)))) {
|
||||||
|
|
||||||
Actor* stone = GET_PLAYER(play)->targetActor;
|
Actor* stone = GET_PLAYER(play)->talkActor;
|
||||||
RandomizerHint stoneHint = RH_NONE;
|
RandomizerHint stoneHint = RH_NONE;
|
||||||
s16 hintParams = stone->params & 0xFF;
|
s16 hintParams = stone->params & 0xFF;
|
||||||
|
|
||||||
@ -2642,7 +2642,7 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(rc, TEXT_SHOP_ITEM_RANDOM_CONFIRM);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(rc, TEXT_SHOP_ITEM_RANDOM_CONFIRM);
|
||||||
// textId: TEXT_SCRUB_RANDOM + (randomizerInf - RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT)
|
// textId: TEXT_SCRUB_RANDOM + (randomizerInf - RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT)
|
||||||
} else if (textId == TEXT_SCRUB_RANDOM) {
|
} else if (textId == TEXT_SCRUB_RANDOM) {
|
||||||
EnDns* enDns = (EnDns*)GET_PLAYER(play)->targetActor;
|
EnDns* enDns = (EnDns*)GET_PLAYER(play)->talkActor;
|
||||||
RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromRandomizerInf((RandomizerInf)enDns->sohScrubIdentity.randomizerInf);
|
RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromRandomizerInf((RandomizerInf)enDns->sohScrubIdentity.randomizerInf);
|
||||||
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(rc, TEXT_SCRUB_RANDOM, TEXT_SCRUB_RANDOM_FREE, Randomizer_GetSettingValue(RSK_SCRUB_TEXT_HINT) == RO_GENERIC_OFF);
|
messageEntry = OTRGlobals::Instance->gRandomizer->GetMerchantMessage(rc, TEXT_SCRUB_RANDOM, TEXT_SCRUB_RANDOM_FREE, Randomizer_GetSettingValue(RSK_SCRUB_TEXT_HINT) == RO_GENERIC_OFF);
|
||||||
} else if (CVarGetInteger(CVAR_RANDOMIZER_ENHANCEMENT("RandomizeRupeeNames"), 1) &&
|
} else if (CVarGetInteger(CVAR_RANDOMIZER_ENHANCEMENT("RandomizeRupeeNames"), 1) &&
|
||||||
@ -2679,7 +2679,7 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||||||
else if (textId == TEXT_CARPET_SALESMAN_ARMS_DEALER){
|
else if (textId == TEXT_CARPET_SALESMAN_ARMS_DEALER){
|
||||||
messageEntry = CustomMessageManager::Instance->RetrieveMessage(Randomizer::merchantMessageTableID, textId, MF_AUTO_FORMAT);
|
messageEntry = CustomMessageManager::Instance->RetrieveMessage(Randomizer::merchantMessageTableID, textId, MF_AUTO_FORMAT);
|
||||||
} else if (textId == TEXT_SKULLTULA_PEOPLE_IM_CURSED) {
|
} else if (textId == TEXT_SKULLTULA_PEOPLE_IM_CURSED) {
|
||||||
actorParams = GET_PLAYER(play)->targetActor->params;
|
actorParams = GET_PLAYER(play)->talkActor->params;
|
||||||
if (actorParams == 1 && ctx->GetOption(RSK_KAK_10_SKULLS_HINT)){
|
if (actorParams == 1 && ctx->GetOption(RSK_KAK_10_SKULLS_HINT)){
|
||||||
messageEntry = ctx->GetHint(RH_KAK_10_SKULLS_HINT)->GetHintMessage(MF_AUTO_FORMAT);
|
messageEntry = ctx->GetHint(RH_KAK_10_SKULLS_HINT)->GetHintMessage(MF_AUTO_FORMAT);
|
||||||
} else if (actorParams == 2 && ctx->GetOption(RSK_KAK_20_SKULLS_HINT)){
|
} else if (actorParams == 2 && ctx->GetOption(RSK_KAK_20_SKULLS_HINT)){
|
||||||
|
@ -486,7 +486,7 @@ void func_8002C124(TargetContext* targetCtx, PlayState* play) {
|
|||||||
|
|
||||||
func_8002BE64(targetCtx, targetCtx->unk_4C, spBC.x, spBC.y, spBC.z);
|
func_8002BE64(targetCtx, targetCtx->unk_4C, spBC.x, spBC.y, spBC.z);
|
||||||
|
|
||||||
if ((!(player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN)) || (actor != player->unk_664)) {
|
if ((!(player->stateFlags1 & PLAYER_STATE1_TALKING)) || (actor != player->focusActor)) {
|
||||||
OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, 0x39);
|
OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, 0x39);
|
||||||
|
|
||||||
for (spB0 = 0, spAC = targetCtx->unk_4C; spB0 < spB8; spB0++, spAC = (spAC + 1) % 3) {
|
for (spB0 = 0, spAC = targetCtx->unk_4C; spB0 < spB8; spB0++, spAC = (spAC + 1) % 3) {
|
||||||
@ -564,7 +564,7 @@ void func_8002C7BC(TargetContext* targetCtx, Player* player, Actor* actorArg, Pl
|
|||||||
|
|
||||||
unkActor = NULL;
|
unkActor = NULL;
|
||||||
|
|
||||||
if ((player->unk_664 != NULL) && (player->unk_84B[player->unk_846] == 2)) {
|
if ((player->focusActor != NULL) && (player->controlStickDirections[player->controlStickDataIndex] == 2)) {
|
||||||
targetCtx->unk_94 = NULL;
|
targetCtx->unk_94 = NULL;
|
||||||
} else {
|
} else {
|
||||||
func_80032AF0(play, &play->actorCtx, &unkActor, player);
|
func_80032AF0(play, &play->actorCtx, &unkActor, player);
|
||||||
@ -1397,7 +1397,7 @@ s32 func_8002DD78(Player* player) {
|
|||||||
s32 func_8002DDA8(PlayState* play) {
|
s32 func_8002DDA8(PlayState* play) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
return (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) || func_8002DD78(player);
|
return (player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) || func_8002DD78(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_8002DDE4(PlayState* play) {
|
s32 func_8002DDE4(PlayState* play) {
|
||||||
@ -1448,7 +1448,7 @@ s32 func_8002DF38(PlayState* play, Actor* actor, u8 csAction) {
|
|||||||
|
|
||||||
player->csAction = csAction;
|
player->csAction = csAction;
|
||||||
player->csActor = actor;
|
player->csActor = actor;
|
||||||
player->doorBgCamIndex = 0;
|
player->cv.haltActorsDuringCsAction = false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1457,7 +1457,7 @@ s32 Player_SetCsActionWithHaltedActors(PlayState* play, Actor* actor, u8 csActio
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
func_8002DF38(play, actor, csAction);
|
func_8002DF38(play, actor, csAction);
|
||||||
player->doorBgCamIndex = 1;
|
player->cv.haltActorsDuringCsAction = true;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1854,7 +1854,7 @@ f32 func_8002EFC0(Actor* actor, Player* player, s16 arg2) {
|
|||||||
s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - arg2;
|
s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - arg2;
|
||||||
s16 yawTempAbs = ABS(yawTemp);
|
s16 yawTempAbs = ABS(yawTemp);
|
||||||
|
|
||||||
if (player->unk_664 != NULL) {
|
if (player->focusActor != NULL) {
|
||||||
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_NO_LOCKON)) {
|
if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_NO_LOCKON)) {
|
||||||
return FLT_MAX;
|
return FLT_MAX;
|
||||||
} else {
|
} else {
|
||||||
@ -1900,7 +1900,7 @@ s32 func_8002F0C8(Actor* actor, Player* player, s32 flag) {
|
|||||||
s16 abs_var = ABS(var);
|
s16 abs_var = ABS(var);
|
||||||
f32 dist;
|
f32 dist;
|
||||||
|
|
||||||
if ((player->unk_664 == NULL) && (abs_var > 0x2AAA)) {
|
if ((player->focusActor == NULL) && (abs_var > 0x2AAA)) {
|
||||||
dist = FLT_MAX;
|
dist = FLT_MAX;
|
||||||
} else {
|
} else {
|
||||||
dist = actor->xyzDistToPlayerSq;
|
dist = actor->xyzDistToPlayerSq;
|
||||||
@ -1927,13 +1927,13 @@ s32 func_8002F1C4(Actor* actor, PlayState* play, f32 arg2, f32 arg3, u32 exchang
|
|||||||
// This is convoluted but it seems like it must be a single if statement to match
|
// This is convoluted but it seems like it must be a single if statement to match
|
||||||
if ((player->actor.flags & ACTOR_FLAG_PLAYER_TALKED_TO) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
|
if ((player->actor.flags & ACTOR_FLAG_PLAYER_TALKED_TO) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) ||
|
||||||
(!actor->isTargeted &&
|
(!actor->isTargeted &&
|
||||||
((arg3 < fabsf(actor->yDistToPlayer)) || (player->targetActorDistance < actor->xzDistToPlayer) ||
|
((arg3 < fabsf(actor->yDistToPlayer)) || (player->talkActorDistance < actor->xzDistToPlayer) ||
|
||||||
(arg2 < actor->xzDistToPlayer)))) {
|
(arg2 < actor->xzDistToPlayer)))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
player->targetActor = actor;
|
player->talkActor = actor;
|
||||||
player->targetActorDistance = actor->xzDistToPlayer;
|
player->talkActorDistance = actor->xzDistToPlayer;
|
||||||
player->exchangeItemId = exchangeItemId;
|
player->exchangeItemId = exchangeItemId;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -2002,7 +2002,7 @@ s32 GiveItemEntryWithoutActor(PlayState* play, GetItemEntry getItemEntry) {
|
|||||||
Player_GetExplosiveHeld(player) < 0) {
|
Player_GetExplosiveHeld(player) < 0) {
|
||||||
if (((player->heldActor != NULL) && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX)) ||
|
if (((player->heldActor != NULL) && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX)) ||
|
||||||
(IS_RANDO && (getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))) ||
|
(IS_RANDO && (getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))) ||
|
||||||
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
|
(!(player->stateFlags1 & (PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_IN_CUTSCENE)))) {
|
||||||
if ((getItemEntry.getItemId != GI_NONE)) {
|
if ((getItemEntry.getItemId != GI_NONE)) {
|
||||||
player->getItemEntry = getItemEntry;
|
player->getItemEntry = getItemEntry;
|
||||||
player->getItemId = getItemEntry.getItemId;
|
player->getItemId = getItemEntry.getItemId;
|
||||||
@ -2039,10 +2039,10 @@ s32 GiveItemEntryFromActor(Actor* actor, PlayState* play, GetItemEntry getItemEn
|
|||||||
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
|
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
|
||||||
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
|
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
|
||||||
Player_GetExplosiveHeld(player) < 0) {
|
Player_GetExplosiveHeld(player) < 0) {
|
||||||
if ((((player->heldActor != NULL) || (actor == player->targetActor)) &&
|
if ((((player->heldActor != NULL) || (actor == player->talkActor)) &&
|
||||||
((!IS_RANDO && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX))) ||
|
((!IS_RANDO && ((getItemEntry.getItemId > GI_NONE) && (getItemEntry.getItemId < GI_MAX))) ||
|
||||||
(IS_RANDO && ((getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))))) ||
|
(IS_RANDO && ((getItemEntry.getItemId > RG_NONE) && (getItemEntry.getItemId < RG_MAX))))) ||
|
||||||
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
|
(!(player->stateFlags1 & (PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_IN_CUTSCENE)))) {
|
||||||
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
|
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
|
||||||
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
|
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
|
||||||
s32 absYawDiff = ABS(yawDiff);
|
s32 absYawDiff = ABS(yawDiff);
|
||||||
@ -2083,9 +2083,9 @@ s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange
|
|||||||
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
|
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE |
|
||||||
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
|
PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER)) &&
|
||||||
Player_GetExplosiveHeld(player) < 0) {
|
Player_GetExplosiveHeld(player) < 0) {
|
||||||
if ((((player->heldActor != NULL) || (actor == player->targetActor)) &&
|
if ((((player->heldActor != NULL) || (actor == player->talkActor)) &&
|
||||||
((!IS_RANDO && ((getItemId > GI_NONE) && (getItemId < GI_MAX))) || (IS_RANDO && ((getItemId > RG_NONE) && (getItemId < RG_MAX))))) ||
|
((!IS_RANDO && ((getItemId > GI_NONE) && (getItemId < GI_MAX))) || (IS_RANDO && ((getItemId > RG_NONE) && (getItemId < RG_MAX))))) ||
|
||||||
(!(player->stateFlags1 & (PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE)))) {
|
(!(player->stateFlags1 & (PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_IN_CUTSCENE)))) {
|
||||||
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
|
if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) {
|
||||||
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
|
s16 yawDiff = actor->yawTowardsPlayer - player->actor.shape.rot.y;
|
||||||
s32 absYawDiff = ABS(yawDiff);
|
s32 absYawDiff = ABS(yawDiff);
|
||||||
@ -2156,7 +2156,7 @@ u32 Actor_SetRideActor(PlayState* play, Actor* horse, s32 mountSide) {
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if (!(player->stateFlags1 &
|
if (!(player->stateFlags1 &
|
||||||
(PLAYER_STATE1_DEAD | PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE |
|
(PLAYER_STATE1_DEAD | PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_HANGING_OFF_LEDGE |
|
||||||
PLAYER_STATE1_CLIMBING_LEDGE | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER))) {
|
PLAYER_STATE1_CLIMBING_LEDGE | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_FIRST_PERSON | PLAYER_STATE1_CLIMBING_LADDER))) {
|
||||||
player->rideActor = horse;
|
player->rideActor = horse;
|
||||||
player->mountSide = mountSide;
|
player->mountSide = mountSide;
|
||||||
@ -2177,11 +2177,11 @@ s32 Actor_NotMounted(PlayState* play, Actor* horse) {
|
|||||||
void func_8002F698(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, u32 arg5, u32 arg6) {
|
void func_8002F698(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, u32 arg5, u32 arg6) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
player->unk_8A0 = arg6;
|
player->knockbackDamage = arg6;
|
||||||
player->unk_8A1 = arg5;
|
player->knockbackType = arg5;
|
||||||
player->unk_8A2 = arg3;
|
player->knockbackRot = arg3;
|
||||||
player->unk_8A4 = arg2;
|
player->knockbackSpeed = arg2;
|
||||||
player->unk_8A8 = arg4;
|
player->knockbackYVelocity = arg4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8002F6D4(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, u32 arg5) {
|
void func_8002F6D4(PlayState* play, Actor* actor, f32 arg2, s16 arg3, f32 arg4, u32 arg5) {
|
||||||
@ -2502,18 +2502,18 @@ void func_800304DC(PlayState* play, ActorContext* actorCtx, ActorEntry* actorEnt
|
|||||||
}
|
}
|
||||||
|
|
||||||
u32 D_80116068[ACTORCAT_MAX] = {
|
u32 D_80116068[ACTORCAT_MAX] = {
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
0,
|
0,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
PLAYER_STATE1_DEAD,
|
PLAYER_STATE1_DEAD,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
|
||||||
PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
0,
|
0,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
0,
|
0,
|
||||||
PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS,
|
||||||
};
|
};
|
||||||
|
|
||||||
void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
||||||
@ -2558,8 +2558,8 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
|||||||
unkFlag = ACTOR_FLAG_NO_FREEZE_OCARINA;
|
unkFlag = ACTOR_FLAG_NO_FREEZE_OCARINA;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN) && ((player->actor.textId & 0xFF00) != 0x600)) {
|
if ((player->stateFlags1 & PLAYER_STATE1_TALKING) && ((player->actor.textId & 0xFF00) != 0x600)) {
|
||||||
sp74 = player->targetActor;
|
sp74 = player->talkActor;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_COUNT(actorCtx->actorLists); i++, sp80++) {
|
for (i = 0; i < ARRAY_COUNT(actorCtx->actorLists); i++, sp80++) {
|
||||||
@ -2613,13 +2613,13 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
|||||||
actor->flags &= ~ACTOR_FLAG_PLAY_HIT_SFX;
|
actor->flags &= ~ACTOR_FLAG_PLAY_HIT_SFX;
|
||||||
|
|
||||||
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ACTIVE))) {
|
if ((DECR(actor->freezeTimer) == 0) && (actor->flags & (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ACTIVE))) {
|
||||||
if (actor == player->unk_664) {
|
if (actor == player->focusActor) {
|
||||||
actor->isTargeted = true;
|
actor->isTargeted = true;
|
||||||
} else {
|
} else {
|
||||||
actor->isTargeted = false;
|
actor->isTargeted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->targetPriority != 0) && (player->unk_664 == NULL)) {
|
if ((actor->targetPriority != 0) && (player->focusActor == NULL)) {
|
||||||
actor->targetPriority = 0;
|
actor->targetPriority = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2643,14 +2643,14 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
actor = player->unk_664;
|
actor = player->focusActor;
|
||||||
|
|
||||||
if ((actor != NULL) && (actor->update == NULL)) {
|
if ((actor != NULL) && (actor->update == NULL)) {
|
||||||
actor = NULL;
|
actor = NULL;
|
||||||
func_8008EDF0(player);
|
Player_ReleaseLockOn(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor == NULL) || (player->unk_66C < 5)) {
|
if ((actor == NULL) || (player->zTargetActiveTimer < 5)) {
|
||||||
actor = NULL;
|
actor = NULL;
|
||||||
if (actorCtx->targetCtx.unk_4B != 0) {
|
if (actorCtx->targetCtx.unk_4B != 0) {
|
||||||
actorCtx->targetCtx.unk_4B = 0;
|
actorCtx->targetCtx.unk_4B = 0;
|
||||||
@ -3429,8 +3429,8 @@ Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) {
|
|||||||
osSyncPrintf("アクタークラス削除 [%s]\n", dbEntry->name); // "Actor class deleted [%s]"
|
osSyncPrintf("アクタークラス削除 [%s]\n", dbEntry->name); // "Actor class deleted [%s]"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player != NULL) && (actor == player->unk_664)) {
|
if ((player != NULL) && (actor == player->focusActor)) {
|
||||||
func_8008EDF0(player);
|
Player_ReleaseLockOn(player);
|
||||||
Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), 0);
|
Camera_ChangeMode(Play_GetCamera(play, Play_GetActiveCamId(play)), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3484,7 +3484,7 @@ void func_800328D4(PlayState* play, ActorContext* actorCtx, Player* player, u32
|
|||||||
Vec3f sp70;
|
Vec3f sp70;
|
||||||
|
|
||||||
actor = actorCtx->actorLists[actorCategory].head;
|
actor = actorCtx->actorLists[actorCategory].head;
|
||||||
sp84 = player->unk_664;
|
sp84 = player->focusActor;
|
||||||
|
|
||||||
while (actor != NULL) {
|
while (actor != NULL) {
|
||||||
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE)) {
|
if ((actor->update != NULL) && ((Player*)actor != player) && CHECK_FLAG_ALL(actor->flags, ACTOR_FLAG_TARGETABLE)) {
|
||||||
@ -3985,7 +3985,7 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16
|
|||||||
s32 Actor_IsTargeted(PlayState* play, Actor* actor) {
|
s32 Actor_IsTargeted(PlayState* play, Actor* actor) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) && actor->isTargeted) {
|
if ((player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) && actor->isTargeted) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@ -3998,7 +3998,7 @@ s32 Actor_IsTargeted(PlayState* play, Actor* actor) {
|
|||||||
s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) {
|
s32 Actor_OtherIsTargeted(PlayState* play, Actor* actor) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) && !actor->isTargeted) {
|
if ((player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) && !actor->isTargeted) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -6182,7 +6182,7 @@ s32 Camera_Demo5(Camera* camera) {
|
|||||||
sp4A = playerhead.rot.y - playerTargetGeo.yaw;
|
sp4A = playerhead.rot.y - playerTargetGeo.yaw;
|
||||||
if (camera->target->category == ACTORCAT_PLAYER) {
|
if (camera->target->category == ACTORCAT_PLAYER) {
|
||||||
pad = camera->play->state.frames - sDemo5PrevAction12Frame;
|
pad = camera->play->state.frames - sDemo5PrevAction12Frame;
|
||||||
if (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
// holding object over head.
|
// holding object over head.
|
||||||
Player_SetCsActionWithHaltedActors(camera->play, camera->target, 8);
|
Player_SetCsActionWithHaltedActors(camera->play, camera->target, 8);
|
||||||
} else if (ABS(pad) > 3000) {
|
} else if (ABS(pad) > 3000) {
|
||||||
|
@ -4051,7 +4051,7 @@ void Interface_DrawEnemyHealthBar(TargetContext* targetCtx, PlayState* play) {
|
|||||||
Interface_CreateQuadVertexGroup(&sEnemyHealthVtx[12], -floorf(halfBarWidth) + endTexWidth, (-texHeight / 2) + 3,
|
Interface_CreateQuadVertexGroup(&sEnemyHealthVtx[12], -floorf(halfBarWidth) + endTexWidth, (-texHeight / 2) + 3,
|
||||||
healthBarFill, 7, 0);
|
healthBarFill, 7, 0);
|
||||||
|
|
||||||
if (((!(player->stateFlags1 & PLAYER_STATE1_TEXT_ON_SCREEN)) || (actor != player->unk_664)) && targetCtx->unk_44 < 500.0f) {
|
if (((!(player->stateFlags1 & PLAYER_STATE1_TALKING)) || (actor != player->focusActor)) && targetCtx->unk_44 < 500.0f) {
|
||||||
f32 slideInOffsetY = 0;
|
f32 slideInOffsetY = 0;
|
||||||
|
|
||||||
// Slide in the health bar from edge of the screen (mimic the Z-Target triangles fly in)
|
// Slide in the health bar from edge of the screen (mimic the Z-Target triangles fly in)
|
||||||
|
@ -34,73 +34,73 @@ s16 sBootData[PLAYER_BOOTS_MAX][17] = {
|
|||||||
|
|
||||||
// Used to map action params to model groups
|
// Used to map action params to model groups
|
||||||
u8 sActionModelGroups[] = {
|
u8 sActionModelGroups[] = {
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_NONE
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_NONE
|
||||||
PLAYER_MODELGROUP_15, // PLAYER_IA_LAST_USED
|
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_CS
|
||||||
PLAYER_MODELGROUP_10, // PLAYER_IA_FISHING_POLE
|
PLAYER_MODELGROUP_10, // PLAYER_IA_FISHING_POLE
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_MASTER
|
PLAYER_MODELGROUP_SWORD_AND_SHIELD, // PLAYER_IA_SWORD_MASTER
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_IA_SWORD_KOKIRI
|
PLAYER_MODELGROUP_SWORD_AND_SHIELD, // PLAYER_IA_SWORD_KOKIRI
|
||||||
PLAYER_MODELGROUP_BGS, // PLAYER_IA_SWORD_BIGGORON
|
PLAYER_MODELGROUP_BGS, // PLAYER_IA_SWORD_BIGGORON
|
||||||
PLAYER_MODELGROUP_10, // PLAYER_IA_DEKU_STICK
|
PLAYER_MODELGROUP_10, // PLAYER_IA_DEKU_STICK
|
||||||
PLAYER_MODELGROUP_HAMMER, // PLAYER_IA_HAMMER
|
PLAYER_MODELGROUP_HAMMER, // PLAYER_IA_HAMMER
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_FIRE
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_FIRE
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_ICE
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_ICE
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_LIGHT
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_LIGHT
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0C
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0C
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0D
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0D
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0E
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_BOW_0E
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_SLINGSHOT
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_SLINGSHOT
|
||||||
PLAYER_MODELGROUP_HOOKSHOT, // PLAYER_IA_HOOKSHOT
|
PLAYER_MODELGROUP_HOOKSHOT, // PLAYER_IA_HOOKSHOT
|
||||||
PLAYER_MODELGROUP_HOOKSHOT, // PLAYER_IA_LONGSHOT
|
PLAYER_MODELGROUP_HOOKSHOT, // PLAYER_IA_LONGSHOT
|
||||||
PLAYER_MODELGROUP_EXPLOSIVES, // PLAYER_IA_BOMB
|
PLAYER_MODELGROUP_EXPLOSIVES, // PLAYER_IA_BOMB
|
||||||
PLAYER_MODELGROUP_EXPLOSIVES, // PLAYER_IA_BOMBCHU
|
PLAYER_MODELGROUP_EXPLOSIVES, // PLAYER_IA_BOMBCHU
|
||||||
PLAYER_MODELGROUP_BOOMERANG, // PLAYER_IA_BOOMERANG
|
PLAYER_MODELGROUP_BOOMERANG, // PLAYER_IA_BOOMERANG
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_SPELL_15
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_SPELL_15
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_SPELL_16
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_SPELL_16
|
||||||
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_MAGIC_SPELL_17
|
PLAYER_MODELGROUP_BOW_SLINGSHOT, // PLAYER_IA_MAGIC_SPELL_17
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_FARORES_WIND
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_FARORES_WIND
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_NAYRUS_LOVE
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_NAYRUS_LOVE
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_DINS_FIRE
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_DINS_FIRE
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_DEKU_NUT
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_DEKU_NUT
|
||||||
PLAYER_MODELGROUP_OCARINA, // PLAYER_IA_OCARINA_FAIRY
|
PLAYER_MODELGROUP_OCARINA, // PLAYER_IA_OCARINA_FAIRY
|
||||||
PLAYER_MODELGROUP_OOT, // PLAYER_IA_OCARINA_OF_TIME
|
PLAYER_MODELGROUP_OOT, // PLAYER_IA_OCARINA_OF_TIME
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FISH
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FISH
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FIRE
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FIRE
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_BUG
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_BUG
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POE
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POE
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_BIG_POE
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_BIG_POE
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_RUTOS_LETTER
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_RUTOS_LETTER
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_RED
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_RED
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_BLUE
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_BLUE
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_GREEN
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_POTION_GREEN
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_MILK_FULL
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_MILK_FULL
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_MILK_HALF
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_MILK_HALF
|
||||||
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FAIRY
|
PLAYER_MODELGROUP_BOTTLE, // PLAYER_IA_BOTTLE_FAIRY
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ZELDAS_LETTER
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ZELDAS_LETTER
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_WEIRD_EGG
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_WEIRD_EGG
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_CHICKEN
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_CHICKEN
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_BEAN
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MAGIC_BEAN
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POCKET_EGG
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POCKET_EGG
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POCKET_CUCCO
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POCKET_CUCCO
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_COJIRO
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_COJIRO
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ODD_MUSHROOM
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ODD_MUSHROOM
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ODD_POTION
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_ODD_POTION
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POACHERS_SAW
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_POACHERS_SAW
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_BROKEN_GORONS_SWORD
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_BROKEN_GORONS_SWORD
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_PRESCRIPTION
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_PRESCRIPTION
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_FROG
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_FROG
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_EYEDROPS
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_EYEDROPS
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_CLAIM_CHECK
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_CLAIM_CHECK
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_KEATON
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_KEATON
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_SKULL
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_SKULL
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_SPOOKY
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_SPOOKY
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_BUNNY_HOOD
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_BUNNY_HOOD
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_GORON
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_GORON
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_ZORA
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_ZORA
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_GERUDO
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_GERUDO
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_TRUTH
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_MASK_TRUTH
|
||||||
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_LENS_OF_TRUTH
|
PLAYER_MODELGROUP_DEFAULT, // PLAYER_IA_LENS_OF_TRUTH
|
||||||
};
|
};
|
||||||
|
|
||||||
TextTriggerEntry sTextTriggers[] = {
|
TextTriggerEntry sTextTriggers[] = {
|
||||||
@ -128,7 +128,7 @@ u8 gPlayerModelTypes[PLAYER_MODELGROUP_MAX][PLAYER_MODELGROUPENTRY_MAX] = {
|
|||||||
PLAYER_MODELTYPE_SHEATH_19,
|
PLAYER_MODELTYPE_SHEATH_19,
|
||||||
PLAYER_MODELTYPE_WAIST
|
PLAYER_MODELTYPE_WAIST
|
||||||
},
|
},
|
||||||
/* PLAYER_MODELGROUP_SWORD */
|
/* PLAYER_MODELGROUP_SWORD_AND_SHIELD */
|
||||||
{
|
{
|
||||||
PLAYER_ANIMTYPE_1,
|
PLAYER_ANIMTYPE_1,
|
||||||
PLAYER_MODELTYPE_LH_SWORD,
|
PLAYER_MODELTYPE_LH_SWORD,
|
||||||
@ -232,7 +232,7 @@ u8 gPlayerModelTypes[PLAYER_MODELGROUP_MAX][PLAYER_MODELGROUPENTRY_MAX] = {
|
|||||||
PLAYER_MODELTYPE_SHEATH_18,
|
PLAYER_MODELTYPE_SHEATH_18,
|
||||||
PLAYER_MODELTYPE_WAIST
|
PLAYER_MODELTYPE_WAIST
|
||||||
},
|
},
|
||||||
/* PLAYER_MODELGROUP_15 */
|
/* PLAYER_MODELGROUP_SWORD */
|
||||||
{
|
{
|
||||||
PLAYER_ANIMTYPE_0,
|
PLAYER_ANIMTYPE_0,
|
||||||
PLAYER_MODELTYPE_LH_SWORD,
|
PLAYER_MODELTYPE_LH_SWORD,
|
||||||
@ -565,7 +565,7 @@ uint8_t Player_IsCustomLinkModel() {
|
|||||||
|
|
||||||
s32 Player_InBlockingCsMode(PlayState* play, Player* this) {
|
s32 Player_InBlockingCsMode(PlayState* play, Player* this) {
|
||||||
return (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_CUTSCENE)) || (this->csAction != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
|
return (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_CUTSCENE)) || (this->csAction != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
|
||||||
(this->stateFlags1 & PLAYER_STATE1_LOADING) || (this->stateFlags3 & PLAYER_STATE3_HOOKSHOT_TRAVELLING) ||
|
(this->stateFlags1 & PLAYER_STATE1_LOADING) || (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) ||
|
||||||
((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0));
|
((gSaveContext.magicState != MAGIC_STATE_IDLE) && (Player_ActionToMagicSpell(this, this->itemAction) >= 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -575,8 +575,15 @@ s32 Player_InCsMode(PlayState* play) {
|
|||||||
return Player_InBlockingCsMode(play, this) || (this->unk_6AD == 4);
|
return Player_InBlockingCsMode(play, this) || (this->unk_6AD == 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 func_8008E9C4(Player* this) {
|
/**
|
||||||
return (this->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET);
|
* Checks if Player is currently locked onto a hostile actor.
|
||||||
|
* `PLAYER_STATE1_HOSTILE_LOCK_ON` controls Player's "battle" response to hostile actors.
|
||||||
|
*
|
||||||
|
* Note that within Player, `Player_UpdateHostileLockOn` exists, which updates the flag and also returns the check.
|
||||||
|
* Player can use this function instead if the flag should be checked, but not updated.
|
||||||
|
*/
|
||||||
|
s32 Player_CheckHostileLockOn(Player* this) {
|
||||||
|
return (this->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 Player_IsChildWithHylianShield(Player* this) {
|
s32 Player_IsChildWithHylianShield(Player* this) {
|
||||||
@ -586,7 +593,7 @@ s32 Player_IsChildWithHylianShield(Player* this) {
|
|||||||
s32 Player_ActionToModelGroup(Player* this, s32 actionParam) {
|
s32 Player_ActionToModelGroup(Player* this, s32 actionParam) {
|
||||||
s32 modelGroup = sActionModelGroups[actionParam];
|
s32 modelGroup = sActionModelGroups[actionParam];
|
||||||
|
|
||||||
if ((modelGroup == PLAYER_MODELGROUP_SWORD) && Player_IsChildWithHylianShield(this)) {
|
if ((modelGroup == PLAYER_MODELGROUP_SWORD_AND_SHIELD) && Player_IsChildWithHylianShield(this)) {
|
||||||
// child, using kokiri sword with hylian shield equipped
|
// child, using kokiri sword with hylian shield equipped
|
||||||
return PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD;
|
return PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD;
|
||||||
} else {
|
} else {
|
||||||
@ -735,29 +742,48 @@ void Player_UpdateBottleHeld(PlayState* play, Player* this, s32 item, s32 action
|
|||||||
this->itemAction = actionParam;
|
this->itemAction = actionParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8008EDF0(Player* this) {
|
void Player_ReleaseLockOn(Player* this) {
|
||||||
this->unk_664 = NULL;
|
this->focusActor = NULL;
|
||||||
this->stateFlags2 &= ~PLAYER_STATE2_SWITCH_TARGETING;
|
this->stateFlags2 &= ~PLAYER_STATE2_LOCK_ON_WITH_SWITCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8008EE08(Player* this) {
|
/**
|
||||||
|
* This function aims to clear Z-Target related state when it isn't in use.
|
||||||
|
* It also handles setting a specific free fall related state that is interntwined with Z-Targeting.
|
||||||
|
* TODO: Learn more about this and give a name to PLAYER_STATE1_19
|
||||||
|
*/
|
||||||
|
void Player_ClearZTargeting(Player* this) {
|
||||||
if ((this->actor.bgCheckFlags & 1) || (this->stateFlags1 & (PLAYER_STATE1_CLIMBING_LADDER | PLAYER_STATE1_ON_HORSE | PLAYER_STATE1_IN_WATER)) ||
|
if ((this->actor.bgCheckFlags & 1) || (this->stateFlags1 & (PLAYER_STATE1_CLIMBING_LADDER | PLAYER_STATE1_ON_HORSE | PLAYER_STATE1_IN_WATER)) ||
|
||||||
(!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) {
|
(!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL)) && ((this->actor.world.pos.y - this->actor.floorHeight) < 100.0f))) {
|
||||||
this->stateFlags1 &= ~(PLAYER_STATE1_TARGETING | PLAYER_STATE1_TARGET_LOCKED | PLAYER_STATE1_TARGET_NOTHING | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_30);
|
this->stateFlags1 &= ~(PLAYER_STATE1_Z_TARGETING | PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS | PLAYER_STATE1_PARALLEL | PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_LOCK_ON_FORCED_TO_RELEASE);
|
||||||
} else if (!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_CLIMBING_LADDER))) {
|
} else if (!(this->stateFlags1 & (PLAYER_STATE1_JUMPING | PLAYER_STATE1_FREEFALL | PLAYER_STATE1_CLIMBING_LADDER))) {
|
||||||
this->stateFlags1 |= PLAYER_STATE1_FREEFALL;
|
this->stateFlags1 |= PLAYER_STATE1_FREEFALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
func_8008EDF0(this);
|
Player_ReleaseLockOn(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8008EEAC(PlayState* play, Actor* actor) {
|
/**
|
||||||
|
* Sets the "auto lock-on actor" to lock onto an actor without Player's input.
|
||||||
|
* This function will first release any existing lock-on or (try to) release parallel.
|
||||||
|
*
|
||||||
|
* When using Switch Targeting, it is not possible to carry an auto lock-on actor into a normal
|
||||||
|
* lock-on when the auto lock-on is finished.
|
||||||
|
* This is because the `PLAYER_STATE2_LOCK_ON_WITH_SWITCH` flag is never set with an auto lock-on.
|
||||||
|
* With Hold Targeting it is possible to keep the auto lock-on going by keeping the Z button held down.
|
||||||
|
*
|
||||||
|
* The auto lock-on is considered "friendly" even if the actor is actually hostile. If the auto lock-on is hostile,
|
||||||
|
* Player's battle response will not occur (if he is actionable) and the camera behaves differently.
|
||||||
|
* When transitioning from auto lock-on to normal lock-on (with Hold Targeting) there will be a noticeable change
|
||||||
|
* when it switches from "friendly" mode to "hostile" mode.
|
||||||
|
*/
|
||||||
|
void Player_SetAutoLockOnActor(PlayState* play, Actor* actor) {
|
||||||
Player* this = GET_PLAYER(play);
|
Player* this = GET_PLAYER(play);
|
||||||
|
|
||||||
func_8008EE08(this);
|
Player_ClearZTargeting(this);
|
||||||
this->unk_664 = actor;
|
this->focusActor = actor;
|
||||||
this->unk_684 = actor;
|
this->autoLockOnActor = actor;
|
||||||
this->stateFlags1 |= PLAYER_STATE1_TARGET_LOCKED;
|
this->stateFlags1 |= PLAYER_STATE1_FRIENDLY_ACTOR_FOCUS;
|
||||||
Camera_SetParam(Play_GetCamera(play, 0), 8, actor);
|
Camera_SetParam(Play_GetCamera(play, 0), 8, actor);
|
||||||
Camera_ChangeMode(Play_GetCamera(play, 0), 2);
|
Camera_ChangeMode(Play_GetCamera(play, 0), 2);
|
||||||
}
|
}
|
||||||
@ -919,7 +945,7 @@ s32 Player_GetExplosiveHeld(Player* this) {
|
|||||||
s32 func_8008F2BC(Player* this, s32 actionParam) {
|
s32 func_8008F2BC(Player* this, s32 actionParam) {
|
||||||
s32 sword = 0;
|
s32 sword = 0;
|
||||||
|
|
||||||
if (actionParam != PLAYER_IA_LAST_USED) {
|
if (actionParam != PLAYER_IA_SWORD_CS) {
|
||||||
sword = actionParam - PLAYER_IA_SWORD_MASTER;
|
sword = actionParam - PLAYER_IA_SWORD_MASTER;
|
||||||
if ((sword < 0) || (sword >= 3)) {
|
if ((sword < 0) || (sword >= 3)) {
|
||||||
goto return_neg;
|
goto return_neg;
|
||||||
@ -1319,9 +1345,9 @@ s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx**
|
|||||||
Matrix_Translate((LINK_IS_ADULT ? 3600.0f : 2900.0f) * ABS(scale - 1.0f), 0.0f, 0.0f, MTXMODE_APPLY);
|
Matrix_Translate((LINK_IS_ADULT ? 3600.0f : 2900.0f) * ABS(scale - 1.0f), 0.0f, 0.0f, MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rot->x += this->unk_6BA;
|
rot->x += this->headLimbRot.z;
|
||||||
rot->y -= this->unk_6B8;
|
rot->y -= this->headLimbRot.y;
|
||||||
rot->z += this->unk_6B6;
|
rot->z += this->headLimbRot.x;
|
||||||
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
} else if (limbIndex == PLAYER_LIMB_L_HAND) {
|
||||||
if (CVarGetInteger(CVAR_COSMETIC("Link.SwordScale.Changed"), 0)) {
|
if (CVarGetInteger(CVAR_COSMETIC("Link.SwordScale.Changed"), 0)) {
|
||||||
f32 scale = CVarGetFloat(CVAR_COSMETIC("Link.SwordScale.Value"), 1.0f);
|
f32 scale = CVarGetFloat(CVAR_COSMETIC("Link.SwordScale.Value"), 1.0f);
|
||||||
@ -1329,18 +1355,18 @@ s32 Player_OverrideLimbDrawGameplayCommon(PlayState* play, s32 limbIndex, Gfx**
|
|||||||
Matrix_Translate(-((LINK_IS_ADULT ? 320.0f : 200.0f) * scale), 0.0f, 0.0f, MTXMODE_APPLY);
|
Matrix_Translate(-((LINK_IS_ADULT ? 320.0f : 200.0f) * scale), 0.0f, 0.0f, MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
} else if (limbIndex == PLAYER_LIMB_UPPER) {
|
} else if (limbIndex == PLAYER_LIMB_UPPER) {
|
||||||
if (this->unk_6B0 != 0) {
|
if (this->upperLimbYawSecondary != 0) {
|
||||||
Matrix_RotateZ(0x44C * (M_PI / 0x8000), MTXMODE_APPLY);
|
Matrix_RotateZ(0x44C * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||||
Matrix_RotateY(this->unk_6B0 * (M_PI / 0x8000), MTXMODE_APPLY);
|
Matrix_RotateY(this->upperLimbYawSecondary * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
if (this->unk_6BE != 0) {
|
if (this->upperLimbRot.y != 0) {
|
||||||
Matrix_RotateY(this->unk_6BE * (M_PI / 0x8000), MTXMODE_APPLY);
|
Matrix_RotateY(this->upperLimbRot.y * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
if (this->unk_6BC != 0) {
|
if (this->upperLimbRot.x != 0) {
|
||||||
Matrix_RotateX(this->unk_6BC * (M_PI / 0x8000), MTXMODE_APPLY);
|
Matrix_RotateX(this->upperLimbRot.x * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
if (this->unk_6C0 != 0) {
|
if (this->upperLimbRot.z != 0) {
|
||||||
Matrix_RotateZ(this->unk_6C0 * (M_PI / 0x8000), MTXMODE_APPLY);
|
Matrix_RotateZ(this->upperLimbRot.z * (M_PI / 0x8000), MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
} else if (limbIndex == PLAYER_LIMB_L_THIGH) {
|
} else if (limbIndex == PLAYER_LIMB_L_THIGH) {
|
||||||
func_8008F87C(play, this, &this->skelAnime, pos, rot, PLAYER_LIMB_L_THIGH, PLAYER_LIMB_L_SHIN,
|
func_8008F87C(play, this, &this->skelAnime, pos, rot, PLAYER_LIMB_L_THIGH, PLAYER_LIMB_L_SHIN,
|
||||||
@ -1367,7 +1393,7 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx**
|
|||||||
|
|
||||||
if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.swordHealth <= 0.0f)) {
|
if ((sLeftHandType == PLAYER_MODELTYPE_LH_BGS) && (gSaveContext.swordHealth <= 0.0f)) {
|
||||||
dLists += 4;
|
dLists += 4;
|
||||||
} else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_THREW_BOOMERANG)) {
|
} else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_BOOMERANG_THROWN)) {
|
||||||
dLists = &gPlayerLeftHandOpenDLs[gSaveContext.linkAge];
|
dLists = &gPlayerLeftHandOpenDLs[gSaveContext.linkAge];
|
||||||
sLeftHandType = PLAYER_MODELTYPE_LH_OPEN;
|
sLeftHandType = PLAYER_MODELTYPE_LH_OPEN;
|
||||||
} else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_IN_WATER)) {
|
} else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speedXZ > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_IN_WATER)) {
|
||||||
@ -1828,7 +1854,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||||||
Matrix_Get(&sp14C);
|
Matrix_Get(&sp14C);
|
||||||
Matrix_MtxFToYXZRotS(&sp14C, &hookedActor->world.rot, 0);
|
Matrix_MtxFToYXZRotS(&sp14C, &hookedActor->world.rot, 0);
|
||||||
hookedActor->shape.rot = hookedActor->world.rot;
|
hookedActor->shape.rot = hookedActor->world.rot;
|
||||||
} else if (this->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
} else if (this->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
Vec3s spB8;
|
Vec3s spB8;
|
||||||
|
|
||||||
Matrix_Get(&sp14C);
|
Matrix_Get(&sp14C);
|
||||||
@ -2000,9 +2026,9 @@ u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
u8 sPauseModelGroupBySword[] = {
|
u8 sPauseModelGroupBySword[] = {
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_KOKIRI
|
PLAYER_MODELGROUP_SWORD_AND_SHIELD, // PLAYER_SWORD_KOKIRI
|
||||||
PLAYER_MODELGROUP_SWORD, // PLAYER_SWORD_MASTER
|
PLAYER_MODELGROUP_SWORD_AND_SHIELD, // PLAYER_SWORD_MASTER
|
||||||
PLAYER_MODELGROUP_BGS, // PLAYER_SWORD_BIGGORON
|
PLAYER_MODELGROUP_BGS, // PLAYER_SWORD_BIGGORON
|
||||||
};
|
};
|
||||||
|
|
||||||
s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
|
s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* arg) {
|
||||||
@ -2015,7 +2041,7 @@ s32 Player_OverrideLimbDrawPause(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||||||
Gfx** dLists;
|
Gfx** dLists;
|
||||||
size_t ptrSize = sizeof(uint32_t);
|
size_t ptrSize = sizeof(uint32_t);
|
||||||
|
|
||||||
if ((modelGroup == PLAYER_MODELGROUP_SWORD) && !LINK_IS_ADULT && (playerSwordAndShield[1] == PLAYER_SHIELD_HYLIAN)) {
|
if ((modelGroup == PLAYER_MODELGROUP_SWORD_AND_SHIELD) && !LINK_IS_ADULT && (playerSwordAndShield[1] == PLAYER_SHIELD_HYLIAN)) {
|
||||||
modelGroup = PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD;
|
modelGroup = PLAYER_MODELGROUP_CHILD_HYLIAN_SHIELD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ void func_8087B758(BgHaka* this, Player* player) {
|
|||||||
|
|
||||||
func_8002DBD0(&this->dyna.actor, &sp1C, &player->actor.world.pos);
|
func_8002DBD0(&this->dyna.actor, &sp1C, &player->actor.world.pos);
|
||||||
if (fabsf(sp1C.x) < 34.6f && sp1C.z > -112.8f && sp1C.z < -36.0f) {
|
if (fabsf(sp1C.x) < 34.6f && sp1C.z > -112.8f && sp1C.z < -36.0f) {
|
||||||
player->stateFlags2 |= PLAYER_STATE2_SPAWN_DUST;
|
player->stateFlags2 |= PLAYER_STATE2_FORCE_SAND_FLOOR_SOUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ void BgHakaSgami_Update(Actor* thisx, PlayState* play) {
|
|||||||
BgHakaSgami* this = (BgHakaSgami*)thisx;
|
BgHakaSgami* this = (BgHakaSgami*)thisx;
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE)) || (this->actionFunc == BgHakaSgami_SetupSpin)) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE)) || (this->actionFunc == BgHakaSgami_SetupSpin)) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ void BgJyaGoroiwa_Update(Actor* thisx, PlayState* play) {
|
|||||||
s32 bgId;
|
s32 bgId;
|
||||||
Vec3f pos;
|
Vec3f pos;
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
BgJyaGoroiwa_UpdateRotation(this);
|
BgJyaGoroiwa_UpdateRotation(this);
|
||||||
pos.x = this->actor.world.pos.x;
|
pos.x = this->actor.world.pos.x;
|
||||||
|
@ -152,9 +152,9 @@ s32 BgSpot01Idohashira_NotInCsMode(PlayState* play) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* BgSpot01Idohashira_GetNpcAction(PlayState* play, s32 actionIdx) {
|
CsCmdActorCue* BgSpot01Idohashira_GetNpcAction(PlayState* play, s32 actionIdx) {
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
CsCmdActorAction* npcAction = NULL;
|
CsCmdActorCue* npcAction = NULL;
|
||||||
|
|
||||||
if (!BgSpot01Idohashira_NotInCsMode(play)) {
|
if (!BgSpot01Idohashira_NotInCsMode(play)) {
|
||||||
npcAction = play->csCtx.npcActions[actionIdx];
|
npcAction = play->csCtx.npcActions[actionIdx];
|
||||||
@ -186,7 +186,7 @@ f32 func_808AB1DC(f32 arg0, f32 arg1, u16 arg2, u16 arg3, u16 arg4) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_808AB29C(BgSpot01Idohashira* this, PlayState* play) {
|
s32 func_808AB29C(BgSpot01Idohashira* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
Vec3f* thisPos;
|
Vec3f* thisPos;
|
||||||
f32 endX;
|
f32 endX;
|
||||||
f32 temp_f0;
|
f32 temp_f0;
|
||||||
@ -237,7 +237,7 @@ void func_808AB414(BgSpot01Idohashira* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_808AB444(BgSpot01Idohashira* this, PlayState* play) {
|
void func_808AB444(BgSpot01Idohashira* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = BgSpot01Idohashira_GetNpcAction(play, 2);
|
CsCmdActorCue* npcAction = BgSpot01Idohashira_GetNpcAction(play, 2);
|
||||||
u32 action;
|
u32 action;
|
||||||
u32 currentNpcAction;
|
u32 currentNpcAction;
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ void func_808B57E0(BgSpot16Bombstone* this, PlayState* play) {
|
|||||||
OnePointCutscene_Init(play, 4180, sTimer, NULL, MAIN_CAM);
|
OnePointCutscene_Init(play, 4180, sTimer, NULL, MAIN_CAM);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
} else if (player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
playerHeldActor = player->heldActor;
|
playerHeldActor = player->heldActor;
|
||||||
if (playerHeldActor != NULL && playerHeldActor->category == ACTORCAT_EXPLOSIVE &&
|
if (playerHeldActor != NULL && playerHeldActor->category == ACTORCAT_EXPLOSIVE &&
|
||||||
playerHeldActor->id == ACTOR_EN_BOMBF) {
|
playerHeldActor->id == ACTOR_EN_BOMBF) {
|
||||||
|
@ -92,7 +92,7 @@ void BgTreemouth_Destroy(Actor* thisx, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_808BC65C(BgTreemouth* this, PlayState* play) {
|
void func_808BC65C(BgTreemouth* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if ((play->csCtx.state != CS_STATE_IDLE)) {
|
if ((play->csCtx.state != CS_STATE_IDLE)) {
|
||||||
npcAction = play->csCtx.npcActions[0];
|
npcAction = play->csCtx.npcActions[0];
|
||||||
@ -198,7 +198,7 @@ void func_808BC9EC(BgTreemouth* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_808BCAF0(BgTreemouth* this, PlayState* play) {
|
void func_808BCAF0(BgTreemouth* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
npcAction = play->csCtx.npcActions[0];
|
npcAction = play->csCtx.npcActions[0];
|
||||||
|
@ -389,7 +389,7 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) {
|
|||||||
player->actor.world.pos.z = sRoomCenter.z;
|
player->actor.world.pos.z = sRoomCenter.z;
|
||||||
player->linearVelocity = player->actor.velocity.y = 0.0f;
|
player->linearVelocity = player->actor.velocity.y = 0.0f;
|
||||||
player->actor.shape.rot.y = -0x8000;
|
player->actor.shape.rot.y = -0x8000;
|
||||||
player->zTargetYaw = -0x8000;
|
player->parallelYaw = -0x8000;
|
||||||
player->yaw = -0x8000;
|
player->yaw = -0x8000;
|
||||||
player->fallStartHeight = 0;
|
player->fallStartHeight = 0;
|
||||||
player->stateFlags1 |= PLAYER_STATE1_INPUT_DISABLED;
|
player->stateFlags1 |= PLAYER_STATE1_INPUT_DISABLED;
|
||||||
@ -448,7 +448,7 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) {
|
|||||||
player->actor.world.pos.z = sRoomCenter.z;
|
player->actor.world.pos.z = sRoomCenter.z;
|
||||||
player->linearVelocity = 0;
|
player->linearVelocity = 0;
|
||||||
player->actor.shape.rot.y = -0x8000;
|
player->actor.shape.rot.y = -0x8000;
|
||||||
player->zTargetYaw = -0x8000;
|
player->parallelYaw = -0x8000;
|
||||||
player->yaw = -0x8000;
|
player->yaw = -0x8000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -807,7 +807,7 @@ void func_809691BC(Demo6K* this, PlayState* play, s32 params) {
|
|||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
f32 temp;
|
f32 temp;
|
||||||
CsCmdActorAction* csAction = play->csCtx.npcActions[params];
|
CsCmdActorCue* csAction = play->csCtx.npcActions[params];
|
||||||
|
|
||||||
startPos.x = csAction->startPos.x;
|
startPos.x = csAction->startPos.x;
|
||||||
startPos.y = csAction->startPos.y;
|
startPos.y = csAction->startPos.y;
|
||||||
|
@ -103,7 +103,7 @@ void DemoDu_UpdateBgCheckInfo(DemoDu* this, PlayState* play) {
|
|||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, 5);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoDu_GetNpcAction(PlayState* play, s32 idx) {
|
CsCmdActorCue* DemoDu_GetNpcAction(PlayState* play, s32 idx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[idx];
|
return play->csCtx.npcActions[idx];
|
||||||
}
|
}
|
||||||
@ -111,7 +111,7 @@ CsCmdActorAction* DemoDu_GetNpcAction(PlayState* play, s32 idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 DemoDu_IsNpcDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
|
s32 DemoDu_IsNpcDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
|
||||||
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
|
CsCmdActorCue* npcAction = DemoDu_GetNpcAction(play, idx);
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action == action)) {
|
if ((npcAction != NULL) && (npcAction->action == action)) {
|
||||||
return true;
|
return true;
|
||||||
@ -120,7 +120,7 @@ s32 DemoDu_IsNpcDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 i
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 DemoDu_IsNpcNotDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
|
s32 DemoDu_IsNpcNotDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) {
|
||||||
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
|
CsCmdActorCue* npcAction = DemoDu_GetNpcAction(play, idx);
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != action)) {
|
if ((npcAction != NULL) && (npcAction->action != action)) {
|
||||||
return true;
|
return true;
|
||||||
@ -129,7 +129,7 @@ s32 DemoDu_IsNpcNotDoingThisAction(DemoDu* this, PlayState* play, u16 action, s3
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoDu_MoveToNpcPos(DemoDu* this, PlayState* play, s32 idx) {
|
void DemoDu_MoveToNpcPos(DemoDu* this, PlayState* play, s32 idx) {
|
||||||
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx);
|
CsCmdActorCue* npcAction = DemoDu_GetNpcAction(play, idx);
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
@ -214,7 +214,7 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) {
|
|||||||
|
|
||||||
void DemoDu_CsFireMedallion_AdvanceTo02(DemoDu* this, PlayState* play) {
|
void DemoDu_CsFireMedallion_AdvanceTo02(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
||||||
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(2);
|
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(2);
|
||||||
@ -233,7 +233,7 @@ void DemoDu_CsFireMedallion_AdvanceTo03(DemoDu* this) {
|
|||||||
|
|
||||||
void DemoDu_CsFireMedallion_AdvanceTo04(DemoDu* this, PlayState* play) {
|
void DemoDu_CsFireMedallion_AdvanceTo04(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 2)) {
|
if ((npcAction != NULL) && (npcAction->action != 2)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
|
||||||
@ -253,7 +253,7 @@ void DemoDu_CsFireMedallion_AdvanceTo05(DemoDu* this, s32 animFinished) {
|
|||||||
|
|
||||||
void DemoDu_CsFireMedallion_AdvanceTo06(DemoDu* this, PlayState* play) {
|
void DemoDu_CsFireMedallion_AdvanceTo06(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[6];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[6];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action == 2)) {
|
if ((npcAction != NULL) && (npcAction->action == 2)) {
|
||||||
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(6);
|
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(6);
|
||||||
@ -444,7 +444,7 @@ void DemoDu_CsGoronsRuby_DaruniaFalling(DemoDu* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != CS_STATE_IDLE) {
|
if (csCtx->state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = csCtx->npcActions[2];
|
CsCmdActorCue* npcAction = csCtx->npcActions[2];
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
Vec3f* pos = &this->actor.world.pos;
|
Vec3f* pos = &this->actor.world.pos;
|
||||||
@ -473,7 +473,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo01(DemoDu* this, PlayState* play) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo02(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo02(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaStandUpAfterFallingAnim, 1.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gDaruniaStandUpAfterFallingAnim, 1.0f, 0.0f,
|
||||||
@ -489,7 +489,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != CS_STATE_IDLE) {
|
if (csCtx->state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = csCtx->npcActions[2];
|
CsCmdActorCue* npcAction = csCtx->npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (csCtx->frames >= npcAction->endFrame)) {
|
if ((npcAction != NULL) && (csCtx->frames >= npcAction->endFrame)) {
|
||||||
this->updateIndex = CS_GORONSRUBY_SUBSCENE(3);
|
this->updateIndex = CS_GORONSRUBY_SUBSCENE(3);
|
||||||
@ -500,7 +500,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo04(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo04(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 2)) {
|
if ((npcAction != NULL) && (npcAction->action != 2)) {
|
||||||
this->updateIndex = CS_GORONSRUBY_SUBSCENE(4);
|
this->updateIndex = CS_GORONSRUBY_SUBSCENE(4);
|
||||||
@ -518,7 +518,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo05(DemoDu* this, s32 animFinished) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo06(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo06(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 3)) {
|
if ((npcAction != NULL) && (npcAction->action != 3)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaHitBreastAnim, 1.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gDaruniaHitBreastAnim, 1.0f, 0.0f,
|
||||||
@ -538,7 +538,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo07(DemoDu* this, s32 animFinished) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo08(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo08(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 4)) {
|
if ((npcAction != NULL) && (npcAction->action != 4)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaHitLinkAnim, 1.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gDaruniaHitLinkAnim, 1.0f, 0.0f,
|
||||||
@ -566,7 +566,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo10(DemoDu* this, s32 animFinished) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo11(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo11(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 5)) {
|
if ((npcAction != NULL) && (npcAction->action != 5)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f,
|
||||||
@ -586,7 +586,7 @@ void DemoDu_CsGoronsRuby_AdvanceTo12(DemoDu* this, s32 animFinished) {
|
|||||||
|
|
||||||
void DemoDu_CsGoronsRuby_AdvanceTo13(DemoDu* this, PlayState* play) {
|
void DemoDu_CsGoronsRuby_AdvanceTo13(DemoDu* this, PlayState* play) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[2];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 6)) {
|
if ((npcAction != NULL) && (npcAction->action != 6)) {
|
||||||
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
|
Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim),
|
||||||
@ -886,7 +886,7 @@ void DemoDu_CsCredits_BackTo02(DemoDu* this, s32 animFinished) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play) {
|
void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, 2);
|
CsCmdActorCue* npcAction = DemoDu_GetNpcAction(play, 2);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
s32 action = npcAction->action;
|
s32 action = npcAction->action;
|
||||||
|
@ -331,7 +331,7 @@ void DemoEc_UseAnimationObject(DemoEc* this, PlayState* play) {
|
|||||||
gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[animObjBankIndex].segment);
|
gSegments[6] = PHYSICAL_TO_VIRTUAL(play->objectCtx.status[animObjBankIndex].segment);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoEc_GetNpcAction(PlayState* play, s32 actionIndex) {
|
CsCmdActorCue* DemoEc_GetNpcAction(PlayState* play, s32 actionIndex) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[actionIndex];
|
return play->csCtx.npcActions[actionIndex];
|
||||||
} else {
|
} else {
|
||||||
@ -340,7 +340,7 @@ CsCmdActorAction* DemoEc_GetNpcAction(PlayState* play, s32 actionIndex) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoEc_SetNpcActionPosRot(DemoEc* this, PlayState* play, s32 actionIndex) {
|
void DemoEc_SetNpcActionPosRot(DemoEc* this, PlayState* play, s32 actionIndex) {
|
||||||
CsCmdActorAction* npcAction = DemoEc_GetNpcAction(play, actionIndex);
|
CsCmdActorCue* npcAction = DemoEc_GetNpcAction(play, actionIndex);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -821,7 +821,7 @@ void func_8096F26C(DemoEc* this, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8096F2B0(DemoEc* this, PlayState* play, s32 arg2) {
|
void func_8096F2B0(DemoEc* this, PlayState* play, s32 arg2) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
s32 sp18;
|
s32 sp18;
|
||||||
|
|
||||||
npcAction = DemoEc_GetNpcAction(play, arg2);
|
npcAction = DemoEc_GetNpcAction(play, arg2);
|
||||||
@ -895,7 +895,7 @@ void func_8096F544(DemoEc* this, s32 changeAnim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8096F578(DemoEc* this, PlayState* play, s32 arg2) {
|
void func_8096F578(DemoEc* this, PlayState* play, s32 arg2) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
s32 sp18;
|
s32 sp18;
|
||||||
|
|
||||||
npcAction = DemoEc_GetNpcAction(play, arg2);
|
npcAction = DemoEc_GetNpcAction(play, arg2);
|
||||||
|
@ -50,7 +50,7 @@ void DemoExt_PlayVortexSFX(DemoExt* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoExt_GetNpcAction(PlayState* play, s32 npcActionIndex) {
|
CsCmdActorCue* DemoExt_GetNpcAction(PlayState* play, s32 npcActionIndex) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[npcActionIndex];
|
return play->csCtx.npcActions[npcActionIndex];
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ void DemoExt_SetupWait(DemoExt* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoExt_SetupMaintainVortex(DemoExt* this, PlayState* play) {
|
void DemoExt_SetupMaintainVortex(DemoExt* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoExt_GetNpcAction(play, 5);
|
CsCmdActorCue* npcAction = DemoExt_GetNpcAction(play, 5);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -88,7 +88,7 @@ void DemoExt_FinishClosing(DemoExt* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoExt_CheckCsMode(DemoExt* this, PlayState* play) {
|
void DemoExt_CheckCsMode(DemoExt* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = DemoExt_GetNpcAction(play, 5);
|
CsCmdActorCue* csCmdNPCAction = DemoExt_GetNpcAction(play, 5);
|
||||||
s32 csAction;
|
s32 csAction;
|
||||||
s32 previousCsAction;
|
s32 previousCsAction;
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ void func_8097CB0C(DemoGo* this, PlayState* play) {
|
|||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
PosRot* world = &thisx->world;
|
PosRot* world = &thisx->world;
|
||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
f32 temp_ret;
|
f32 temp_ret;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
@ -167,7 +167,7 @@ void func_8097CCC0(DemoGo* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8097CCE0(DemoGo* this, PlayState* play) {
|
void func_8097CCE0(DemoGo* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
s32 rotYDelta;
|
s32 rotYDelta;
|
||||||
s32 newRotY;
|
s32 newRotY;
|
||||||
@ -221,7 +221,7 @@ void func_8097CE20(DemoGo* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_8097CE78(DemoGo* this, PlayState* play) {
|
void func_8097CE78(DemoGo* this, PlayState* play) {
|
||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
npcAction = csCtx->npcActions[func_8097C870(this)];
|
npcAction = csCtx->npcActions[func_8097C870(this)];
|
||||||
|
@ -297,9 +297,9 @@ u8 func_8097E69C(PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoGt_GetNpcAction(PlayState* play, u32 actionIdx) {
|
CsCmdActorCue* DemoGt_GetNpcAction(PlayState* play, u32 actionIdx) {
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
CsCmdActorAction* ret = NULL;
|
CsCmdActorCue* ret = NULL;
|
||||||
|
|
||||||
if (!func_8097E69C(play)) {
|
if (!func_8097E69C(play)) {
|
||||||
ret = play->csCtx.npcActions[actionIdx];
|
ret = play->csCtx.npcActions[actionIdx];
|
||||||
@ -309,7 +309,7 @@ CsCmdActorAction* DemoGt_GetNpcAction(PlayState* play, u32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
u8 func_8097E704(PlayState* play, u16 arg1, s32 arg2) {
|
u8 func_8097E704(PlayState* play, u16 arg1, s32 arg2) {
|
||||||
CsCmdActorAction* action = DemoGt_GetNpcAction(play, arg2);
|
CsCmdActorCue* action = DemoGt_GetNpcAction(play, arg2);
|
||||||
|
|
||||||
if ((action != NULL) && (action->action == arg1)) {
|
if ((action != NULL) && (action->action == arg1)) {
|
||||||
return true;
|
return true;
|
||||||
@ -319,7 +319,7 @@ u8 func_8097E704(PlayState* play, u16 arg1, s32 arg2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8097E744(DemoGt* this, PlayState* play, u32 actionIdx) {
|
void func_8097E744(DemoGt* this, PlayState* play, u32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoGt_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoGt_GetNpcAction(play, actionIdx);
|
||||||
Vec3f* pos = &this->dyna.actor.world.pos;
|
Vec3f* pos = &this->dyna.actor.world.pos;
|
||||||
f32 startX;
|
f32 startX;
|
||||||
f32 startY;
|
f32 startY;
|
||||||
|
@ -37,7 +37,7 @@ s32 DemoIk_UpdateSkelAnime(DemoIk* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoIk_GetCue(PlayState* play, s32 index) {
|
CsCmdActorCue* DemoIk_GetCue(PlayState* play, s32 index) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[index];
|
return play->csCtx.npcActions[index];
|
||||||
}
|
}
|
||||||
@ -45,7 +45,7 @@ CsCmdActorAction* DemoIk_GetCue(PlayState* play, s32 index) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 DemoIk_CheckCue(PlayState* play, u16 action, s32 index) {
|
s32 DemoIk_CheckCue(PlayState* play, u16 action, s32 index) {
|
||||||
CsCmdActorAction* cue = DemoIk_GetCue(play, index);
|
CsCmdActorCue* cue = DemoIk_GetCue(play, index);
|
||||||
|
|
||||||
if ((cue != NULL) && (cue->action == action)) {
|
if ((cue != NULL) && (cue->action == action)) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -147,7 +147,7 @@ void DemoIk_SpawnDeadDb(DemoIk* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void DemoIk_MoveToStartPos(DemoIk* this, PlayState* play, s32 index) {
|
void DemoIk_MoveToStartPos(DemoIk* this, PlayState* play, s32 index) {
|
||||||
CsCmdActorAction* cue = DemoIk_GetCue(play, index);
|
CsCmdActorCue* cue = DemoIk_GetCue(play, index);
|
||||||
|
|
||||||
if (cue != NULL) {
|
if (cue != NULL) {
|
||||||
this->actor.world.pos.x = cue->startPos.x;
|
this->actor.world.pos.x = cue->startPos.x;
|
||||||
@ -208,7 +208,7 @@ void func_809839AC(DemoIk* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_809839D0(DemoIk* this, PlayState* play) {
|
void func_809839D0(DemoIk* this, PlayState* play) {
|
||||||
CsCmdActorAction* cue = DemoIk_GetCue(play, DemoIk_GetIndexFromParams(this->actor.params));
|
CsCmdActorCue* cue = DemoIk_GetCue(play, DemoIk_GetIndexFromParams(this->actor.params));
|
||||||
|
|
||||||
if (cue != NULL) {
|
if (cue != NULL) {
|
||||||
s32 nextCsAction = cue->action;
|
s32 nextCsAction = cue->action;
|
||||||
@ -362,7 +362,7 @@ void func_8098402C(DemoIk* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80984048(DemoIk* this, PlayState* play) {
|
void func_80984048(DemoIk* this, PlayState* play) {
|
||||||
CsCmdActorAction* cue = DemoIk_GetCue(play, 4);
|
CsCmdActorCue* cue = DemoIk_GetCue(play, 4);
|
||||||
|
|
||||||
if (cue != NULL) {
|
if (cue != NULL) {
|
||||||
s32 nextCsAction = cue->action;
|
s32 nextCsAction = cue->action;
|
||||||
|
@ -223,9 +223,9 @@ s32 DemoIm_IsCsStateIdle(PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoIm_GetNpcAction(PlayState* play, s32 actionIdx) {
|
CsCmdActorCue* DemoIm_GetNpcAction(PlayState* play, s32 actionIdx) {
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
CsCmdActorAction* ret = NULL;
|
CsCmdActorCue* ret = NULL;
|
||||||
|
|
||||||
if (!DemoIm_IsCsStateIdle(play)) {
|
if (!DemoIm_IsCsStateIdle(play)) {
|
||||||
ret = play->csCtx.npcActions[actionIdx];
|
ret = play->csCtx.npcActions[actionIdx];
|
||||||
@ -234,7 +234,7 @@ CsCmdActorAction* DemoIm_GetNpcAction(PlayState* play, s32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_809850E8(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
s32 func_809850E8(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
if (npcAction->action == action) {
|
if (npcAction->action == action) {
|
||||||
@ -245,7 +245,7 @@ s32 func_809850E8(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80985134(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
s32 func_80985134(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
if (npcAction->action != action) {
|
if (npcAction->action != action) {
|
||||||
@ -256,7 +256,7 @@ s32 func_80985134(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80985180(DemoIm* this, PlayState* play, s32 actionIdx) {
|
void func_80985180(DemoIm* this, PlayState* play, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -267,7 +267,7 @@ void func_80985180(DemoIm* this, PlayState* play, s32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80985200(DemoIm* this, PlayState* play, s32 actionIdx) {
|
void func_80985200(DemoIm* this, PlayState* play, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -614,7 +614,7 @@ void func_80986148(DemoIm* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_809861C4(DemoIm* this, PlayState* play) {
|
void func_809861C4(DemoIm* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, 5);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
u32 action = npcAction->action;
|
u32 action = npcAction->action;
|
||||||
@ -647,7 +647,7 @@ void func_8098629C(DemoIm* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_809862E0(DemoIm* this, PlayState* play) {
|
void func_809862E0(DemoIm* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, 5);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
u32 action = npcAction->action;
|
u32 action = npcAction->action;
|
||||||
@ -777,7 +777,7 @@ void func_80986794(DemoIm* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8098680C(DemoIm* this, PlayState* play) {
|
void func_8098680C(DemoIm* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, 5);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
u32 action = npcAction->action;
|
u32 action = npcAction->action;
|
||||||
@ -1055,7 +1055,7 @@ void func_809871B4(DemoIm* this, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_809871E8(DemoIm* this, PlayState* play) {
|
void func_809871E8(DemoIm* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5);
|
CsCmdActorCue* npcAction = DemoIm_GetNpcAction(play, 5);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
u32 action = npcAction->action;
|
u32 action = npcAction->action;
|
||||||
|
@ -376,7 +376,7 @@ void DemoKankyo_DoNothing2(DemoKankyo* this, PlayState* play) {
|
|||||||
void DemoKankyo_SetRockPos(DemoKankyo* this, PlayState* play, s32 params) {
|
void DemoKankyo_SetRockPos(DemoKankyo* this, PlayState* play, s32 params) {
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
CsCmdActorAction* csAction = play->csCtx.npcActions[params];
|
CsCmdActorCue* csAction = play->csCtx.npcActions[params];
|
||||||
f32 temp_f0;
|
f32 temp_f0;
|
||||||
|
|
||||||
startPos.x = csAction->startPos.x;
|
startPos.x = csAction->startPos.x;
|
||||||
|
@ -160,7 +160,7 @@ s32 DemoSa_UpdateSkelAnime(DemoSa* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* DemoSa_GetNpcAction(PlayState* play, s32 idx) {
|
CsCmdActorCue* DemoSa_GetNpcAction(PlayState* play, s32 idx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[idx];
|
return play->csCtx.npcActions[idx];
|
||||||
}
|
}
|
||||||
@ -168,7 +168,7 @@ CsCmdActorAction* DemoSa_GetNpcAction(PlayState* play, s32 idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_8098E654(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
s32 func_8098E654(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
||||||
CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, arg3);
|
CsCmdActorCue* npcAction = DemoSa_GetNpcAction(play, arg3);
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action == arg2)) {
|
if ((npcAction != NULL) && (npcAction->action == arg2)) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -177,7 +177,7 @@ s32 func_8098E654(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_8098E6A0(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
s32 func_8098E6A0(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
||||||
CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, arg3);
|
CsCmdActorCue* npcAction = DemoSa_GetNpcAction(play, arg3);
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != arg2)) {
|
if ((npcAction != NULL) && (npcAction->action != arg2)) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -186,7 +186,7 @@ s32 func_8098E6A0(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8098E6EC(DemoSa* this, PlayState* play, s32 actionIdx) {
|
void func_8098E6EC(DemoSa* this, PlayState* play, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = DemoSa_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -267,7 +267,7 @@ void func_8098E960(DemoSa* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8098E9EC(DemoSa* this, PlayState* play) {
|
void func_8098E9EC(DemoSa* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
npcAction = play->csCtx.npcActions[4];
|
npcAction = play->csCtx.npcActions[4];
|
||||||
@ -287,7 +287,7 @@ void func_8098EA3C(DemoSa* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8098EA68(DemoSa* this, PlayState* play) {
|
void func_8098EA68(DemoSa* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
npcAction = play->csCtx.npcActions[4];
|
npcAction = play->csCtx.npcActions[4];
|
||||||
@ -308,7 +308,7 @@ void func_8098EB00(DemoSa* this, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_8098EB6C(DemoSa* this, PlayState* play) {
|
void func_8098EB6C(DemoSa* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
npcAction = play->csCtx.npcActions[6];
|
npcAction = play->csCtx.npcActions[6];
|
||||||
@ -552,7 +552,7 @@ void func_8098F610(DemoSa* this, s32 arg1) {
|
|||||||
void func_8098F654(DemoSa* this, PlayState* play) {
|
void func_8098F654(DemoSa* this, PlayState* play) {
|
||||||
s32 unk_1AC;
|
s32 unk_1AC;
|
||||||
s32 action;
|
s32 action;
|
||||||
CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, 4);
|
CsCmdActorCue* npcAction = DemoSa_GetNpcAction(play, 4);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
action = npcAction->action;
|
action = npcAction->action;
|
||||||
@ -697,7 +697,7 @@ void func_8098FB34(DemoSa* this, s32 arg1) {
|
|||||||
void func_8098FB68(DemoSa* this, PlayState* play) {
|
void func_8098FB68(DemoSa* this, PlayState* play) {
|
||||||
s32 unk_1AC;
|
s32 unk_1AC;
|
||||||
s32 action;
|
s32 action;
|
||||||
CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, 1);
|
CsCmdActorCue* npcAction = DemoSa_GetNpcAction(play, 1);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
action = npcAction->action;
|
action = npcAction->action;
|
||||||
|
@ -59,7 +59,7 @@ void func_80991298(DemoShd* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction0 = play->csCtx.npcActions[0];
|
CsCmdActorCue* npcAction0 = play->csCtx.npcActions[0];
|
||||||
|
|
||||||
if (npcAction0 != NULL) {
|
if (npcAction0 != NULL) {
|
||||||
if (npcAction0->action == 2) {
|
if (npcAction0->action == 2) {
|
||||||
@ -74,7 +74,7 @@ void func_80991298(DemoShd* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
CsCmdActorAction* npcAction1 = play->csCtx.npcActions[1];
|
CsCmdActorCue* npcAction1 = play->csCtx.npcActions[1];
|
||||||
|
|
||||||
if (npcAction1 != NULL) {
|
if (npcAction1 != NULL) {
|
||||||
if (npcAction1->action == 2) {
|
if (npcAction1->action == 2) {
|
||||||
|
@ -420,7 +420,7 @@ void func_80996C60(DoorShutter* this, PlayState* play) {
|
|||||||
DoorShutter_SetupAction(this, func_80997004);
|
DoorShutter_SetupAction(this, func_80997004);
|
||||||
this->unk_16C = sp38;
|
this->unk_16C = sp38;
|
||||||
this->unk_170 = 0.0f;
|
this->unk_170 = 0.0f;
|
||||||
Camera_ChangeDoorCam(play->cameraPtrs[MAIN_CAM], &this->dyna.actor, player->doorBgCamIndex, 0.0f, 12, sp34, 10);
|
Camera_ChangeDoorCam(play->cameraPtrs[MAIN_CAM], &this->dyna.actor, player->cv.slidingDoorBgCamIndex, 0.0f, 12, sp34, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,7 +558,7 @@ void func_80997220(DoorShutter* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
this->unk_164 = 0;
|
this->unk_164 = 0;
|
||||||
this->dyna.actor.velocity.y = 0.0f;
|
this->dyna.actor.velocity.y = 0.0f;
|
||||||
if (DoorShutter_SetupDoor(this, play) && !(player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD)) {
|
if (DoorShutter_SetupDoor(this, play) && !(player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR)) {
|
||||||
DoorShutter_SetupAction(this, func_80997568);
|
DoorShutter_SetupAction(this, func_80997568);
|
||||||
Player_SetCsActionWithHaltedActors(play, NULL, 2);
|
Player_SetCsActionWithHaltedActors(play, NULL, 2);
|
||||||
}
|
}
|
||||||
@ -642,7 +642,7 @@ void DoorShutter_Update(Actor* thisx, PlayState* play) {
|
|||||||
DoorShutter* this = (DoorShutter*)thisx;
|
DoorShutter* this = (DoorShutter*)thisx;
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_IN_ITEM_CS)) || (this->actionFunc == DoorShutter_SetupType)) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_IN_ITEM_CS)) || (this->actionFunc == DoorShutter_SetupType)) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ void EfcErupc_Draw(Actor* thisx, PlayState* play) {
|
|||||||
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx),
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
if (play->csCtx.state != 0) {
|
if (play->csCtx.state != 0) {
|
||||||
CsCmdActorAction* csActorAction = play->csCtx.npcActions[2];
|
CsCmdActorCue* csActorAction = play->csCtx.npcActions[2];
|
||||||
if (csActorAction != 0) {
|
if (csActorAction != 0) {
|
||||||
csAction = csActorAction->action;
|
csAction = csActorAction->action;
|
||||||
if ((csAction == 2) || (csAction == 3)) {
|
if ((csAction == 2) || (csAction == 3)) {
|
||||||
|
@ -238,11 +238,11 @@ void EnBom_Explode(EnBom* this, PlayState* play) {
|
|||||||
if (this->timer == 0) {
|
if (this->timer == 0) {
|
||||||
player = GET_PLAYER(play);
|
player = GET_PLAYER(play);
|
||||||
|
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) && (player->heldActor == &this->actor)) {
|
if ((player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) && (player->heldActor == &this->actor)) {
|
||||||
player->actor.child = NULL;
|
player->actor.child = NULL;
|
||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
player->interactRangeActor = NULL;
|
player->interactRangeActor = NULL;
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
|
@ -164,7 +164,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) {
|
|||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
player->interactRangeActor = NULL;
|
player->interactRangeActor = NULL;
|
||||||
this->actor.parent = NULL;
|
this->actor.parent = NULL;
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
}
|
}
|
||||||
} else if (this->bombCollider.base.acFlags & AC_HIT) {
|
} else if (this->bombCollider.base.acFlags & AC_HIT) {
|
||||||
this->bombCollider.base.acFlags &= ~AC_HIT;
|
this->bombCollider.base.acFlags &= ~AC_HIT;
|
||||||
@ -200,7 +200,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) {
|
|||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
player->interactRangeActor = NULL;
|
player->interactRangeActor = NULL;
|
||||||
this->actor.parent = NULL;
|
this->actor.parent = NULL;
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
this->actor.world.pos = this->actor.home.pos;
|
this->actor.world.pos = this->actor.home.pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ void EnBombf_GrowBomb(EnBombf* this, PlayState* play) {
|
|||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
player->interactRangeActor = NULL;
|
player->interactRangeActor = NULL;
|
||||||
this->actor.parent = NULL;
|
this->actor.parent = NULL;
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
this->actor.world.pos = this->actor.home.pos;
|
this->actor.world.pos = this->actor.home.pos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -302,11 +302,11 @@ void EnBombf_Explode(EnBombf* this, PlayState* play) {
|
|||||||
if (this->timer == 0) {
|
if (this->timer == 0) {
|
||||||
player = GET_PLAYER(play);
|
player = GET_PLAYER(play);
|
||||||
|
|
||||||
if ((player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) && (player->heldActor == &this->actor)) {
|
if ((player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) && (player->heldActor == &this->actor)) {
|
||||||
player->actor.child = NULL;
|
player->actor.child = NULL;
|
||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
player->interactRangeActor = NULL;
|
player->interactRangeActor = NULL;
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
|
@ -188,7 +188,7 @@ void EnBoom_Fly(EnBoom* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Set player flags and kill the boomerang beacause Link caught it.
|
// Set player flags and kill the boomerang beacause Link caught it.
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_THREW_BOOMERANG;
|
player->stateFlags1 &= ~PLAYER_STATE1_BOOMERANG_THROWN;
|
||||||
player->boomerangQuickRecall = false;
|
player->boomerangQuickRecall = false;
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ void EnDh_Wait(EnDh* this, PlayState* play) {
|
|||||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0x7D0, 0);
|
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0x7D0, 0);
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
if (this->actor.params != ENDH_START_ATTACK_BOMB) {
|
if (this->actor.params != ENDH_START_ATTACK_BOMB) {
|
||||||
func_8008EEAC(play, &this->actor);
|
Player_SetAutoLockOnActor(play, &this->actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ void EnDntJiji_Wait(EnDntJiji* this, PlayState* play) {
|
|||||||
|
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
if ((this->timer == 1) && (this->actor.xzDistToPlayer < 150.0f) && !Play_InCsMode(play) &&
|
if ((this->timer == 1) && (this->actor.xzDistToPlayer < 150.0f) && !Play_InCsMode(play) &&
|
||||||
!(player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD)) {
|
!(player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR)) {
|
||||||
OnePointCutscene_Init(play, 2230, -99, &this->actor, MAIN_CAM);
|
OnePointCutscene_Init(play, 2230, -99, &this->actor, MAIN_CAM);
|
||||||
this->timer = 0;
|
this->timer = 0;
|
||||||
Player_SetCsActionWithHaltedActors(play, NULL, 8);
|
Player_SetCsActionWithHaltedActors(play, NULL, 8);
|
||||||
|
@ -254,13 +254,13 @@ void func_809FDE9C(EnDu* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_809FDFC0(CsCmdActorAction* csAction, Vec3f* dst) {
|
void func_809FDFC0(CsCmdActorCue* csAction, Vec3f* dst) {
|
||||||
dst->x = csAction->startPos.x;
|
dst->x = csAction->startPos.x;
|
||||||
dst->y = csAction->startPos.y;
|
dst->y = csAction->startPos.y;
|
||||||
dst->z = csAction->startPos.z;
|
dst->z = csAction->startPos.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_809FE000(CsCmdActorAction* csAction, Vec3f* dst) {
|
void func_809FE000(CsCmdActorCue* csAction, Vec3f* dst) {
|
||||||
dst->x = csAction->endPos.x;
|
dst->x = csAction->endPos.x;
|
||||||
dst->y = csAction->endPos.y;
|
dst->y = csAction->endPos.y;
|
||||||
dst->z = csAction->endPos.z;
|
dst->z = csAction->endPos.z;
|
||||||
@ -473,7 +473,7 @@ void func_809FE890(EnDu* this, PlayState* play) {
|
|||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
CsCmdActorAction* csAction;
|
CsCmdActorCue* csAction;
|
||||||
|
|
||||||
if (play->csCtx.state == CS_STATE_IDLE) {
|
if (play->csCtx.state == CS_STATE_IDLE) {
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, 1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, 1);
|
||||||
|
@ -1047,11 +1047,11 @@ void func_80A04414(EnElf* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this->fairyFlags & 1) {
|
if (this->fairyFlags & 1) {
|
||||||
if ((arrowPointedActor == NULL) || (player->unk_664 == NULL)) {
|
if ((arrowPointedActor == NULL) || (player->focusActor == NULL)) {
|
||||||
this->fairyFlags ^= 1;
|
this->fairyFlags ^= 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ((arrowPointedActor != NULL) && (player->unk_664 != NULL)) {
|
if ((arrowPointedActor != NULL) && (player->focusActor != NULL)) {
|
||||||
if (arrowPointedActor->category == ACTORCAT_NPC) {
|
if (arrowPointedActor->category == ACTORCAT_NPC) {
|
||||||
targetSound = NA_SE_VO_NAVY_HELLO;
|
targetSound = NA_SE_VO_NAVY_HELLO;
|
||||||
} else {
|
} else {
|
||||||
@ -1103,7 +1103,7 @@ void func_80A0461C(EnElf* this, PlayState* play) {
|
|||||||
} else if (arrowPointedActor == NULL || arrowPointedActor->category == ACTORCAT_NPC) {
|
} else if (arrowPointedActor == NULL || arrowPointedActor->category == ACTORCAT_NPC) {
|
||||||
if (arrowPointedActor != NULL) {
|
if (arrowPointedActor != NULL) {
|
||||||
this->unk_2C0 = 100;
|
this->unk_2C0 = 100;
|
||||||
player->stateFlags2 |= PLAYER_STATE2_NAVI_OUT;
|
player->stateFlags2 |= PLAYER_STATE2_NAVI_ACTIVE;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
} else {
|
} else {
|
||||||
switch (this->unk_2A8) {
|
switch (this->unk_2A8) {
|
||||||
@ -1124,7 +1124,7 @@ void func_80A0461C(EnElf* this, PlayState* play) {
|
|||||||
this->unk_2AE--;
|
this->unk_2AE--;
|
||||||
temp = 7;
|
temp = 7;
|
||||||
} else {
|
} else {
|
||||||
player->stateFlags2 |= PLAYER_STATE2_NAVI_OUT;
|
player->stateFlags2 |= PLAYER_STATE2_NAVI_ACTIVE;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1154,7 +1154,7 @@ void func_80A0461C(EnElf* this, PlayState* play) {
|
|||||||
|
|
||||||
switch (temp) {
|
switch (temp) {
|
||||||
case 0:
|
case 0:
|
||||||
if (!(player->stateFlags2 & PLAYER_STATE2_NAVI_OUT)) {
|
if (!(player->stateFlags2 & PLAYER_STATE2_NAVI_ACTIVE)) {
|
||||||
temp = 7;
|
temp = 7;
|
||||||
if (this->unk_2C7 == 0) {
|
if (this->unk_2C7 == 0) {
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_NAVY_VANISH);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EV_NAVY_VANISH);
|
||||||
@ -1162,7 +1162,7 @@ void func_80A0461C(EnElf* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
if (player->stateFlags2 & PLAYER_STATE2_NAVI_OUT) {
|
if (player->stateFlags2 & PLAYER_STATE2_NAVI_ACTIVE) {
|
||||||
func_80A0299C(this, 0x32);
|
func_80A0299C(this, 0x32);
|
||||||
this->unk_2C0 = 42;
|
this->unk_2C0 = 42;
|
||||||
temp = 11;
|
temp = 11;
|
||||||
@ -1172,10 +1172,10 @@ void func_80A0461C(EnElf* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
player->stateFlags2 &= ~PLAYER_STATE2_NAVI_OUT;
|
player->stateFlags2 &= ~PLAYER_STATE2_NAVI_ACTIVE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
player->stateFlags2 |= PLAYER_STATE2_NAVI_OUT;
|
player->stateFlags2 |= PLAYER_STATE2_NAVI_ACTIVE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1232,7 +1232,7 @@ void func_80A04DE4(EnElf* this, PlayState* play) {
|
|||||||
if (this->fairyFlags & 0x10) {
|
if (this->fairyFlags & 0x10) {
|
||||||
naviRefPos = play->actorCtx.targetCtx.naviRefPos;
|
naviRefPos = play->actorCtx.targetCtx.naviRefPos;
|
||||||
|
|
||||||
if ((player->unk_664 == NULL) || (&player->actor == player->unk_664) || (&this->actor == player->unk_664)) {
|
if ((player->focusActor == NULL) || (&player->actor == player->focusActor) || (&this->actor == player->focusActor)) {
|
||||||
naviRefPos.x = player->bodyPartsPos[7].x + (Math_SinS(player->actor.shape.rot.y) * 20.0f);
|
naviRefPos.x = player->bodyPartsPos[7].x + (Math_SinS(player->actor.shape.rot.y) * 20.0f);
|
||||||
naviRefPos.y = player->bodyPartsPos[7].y + 5.0f;
|
naviRefPos.y = player->bodyPartsPos[7].y + 5.0f;
|
||||||
naviRefPos.z = player->bodyPartsPos[7].z + (Math_CosS(player->actor.shape.rot.y) * 20.0f);
|
naviRefPos.z = player->bodyPartsPos[7].z + (Math_CosS(player->actor.shape.rot.y) * 20.0f);
|
||||||
@ -1384,7 +1384,7 @@ void func_80A053F0(Actor* thisx, PlayState* play) {
|
|||||||
EnElf* this = (EnElf*)thisx;
|
EnElf* this = (EnElf*)thisx;
|
||||||
|
|
||||||
if (player->naviTextId == 0) {
|
if (player->naviTextId == 0) {
|
||||||
if (player->unk_664 == NULL) {
|
if (player->focusActor == NULL) {
|
||||||
if (((gSaveContext.naviTimer >= 600) && (gSaveContext.naviTimer <= 3000)) || (nREG(89) != 0)) {
|
if (((gSaveContext.naviTimer >= 600) && (gSaveContext.naviTimer <= 3000)) || (nREG(89) != 0)) {
|
||||||
player->naviTextId = ElfMessage_GetCUpText(play);
|
player->naviTextId = ElfMessage_GetCUpText(play);
|
||||||
|
|
||||||
@ -1551,7 +1551,7 @@ void EnElf_Draw(Actor* thisx, PlayState* play) {
|
|||||||
void EnElf_GetCutsceneNextPos(Vec3f* vec, PlayState* play, s32 action) {
|
void EnElf_GetCutsceneNextPos(Vec3f* vec, PlayState* play, s32 action) {
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[action];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[action];
|
||||||
f32 lerp;
|
f32 lerp;
|
||||||
|
|
||||||
startPos.x = npcAction->startPos.x;
|
startPos.x = npcAction->startPos.x;
|
||||||
|
@ -389,7 +389,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
|
|||||||
this->actor.parent = NULL;
|
this->actor.parent = NULL;
|
||||||
|
|
||||||
if (!GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) {
|
if (!GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) {
|
||||||
GET_PLAYER(play)->stateFlags1 &= ~(PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_ITEM_OVER_HEAD);
|
GET_PLAYER(play)->stateFlags1 &= ~(PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_CARRYING_ACTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CUR_UPG_VALUE(UPG_BULLET_BAG) == 1) {
|
if (CUR_UPG_VALUE(UPG_BULLET_BAG) == 1) {
|
||||||
|
@ -622,7 +622,7 @@ void EnFish_Cutscene_WiggleFlyingThroughAir(EnFish* this, PlayState* play) {
|
|||||||
void EnFish_UpdateCutscene(EnFish* this, PlayState* play) {
|
void EnFish_UpdateCutscene(EnFish* this, PlayState* play) {
|
||||||
s32 pad;
|
s32 pad;
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
CsCmdActorAction* csAction = play->csCtx.npcActions[1];
|
CsCmdActorCue* csAction = play->csCtx.npcActions[1];
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
f32 progress;
|
f32 progress;
|
||||||
|
@ -725,7 +725,7 @@ void EnGoroiwa_Update(Actor* thisx, PlayState* play) {
|
|||||||
s32 pad;
|
s32 pad;
|
||||||
s32 sp30;
|
s32 sp30;
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
||||||
if (this->collisionDisabledTimer > 0) {
|
if (this->collisionDisabledTimer > 0) {
|
||||||
this->collisionDisabledTimer--;
|
this->collisionDisabledTimer--;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
|
#define FLAGS ACTOR_FLAG_UPDATE_WHILE_CULLED
|
||||||
|
|
||||||
typedef void (*EnHorseCsFunc)(EnHorse*, PlayState*, CsCmdActorAction*);
|
typedef void (*EnHorseCsFunc)(EnHorse*, PlayState*, CsCmdActorCue*);
|
||||||
typedef void (*EnHorseActionFunc)(EnHorse*, PlayState*);
|
typedef void (*EnHorseActionFunc)(EnHorse*, PlayState*);
|
||||||
|
|
||||||
void EnHorse_Init(Actor* thisx, PlayState* play);
|
void EnHorse_Init(Actor* thisx, PlayState* play);
|
||||||
@ -388,11 +388,11 @@ static s32 sIdleAnimIds[] = { 1, 3, 0, 3, 1, 0 };
|
|||||||
|
|
||||||
static s16 sIngoAnimations[] = { 7, 6, 2, 2, 1, 1, 0, 0, 0, 0 };
|
static s16 sIngoAnimations[] = { 7, 6, 2, 2, 1, 1, 0, 0, 0, 0 };
|
||||||
|
|
||||||
void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
|
|
||||||
static EnHorseCsFunc sCutsceneInitFuncs[] = {
|
static EnHorseCsFunc sCutsceneInitFuncs[] = {
|
||||||
NULL,
|
NULL,
|
||||||
@ -403,11 +403,11 @@ static EnHorseCsFunc sCutsceneInitFuncs[] = {
|
|||||||
EnHorse_CsWarpRearingInit,
|
EnHorse_CsWarpRearingInit,
|
||||||
};
|
};
|
||||||
|
|
||||||
void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action);
|
void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorCue* action);
|
||||||
|
|
||||||
static EnHorseCsFunc sCutsceneActionFuncs[] = {
|
static EnHorseCsFunc sCutsceneActionFuncs[] = {
|
||||||
NULL, EnHorse_CsMoveToPoint, EnHorse_CsJump, EnHorse_CsRearing, EnHorse_CsWarpMoveToPoint, EnHorse_CsWarpRearing,
|
NULL, EnHorse_CsMoveToPoint, EnHorse_CsJump, EnHorse_CsRearing, EnHorse_CsWarpMoveToPoint, EnHorse_CsWarpRearing,
|
||||||
@ -2104,7 +2104,7 @@ void EnHorse_UpdateIngoRace(EnHorse* this, PlayState* play) {
|
|||||||
&((EnIn*)this->rider)->animationIdx, &((EnIn*)this->rider)->unk_1E0);
|
&((EnIn*)this->rider)->animationIdx, &((EnIn*)this->rider)->unk_1E0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->animationIdx = ENHORSE_ANIM_GALLOP;
|
this->animationIdx = ENHORSE_ANIM_GALLOP;
|
||||||
this->cutsceneAction = 1;
|
this->cutsceneAction = 1;
|
||||||
Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx],
|
Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx],
|
||||||
@ -2113,7 +2113,7 @@ void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action
|
|||||||
|
|
||||||
void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play);
|
void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play);
|
||||||
|
|
||||||
void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
f32 speed = 8.0f;
|
f32 speed = 8.0f;
|
||||||
|
|
||||||
@ -2165,13 +2165,13 @@ void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play) {
|
|||||||
func_800AA000(0.0f, 170, 10, 10);
|
func_800AA000(0.0f, 170, 10, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
EnHorse_CsSetAnimHighJump(this, play);
|
EnHorse_CsSetAnimHighJump(this, play);
|
||||||
this->cutsceneAction = 2;
|
this->cutsceneAction = 2;
|
||||||
this->cutsceneFlags &= ~1;
|
this->cutsceneFlags &= ~1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
f32 temp_f2;
|
f32 temp_f2;
|
||||||
|
|
||||||
if (this->cutsceneFlags & 1) {
|
if (this->cutsceneFlags & 1) {
|
||||||
@ -2223,7 +2223,7 @@ void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->animationIdx = ENHORSE_ANIM_REARING;
|
this->animationIdx = ENHORSE_ANIM_REARING;
|
||||||
this->cutsceneAction = 3;
|
this->cutsceneAction = 3;
|
||||||
this->cutsceneFlags &= ~4;
|
this->cutsceneFlags &= ~4;
|
||||||
@ -2236,7 +2236,7 @@ void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* act
|
|||||||
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
|
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->actor.speedXZ = 0.0f;
|
this->actor.speedXZ = 0.0f;
|
||||||
if (this->curFrame > 25.0f) {
|
if (this->curFrame > 25.0f) {
|
||||||
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
|
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
|
||||||
@ -2259,7 +2259,7 @@ void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->actor.world.pos.x = action->startPos.x;
|
this->actor.world.pos.x = action->startPos.x;
|
||||||
this->actor.world.pos.y = action->startPos.y;
|
this->actor.world.pos.y = action->startPos.y;
|
||||||
this->actor.world.pos.z = action->startPos.z;
|
this->actor.world.pos.z = action->startPos.z;
|
||||||
@ -2272,7 +2272,7 @@ void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* acti
|
|||||||
this->actor.speedXZ * 0.3f);
|
this->actor.speedXZ * 0.3f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
f32 speed = 8.0f;
|
f32 speed = 8.0f;
|
||||||
|
|
||||||
@ -2296,7 +2296,7 @@ void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->actor.world.pos.x = action->startPos.x;
|
this->actor.world.pos.x = action->startPos.x;
|
||||||
this->actor.world.pos.y = action->startPos.y;
|
this->actor.world.pos.y = action->startPos.y;
|
||||||
this->actor.world.pos.z = action->startPos.z;
|
this->actor.world.pos.z = action->startPos.z;
|
||||||
@ -2315,7 +2315,7 @@ void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction*
|
|||||||
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
|
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action) {
|
void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorCue* action) {
|
||||||
this->actor.speedXZ = 0.0f;
|
this->actor.speedXZ = 0.0f;
|
||||||
if (this->curFrame > 25.0f) {
|
if (this->curFrame > 25.0f) {
|
||||||
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
|
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
|
||||||
@ -2362,7 +2362,7 @@ s32 EnHorse_GetCutsceneFunctionIndex(s32 csAction) {
|
|||||||
|
|
||||||
void EnHorse_CutsceneUpdate(EnHorse* this, PlayState* play) {
|
void EnHorse_CutsceneUpdate(EnHorse* this, PlayState* play) {
|
||||||
s32 csFunctionIdx;
|
s32 csFunctionIdx;
|
||||||
CsCmdActorAction* linkCsAction = play->csCtx.linkAction;
|
CsCmdActorCue* linkCsAction = play->csCtx.linkAction;
|
||||||
|
|
||||||
if (play->csCtx.state == 3) {
|
if (play->csCtx.state == 3) {
|
||||||
this->playerControlled = 1;
|
this->playerControlled = 1;
|
||||||
|
@ -1056,7 +1056,7 @@ s32 func_80A7707C(EnIk* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* EnIk_GetNpcAction(PlayState* play, s32 actionIdx) {
|
CsCmdActorCue* EnIk_GetNpcAction(PlayState* play, s32 actionIdx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[actionIdx];
|
return play->csCtx.npcActions[actionIdx];
|
||||||
} else {
|
} else {
|
||||||
@ -1065,7 +1065,7 @@ CsCmdActorAction* EnIk_GetNpcAction(PlayState* play, s32 actionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80A770C0(EnIk* this, PlayState* play, s32 actionIdx) {
|
void func_80A770C0(EnIk* this, PlayState* play, s32 actionIdx) {
|
||||||
CsCmdActorAction* npcAction = EnIk_GetNpcAction(play, actionIdx);
|
CsCmdActorCue* npcAction = EnIk_GetNpcAction(play, actionIdx);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -1247,7 +1247,7 @@ void func_80A77844(EnIk* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80A779DC(EnIk* this, PlayState* play) {
|
void func_80A779DC(EnIk* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnIk_GetNpcAction(play, 4);
|
CsCmdActorCue* npcAction = EnIk_GetNpcAction(play, 4);
|
||||||
u32 action;
|
u32 action;
|
||||||
u32 currentNpcAction;
|
u32 currentNpcAction;
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ s32 EnNb_UpdateSkelAnime(EnNb* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* EnNb_GetNpcCsAction(PlayState* play, s32 npcActionIdx) {
|
CsCmdActorCue* EnNb_GetNpcCsAction(PlayState* play, s32 npcActionIdx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[npcActionIdx];
|
return play->csCtx.npcActions[npcActionIdx];
|
||||||
}
|
}
|
||||||
@ -240,7 +240,7 @@ CsCmdActorAction* EnNb_GetNpcCsAction(PlayState* play, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_SetupCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) {
|
void EnNb_SetupCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx);
|
||||||
s16 newRotY;
|
s16 newRotY;
|
||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ void EnNb_SetupCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AB1390(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
s32 func_80AB1390(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if ((play->csCtx.state != CS_STATE_IDLE) &&
|
if ((play->csCtx.state != CS_STATE_IDLE) &&
|
||||||
(csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) &&
|
(csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) &&
|
||||||
@ -264,7 +264,7 @@ s32 func_80AB1390(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AB13D8(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
s32 func_80AB13D8(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if ((play->csCtx.state != CS_STATE_IDLE) &&
|
if ((play->csCtx.state != CS_STATE_IDLE) &&
|
||||||
(csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) &&
|
(csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) &&
|
||||||
@ -275,7 +275,7 @@ s32 func_80AB13D8(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_SetInitialCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) {
|
void EnNb_SetInitialCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx);
|
||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
|
|
||||||
if (csCmdNPCAction != NULL) {
|
if (csCmdNPCAction != NULL) {
|
||||||
@ -354,7 +354,7 @@ void EnNb_SetupChamberCsImpl(EnNb* this, PlayState* play) {
|
|||||||
|
|
||||||
void EnNb_SetupChamberWarpImpl(EnNb* this, PlayState* play) {
|
void EnNb_SetupChamberWarpImpl(EnNb* this, PlayState* play) {
|
||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (csCtx->state != CS_STATE_IDLE) {
|
if (csCtx->state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = csCtx->npcActions[1];
|
csCmdNPCAction = csCtx->npcActions[1];
|
||||||
@ -375,7 +375,7 @@ void EnNb_SetupDefaultChamberIdle(EnNb* this) {
|
|||||||
|
|
||||||
void EnNb_SetupArmRaise(EnNb* this, PlayState* play) {
|
void EnNb_SetupArmRaise(EnNb* this, PlayState* play) {
|
||||||
AnimationHeader* animation = &gNabooruRaisingArmsGivingMedallionAnim;
|
AnimationHeader* animation = &gNabooruRaisingArmsGivingMedallionAnim;
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = play->csCtx.npcActions[1];
|
csCmdNPCAction = play->csCtx.npcActions[1];
|
||||||
@ -398,7 +398,7 @@ void EnNb_SetupRaisedArmTransition(EnNb* this, s32 animFinished) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_SetupMedallion(EnNb* this, PlayState* play) {
|
void EnNb_SetupMedallion(EnNb* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = play->csCtx.npcActions[6];
|
csCmdNPCAction = play->csCtx.npcActions[6];
|
||||||
@ -587,7 +587,7 @@ void EnNb_PlayAgonySFX(EnNb* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_SetPosInPortal(EnNb* this, PlayState* play) {
|
void EnNb_SetPosInPortal(EnNb* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
CsCmdActorCue* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
||||||
Vec3f* pos = &this->actor.world.pos;
|
Vec3f* pos = &this->actor.world.pos;
|
||||||
f32 f0;
|
f32 f0;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
@ -642,7 +642,7 @@ void EnNb_SetupKidnap(EnNb* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_CheckKidnapCsMode(EnNb* this, PlayState* play) {
|
void EnNb_CheckKidnapCsMode(EnNb* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
CsCmdActorCue* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
||||||
s32 action;
|
s32 action;
|
||||||
s32 previousCsAction;
|
s32 previousCsAction;
|
||||||
|
|
||||||
@ -849,7 +849,7 @@ void EnNb_SetupConfrontationDestroy(EnNb* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_CheckConfrontationCsMode(EnNb* this, PlayState* play) {
|
void EnNb_CheckConfrontationCsMode(EnNb* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
s32 csAction;
|
s32 csAction;
|
||||||
s32 previousCsAction;
|
s32 previousCsAction;
|
||||||
|
|
||||||
@ -1051,7 +1051,7 @@ void EnNb_CheckIfLookingUp(EnNb* this, s32 animFinished) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_CheckCreditsCsModeImpl(EnNb* this, PlayState* play) {
|
void EnNb_CheckCreditsCsModeImpl(EnNb* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
CsCmdActorCue* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1);
|
||||||
s32 action;
|
s32 action;
|
||||||
s32 previousCsAction;
|
s32 previousCsAction;
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ void EnNutsball_Update(Actor* thisx, PlayState* play) {
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE)) || (this->actionFunc == func_80ABBB34)) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE)) || (this->actionFunc == func_80ABBB34)) {
|
||||||
this->actionFunc(this, play);
|
this->actionFunc(this, play);
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveForward(&this->actor);
|
||||||
|
@ -629,7 +629,7 @@ void EnOkuta_Update(Actor* thisx, PlayState* play2) {
|
|||||||
Vec3f sp38;
|
Vec3f sp38;
|
||||||
s32 sp34;
|
s32 sp34;
|
||||||
|
|
||||||
if (!(player->stateFlags1 & (PLAYER_STATE1_TEXT_ON_SCREEN | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
if (!(player->stateFlags1 & (PLAYER_STATE1_TALKING | PLAYER_STATE1_DEAD | PLAYER_STATE1_IN_ITEM_CS | PLAYER_STATE1_IN_CUTSCENE))) {
|
||||||
if (this->actor.params == 0) {
|
if (this->actor.params == 0) {
|
||||||
EnOkuta_ColliderCheck(this, play);
|
EnOkuta_ColliderCheck(this, play);
|
||||||
if (!WaterBox_GetSurfaceImpl(play, &play->colCtx, this->actor.world.pos.x,
|
if (!WaterBox_GetSurfaceImpl(play, &play->colCtx, this->actor.world.pos.x,
|
||||||
|
@ -340,8 +340,8 @@ void func_80AE2C1C(EnRd* this, PlayState* play) {
|
|||||||
if (this->unk_306 == 0) {
|
if (this->unk_306 == 0) {
|
||||||
if (!(this->unk_312 & PLAYER_STATE2_GRABBED_BY_ENEMY) && !CVarGetInteger(CVAR_CHEAT("NoRedeadFreeze"), 0)) {
|
if (!(this->unk_312 & PLAYER_STATE2_GRABBED_BY_ENEMY) && !CVarGetInteger(CVAR_CHEAT("NoRedeadFreeze"), 0)) {
|
||||||
player->actor.freezeTimer = 40;
|
player->actor.freezeTimer = 40;
|
||||||
func_8008EEAC(play, &this->actor);
|
Player_SetAutoLockOnActor(play, &this->actor);
|
||||||
GET_PLAYER(play)->unk_684 = &this->actor;
|
GET_PLAYER(play)->autoLockOnActor = &this->actor;
|
||||||
func_800AA000(this->actor.xzDistToPlayer, 0xFF, 0x14, 0x96);
|
func_800AA000(this->actor.xzDistToPlayer, 0xFF, 0x14, 0x96);
|
||||||
}
|
}
|
||||||
this->unk_306 = 0x3C;
|
this->unk_306 = 0x3C;
|
||||||
@ -573,7 +573,7 @@ void func_80AE3834(EnRd* this, PlayState* play) {
|
|||||||
if (!(this->unk_312 & 0x80) && !CVarGetInteger(CVAR_CHEAT("NoRedeadFreeze"), 0)) {
|
if (!(this->unk_312 & 0x80) && !CVarGetInteger(CVAR_CHEAT("NoRedeadFreeze"), 0)) {
|
||||||
player->actor.freezeTimer = 60;
|
player->actor.freezeTimer = 60;
|
||||||
func_800AA000(this->actor.xzDistToPlayer, 0xFF, 0x14, 0x96);
|
func_800AA000(this->actor.xzDistToPlayer, 0xFF, 0x14, 0x96);
|
||||||
func_8008EEAC(play, &this->actor);
|
Player_SetAutoLockOnActor(play, &this->actor);
|
||||||
}
|
}
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_REDEAD_AIM);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_REDEAD_AIM);
|
||||||
func_80AE2B90(this, play);
|
func_80AE2B90(this, play);
|
||||||
|
@ -86,7 +86,7 @@ s32 func_80AE7494(EnRl* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AE74B4(EnRl* this, PlayState* play, u16 arg2, s32 arg3) {
|
s32 func_80AE74B4(EnRl* this, PlayState* play, u16 arg2, s32 arg3) {
|
||||||
CsCmdActorAction* csCmdActorAction;
|
CsCmdActorCue* csCmdActorAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdActorAction = play->csCtx.npcActions[arg3];
|
csCmdActorAction = play->csCtx.npcActions[arg3];
|
||||||
@ -98,7 +98,7 @@ s32 func_80AE74B4(EnRl* this, PlayState* play, u16 arg2, s32 arg3) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AE74FC(EnRl* this, PlayState* play, u16 arg2, s32 arg3) {
|
s32 func_80AE74FC(EnRl* this, PlayState* play, u16 arg2, s32 arg3) {
|
||||||
CsCmdActorAction* csCmdActorAction;
|
CsCmdActorCue* csCmdActorAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdActorAction = play->csCtx.npcActions[arg3];
|
csCmdActorAction = play->csCtx.npcActions[arg3];
|
||||||
@ -143,7 +143,7 @@ void func_80AE7668(EnRl* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AE7698(EnRl* this, PlayState* play) {
|
void func_80AE7698(EnRl* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdActorAction;
|
CsCmdActorCue* csCmdActorAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdActorAction = play->csCtx.npcActions[0];
|
csCmdActorAction = play->csCtx.npcActions[0];
|
||||||
|
@ -248,9 +248,9 @@ s32 EnRu1_IsCsStateIdle(PlayState* play) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* func_80AEAF58(PlayState* play, s32 npcActionIdx) {
|
CsCmdActorCue* func_80AEAF58(PlayState* play, s32 npcActionIdx) {
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
CsCmdActorAction* ret = NULL;
|
CsCmdActorCue* ret = NULL;
|
||||||
|
|
||||||
if (!EnRu1_IsCsStateIdle(play)) {
|
if (!EnRu1_IsCsStateIdle(play)) {
|
||||||
ret = play->csCtx.npcActions[npcActionIdx];
|
ret = play->csCtx.npcActions[npcActionIdx];
|
||||||
@ -259,7 +259,7 @@ CsCmdActorAction* func_80AEAF58(PlayState* play, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AEAFA0(PlayState* play, u16 action, s32 npcActionIdx) {
|
s32 func_80AEAFA0(PlayState* play, u16 action, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AEAF58(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = func_80AEAF58(play, npcActionIdx);
|
||||||
|
|
||||||
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == action)) {
|
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == action)) {
|
||||||
return true;
|
return true;
|
||||||
@ -268,7 +268,7 @@ s32 func_80AEAFA0(PlayState* play, u16 action, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AEAFE0(PlayState* play, u16 action, s32 npcActionIdx) {
|
s32 func_80AEAFE0(PlayState* play, u16 action, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AEAF58(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = func_80AEAF58(play, npcActionIdx);
|
||||||
|
|
||||||
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != action)) {
|
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != action)) {
|
||||||
return true;
|
return true;
|
||||||
@ -412,7 +412,7 @@ void func_80AEB3DC(EnRu1* this, PlayState* play) {
|
|||||||
EnRu1_SetMouthIndex(this, 0);
|
EnRu1_SetMouthIndex(this, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* func_80AEB438(PlayState* play) {
|
CsCmdActorCue* func_80AEB438(PlayState* play) {
|
||||||
return func_80AEAF58(play, 3);
|
return func_80AEAF58(play, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,7 +482,7 @@ void func_80AEB7D0(EnRu1* this) {
|
|||||||
this->skelAnime.moveFlags &= ~0x3;
|
this->skelAnime.moveFlags &= ~0x3;
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 func_80AEB7E0(CsCmdActorAction* csCmdNPCAction, PlayState* play) {
|
f32 func_80AEB7E0(CsCmdActorCue* csCmdNPCAction, PlayState* play) {
|
||||||
s32 csCtxFrames = play->csCtx.frames;
|
s32 csCtxFrames = play->csCtx.frames;
|
||||||
|
|
||||||
if ((csCtxFrames < csCmdNPCAction->endFrame) && (csCmdNPCAction->endFrame - csCmdNPCAction->startFrame > 0)) {
|
if ((csCtxFrames < csCmdNPCAction->endFrame) && (csCmdNPCAction->endFrame - csCmdNPCAction->startFrame > 0)) {
|
||||||
@ -500,7 +500,7 @@ f32 func_80AEB87C(f32 arg0, s32 arg1, s32 arg2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AEB89C(EnRu1* this, PlayState* play) {
|
void func_80AEB89C(EnRu1* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = func_80AEB438(play);
|
CsCmdActorCue* npcAction = func_80AEB438(play);
|
||||||
s16 npcActionRotY;
|
s16 npcActionRotY;
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
@ -528,7 +528,7 @@ void func_80AEB954(EnRu1* this, PlayState* play) {
|
|||||||
void func_80AEB974(EnRu1* this, PlayState* play) {
|
void func_80AEB974(EnRu1* this, PlayState* play) {
|
||||||
Vec3f* thisPos;
|
Vec3f* thisPos;
|
||||||
f32 sp30;
|
f32 sp30;
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AEB438(play);
|
CsCmdActorCue* csCmdNPCAction = func_80AEB438(play);
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
if (csCmdNPCAction != NULL) {
|
if (csCmdNPCAction != NULL) {
|
||||||
@ -549,7 +549,7 @@ void func_80AEBA2C(EnRu1* this, PlayState* play) {
|
|||||||
Vec3f* unk_364 = &this->unk_364;
|
Vec3f* unk_364 = &this->unk_364;
|
||||||
Vec3f* thisPos;
|
Vec3f* thisPos;
|
||||||
f32 temp_ret_2;
|
f32 temp_ret_2;
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AEB438(play);
|
CsCmdActorCue* csCmdNPCAction = func_80AEB438(play);
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
|
|
||||||
if (csCmdNPCAction != NULL) {
|
if (csCmdNPCAction != NULL) {
|
||||||
@ -675,7 +675,7 @@ void func_80AEBF60(EnRu1* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AEBFD8(EnRu1* this, PlayState* play) {
|
void func_80AEBFD8(EnRu1* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AEB438(play);
|
CsCmdActorCue* csCmdNPCAction = func_80AEB438(play);
|
||||||
f32 frameCount;
|
f32 frameCount;
|
||||||
u16 csCtxFrames;
|
u16 csCtxFrames;
|
||||||
u16 endFrame;
|
u16 endFrame;
|
||||||
@ -878,7 +878,7 @@ void func_80AEC780(EnRu1* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AEC81C(EnRu1* this, PlayState* play) {
|
void func_80AEC81C(EnRu1* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
s16 newRotY;
|
s16 newRotY;
|
||||||
|
|
||||||
if (func_80AEAFE0(play, 1, 3)) {
|
if (func_80AEAFE0(play, 1, 3)) {
|
||||||
@ -1653,7 +1653,7 @@ void func_80AEE7C4(EnRu1* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
player = GET_PLAYER(play);
|
player = GET_PLAYER(play);
|
||||||
if (player->stateFlags2 & PLAYER_STATE2_IDLING) {
|
if (player->stateFlags2 & PLAYER_STATE2_IDLE_FIDGET) {
|
||||||
this->unk_370 += 1.0f;
|
this->unk_370 += 1.0f;
|
||||||
if (this->action != 32) {
|
if (this->action != 32) {
|
||||||
if (*unk_370 > 30.0f) {
|
if (*unk_370 > 30.0f) {
|
||||||
@ -1953,8 +1953,8 @@ void func_80AEF5B8(EnRu1* this) {
|
|||||||
|
|
||||||
void func_80AEF624(EnRu1* this, PlayState* play) {
|
void func_80AEF624(EnRu1* this, PlayState* play) {
|
||||||
f32 frameCount;
|
f32 frameCount;
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
CsCmdActorAction* csCmdNPCAction2;
|
CsCmdActorCue* csCmdNPCAction2;
|
||||||
s16 newRotTmp;
|
s16 newRotTmp;
|
||||||
|
|
||||||
if (func_80AEAFE0(play, 1, 3)) {
|
if (func_80AEAFE0(play, 1, 3)) {
|
||||||
|
@ -176,7 +176,7 @@ s32 EnRu2_UpdateSkelAnime(EnRu2* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* func_80AF27AC(PlayState* play, s32 npcActionIdx) {
|
CsCmdActorCue* func_80AF27AC(PlayState* play, s32 npcActionIdx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[npcActionIdx];
|
return play->csCtx.npcActions[npcActionIdx];
|
||||||
}
|
}
|
||||||
@ -184,7 +184,7 @@ CsCmdActorAction* func_80AF27AC(PlayState* play, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AF27D0(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
s32 func_80AF27D0(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdActorAction = func_80AF27AC(play, npcActionIdx);
|
CsCmdActorCue* csCmdActorAction = func_80AF27AC(play, npcActionIdx);
|
||||||
|
|
||||||
if ((csCmdActorAction != NULL) && (csCmdActorAction->action == arg2)) {
|
if ((csCmdActorAction != NULL) && (csCmdActorAction->action == arg2)) {
|
||||||
return true;
|
return true;
|
||||||
@ -193,7 +193,7 @@ s32 func_80AF27D0(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 func_80AF281C(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
s32 func_80AF281C(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = func_80AF27AC(play, npcActionIdx);
|
||||||
|
|
||||||
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != arg2)) {
|
if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != arg2)) {
|
||||||
return true;
|
return true;
|
||||||
@ -202,7 +202,7 @@ s32 func_80AF281C(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AF2868(EnRu2* this, PlayState* play, u32 npcActionIdx) {
|
void func_80AF2868(EnRu2* this, PlayState* play, u32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = func_80AF27AC(play, npcActionIdx);
|
||||||
s16 newRotY;
|
s16 newRotY;
|
||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
|
|
||||||
@ -287,7 +287,7 @@ void func_80AF2AB4(EnRu2* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_80AF2B44(EnRu2* this, PlayState* play) {
|
void func_80AF2B44(EnRu2* this, PlayState* play) {
|
||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (csCtx->state != CS_STATE_IDLE) {
|
if (csCtx->state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = csCtx->npcActions[3];
|
csCmdNPCAction = csCtx->npcActions[3];
|
||||||
@ -308,7 +308,7 @@ void func_80AF2B94(EnRu2* this) {
|
|||||||
|
|
||||||
void func_80AF2BC0(EnRu2* this, PlayState* play) {
|
void func_80AF2BC0(EnRu2* this, PlayState* play) {
|
||||||
AnimationHeader* animation = &gAdultRutoRaisingArmsUpAnim;
|
AnimationHeader* animation = &gAdultRutoRaisingArmsUpAnim;
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = play->csCtx.npcActions[3];
|
csCmdNPCAction = play->csCtx.npcActions[3];
|
||||||
@ -327,7 +327,7 @@ void func_80AF2C54(EnRu2* this, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AF2C68(EnRu2* this, PlayState* play) {
|
void func_80AF2C68(EnRu2* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
|
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
csCmdNPCAction = play->csCtx.npcActions[6];
|
csCmdNPCAction = play->csCtx.npcActions[6];
|
||||||
@ -544,7 +544,7 @@ void func_80AF3530(EnRu2* this, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80AF3564(EnRu2* this, PlayState* play) {
|
void func_80AF3564(EnRu2* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, 3);
|
CsCmdActorCue* csCmdNPCAction = func_80AF27AC(play, 3);
|
||||||
s32 action;
|
s32 action;
|
||||||
s32 unk_2BC;
|
s32 unk_2BC;
|
||||||
|
|
||||||
|
@ -463,13 +463,13 @@ void func_80AF609C(EnSa* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80AF6130(CsCmdActorAction* csAction, Vec3f* dst) {
|
void func_80AF6130(CsCmdActorCue* csAction, Vec3f* dst) {
|
||||||
dst->x = csAction->startPos.x;
|
dst->x = csAction->startPos.x;
|
||||||
dst->y = csAction->startPos.y;
|
dst->y = csAction->startPos.y;
|
||||||
dst->z = csAction->startPos.z;
|
dst->z = csAction->startPos.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80AF6170(CsCmdActorAction* csAction, Vec3f* dst) {
|
void func_80AF6170(CsCmdActorCue* csAction, Vec3f* dst) {
|
||||||
dst->x = csAction->endPos.x;
|
dst->x = csAction->endPos.x;
|
||||||
dst->y = csAction->endPos.y;
|
dst->y = csAction->endPos.y;
|
||||||
dst->z = csAction->endPos.z;
|
dst->z = csAction->endPos.z;
|
||||||
@ -639,7 +639,7 @@ void func_80AF68E4(EnSa* this, PlayState* play) {
|
|||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
Vec3f endPos;
|
Vec3f endPos;
|
||||||
Vec3f D_80AF7448 = { 0.0f, 0.0f, 0.0f };
|
Vec3f D_80AF7448 = { 0.0f, 0.0f, 0.0f };
|
||||||
CsCmdActorAction* csAction;
|
CsCmdActorCue* csAction;
|
||||||
f32 temp_f0;
|
f32 temp_f0;
|
||||||
f32 gravity;
|
f32 gravity;
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ s32 func_80B150AC(EnTa* this, PlayState* play, s32 idx) {
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
Actor* interactRangeActor;
|
Actor* interactRangeActor;
|
||||||
|
|
||||||
if (player->stateFlags1 & PLAYER_STATE1_ITEM_OVER_HEAD) {
|
if (player->stateFlags1 & PLAYER_STATE1_CARRYING_ACTOR) {
|
||||||
interactRangeActor = player->interactRangeActor;
|
interactRangeActor = player->interactRangeActor;
|
||||||
if (interactRangeActor != NULL && interactRangeActor->id == ACTOR_EN_NIW &&
|
if (interactRangeActor != NULL && interactRangeActor->id == ACTOR_EN_NIW &&
|
||||||
interactRangeActor == &this->superCuccos[idx]->actor) {
|
interactRangeActor == &this->superCuccos[idx]->actor) {
|
||||||
@ -614,7 +614,7 @@ void func_80B15100(EnTa* this, PlayState* play) {
|
|||||||
if (player->heldActor == &this->superCuccos[unk_2CA]->actor) {
|
if (player->heldActor == &this->superCuccos[unk_2CA]->actor) {
|
||||||
player->heldActor = NULL;
|
player->heldActor = NULL;
|
||||||
}
|
}
|
||||||
player->stateFlags1 &= ~PLAYER_STATE1_ITEM_OVER_HEAD;
|
player->stateFlags1 &= ~PLAYER_STATE1_CARRYING_ACTOR;
|
||||||
this->superCuccos[unk_2CA] = NULL;
|
this->superCuccos[unk_2CA] = NULL;
|
||||||
}
|
}
|
||||||
this->unk_2E0 |= 1;
|
this->unk_2E0 |= 1;
|
||||||
|
@ -407,7 +407,7 @@ void EnTest_ChooseAction(EnTest* this, PlayState* play) {
|
|||||||
} else {
|
} else {
|
||||||
if (this->actor.xzDistToPlayer < 110.0f) {
|
if (this->actor.xzDistToPlayer < 110.0f) {
|
||||||
if (Rand_ZeroOne() > 0.2f) {
|
if (Rand_ZeroOne() > 0.2f) {
|
||||||
if (player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) {
|
if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) {
|
||||||
if (this->actor.isTargeted) {
|
if (this->actor.isTargeted) {
|
||||||
EnTest_SetupSlashDown(this);
|
EnTest_SetupSlashDown(this);
|
||||||
} else {
|
} else {
|
||||||
@ -693,7 +693,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) {
|
|||||||
|
|
||||||
if (this->actor.xzDistToPlayer < 110.0f) {
|
if (this->actor.xzDistToPlayer < 110.0f) {
|
||||||
if (Rand_ZeroOne() > 0.2f) {
|
if (Rand_ZeroOne() > 0.2f) {
|
||||||
if (player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) {
|
if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) {
|
||||||
if (this->actor.isTargeted) {
|
if (this->actor.isTargeted) {
|
||||||
EnTest_SetupSlashDown(this);
|
EnTest_SetupSlashDown(this);
|
||||||
} else {
|
} else {
|
||||||
@ -978,7 +978,7 @@ void EnTest_SlashDownEnd(EnTest* this, PlayState* play) {
|
|||||||
if ((ABS(yawDiff) > 0x3E80) && (this->actor.params != STALFOS_TYPE_CEILING)) {
|
if ((ABS(yawDiff) > 0x3E80) && (this->actor.params != STALFOS_TYPE_CEILING)) {
|
||||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||||
EnTest_SetupJumpBack(this);
|
EnTest_SetupJumpBack(this);
|
||||||
} else if (player->stateFlags1 & PLAYER_STATE1_ENEMY_TARGET) {
|
} else if (player->stateFlags1 & PLAYER_STATE1_HOSTILE_LOCK_ON) {
|
||||||
if (this->actor.isTargeted) {
|
if (this->actor.isTargeted) {
|
||||||
EnTest_SetupSlashDown(this);
|
EnTest_SetupSlashDown(this);
|
||||||
} else if ((play->gameplayFrames % 2) != 0) {
|
} else if ((play->gameplayFrames % 2) != 0) {
|
||||||
|
@ -136,7 +136,7 @@ void EnTorch2_Init(Actor* thisx, PlayState* play2) {
|
|||||||
sInput.cur.stick_x = sInput.cur.stick_y = 0;
|
sInput.cur.stick_x = sInput.cur.stick_y = 0;
|
||||||
this->currentShield = PLAYER_SHIELD_HYLIAN;
|
this->currentShield = PLAYER_SHIELD_HYLIAN;
|
||||||
this->heldItemAction = this->heldItemId = PLAYER_IA_SWORD_MASTER;
|
this->heldItemAction = this->heldItemId = PLAYER_IA_SWORD_MASTER;
|
||||||
Player_SetModelGroup(this, PLAYER_MODELGROUP_SWORD);
|
Player_SetModelGroup(this, PLAYER_MODELGROUP_SWORD_AND_SHIELD);
|
||||||
play->playerInit(this, play, &gDarkLinkSkel);
|
play->playerInit(this, play, &gDarkLinkSkel);
|
||||||
this->actor.naviEnemyId = 0x26;
|
this->actor.naviEnemyId = 0x26;
|
||||||
this->cylinder.base.acFlags = AC_ON | AC_TYPE_PLAYER;
|
this->cylinder.base.acFlags = AC_ON | AC_TYPE_PLAYER;
|
||||||
@ -604,7 +604,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
|
|||||||
if ((this->actor.colChkInfo.health == 0) && sDeathFlag) {
|
if ((this->actor.colChkInfo.health == 0) && sDeathFlag) {
|
||||||
this->csAction = 0x18;
|
this->csAction = 0x18;
|
||||||
this->csActor = &player->actor;
|
this->csActor = &player->actor;
|
||||||
this->doorBgCamIndex = 1;
|
this->cv.haltActorsDuringCsAction = true;
|
||||||
sDeathFlag = false;
|
sDeathFlag = false;
|
||||||
}
|
}
|
||||||
if ((this->invincibilityTimer == 0) && (this->actor.colChkInfo.health != 0) &&
|
if ((this->invincibilityTimer == 0) && (this->actor.colChkInfo.health != 0) &&
|
||||||
@ -614,11 +614,11 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
|
|||||||
if (!Actor_ApplyDamage(&this->actor)) {
|
if (!Actor_ApplyDamage(&this->actor)) {
|
||||||
func_800F5B58();
|
func_800F5B58();
|
||||||
this->actor.flags &= ~(ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE);
|
this->actor.flags &= ~(ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_HOSTILE);
|
||||||
this->unk_8A1 = 2;
|
this->knockbackType = 2;
|
||||||
this->unk_8A4 = 6.0f;
|
this->knockbackSpeed = 6.0f;
|
||||||
this->unk_8A8 = 6.0f;
|
this->knockbackYVelocity = 6.0f;
|
||||||
this->unk_8A0 = this->actor.colChkInfo.damage;
|
this->knockbackDamage = this->actor.colChkInfo.damage;
|
||||||
this->unk_8A2 = this->actor.yawTowardsPlayer + 0x8000;
|
this->knockbackRot = this->actor.yawTowardsPlayer + 0x8000;
|
||||||
sDeathFlag++;
|
sDeathFlag++;
|
||||||
sActionState = ENTORCH2_DEATH;
|
sActionState = ENTORCH2_DEATH;
|
||||||
Enemy_StartFinishingBlow(play, &this->actor);
|
Enemy_StartFinishingBlow(play, &this->actor);
|
||||||
@ -634,11 +634,11 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
|
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
|
||||||
this->unk_8A0 = this->actor.colChkInfo.damage;
|
this->knockbackDamage = this->actor.colChkInfo.damage;
|
||||||
this->unk_8A1 = 1;
|
this->knockbackType = 1;
|
||||||
this->unk_8A8 = 6.0f;
|
this->knockbackYVelocity = 6.0f;
|
||||||
this->unk_8A4 = 8.0f;
|
this->knockbackSpeed = 8.0f;
|
||||||
this->unk_8A2 = this->actor.yawTowardsPlayer + 0x8000;
|
this->knockbackRot = this->actor.yawTowardsPlayer + 0x8000;
|
||||||
Actor_SetDropFlag(&this->actor, &this->cylinder.info, 1);
|
Actor_SetDropFlag(&this->actor, &this->cylinder.info, 1);
|
||||||
this->stateFlags3 &= ~PLAYER_STATE3_PAUSE_ACTION_FUNC;
|
this->stateFlags3 &= ~PLAYER_STATE3_PAUSE_ACTION_FUNC;
|
||||||
this->stateFlags3 |= PLAYER_STATE3_IGNORE_CEILING_FLOOR_WATER;
|
this->stateFlags3 |= PLAYER_STATE3_IGNORE_CEILING_FLOOR_WATER;
|
||||||
@ -651,7 +651,7 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->actor.colChkInfo.damage = 0;
|
this->actor.colChkInfo.damage = 0;
|
||||||
this->unk_8A0 = 0;
|
this->knockbackDamage = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handles being frozen by a deku nut
|
// Handles being frozen by a deku nut
|
||||||
|
@ -122,8 +122,8 @@ s32 EnXc_AnimIsFinished(EnXc* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* EnXc_GetCsCmd(PlayState* play, s32 npcActionIdx) {
|
CsCmdActorCue* EnXc_GetCsCmd(PlayState* play, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* action = NULL;
|
CsCmdActorCue* action = NULL;
|
||||||
|
|
||||||
if (play->csCtx.state != 0) {
|
if (play->csCtx.state != 0) {
|
||||||
action = play->csCtx.npcActions[npcActionIdx];
|
action = play->csCtx.npcActions[npcActionIdx];
|
||||||
@ -132,7 +132,7 @@ CsCmdActorAction* EnXc_GetCsCmd(PlayState* play, s32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 EnXc_CompareCsAction(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) {
|
s32 EnXc_CompareCsAction(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdActorAction = EnXc_GetCsCmd(play, npcActionIdx);
|
CsCmdActorCue* csCmdActorAction = EnXc_GetCsCmd(play, npcActionIdx);
|
||||||
|
|
||||||
if (csCmdActorAction != NULL && csCmdActorAction->action == action) {
|
if (csCmdActorAction != NULL && csCmdActorAction->action == action) {
|
||||||
return true;
|
return true;
|
||||||
@ -141,7 +141,7 @@ s32 EnXc_CompareCsAction(EnXc* this, PlayState* play, u16 action, s32 npcActionI
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 EnXc_CsActionsAreNotEqual(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) {
|
s32 EnXc_CsActionsAreNotEqual(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx);
|
||||||
|
|
||||||
if (csCmdNPCAction && csCmdNPCAction->action != action) {
|
if (csCmdNPCAction && csCmdNPCAction->action != action) {
|
||||||
return true;
|
return true;
|
||||||
@ -150,7 +150,7 @@ s32 EnXc_CsActionsAreNotEqual(EnXc* this, PlayState* play, u16 action, s32 npcAc
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B3C588(EnXc* this, PlayState* play, u32 npcActionIdx) {
|
void func_80B3C588(EnXc* this, PlayState* play, u32 npcActionIdx) {
|
||||||
CsCmdActorAction* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx);
|
CsCmdActorCue* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx);
|
||||||
Actor* thisx = &this->actor;
|
Actor* thisx = &this->actor;
|
||||||
|
|
||||||
if (csCmdNPCAction != NULL) {
|
if (csCmdNPCAction != NULL) {
|
||||||
@ -164,7 +164,7 @@ void func_80B3C588(EnXc* this, PlayState* play, u32 npcActionIdx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B3C620(EnXc* this, PlayState* play, s32 npcActionIdx) {
|
void func_80B3C620(EnXc* this, PlayState* play, s32 npcActionIdx) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, npcActionIdx);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, npcActionIdx);
|
||||||
Vec3f* xcPos = &this->actor.world.pos;
|
Vec3f* xcPos = &this->actor.world.pos;
|
||||||
f32 startX;
|
f32 startX;
|
||||||
f32 startY;
|
f32 startY;
|
||||||
@ -528,7 +528,7 @@ s32 sEnXcFlameSpawned = false;
|
|||||||
void EnXc_SpawnFlame(EnXc* this, PlayState* play) {
|
void EnXc_SpawnFlame(EnXc* this, PlayState* play) {
|
||||||
|
|
||||||
if (!sEnXcFlameSpawned) {
|
if (!sEnXcFlameSpawned) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 0);
|
||||||
f32 xPos = npcAction->startPos.x;
|
f32 xPos = npcAction->startPos.x;
|
||||||
f32 yPos = npcAction->startPos.y;
|
f32 yPos = npcAction->startPos.y;
|
||||||
f32 zPos = npcAction->startPos.z;
|
f32 zPos = npcAction->startPos.z;
|
||||||
@ -540,7 +540,7 @@ void EnXc_SpawnFlame(EnXc* this, PlayState* play) {
|
|||||||
|
|
||||||
void EnXc_SetupFlamePos(EnXc* this, PlayState* play) {
|
void EnXc_SetupFlamePos(EnXc* this, PlayState* play) {
|
||||||
Vec3f* attachedPos;
|
Vec3f* attachedPos;
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 0);
|
||||||
|
|
||||||
if (this->flameActor != NULL) {
|
if (this->flameActor != NULL) {
|
||||||
attachedPos = &this->flameActor->world.pos;
|
attachedPos = &this->flameActor->world.pos;
|
||||||
@ -565,7 +565,7 @@ void EnXc_InitFlame(EnXc* this, PlayState* play) {
|
|||||||
s16 sceneNum = play->sceneNum;
|
s16 sceneNum = play->sceneNum;
|
||||||
|
|
||||||
if (sceneNum == SCENE_DEATH_MOUNTAIN_CRATER) {
|
if (sceneNum == SCENE_DEATH_MOUNTAIN_CRATER) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 0);
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
s32 action = npcAction->action;
|
s32 action = npcAction->action;
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ void EnXc_InitFlame(EnXc* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_80B3D48C(EnXc* this, PlayState* play) {
|
void func_80B3D48C(EnXc* this, PlayState* play) {
|
||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
CsCmdActorAction* linkAction = csCtx->linkAction;
|
CsCmdActorCue* linkAction = csCtx->linkAction;
|
||||||
s16 yaw;
|
s16 yaw;
|
||||||
|
|
||||||
if (linkAction != NULL) {
|
if (linkAction != NULL) {
|
||||||
@ -603,7 +603,7 @@ void func_80B3D48C(EnXc* this, PlayState* play) {
|
|||||||
|
|
||||||
AnimationHeader* EnXc_GetCurrentHarpAnim(PlayState* play, s32 index) {
|
AnimationHeader* EnXc_GetCurrentHarpAnim(PlayState* play, s32 index) {
|
||||||
AnimationHeader* animation = &gSheikPlayingHarp5Anim;
|
AnimationHeader* animation = &gSheikPlayingHarp5Anim;
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, index);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, index);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
u16 action = npcAction->action;
|
u16 action = npcAction->action;
|
||||||
@ -677,7 +677,7 @@ void EnXc_SetupFallFromSkyAction(EnXc* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != 0) {
|
if (csCtx->state != 0) {
|
||||||
CsCmdActorAction* npcAction = csCtx->npcActions[4];
|
CsCmdActorCue* npcAction = csCtx->npcActions[4];
|
||||||
|
|
||||||
if (npcAction && npcAction->action == 2) {
|
if (npcAction && npcAction->action == 2) {
|
||||||
s32 pad;
|
s32 pad;
|
||||||
@ -752,7 +752,7 @@ void EnXc_SetupStoppedAction(EnXc* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B3DAF0(EnXc* this, PlayState* play) {
|
void func_80B3DAF0(EnXc* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 4);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 4);
|
||||||
u16 action;
|
u16 action;
|
||||||
|
|
||||||
if (npcAction &&
|
if (npcAction &&
|
||||||
@ -799,7 +799,7 @@ void func_80B3DCA8(EnXc* this, PlayState* play) {
|
|||||||
f32 frameCount;
|
f32 frameCount;
|
||||||
|
|
||||||
if (play->csCtx.state != 0) {
|
if (play->csCtx.state != 0) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[4];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[4];
|
||||||
|
|
||||||
if (npcAction != NULL && npcAction->action == 8) {
|
if (npcAction != NULL && npcAction->action == 8) {
|
||||||
frameCount = Animation_GetLastFrame(&gSheikInitialHarpAnim);
|
frameCount = Animation_GetLastFrame(&gSheikInitialHarpAnim);
|
||||||
@ -848,7 +848,7 @@ void func_80B3DE78(EnXc* this, s32 animFinished) {
|
|||||||
|
|
||||||
void EnXc_SetupReverseAccel(EnXc* this, PlayState* play) {
|
void EnXc_SetupReverseAccel(EnXc* this, PlayState* play) {
|
||||||
if (play->csCtx.state != 0) {
|
if (play->csCtx.state != 0) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[4];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[4];
|
||||||
|
|
||||||
if (npcAction != NULL && npcAction->action == 4) {
|
if (npcAction != NULL && npcAction->action == 4) {
|
||||||
Animation_Change(&this->skelAnime, &gSheikWalkingAnim, -1.0f, Animation_GetLastFrame(&gSheikWalkingAnim),
|
Animation_Change(&this->skelAnime, &gSheikWalkingAnim, -1.0f, Animation_GetLastFrame(&gSheikWalkingAnim),
|
||||||
@ -900,7 +900,7 @@ void func_80B3E164(EnXc* this, PlayState* play) {
|
|||||||
|
|
||||||
void EnXc_SetupDisappear(EnXc* this, PlayState* play) {
|
void EnXc_SetupDisappear(EnXc* this, PlayState* play) {
|
||||||
if (play->csCtx.state != 0) {
|
if (play->csCtx.state != 0) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[4];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[4];
|
||||||
|
|
||||||
if (npcAction != NULL && npcAction->action == 9) {
|
if (npcAction != NULL && npcAction->action == 9) {
|
||||||
s16 sceneNum = play->sceneNum;
|
s16 sceneNum = play->sceneNum;
|
||||||
@ -1164,7 +1164,7 @@ void func_80B3EC0C(EnXc* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != 0) {
|
if (csCtx->state != 0) {
|
||||||
CsCmdActorAction* npcAction = csCtx->npcActions[4];
|
CsCmdActorCue* npcAction = csCtx->npcActions[4];
|
||||||
|
|
||||||
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
if ((npcAction != NULL) && (npcAction->action != 1)) {
|
||||||
PosRot* posRot = &this->actor.world;
|
PosRot* posRot = &this->actor.world;
|
||||||
@ -1187,7 +1187,7 @@ void func_80B3EC90(EnXc* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != 0) {
|
if (csCtx->state != 0) {
|
||||||
CsCmdActorAction* npcAction = csCtx->npcActions[4];
|
CsCmdActorCue* npcAction = csCtx->npcActions[4];
|
||||||
|
|
||||||
if (npcAction != NULL && npcAction->action != 6) {
|
if (npcAction != NULL && npcAction->action != 6) {
|
||||||
func_80B3C9EC(this);
|
func_80B3C9EC(this);
|
||||||
@ -1413,7 +1413,7 @@ void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnXc_LakeHyliaDive(PlayState* play) {
|
void EnXc_LakeHyliaDive(PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = npcAction = EnXc_GetCsCmd(play, 0);
|
CsCmdActorCue* npcAction = npcAction = EnXc_GetCsCmd(play, 0);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
Vec3f startPos;
|
Vec3f startPos;
|
||||||
@ -1442,7 +1442,7 @@ void func_80B3F534(PlayState* play) {
|
|||||||
|
|
||||||
s32 D_80B41DAC = 1;
|
s32 D_80B41DAC = 1;
|
||||||
void func_80B3F59C(EnXc* this, PlayState* play) {
|
void func_80B3F59C(EnXc* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 0);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
s32 action = npcAction->action;
|
s32 action = npcAction->action;
|
||||||
@ -1649,7 +1649,7 @@ void func_80B3FF0C(EnXc* this, PlayState* play) {
|
|||||||
CutsceneContext* csCtx = &play->csCtx;
|
CutsceneContext* csCtx = &play->csCtx;
|
||||||
|
|
||||||
if (csCtx->state != 0) {
|
if (csCtx->state != 0) {
|
||||||
CsCmdActorAction* npcAction = play->csCtx.npcActions[4];
|
CsCmdActorCue* npcAction = play->csCtx.npcActions[4];
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
PosRot* posRot = &this->actor.world;
|
PosRot* posRot = &this->actor.world;
|
||||||
@ -1984,7 +1984,7 @@ void func_80B40E88(EnXc* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32 EnXc_SetupNocturneState(Actor* thisx, PlayState* play) {
|
s32 EnXc_SetupNocturneState(Actor* thisx, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 4);
|
CsCmdActorCue* npcAction = EnXc_GetCsCmd(play, 4);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
s32 action = npcAction->action;
|
s32 action = npcAction->action;
|
||||||
|
@ -542,7 +542,7 @@ s32 EnZf_CanAttack(PlayState* play, EnZf* this) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (this->actor.params == ENZF_TYPE_DINOLFOS) {
|
if (this->actor.params == ENZF_TYPE_DINOLFOS) {
|
||||||
targetedActor = player->unk_664;
|
targetedActor = player->focusActor;
|
||||||
if (targetedActor == NULL) {
|
if (targetedActor == NULL) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@ -1208,7 +1208,7 @@ void EnZf_Slash(EnZf* this, PlayState* play) {
|
|||||||
if (yawDiff > 16000) {
|
if (yawDiff > 16000) {
|
||||||
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
|
||||||
func_80B483E4(this, play);
|
func_80B483E4(this, play);
|
||||||
} else if (player->stateFlags1 & (PLAYER_STATE1_ENEMY_TARGET | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE)) {
|
} else if (player->stateFlags1 & (PLAYER_STATE1_HOSTILE_LOCK_ON | PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE)) {
|
||||||
if (this->actor.isTargeted) {
|
if (this->actor.isTargeted) {
|
||||||
EnZf_SetupSlash(this);
|
EnZf_SetupSlash(this);
|
||||||
} else {
|
} else {
|
||||||
|
@ -331,13 +331,13 @@ void func_80B4B240(EnZl1* this, PlayState* play) {
|
|||||||
func_80038290(play, &this->actor, &this->unk_200, &this->unk_206, this->actor.focus.pos);
|
func_80038290(play, &this->actor, &this->unk_200, &this->unk_206, this->actor.focus.pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80B4B7F4(CsCmdActorAction* npcAction, Vec3f* pos) {
|
void func_80B4B7F4(CsCmdActorCue* npcAction, Vec3f* pos) {
|
||||||
pos->x = npcAction->startPos.x;
|
pos->x = npcAction->startPos.x;
|
||||||
pos->y = npcAction->startPos.y;
|
pos->y = npcAction->startPos.y;
|
||||||
pos->z = npcAction->startPos.z;
|
pos->z = npcAction->startPos.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80B4B834(CsCmdActorAction* npcAction, Vec3f* pos) {
|
void func_80B4B834(CsCmdActorCue* npcAction, Vec3f* pos) {
|
||||||
pos->x = npcAction->endPos.x;
|
pos->x = npcAction->endPos.x;
|
||||||
pos->y = npcAction->endPos.y;
|
pos->y = npcAction->endPos.y;
|
||||||
pos->z = npcAction->endPos.z;
|
pos->z = npcAction->endPos.z;
|
||||||
@ -368,7 +368,7 @@ void func_80B4B8B4(EnZl1* this, PlayState* play) {
|
|||||||
Vec3f sp8C = { -512.0f, 105.0f, -4.0f };
|
Vec3f sp8C = { -512.0f, 105.0f, -4.0f };
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
f32 actionLength;
|
f32 actionLength;
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
Vec3f sp74;
|
Vec3f sp74;
|
||||||
Vec3f sp68;
|
Vec3f sp68;
|
||||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
@ -450,7 +450,7 @@ void func_80B4BC78(EnZl1* this, PlayState* play) {
|
|||||||
Vec3f sp70;
|
Vec3f sp70;
|
||||||
Vec3f sp64;
|
Vec3f sp64;
|
||||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
s32 pad;
|
s32 pad;
|
||||||
f32 frameCount;
|
f32 frameCount;
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ s32 EnZl2_UpdateSkelAnime(EnZl2* this) {
|
|||||||
return SkelAnime_Update(&this->skelAnime);
|
return SkelAnime_Update(&this->skelAnime);
|
||||||
}
|
}
|
||||||
|
|
||||||
CsCmdActorAction* EnZl2_GetNpcAction(PlayState* play, s32 idx) {
|
CsCmdActorCue* EnZl2_GetNpcAction(PlayState* play, s32 idx) {
|
||||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||||
return play->csCtx.npcActions[idx];
|
return play->csCtx.npcActions[idx];
|
||||||
}
|
}
|
||||||
@ -220,7 +220,7 @@ CsCmdActorAction* EnZl2_GetNpcAction(PlayState* play, s32 idx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B4EDB8(EnZl2* this, PlayState* play, s32 arg2) {
|
void func_80B4EDB8(EnZl2* this, PlayState* play, s32 arg2) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, arg2);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, arg2);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
@ -683,7 +683,7 @@ void func_80B5008C(EnZl2* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B500E0(EnZl2* this, PlayState* play) {
|
void func_80B500E0(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
Vec3f* thisPos = &this->actor.world.pos;
|
Vec3f* thisPos = &this->actor.world.pos;
|
||||||
f32 startX;
|
f32 startX;
|
||||||
f32 startY;
|
f32 startY;
|
||||||
@ -715,7 +715,7 @@ void func_80B501C4(EnZl2* this, s32 alpha) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B501E8(EnZl2* this, PlayState* play) {
|
void func_80B501E8(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
this->actor.shape.shadowAlpha = this->alpha =
|
this->actor.shape.shadowAlpha = this->alpha =
|
||||||
@ -732,7 +732,7 @@ void func_80B50260(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B50278(EnZl2* this, PlayState* play) {
|
void func_80B50278(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
|
|
||||||
this->actor.world.pos.x = npcAction->startPos.x;
|
this->actor.world.pos.x = npcAction->startPos.x;
|
||||||
this->actor.world.pos.y = npcAction->startPos.y;
|
this->actor.world.pos.y = npcAction->startPos.y;
|
||||||
@ -746,7 +746,7 @@ void func_80B50278(EnZl2* this, PlayState* play) {
|
|||||||
void func_80B50304(EnZl2* this, PlayState* play) {
|
void func_80B50304(EnZl2* this, PlayState* play) {
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
ActorShape* shape = &this->actor.shape;
|
ActorShape* shape = &this->actor.shape;
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
f32 actionXDelta;
|
f32 actionXDelta;
|
||||||
f32 actionZDelta;
|
f32 actionZDelta;
|
||||||
|
|
||||||
@ -761,7 +761,7 @@ void func_80B50304(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B503DC(EnZl2* this, PlayState* play) {
|
void func_80B503DC(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
|
|
||||||
if ((npcAction != NULL) && (play->csCtx.frames >= npcAction->endFrame)) {
|
if ((npcAction != NULL) && (play->csCtx.frames >= npcAction->endFrame)) {
|
||||||
this->action = 4;
|
this->action = 4;
|
||||||
@ -906,7 +906,7 @@ void func_80B50980(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B509A0(EnZl2* this, PlayState* play) {
|
void func_80B509A0(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
if (play->csCtx.frames >= npcAction->endFrame) {
|
if (play->csCtx.frames >= npcAction->endFrame) {
|
||||||
@ -918,7 +918,7 @@ void func_80B509A0(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B50A04(EnZl2* this, PlayState* play) {
|
void func_80B50A04(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
s32 newAction;
|
s32 newAction;
|
||||||
s32 unk_240;
|
s32 unk_240;
|
||||||
|
|
||||||
@ -1329,7 +1329,7 @@ void func_80B518C0(EnZl2* this) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B51948(EnZl2* this, PlayState* play) {
|
void func_80B51948(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
s32 newAction;
|
s32 newAction;
|
||||||
s32 unk_240;
|
s32 unk_240;
|
||||||
|
|
||||||
@ -1450,7 +1450,7 @@ void func_80B51D24(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B51DA4(EnZl2* this, PlayState* play) {
|
void func_80B51DA4(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
Vec3f* thisPos = &this->actor.world.pos;
|
Vec3f* thisPos = &this->actor.world.pos;
|
||||||
f32 startX;
|
f32 startX;
|
||||||
f32 startY;
|
f32 startY;
|
||||||
@ -1486,7 +1486,7 @@ void func_80B51EA8(EnZl2* this) {
|
|||||||
|
|
||||||
void func_80B51EBC(EnZl2* this, PlayState* play) {
|
void func_80B51EBC(EnZl2* this, PlayState* play) {
|
||||||
ActorShape* shape = &this->actor.shape;
|
ActorShape* shape = &this->actor.shape;
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
|
|
||||||
this->actor.world.rot.y = shape->rot.y = npcAction->rot.y;
|
this->actor.world.rot.y = shape->rot.y = npcAction->rot.y;
|
||||||
@ -1497,7 +1497,7 @@ void func_80B51EBC(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B51F38(EnZl2* this, PlayState* play) {
|
void func_80B51F38(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
|
|
||||||
if (npcAction != NULL) {
|
if (npcAction != NULL) {
|
||||||
if (play->csCtx.frames - 8 >= npcAction->endFrame) {
|
if (play->csCtx.frames - 8 >= npcAction->endFrame) {
|
||||||
@ -1508,7 +1508,7 @@ void func_80B51F38(EnZl2* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80B51FA8(EnZl2* this, PlayState* play) {
|
void func_80B51FA8(EnZl2* this, PlayState* play) {
|
||||||
CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0);
|
CsCmdActorCue* npcAction = EnZl2_GetNpcAction(play, 0);
|
||||||
s32 action;
|
s32 action;
|
||||||
s32 unk_240;
|
s32 unk_240;
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ void func_80B5BB78(EnZl4* this, PlayState* play) {
|
|||||||
Npc_TrackPoint(&this->actor, &this->interactInfo, 2, NPC_TRACKING_HEAD_AND_TORSO);
|
Npc_TrackPoint(&this->actor, &this->interactInfo, 2, NPC_TRACKING_HEAD_AND_TORSO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnZl4_GetActionStartPos(CsCmdActorAction* action, Vec3f* vec) {
|
void EnZl4_GetActionStartPos(CsCmdActorCue* action, Vec3f* vec) {
|
||||||
vec->x = action->startPos.x;
|
vec->x = action->startPos.x;
|
||||||
vec->y = action->startPos.y;
|
vec->y = action->startPos.y;
|
||||||
vec->z = action->startPos.z;
|
vec->z = action->startPos.z;
|
||||||
@ -1213,7 +1213,7 @@ void EnZl4_Idle(EnZl4* this, PlayState* play) {
|
|||||||
void EnZl4_TheEnd(EnZl4* this, PlayState* play) {
|
void EnZl4_TheEnd(EnZl4* this, PlayState* play) {
|
||||||
s32 animIndex[] = { ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0,
|
s32 animIndex[] = { ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0,
|
||||||
ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_26, ZL4_ANIM_21, ZL4_ANIM_3 };
|
ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_26, ZL4_ANIM_21, ZL4_ANIM_3 };
|
||||||
CsCmdActorAction* npcAction;
|
CsCmdActorCue* npcAction;
|
||||||
Vec3f pos;
|
Vec3f pos;
|
||||||
|
|
||||||
if (SkelAnime_Update(&this->skelAnime) && (this->skelAnime.animation == &gChildZeldaAnim_010DF8)) {
|
if (SkelAnime_Update(&this->skelAnime) && (this->skelAnime.animation == &gChildZeldaAnim_010DF8)) {
|
||||||
|
@ -73,20 +73,20 @@ void ObjDekujr_Init(Actor* thisx, PlayState* play) {
|
|||||||
void ObjDekujr_Destroy(Actor* thisx, PlayState* play) {
|
void ObjDekujr_Destroy(Actor* thisx, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjDekujr_SetInitialPos(CsCmdActorAction* npcAction, Vec3f* initPos) {
|
void ObjDekujr_SetInitialPos(CsCmdActorCue* npcAction, Vec3f* initPos) {
|
||||||
initPos->x = npcAction->startPos.x;
|
initPos->x = npcAction->startPos.x;
|
||||||
initPos->y = npcAction->startPos.y;
|
initPos->y = npcAction->startPos.y;
|
||||||
initPos->z = npcAction->startPos.z;
|
initPos->z = npcAction->startPos.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjDekujr_SetFinalPos(CsCmdActorAction* npcAction, Vec3f* finalPos) {
|
void ObjDekujr_SetFinalPos(CsCmdActorCue* npcAction, Vec3f* finalPos) {
|
||||||
finalPos->x = npcAction->endPos.x;
|
finalPos->x = npcAction->endPos.x;
|
||||||
finalPos->y = npcAction->endPos.y;
|
finalPos->y = npcAction->endPos.y;
|
||||||
finalPos->z = npcAction->endPos.z;
|
finalPos->z = npcAction->endPos.z;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjDekujr_ComeUp(ObjDekujr* this, PlayState* play) {
|
void ObjDekujr_ComeUp(ObjDekujr* this, PlayState* play) {
|
||||||
CsCmdActorAction* csCmdNPCAction;
|
CsCmdActorCue* csCmdNPCAction;
|
||||||
Vec3f initPos;
|
Vec3f initPos;
|
||||||
Vec3f finalPos;
|
Vec3f finalPos;
|
||||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -4598,7 +4598,7 @@ void KaleidoScope_Update(PlayState* play)
|
|||||||
osSyncPrintf("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.unk_13EE);
|
osSyncPrintf("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.unk_13EE);
|
||||||
gSaveContext.unk_13EA = 0;
|
gSaveContext.unk_13EA = 0;
|
||||||
Interface_ChangeAlpha(gSaveContext.unk_13EE);
|
Interface_ChangeAlpha(gSaveContext.unk_13EE);
|
||||||
player->targetActor = NULL;
|
player->talkActor = NULL;
|
||||||
Player_SetEquipmentData(play, player);
|
Player_SetEquipmentData(play, player);
|
||||||
osSyncPrintf(VT_RST);
|
osSyncPrintf(VT_RST);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user