Name Remaining Hookshot Actor Flags (#1746)

* hookshot attachment

* period

* hookshot flags

* fix ordering

* comment, fix ordering

---------

Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
This commit is contained in:
engineer124
2024-11-28 04:33:13 +11:00
committed by GitHub
parent 2f1f0bdaef
commit b84e27c732
45 changed files with 156 additions and 126 deletions
+13 -7
View File
@@ -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)
//
+3 -3
View File
@@ -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)
+1 -1
View File
@@ -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) {
@@ -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);
@@ -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)
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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;
}
}
@@ -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;
}
}
@@ -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)
@@ -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)
@@ -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;
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
+3 -1
View File
@@ -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)
@@ -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) {
@@ -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);
+3 -3
View File
@@ -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;
}
}
@@ -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) {
@@ -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 {
@@ -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);
+3 -3
View File
@@ -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;
}
}
@@ -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
@@ -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)
@@ -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)
@@ -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;
+2 -1
View File
@@ -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)
+2 -2
View File
@@ -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;
}
}
@@ -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;
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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;
}
}
+1 -1
View File
@@ -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)
@@ -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;
}
}
@@ -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;
@@ -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;
@@ -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;
@@ -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;
}
}
+3 -3
View File
@@ -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;
}
}
+1 -1
View File
@@ -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)
@@ -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;
}
}
+3 -3
View File
@@ -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;
}
}
@@ -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)
+20 -17
View File
@@ -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;
}
+2 -2
View File
@@ -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",),