diff --git a/include/z64actor.h b/include/z64actor.h index e73c6f381a..9531eef438 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -479,6 +479,7 @@ typedef enum DoorLockType { // Note that this flag doesn't have any effect on either the actor, or Player's behavior. // What actually matters is the presence or lack of `ACTOR_FLAG_HOSTILE`. #define ACTOR_FLAG_FRIENDLY (1 << 3) + // #define ACTOR_FLAG_10 (1 << 4) // @@ -493,18 +494,21 @@ typedef enum DoorLockType { // Player will retain this flag until the player is finished talking // Actor will retain this flag until `Actor_TalkOfferAccepted` is called or manually turned off by the actor #define ACTOR_FLAG_TALK (1 << 8) -// -#define ACTOR_FLAG_200 (1 << 9) -// -#define ACTOR_FLAG_400 (1 << 10) -// -#define ACTOR_FLAG_800 (1 << 11) + +// When the hookshot attaches to this actor, the actor will be pulled back as the hookshot retracts. +#define ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR (1 << 9) + +// When the hookshot attaches to this actor, Player will be pulled by the hookshot and fly to the actor. +#define ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER (1 << 10) + +// This is likely `ACTOR_FLAG_GRASS_DESTROYED` from OoT, however this flag is unused in this game. +#define ACTOR_FLAG_800 (1 << 11) // Actor will not shake when a quake occurs #define ACTOR_FLAG_IGNORE_QUAKE (1 << 12) // The hookshot is currently attached to this actor. -// The behavior that occurs after attachment is determined by `ACTOR_FLAG_200` and `ACTOR_FLAG_400`. +// The behavior that occurs after attachment is determined by `ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR` and `ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER`. // If neither of those flags are set attachment cannot occur, and the hookshot will simply act as a damage source. // // This flag is also reused to indicate that an actor is attached to the Zora boomerang. @@ -535,6 +539,7 @@ typedef enum DoorLockType { // Also allows for the next lock-on actor to be the focus actor again. // When chosen as the next lock-on actor, this flag is unset. #define ACTOR_FLAG_FOCUS_ACTOR_REFINDABLE (1 << 19) + // #define ACTOR_FLAG_100000 (1 << 20) // @@ -561,6 +566,7 @@ typedef enum DoorLockType { // Player is not able to lock onto the actor. // Tatl will still be able to hover over the actor, assuming `ACTOR_FLAG_ATTENTION_ENABLED` is set. #define ACTOR_FLAG_LOCK_ON_DISABLED (1 << 27) + // #define ACTOR_FLAG_10000000 (1 << 28) // diff --git a/include/z64player.h b/include/z64player.h index d511845ecd..1f4245e101 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -1048,8 +1048,8 @@ typedef enum PlayerCueId { #define PLAYER_STATE3_20 (1 << 5) // #define PLAYER_STATE3_40 (1 << 6) -// -#define PLAYER_STATE3_80 (1 << 7) +// Flying in the air with the hookshot as it pulls Player toward its destination +#define PLAYER_STATE3_FLYING_WITH_HOOKSHOT (1 << 7) // Deku flower dive #define PLAYER_STATE3_100 (1 << 8) // @@ -1094,7 +1094,7 @@ typedef enum PlayerCueId { #define PLAYER_STATE3_10000000 (1 << 28) // breman mask march? #define PLAYER_STATE3_20000000 (1 << 29) -// +// Item change process has begun #define PLAYER_STATE3_START_CHANGING_HELD_ITEM (1 << 30) // Currently locked onto a hostile actor. Triggers a "battle" variant of many actions. #define PLAYER_STATE3_HOSTILE_LOCK_ON (1 << 31) diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index ce3ba3c87a..85bc4aae62 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -647,7 +647,7 @@ bool Player_InBlockingCsMode(PlayState* play, Player* player) { return (player->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_200 | PLAYER_STATE1_20000000)) || (player->csAction != PLAYER_CSACTION_NONE) || (play->transitionTrigger == TRANS_TRIGGER_START) || (play->transitionMode != TRANS_MODE_OFF) || (player->stateFlags1 & PLAYER_STATE1_1) || - (player->stateFlags3 & PLAYER_STATE3_80) || play->actorCtx.isOverrideInputOn; + (player->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) || play->actorCtx.isOverrideInputOn; } bool Player_InCsMode(PlayState* play) { diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 24a31e6ec7..164ab7e168 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -83,7 +83,12 @@ void ArmsHook_Wait(ArmsHook* this, PlayState* play) { } } -void func_808C1154(ArmsHook* this) { +/** + * Start pulling Player so he flies toward the hookshot's current location. + * Setting Player's parent pointer indicates that he should begin flying. + * See `Player_UpdateUpperBody` and `Player_Action_HookshotFly` for Player's side of the interation. + */ +void ArmsHook_PullPlayer(ArmsHook* this) { this->actor.child = this->actor.parent; this->actor.parent->parent = &this->actor; } @@ -142,11 +147,12 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { (this->collider.elem.atHitElem->elemMaterial != ELEM_MATERIAL_UNK4)) { Actor* touchedActor = this->collider.base.at; - if ((touchedActor->update != NULL) && (touchedActor->flags & (ACTOR_FLAG_200 | ACTOR_FLAG_400))) { + if ((touchedActor->update != NULL) && + (touchedActor->flags & (ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER))) { if (this->collider.elem.atHitElem->acElemFlags & ACELEM_HOOKABLE) { ArmsHook_AttachToActor(this, touchedActor); - if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_400)) { - func_808C1154(this); + if (CHECK_FLAG_ALL(touchedActor->flags, ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER)) { + ArmsHook_PullPlayer(this); } } } @@ -216,14 +222,17 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { } if (this->actor.child == NULL) { + // Not pulling Player Math_Vec3f_Sum(&player->rightHandWorld.pos, &newPos, &this->actor.world.pos); if (attachedActor != NULL) { Math_Vec3f_Sum(&this->actor.world.pos, &this->attachPointOffset, &attachedActor->world.pos); } } else { + // Pulling Player Math_Vec3f_Diff(&bodyDistDiffVec, &newPos, &player->actor.velocity); player->actor.world.rot.x = Math_Atan2S_XY(sqrtf(SQXZ(bodyDistDiffVec)), -bodyDistDiffVec.y); } + if (phi_f16 < 50.0f) { ArmsHook_DetachFromActor(this); if (phi_f16 == 0.0f) { @@ -269,7 +278,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { ArmsHook_AttachToActor(this, &dynaPolyActor->actor); } } - func_808C1154(this); + ArmsHook_PullPlayer(this); Audio_PlaySfx_AtPos(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_STICK_OBJ); } else { CollisionCheck_SpawnShieldParticlesMetal(play, &this->actor.world.pos); diff --git a/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c b/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c index 49e2352de0..4517adb697 100644 --- a/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c +++ b/src/overlays/actors/ovl_Bg_Numa_Hana/z_bg_numa_hana.c @@ -8,7 +8,7 @@ #include "assets/objects/object_numa_obj/object_numa_obj.h" #include "assets/objects/object_syokudai/object_syokudai.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((BgNumaHana*)thisx) diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index ba09b01ac8..022b62c5d8 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Bombf/z_en_bombf.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_400 | ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnAm*)thisx) diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 1c330e3058..026cddef9e 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnBb*)thisx) @@ -173,7 +173,7 @@ void EnBb_Freeze(EnBb* this) { this->drawDmgEffFrozenSteamScale = 0.6f; this->timer = 80; this->drawDmgEffAlpha = 1.0f; - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -182,7 +182,7 @@ void EnBb_Thaw(EnBb* this, PlayState* play) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, BUBBLE_BODYPART_MAX, 2, 0.2f, 0.15f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c index d4f57151ee..8b77ec02c8 100644 --- a/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c +++ b/src/overlays/actors/ovl_En_Bbfall/z_en_bbfall.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnBbfall*)thisx) @@ -178,7 +178,7 @@ void EnBbfall_Freeze(EnBbfall* this) { this->drawDmgEffFrozenSteamScale = 0.6f; this->timer = 80; this->drawDmgEffAlpha = 1.0f; - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -187,7 +187,7 @@ void EnBbfall_Thaw(EnBbfall* this, PlayState* play) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, BUBBLE_BODYPART_MAX, 2, 0.2f, 0.15f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Bigpamet/z_en_bigpamet.c b/src/overlays/actors/ovl_En_Bigpamet/z_en_bigpamet.c index 0aad494f22..837b1fd38f 100644 --- a/src/overlays/actors/ovl_En_Bigpamet/z_en_bigpamet.c +++ b/src/overlays/actors/ovl_En_Bigpamet/z_en_bigpamet.c @@ -10,7 +10,9 @@ #include "overlays/actors/ovl_En_Pametfrog/z_en_pametfrog.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_400) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | \ + ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnBigpamet*)thisx) diff --git a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c index 761b12f9aa..e3eadb4154 100644 --- a/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c +++ b/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c @@ -9,8 +9,9 @@ #include "assets/objects/object_bigpo/object_bigpo.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS \ - (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_200 | ACTOR_FLAG_IGNORE_QUAKE) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | \ + ACTOR_FLAG_IGNORE_QUAKE) #define THIS ((EnBigpo*)thisx) diff --git a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c index 5b2dc72fbb..d811c02f67 100644 --- a/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c +++ b/src/overlays/actors/ovl_En_Bigslime/z_en_bigslime.c @@ -12,7 +12,9 @@ #include "assets/objects/object_bigslime/object_bigslime.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_200) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | \ + ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnBigslime*)thisx) @@ -765,8 +767,8 @@ void EnBigslime_BreakIntoMinislime(EnBigslime* this, PlayState* play) { EnBigslime_SetPlayerParams(this, play); EnBigslime_EndCutscene(this, play); this->actor.colChkInfo.mass = 50; - this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_400); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER); + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; this->actor.hintId = TATL_HINT_ID_GEKKO_GIANT_SLIME; this->gekkoRot.x = 0; this->gekkoRot.y = 0; @@ -914,7 +916,7 @@ void EnBigslime_GekkoFreeze(EnBigslime* this) { this->gekkoDrawDmgEffScale = 0.75f; this->gekkoDrawDmgEffFrozenSteamScale = 1.125f; this->gekkoDrawDmgEffAlpha = 1.0f; - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } void EnBigslime_GekkoThaw(EnBigslime* this, PlayState* play) { @@ -924,7 +926,7 @@ void EnBigslime_GekkoThaw(EnBigslime* this, PlayState* play) { this->gekkoCollider.elem.elemMaterial = ELEM_MATERIAL_UNK1; this->gekkoDrawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->gekkoBodyPartsPos, GEKKO_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } @@ -1031,7 +1033,7 @@ void EnBigslime_SetupMoveOnCeiling(EnBigslime* this) { this->wavySurfaceTimer = 0; this->bigslimeCollider[0].base.acFlags |= AC_ON; this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; this->actionFunc = EnBigslime_MoveOnCeiling; } diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index a147f1ccd8..619c48ac72 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -9,7 +9,7 @@ #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnDekubaba*)thisx) @@ -292,7 +292,7 @@ void EnDekubaba_SetFrozenEffects(EnDekubaba* this) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_NO_SFX; this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->timer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -303,7 +303,7 @@ void EnDekubaba_SpawnIceEffects(EnDekubaba* this, PlayState* play) { this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, DEKUBABA_BODYPART_MAX, 4, this->size * 0.3f, this->size * 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c index 009a04cbf1..6ef732095f 100644 --- a/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c +++ b/src/overlays/actors/ovl_En_Dinofos/z_en_dinofos.c @@ -7,7 +7,9 @@ #include "z_en_dinofos.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_400) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | \ + ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnDinofos*)thisx) @@ -405,7 +407,7 @@ void EnDinofos_Freeze(EnDinofos* this) { this->drawDmgEffFrozenSteamScale = 825.0f * 0.001f; this->drawDmgEffAlpha = 1.0f; this->stunTimer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -415,7 +417,7 @@ void EnDinofos_ThawIfFrozen(EnDinofos* this, PlayState* play) { this->bodyAndFireCollider.base.colMaterial = COL_MATERIAL_HIT0; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, DINOFOS_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 6e0cc31328..4cf7090203 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -10,7 +10,7 @@ #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" #include "overlays/effects/ovl_Effect_Ss_Hitmark/z_eff_ss_hitmark.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnDodongo*)thisx) @@ -432,7 +432,7 @@ void func_80876CAC(EnDodongo* this) { this->drawDmgEffFrozenSteamScale = 1.125f; this->drawDmgEffAlpha = 1.0f; this->timer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -445,7 +445,7 @@ void func_80876D28(EnDodongo* this, PlayState* play) { this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, DODONGO_BODYPART_MAX, 2, this->unk_334 * 0.3f, this->unk_334 * 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Fg/z_en_fg.c b/src/overlays/actors/ovl_En_Fg/z_en_fg.c index 68cc6aae24..afd4b66516 100644 --- a/src/overlays/actors/ovl_En_Fg/z_en_fg.c +++ b/src/overlays/actors/ovl_En_Fg/z_en_fg.c @@ -7,7 +7,9 @@ #include "z_en_fg.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_200 | ACTOR_FLAG_CAN_ATTACH_TO_ARROW) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | \ + ACTOR_FLAG_CAN_ATTACH_TO_ARROW) #define THIS ((EnFg*)thisx) diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 357af6cc38..b735b5d9e6 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -7,7 +7,7 @@ #include "z_en_floormas.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnFloormas*)thisx) @@ -228,7 +228,7 @@ void func_808D09CC(EnFloormas* this) { this->drawDmgEffAlpha = 1.0f; this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->unk_18E = 80; - this->actor.flags &= ~(ACTOR_FLAG_200 | ACTOR_FLAG_400); + this->actor.flags &= ~(ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER); Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -240,9 +240,9 @@ void func_808D0A48(EnFloormas* this, PlayState* play) { Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, ENFLOORMAS_BODYPART_MAX, 2, this->actor.scale.x * (30000.0f * 0.001f), this->actor.scale.x * 20.0f); if (this->actor.scale.x > 0.009f) { - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } else { - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } } @@ -562,8 +562,8 @@ void func_808D19D4(EnFloormas* this) { ANIMMODE_ONCE, 0.0f); this->collider.dim.radius = sCylinderInit.dim.radius * 0.6f; this->collider.dim.height = sCylinderInit.dim.height * 0.6f; - this->actor.flags &= ~ACTOR_FLAG_400; - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; this->actor.colChkInfo.health = 1; this->actor.speed = 4.0f; this->actor.velocity.y = 7.0f; @@ -871,8 +871,8 @@ void func_808D2764(EnFloormas* this, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_10; func_808D0908(this); this->actor.params = ENFLOORMAS_GET_7FFF_0; - this->actor.flags &= ~ACTOR_FLAG_200; - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; this->actor.colChkInfo.health = sColChkInfoInit.health; func_808D0C14(this); } else if (this->unk_18E == 0) { diff --git a/src/overlays/actors/ovl_En_Grasshopper/z_en_grasshopper.c b/src/overlays/actors/ovl_En_Grasshopper/z_en_grasshopper.c index 399f691b27..65501fe6d5 100644 --- a/src/overlays/actors/ovl_En_Grasshopper/z_en_grasshopper.c +++ b/src/overlays/actors/ovl_En_Grasshopper/z_en_grasshopper.c @@ -279,7 +279,7 @@ void EnGrasshopper_Init(Actor* thisx, PlayState* play) { this->collider.elements[0].dim.modelSphere.center.z = this->collider.elements[1].dim.modelSphere.center.y = this->collider.elements[1].dim.modelSphere.center.z = 0; - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; ActorShape_Init(&this->actor.shape, 0.0f, NULL, 1.0f); this->actor.colChkInfo.damageTable = &sDamageTable; Math_Vec3f_Copy(&this->flyingHomePos, &this->actor.home.pos); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index d7d6a5c84a..ebc8838625 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -8,7 +8,7 @@ #include "z64rumble.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnIk*)thisx) @@ -310,7 +310,7 @@ void EnIk_Freeze(EnIk* this) { this->drawDmgEffFrozenSteamScale = 97.5f * 0.01f; this->drawDmgEffAlpha = 1.0f; this->timer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -319,7 +319,7 @@ void EnIk_Thaw(EnIk* this, PlayState* play) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, IRON_KNUCKLE_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c b/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c index 408fccb918..7963ebc70d 100644 --- a/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c +++ b/src/overlays/actors/ovl_En_Invadepoh/z_en_invadepoh.c @@ -2086,7 +2086,7 @@ void EnInvadepoh_Romani_Init(EnInvadepoh* this, PlayState* play) { this->actor.update = EnInvadepoh_AbductedRomani_WaitForObject; } else if (type == EN_INVADEPOH_TYPE_ROMANI_SILENT) { this->actor.update = EnInvadepoh_SilentRomani_WaitForObject; - this->actor.flags = ACTOR_FLAG_10 | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED; + this->actor.flags = ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10; } else if (type == EN_INVADEPOH_TYPE_ROMANI_NIGHT_1) { this->actor.update = EnInvadepoh_Night1Romani_WaitForObject; } else if (type == EN_INVADEPOH_TYPE_ROMANI_BARN) { diff --git a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c index 733f1ac284..5a0547ec87 100644 --- a/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c +++ b/src/overlays/actors/ovl_En_Kaizoku/z_en_kaizoku.c @@ -304,7 +304,7 @@ void EnKaizoku_Init(Actor* thisx, PlayState* play) { this->csId = this->picto.actor.csId; this->picto.actor.world.pos.y = player->actor.world.pos.y + 160.0f; this->picto.validationFunc = EnKaizoku_ValidatePictograph; - this->picto.actor.flags |= ACTOR_FLAG_400; + this->picto.actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; func_80B85F48(this); } @@ -1615,7 +1615,7 @@ void func_80B89280(EnKaizoku* this, PlayState* play) { Actor_SpawnIceEffects(play, &this->picto.actor, this->bodyPartsPos, KAIZOKU_BODYPART_MAX, 2, 0.7f, 0.4f); this->unk_2B8 = 0; this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; - this->picto.actor.flags |= ACTOR_FLAG_400; + this->picto.actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } } @@ -1637,7 +1637,7 @@ void func_80B893CC(EnKaizoku* this, PlayState* play) { Actor_SpawnIceEffects(play, &this->picto.actor, this->bodyPartsPos, KAIZOKU_BODYPART_MAX, 2, 0.7f, 0.4f); this->unk_2B8 = 0; this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; - this->picto.actor.flags |= ACTOR_FLAG_400; + this->picto.actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } Actor_PlaySfx(&this->picto.actor, NA_SE_EN_PIRATE_DAMAGE); @@ -1689,7 +1689,7 @@ void func_80B8960C(EnKaizoku* this, PlayState* play) { Actor_PlaySfx(&this->picto.actor, NA_SE_EN_PIRATE_DEAD); this->picto.actor.flags |= ACTOR_FLAG_LOCK_ON_DISABLED; this->picto.actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; - this->picto.actor.flags &= ~ACTOR_FLAG_400; + this->picto.actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; this->unk_598 = 0; this->unk_59C = 0; this->action = KAIZOKU_ACTION_15; @@ -1890,7 +1890,7 @@ void func_80B89A08(EnKaizoku* this, PlayState* play) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FROZEN_SFX; this->drawDmgEffScale = 0.0f; this->drawDmgEffFrozenSteamScale = 1.5f; - this->picto.actor.flags &= ~ACTOR_FLAG_400; + this->picto.actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; if (this->picto.actor.colChkInfo.health <= 0) { func_80B8960C(this, play); } else { diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index 9b022157af..4746e9c7d9 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -181,7 +181,7 @@ void EnKakasi_Init(Actor* thisx, PlayState* play) { this->aboveGroundStatus = KAKASI_GET_ABOVE_GROUND(&this->picto.actor); this->picto.actor.world.rot.x = 0; - this->picto.actor.flags |= ACTOR_FLAG_400; + this->picto.actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; this->picto.actor.colChkInfo.mass = MASS_IMMOVABLE; Actor_SetScale(&this->picto.actor, 0.01f); diff --git a/src/overlays/actors/ovl_En_Kame/z_en_kame.c b/src/overlays/actors/ovl_En_Kame/z_en_kame.c index 94128aa4fd..7c8b34d048 100644 --- a/src/overlays/actors/ovl_En_Kame/z_en_kame.c +++ b/src/overlays/actors/ovl_En_Kame/z_en_kame.c @@ -7,7 +7,7 @@ #include "z_en_kame.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnKame*)thisx) @@ -197,7 +197,7 @@ void EnKame_Freeze(EnKame* this) { this->drawDmgEffAlpha = 1.0f; this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->stunTimer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -207,7 +207,7 @@ void EnKame_Thaw(EnKame* this, PlayState* play) { this->collider.base.colMaterial = COL_MATERIAL_HIT6; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, SNAPPER_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Knight/z_en_knight.c b/src/overlays/actors/ovl_En_Knight/z_en_knight.c index 5559f0cae0..c3fb3bc218 100644 --- a/src/overlays/actors/ovl_En_Knight/z_en_knight.c +++ b/src/overlays/actors/ovl_En_Knight/z_en_knight.c @@ -561,7 +561,7 @@ void EnKnight_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.damageTable = &sDamageTableStanding; this->bodyAlpha = 255.0f; this->randTimer = Rand_ZeroFloat(1000.0f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; if (this->actor.params == EN_KNIGHT_PARAM_IGOS_HEAD) { // Flying head init diff --git a/src/overlays/actors/ovl_En_Minislime/z_en_minislime.c b/src/overlays/actors/ovl_En_Minislime/z_en_minislime.c index dcfaf96bb8..3f245cc0f2 100644 --- a/src/overlays/actors/ovl_En_Minislime/z_en_minislime.c +++ b/src/overlays/actors/ovl_En_Minislime/z_en_minislime.c @@ -7,7 +7,9 @@ #include "z_en_minislime.h" #include "overlays/actors/ovl_En_Bigslime/z_en_bigslime.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_200) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_20 | \ + ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnMinislime*)thisx) diff --git a/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c b/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c index 37141aa630..8721185230 100644 --- a/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c +++ b/src/overlays/actors/ovl_En_Neo_Reeba/z_en_neo_reeba.c @@ -8,7 +8,7 @@ #include "attributes.h" #include "assets/objects/object_rb/object_rb.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnNeoReeba*)thisx) diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 5c20498d70..c1f563e479 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -199,7 +199,7 @@ void EnPoSisters_Init(Actor* thisx, PlayState* play) { EnPoSisters_SpawnMegClones(this, play); EnPoSisters_SetupSpawnPo(this); } else { - this->actor.flags &= ~(ACTOR_FLAG_200 | ACTOR_FLAG_CAN_ATTACH_TO_ARROW); + this->actor.flags &= ~(ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | ACTOR_FLAG_CAN_ATTACH_TO_ARROW); this->collider.elem.elemMaterial = ELEM_MATERIAL_UNK4; this->collider.elem.acDmgInfo.dmgFlags |= (0x40000 | 0x1); this->collider.base.ocFlags1 = OC1_NONE; diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index 0e1b968348..ddf6a6bdf0 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -8,7 +8,8 @@ #include "z_en_poh.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200 | ACTOR_FLAG_IGNORE_QUAKE) +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | ACTOR_FLAG_IGNORE_QUAKE) #define THIS ((EnPoh*)thisx) diff --git a/src/overlays/actors/ovl_En_Pp/z_en_pp.c b/src/overlays/actors/ovl_En_Pp/z_en_pp.c index 9b188c9e4a..7ac30e5ac2 100644 --- a/src/overlays/actors/ovl_En_Pp/z_en_pp.c +++ b/src/overlays/actors/ovl_En_Pp/z_en_pp.c @@ -1250,9 +1250,9 @@ void EnPp_UpdateDamage(EnPp* this, PlayState* play) { if (EN_PP_GET_TYPE(&this->actor) == EN_PP_TYPE_MASKED) { if ((yawDiff < (BREG(2) + 0x4A9C)) || (EN_PP_GET_TYPE(&this->actor) > EN_PP_TYPE_MASKED)) { - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } else { - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c b/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c index f9aaef1837..7be078afd7 100644 --- a/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c +++ b/src/overlays/actors/ovl_En_Railgibud/z_en_railgibud.c @@ -8,7 +8,7 @@ #include "z64rumble.h" #include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnRailgibud*)thisx) @@ -939,7 +939,7 @@ void EnRailgibud_CheckForGibdoMask(EnRailgibud* this, PlayState* play) { if (CHECK_FLAG_ALL(this->actor.flags, (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE))) { if (Player_GetMask(play) == PLAYER_MASK_GIBDO) { this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); - this->actor.flags |= (ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED); + this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; if ((this->actionFunc != EnRailgibud_WalkInCircles) && (this->actionFunc != EnRailgibud_WalkToHome)) { @@ -947,7 +947,7 @@ void EnRailgibud_CheckForGibdoMask(EnRailgibud* this, PlayState* play) { } } } else if (Player_GetMask(play) != PLAYER_MASK_GIBDO) { - this->actor.flags &= ~(ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); if (this->type == EN_RAILGIBUD_TYPE_REDEAD) { this->actor.hintId = TATL_HINT_ID_REDEAD; diff --git a/src/overlays/actors/ovl_En_Rat/z_en_rat.c b/src/overlays/actors/ovl_En_Rat/z_en_rat.c index 945017358b..b9f0bb55b7 100644 --- a/src/overlays/actors/ovl_En_Rat/z_en_rat.c +++ b/src/overlays/actors/ovl_En_Rat/z_en_rat.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnRat*)thisx) diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 973c347113..fce5c5e4f5 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -28,7 +28,7 @@ #include "assets/objects/object_rd/object_rd.h" #include "overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnRd*)thisx) diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index bc066051d8..5adbcfd07a 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" #include "assets/objects/object_rr/object_rr.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnRr*)thisx) @@ -197,7 +197,7 @@ void func_808FA11C(EnRr* this) { this->drawDmgEffScale = 0.85f; this->drawDmgEffFrozenSteamScale = 1275.0f * 0.001f; this->drawDmgEffAlpha = 1.0f; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -210,7 +210,7 @@ void func_808FA19C(EnRr* this, PlayState* play) { this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, LIKE_LIKE_BODYPART_MAX, 2, this->actor.scale.y * 23.333334f, this->actor.scale.y * 20.000002f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c index c1d9b63167..4276754a99 100644 --- a/src/overlays/actors/ovl_En_Si/z_en_si.c +++ b/src/overlays/actors/ovl_En_Si/z_en_si.c @@ -6,7 +6,7 @@ #include "z_en_si.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnSi*)thisx) diff --git a/src/overlays/actors/ovl_En_Slime/z_en_slime.c b/src/overlays/actors/ovl_En_Slime/z_en_slime.c index f251802425..249a1b21a1 100644 --- a/src/overlays/actors/ovl_En_Slime/z_en_slime.c +++ b/src/overlays/actors/ovl_En_Slime/z_en_slime.c @@ -7,7 +7,7 @@ #include "z_en_slime.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnSlime*)thisx) @@ -231,7 +231,7 @@ void EnSlime_Freeze(EnSlime* this) { this->drawDmgEffFrozenSteamScale = 0.6f; this->drawDmgEffAlpha = 1.0f; this->timer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_XLU, 80); } @@ -245,7 +245,7 @@ void EnSlime_Thaw(EnSlime* this, PlayState* play) { this->collider.base.colMaterial = COL_MATERIAL_NONE; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, EN_SLIME_BODYPART_MAX, 2, 0.2f, 0.2f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c index dc1fb02569..cb6ef914a7 100644 --- a/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c +++ b/src/overlays/actors/ovl_En_Snowman/z_en_snowman.c @@ -204,7 +204,7 @@ void EnSnowman_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit); Collider_InitAndSetCylinder(play, &this->collider, thisx, &sEenoCylinderInit); if (EN_SNOWMAN_GET_TYPE(thisx) == EN_SNOWMAN_TYPE_LARGE) { - thisx->flags |= ACTOR_FLAG_400; + thisx->flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SpawnAsChild(&play->actorCtx, thisx, play, ACTOR_EN_SNOWMAN, thisx->world.pos.x, thisx->world.pos.y, thisx->world.pos.z, 0, 0, 0, EN_SNOWMAN_TYPE_SPLIT); thisx->parent = Actor_SpawnAsChildAndCutscene(&play->actorCtx, play, ACTOR_EN_SNOWMAN, thisx->world.pos.x, @@ -837,7 +837,7 @@ void EnSnowman_CreateSplitEeno(EnSnowman* this, Vec3f* basePos, s32 yRot) { this->actor.world.pos.z = (Math_CosS(yRot) * 40.0f) + basePos->z; this->combineTimer = 600; this->actor.params = EN_SNOWMAN_TYPE_SPLIT; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; this->collider.base.ocFlags1 |= OC1_ON; this->collider.base.acFlags &= ~AC_ON; EnSnowman_SetupMoveSnowPile(this); @@ -955,7 +955,7 @@ void EnSnowman_Combine(EnSnowman* this, PlayState* play) { } else if (this->fwork.targetScaleDuringCombine > 0.018f) { Actor_SetScale(&this->actor, 0.02f); this->actor.params = EN_SNOWMAN_TYPE_LARGE; - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; this->collider.base.ocFlags1 |= OC1_ON; this->combineState = EN_SNOWMAN_COMBINE_STATE_BEING_ABSORBED_OR_DONE; this->eenoScale = 2.0f; diff --git a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c index 143034a6b8..495046dc21 100644 --- a/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c +++ b/src/overlays/actors/ovl_En_Talk_Gibud/z_en_talk_gibud.c @@ -7,7 +7,7 @@ #include "z_en_talk_gibud.h" #include "z64rumble.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnTalkGibud*)thisx) @@ -569,7 +569,7 @@ void EnTalkGibud_Damage(EnTalkGibud* this, PlayState* play) { if ((this->drawDmgEffTimer > 0) && (this->drawDmgEffType == ACTOR_DRAW_DMGEFF_FIRE) && (this->type == EN_TALK_GIBUD_TYPE_GIBDO)) { this->actor.hintId = TATL_HINT_ID_REDEAD; - this->actor.flags &= ~(ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); SkelAnime_InitFlex(play, &this->skelAnime, &gRedeadSkel, NULL, this->jointTable, this->morphTable, GIBDO_LIMB_MAX); @@ -935,13 +935,13 @@ void EnTalkGibud_CheckForGibdoMask(EnTalkGibud* this, PlayState* play) { if (this->actionFunc != EnTalkGibud_PassiveIdle) { if (Player_GetMask(play) == PLAYER_MASK_GIBDO) { this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); - this->actor.flags |= (ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED); + this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.hintId = TATL_HINT_ID_NONE; this->actor.textId = 0; EnTalkGibud_SetupPassiveIdle(this); } } else if (Player_GetMask(play) != PLAYER_MASK_GIBDO) { - this->actor.flags &= ~(ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_ATTENTION_ENABLED); + this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); this->actor.flags |= (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE); if (this->type == EN_TALK_GIBUD_TYPE_REDEAD) { this->actor.hintId = TATL_HINT_ID_REDEAD; diff --git a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c index eb6f4c3e67..9048f593cd 100644 --- a/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c +++ b/src/overlays/actors/ovl_En_Tanron2/z_en_tanron2.c @@ -130,7 +130,7 @@ void EnTanron2_Init(Actor* thisx, PlayState* play) { return; } - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; Actor_SetScale(&this->actor, 1.0f); this->actor.draw = NULL; diff --git a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c index e97a3f28b1..1a617e24bc 100644 --- a/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c +++ b/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.c @@ -7,8 +7,8 @@ #include "z_en_thiefbird.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS \ - (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200 | ACTOR_FLAG_IGNORE_QUAKE | \ +#define FLAGS \ + (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR | ACTOR_FLAG_IGNORE_QUAKE | \ ACTOR_FLAG_MINIMAP_ICON_ENABLED) #define THIS ((EnThiefbird*)thisx) @@ -462,7 +462,7 @@ void func_80C11454(EnThiefbird* this) { this->drawDmgEffScale = 0.5f; this->drawDmgEffFrozenSteamScale = 0.75f; this->drawDmgEffAlpha = 1.0f; - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -471,7 +471,7 @@ void func_80C114C0(EnThiefbird* this, PlayState* play) { this->drawDmgEffType = ACTOR_DRAW_DMGEFF_FIRE; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, EN_THIEFBIRD_BODYPART_MAX, 2, 0.2f, 0.2f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index 7d919018a1..515baa1269 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -7,7 +7,7 @@ #include "z_en_tite.h" #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_200) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR) #define THIS ((EnTite*)thisx) @@ -272,7 +272,7 @@ void func_80893DD4(EnTite* this) { this->drawDmgEffFrozenSteamScale = 0.75f; this->drawDmgEffAlpha = 1.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); - this->actor.flags &= ~ACTOR_FLAG_200; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } void func_80893E54(EnTite* this, PlayState* play) { @@ -281,7 +281,7 @@ void func_80893E54(EnTite* this, PlayState* play) { this->collider.base.colMaterial = COL_MATERIAL_HIT6; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, ENTITE_BODYPART_MAX, 2, 0.2f, 0.2f); - this->actor.flags |= ACTOR_FLAG_200; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_ACTOR; } } diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index 1b5a425a2b..135c1175b5 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -8,7 +8,7 @@ #include "overlays/actors/ovl_En_Bom/z_en_bom.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnVm*)thisx) diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 08d86dff21..8f8b32717d 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -10,7 +10,7 @@ #include "overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnWallmas*)thisx) @@ -204,7 +204,7 @@ void EnWallmas_Freeze(EnWallmas* this) { this->drawDmgEffAlpha = 1.0f; this->collider.base.colMaterial = COL_MATERIAL_HIT3; this->timer = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -214,7 +214,7 @@ void EnWallmas_ThawIfFrozen(EnWallmas* this, PlayState* play) { this->collider.base.colMaterial = COL_MATERIAL_HIT0; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, WALLMASTER_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index fc74a2ee6c..b09c85f95b 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.h" #include "overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.h" -#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((EnWf*)thisx) @@ -366,7 +366,7 @@ void func_809907D4(EnWf* this) { this->collider2.base.colMaterial = COL_MATERIAL_HIT3; this->collider3.base.colMaterial = COL_MATERIAL_HIT3; this->unk_2A0 = 80; - this->actor.flags &= ~ACTOR_FLAG_400; + this->actor.flags &= ~ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80); } @@ -377,7 +377,7 @@ void func_80990854(EnWf* this, PlayState* play) { this->collider3.base.colMaterial = COL_MATERIAL_HIT5; this->drawDmgEffAlpha = 0.0f; Actor_SpawnIceEffects(play, &this->actor, this->bodyPartsPos, WOLFOS_BODYPART_MAX, 2, 0.3f, 0.2f); - this->actor.flags |= ACTOR_FLAG_400; + this->actor.flags |= ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER; } } diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index c1b47c128c..f7e85bd199 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -9,7 +9,7 @@ #include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #include "assets/objects/object_syokudai/object_syokudai.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_400) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_HOOKSHOT_PULLS_PLAYER) #define THIS ((ObjSyokudai*)thisx) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index a801663312..dfe5f742da 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -205,7 +205,7 @@ void Player_Action_88(Player* this, PlayState* play); void Player_Action_89(Player* this, PlayState* play); void Player_Action_90(Player* this, PlayState* play); void Player_Action_91(Player* this, PlayState* play); -void Player_Action_92(Player* this, PlayState* play); +void Player_Action_HookshotFly(Player* this, PlayState* play); void Player_Action_93(Player* this, PlayState* play); void Player_Action_94(Player* this, PlayState* play); void Player_Action_95(Player* this, PlayState* play); @@ -4407,9 +4407,9 @@ s32 Player_SetAction(PlayState* play, Player* this, PlayerActionFunc actionFunc, this->stateFlags2 &= ~(PLAYER_STATE2_80000 | PLAYER_STATE2_800000 | PLAYER_STATE2_2000000 | PLAYER_STATE2_USING_OCARINA | PLAYER_STATE2_IDLE_FIDGET); this->stateFlags3 &= - ~(PLAYER_STATE3_2 | PLAYER_STATE3_8 | PLAYER_STATE3_80 | PLAYER_STATE3_200 | PLAYER_STATE3_2000 | - PLAYER_STATE3_8000 | PLAYER_STATE3_10000 | PLAYER_STATE3_20000 | PLAYER_STATE3_40000 | PLAYER_STATE3_80000 | - PLAYER_STATE3_200000 | PLAYER_STATE3_1000000 | PLAYER_STATE3_20000000); + ~(PLAYER_STATE3_2 | PLAYER_STATE3_8 | PLAYER_STATE3_FLYING_WITH_HOOKSHOT | PLAYER_STATE3_200 | + PLAYER_STATE3_2000 | PLAYER_STATE3_8000 | PLAYER_STATE3_10000 | PLAYER_STATE3_20000 | PLAYER_STATE3_40000 | + PLAYER_STATE3_80000 | PLAYER_STATE3_200000 | PLAYER_STATE3_1000000 | PLAYER_STATE3_20000000); this->av1.actionVar1 = 0; this->av2.actionVar2 = 0; @@ -4673,8 +4673,8 @@ bool func_8083213C(Player* this) { bool Player_UpdateUpperBody(Player* this, PlayState* play) { if (!(this->stateFlags1 & PLAYER_STATE1_800000) && (this->actor.parent != NULL) && Player_IsHoldingHookshot(this)) { - Player_SetAction(play, this, Player_Action_92, 1); - this->stateFlags3 |= PLAYER_STATE3_80; + Player_SetAction(play, this, Player_Action_HookshotFly, 1); + this->stateFlags3 |= PLAYER_STATE3_FLYING_WITH_HOOKSHOT; Player_Anim_PlayOnce(play, this, &gPlayerAnim_link_hook_fly_start); Player_AnimReplace_Setup(play, this, (ANIM_FLAG_1 | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_8 | ANIM_FLAG_NOMOVE | ANIM_FLAG_80)); @@ -4914,7 +4914,8 @@ void Player_UpdateZTargeting(Player* this, PlayState* play) { } if ((play->csCtx.state != CS_STATE_IDLE) || (this->csAction != PLAYER_CSACTION_NONE) || - (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) || (this->stateFlags3 & PLAYER_STATE3_80)) { + (this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) || + (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { // Don't allow Z-Targeting in various states this->zTargetActiveTimer = 0; } else if (zButtonHeld || (this->stateFlags2 & PLAYER_STATE2_LOCK_ON_WITH_SWITCH) || @@ -8294,7 +8295,8 @@ void func_80839E74(Player* this, PlayState* play) { } void func_80839ED0(Player* this, PlayState* play) { - if (!(this->stateFlags3 & PLAYER_STATE3_80) && (Player_Action_64 != this->actionFunc) && !func_8083213C(this)) { + if (!(this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) && (Player_Action_64 != this->actionFunc) && + !func_8083213C(this)) { func_80836D8C(this); if (!(this->stateFlags1 & PLAYER_STATE1_TALKING)) { if (func_801242B4(this)) { @@ -11115,11 +11117,11 @@ void Player_Init(Actor* thisx, PlayState* play) { this->stateFlags1 &= ~(PLAYER_STATE1_8 | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_USING_ZORA_BOOMERANG | PLAYER_STATE1_ZORA_BOOMERANG_THROWN); this->stateFlags2 &= ~(PLAYER_STATE2_20000 | PLAYER_STATE2_1000000 | PLAYER_STATE2_40000000); - this->stateFlags3 &= - ~(PLAYER_STATE3_8 | PLAYER_STATE3_40 | PLAYER_STATE3_80 | PLAYER_STATE3_100 | PLAYER_STATE3_200 | - PLAYER_STATE3_800 | PLAYER_STATE3_1000 | PLAYER_STATE3_2000 | PLAYER_STATE3_8000 | PLAYER_STATE3_10000 | - PLAYER_STATE3_40000 | PLAYER_STATE3_80000 | PLAYER_STATE3_100000 | PLAYER_STATE3_200000 | - PLAYER_STATE3_ZORA_BOOMERANG_CAUGHT | PLAYER_STATE3_1000000 | PLAYER_STATE3_2000000); + this->stateFlags3 &= ~(PLAYER_STATE3_8 | PLAYER_STATE3_40 | PLAYER_STATE3_FLYING_WITH_HOOKSHOT | + PLAYER_STATE3_100 | PLAYER_STATE3_200 | PLAYER_STATE3_800 | PLAYER_STATE3_1000 | + PLAYER_STATE3_2000 | PLAYER_STATE3_8000 | PLAYER_STATE3_10000 | PLAYER_STATE3_40000 | + PLAYER_STATE3_80000 | PLAYER_STATE3_100000 | PLAYER_STATE3_200000 | + PLAYER_STATE3_ZORA_BOOMERANG_CAUGHT | PLAYER_STATE3_1000000 | PLAYER_STATE3_2000000); this->unk_B08 = 0.0f; this->unk_B0C = 0.0f; } @@ -11922,7 +11924,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else { camera = (this->actor.id == ACTOR_PLAYER) ? Play_GetCamera(play, CAM_ID_MAIN) : Play_GetCamera(play, ((EnTest3*)this)->subCamId); - if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_80)) { + if ((this->actor.parent != NULL) && (this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { camMode = CAM_MODE_HOOKSHOT; Camera_SetViewParam(camera, CAM_VIEW_TARGET, this->actor.parent); } else if (Player_Action_21 == this->actionFunc) { @@ -12548,7 +12550,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { Math_StepToF(&this->pushedSpeed, 0.0f, (this->stateFlags1 & PLAYER_STATE1_8000000) ? 0.5f : 2.0f); } if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_20000000)) && - !(this->stateFlags3 & PLAYER_STATE3_80) && (Player_Action_80 != this->actionFunc)) { + !(this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT) && (Player_Action_80 != this->actionFunc)) { func_8083BB4C(play, this); if (!Play_InCsMode(play)) { if ((this->actor.id == ACTOR_PLAYER) && !(this->stateFlags1 & PLAYER_STATE1_80000000) && @@ -18744,7 +18746,7 @@ void Player_Action_91(Player* this, PlayState* play) { } } -void Player_Action_92(Player* this, PlayState* play) { +void Player_Action_HookshotFly(Player* this, PlayState* play) { this->stateFlags2 |= PLAYER_STATE2_20; if (PlayerAnimation_Update(play, &this->skelAnime)) { @@ -18752,6 +18754,7 @@ void Player_Action_92(Player* this, PlayState* play) { } Math_Vec3f_Sum(&this->actor.world.pos, &this->actor.velocity, &this->actor.world.pos); + if (func_80831124(play, this)) { f32 var_fv0; @@ -20979,7 +20982,7 @@ s32 Player_GrabPlayer(PlayState* play, Player* this) { if (!Player_InBlockingCsMode(play, this) && (this->invincibilityTimer >= 0) && !func_801240DC(this)) { if (!(this->stateFlags1 & (PLAYER_STATE1_DEAD | PLAYER_STATE1_2000 | PLAYER_STATE1_4000 | PLAYER_STATE1_100000 | PLAYER_STATE1_200000 | PLAYER_STATE1_800000))) { - if (!(this->stateFlags2 & PLAYER_STATE2_80) && !(this->stateFlags3 & PLAYER_STATE3_80)) { + if (!(this->stateFlags2 & PLAYER_STATE2_80) && !(this->stateFlags3 & PLAYER_STATE3_FLYING_WITH_HOOKSHOT)) { func_8085B170(play, this); return true; } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 695317f279..04b62dd99f 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -4775,7 +4775,7 @@ 0x80855AF4:("Player_Action_89",), 0x80855B9C:("Player_Action_90",), 0x80855C28:("Player_Action_91",), - 0x80855E08:("Player_Action_92",), + 0x80855E08:("Player_Action_HookshotFly",), 0x80855F9C:("func_80855F9C",), 0x80856000:("func_80856000",), 0x80856074:("func_80856074",), @@ -6103,7 +6103,7 @@ 0x808C103C:("ArmsHook_Init",), 0x808C10B0:("ArmsHook_Destroy",), 0x808C10F8:("ArmsHook_Wait",), - 0x808C1154:("func_808C1154",), + 0x808C1154:("ArmsHook_PullPlayer",), 0x808C1168:("ArmsHook_AttachToPlayer",), 0x808C1198:("ArmsHook_DetachFromActor",), 0x808C11C0:("ArmsHook_CheckForCancel",),