diff --git a/include/z64actor.h b/include/z64actor.h index 08f1f99399..b710676430 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -166,8 +166,8 @@ typedef enum { #define DYNA_INTERACT_ACTOR_ON_TOP (1 << 0) // There is an actor standing on the collision of the dynapoly actor #define DYNA_INTERACT_PLAYER_ON_TOP (1 << 1) // The player actor is standing on the collision of the dynapoly actor #define DYNA_INTERACT_PLAYER_ABOVE (1 << 2) // The player is directly above the collision of the dynapoly actor (any distance above) -#define DYNA_INTERACT_ACTOR_ON_SWITCH (1 << 3) // Like the ACTOR_ON_TOP flag but only actors with ACTOR_FLAG_CAN_PRESS_SWITCH -#define DYNA_INTERACT_ACTOR_ON_HEAVY_SWITCH (1 << 4) // Like the ACTOR_ON_TOP flag but only actors with ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH +#define DYNA_INTERACT_ACTOR_SWITCH_PRESSED (1 << 3) // An actor that is capable of pressing switches is on top of the dynapoly actor +#define DYNA_INTERACT_ACTOR_HEAVY_SWITCH_PRESSED (1 << 4) // An actor that is capable of pressing heavy switches is on top of the dynapoly actor typedef struct DynaPolyActor { /* 0x000 */ Actor actor; @@ -491,8 +491,10 @@ typedef enum DoorLockType { #define ACTOR_FLAG_8000 (1 << 15) // #define ACTOR_FLAG_10000 (1 << 16) -// actor can press and hold down heavy switches -#define ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH (1 << 17) + +// Actor can press and hold down heavy switches. +// See usages of `DynaPolyActor_SetHeavySwitchPressed` and `DynaPolyActor_IsHeavySwitchPressed` for more context on how switches work. +#define ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCHES (1 << 17) // #define ACTOR_FLAG_40000 (1 << 18) // @@ -512,8 +514,10 @@ typedef enum DoorLockType { // Typically an actor will halt while the ocarina is active (depending on category). // This flag allows a given actor to be an exception. #define ACTOR_FLAG_UPDATE_DURING_OCARINA (1 << 25) -// actor can press and hold down switches -#define ACTOR_FLAG_CAN_PRESS_SWITCH (1 << 26) + +// Actor can press and hold down switches. +// See usages of `DynaPolyActor_SetSwitchPressed` and `DynaPolyActor_IsSwitchPressed` for more context on how switches work. +#define ACTOR_FLAG_CAN_PRESS_SWITCHES (1 << 26) // 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. @@ -891,8 +895,8 @@ void DynaPolyActor_SetPlayerOnTop(DynaPolyActor* dynaActor); void DynaPoly_SetPlayerOnTop(struct CollisionContext* colCtx, s32 bgId); void DynaPolyActor_SetPlayerAbove(DynaPolyActor* dynaActor); void DynaPoly_SetPlayerAbove(struct CollisionContext* colCtx, s32 bgId); -void DynaPolyActor_SetActorOnSwitch(DynaPolyActor* dynaActor); -void DynaPolyActor_SetActorOnHeavySwitch(DynaPolyActor* dynaActor); +void DynaPolyActor_SetSwitchPressed(DynaPolyActor* dynaActor); +void DynaPolyActor_SetHeavySwitchPressed(DynaPolyActor* dynaActor); s32 DynaPolyActor_IsActorOnTop(DynaPolyActor* dynaActor); s32 DynaPolyActor_IsPlayerOnTop(DynaPolyActor* dynaActor); s32 DynaPolyActor_IsPlayerAbove(DynaPolyActor* dynaActor); diff --git a/src/code/z_bg_collect.c b/src/code/z_bg_collect.c index e4a6072ce1..717c6e0ed9 100644 --- a/src/code/z_bg_collect.c +++ b/src/code/z_bg_collect.c @@ -72,11 +72,11 @@ void DynaPolyActor_AttachCarriedActor(CollisionContext* colCtx, Actor* carriedAc if (dynaActor != NULL) { DynaPolyActor_SetActorOnTop(dynaActor); - if (CHECK_FLAG_ALL(carriedActor->flags, ACTOR_FLAG_CAN_PRESS_SWITCH)) { - DynaPolyActor_SetActorOnSwitch(dynaActor); + if (CHECK_FLAG_ALL(carriedActor->flags, ACTOR_FLAG_CAN_PRESS_SWITCHES)) { + DynaPolyActor_SetSwitchPressed(dynaActor); } - if (CHECK_FLAG_ALL(carriedActor->flags, ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH)) { - DynaPolyActor_SetActorOnHeavySwitch(dynaActor); + if (CHECK_FLAG_ALL(carriedActor->flags, ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCHES)) { + DynaPolyActor_SetHeavySwitchPressed(dynaActor); } } } diff --git a/src/code/z_bg_item.c b/src/code/z_bg_item.c index cedd771943..ba445f13f7 100644 --- a/src/code/z_bg_item.c +++ b/src/code/z_bg_item.c @@ -51,12 +51,12 @@ void DynaPoly_SetPlayerAbove(CollisionContext* colCtx, s32 bgId) { } } -void DynaPolyActor_SetActorOnSwitch(DynaPolyActor* dynaActor) { - dynaActor->interactFlags |= DYNA_INTERACT_ACTOR_ON_SWITCH; +void DynaPolyActor_SetSwitchPressed(DynaPolyActor* dynaActor) { + dynaActor->interactFlags |= DYNA_INTERACT_ACTOR_SWITCH_PRESSED; } -void DynaPolyActor_SetActorOnHeavySwitch(DynaPolyActor* dynaActor) { - dynaActor->interactFlags |= DYNA_INTERACT_ACTOR_ON_HEAVY_SWITCH; +void DynaPolyActor_SetHeavySwitchPressed(DynaPolyActor* dynaActor) { + dynaActor->interactFlags |= DYNA_INTERACT_ACTOR_HEAVY_SWITCH_PRESSED; } s32 DynaPolyActor_IsActorOnTop(DynaPolyActor* dynaActor) { @@ -84,7 +84,7 @@ s32 DynaPolyActor_IsPlayerAbove(DynaPolyActor* dynaActor) { } s32 DynaPolyActor_IsSwitchPressed(DynaPolyActor* dynaActor) { - if (dynaActor->interactFlags & DYNA_INTERACT_ACTOR_ON_SWITCH) { + if (dynaActor->interactFlags & DYNA_INTERACT_ACTOR_SWITCH_PRESSED) { return true; } else { return false; @@ -92,7 +92,7 @@ s32 DynaPolyActor_IsSwitchPressed(DynaPolyActor* dynaActor) { } s32 DynaPolyActor_IsHeavySwitchPressed(DynaPolyActor* dynaActor) { - if (dynaActor->interactFlags & DYNA_INTERACT_ACTOR_ON_HEAVY_SWITCH) { + if (dynaActor->interactFlags & DYNA_INTERACT_ACTOR_HEAVY_SWITCH_PRESSED) { return true; } else { return false; diff --git a/src/code/z_player_call.c b/src/code/z_player_call.c index c1612d640c..d426190c3f 100644 --- a/src/code/z_player_call.c +++ b/src/code/z_player_call.c @@ -3,7 +3,7 @@ #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_200000 | \ - ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCH | ACTOR_FLAG_80000000) + ACTOR_FLAG_UPDATE_DURING_OCARINA | ACTOR_FLAG_CAN_PRESS_SWITCHES | ACTOR_FLAG_80000000) ActorFunc sPlayerCallInitFunc; ActorFunc sPlayerCallDestroyFunc; diff --git a/src/overlays/actors/ovl_Dm_Statue/z_dm_statue.c b/src/overlays/actors/ovl_Dm_Statue/z_dm_statue.c index 3e7cc896c1..c49e3a4789 100644 --- a/src/overlays/actors/ovl_Dm_Statue/z_dm_statue.c +++ b/src/overlays/actors/ovl_Dm_Statue/z_dm_statue.c @@ -7,7 +7,7 @@ #include "z_dm_statue.h" #include "assets/objects/object_smtower/object_smtower.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((DmStatue*)thisx) diff --git a/src/overlays/actors/ovl_En_Test3/z_en_test3.c b/src/overlays/actors/ovl_En_Test3/z_en_test3.c index 7cb0a57b71..c7411ae7c8 100644 --- a/src/overlays/actors/ovl_En_Test3/z_en_test3.c +++ b/src/overlays/actors/ovl_En_Test3/z_en_test3.c @@ -14,7 +14,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "assets/objects/object_mask_ki_tan/object_mask_ki_tan.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((EnTest3*)thisx) diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 310b2bc4e1..8f488bcb0e 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -68,9 +68,9 @@ void EnTorch2_Init(Actor* thisx, PlayState* play) { Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); if (this->actor.params != TORCH2_PARAM_DEKU) { - this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCH; + this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCHES; if (this->actor.params == TORCH2_PARAM_GORON) { - this->actor.flags |= ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH; + this->actor.flags |= ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCHES; } } this->framesUntilNextState = 20; diff --git a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c index de3063a69c..9809cc3e6a 100644 --- a/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c +++ b/src/overlays/actors/ovl_Obj_Armos/z_obj_armos.c @@ -7,7 +7,7 @@ #include "z_obj_armos.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((ObjArmos*)thisx) diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index 892dfe572c..0439dc6857 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_kibako/object_kibako.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((ObjKibako*)thisx) @@ -349,7 +349,7 @@ void ObjKibako_Held(ObjKibako* this, PlayState* play) { } else { Actor_MoveWithGravity(&this->actor); ObjKibako_SetupThrown(this); - this->actor.flags &= ~ACTOR_FLAG_CAN_PRESS_SWITCH; + this->actor.flags &= ~ACTOR_FLAG_CAN_PRESS_SWITCHES; } Actor_UpdateBgCheckInfo(play, &this->actor, 18.0f, 15.0f, 0.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_40); diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index e90847493d..58f86a3920 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -446,7 +446,7 @@ void ObjOshihiki_OnActor(ObjOshihiki* this, PlayState* play) { dyna = DynaPoly_GetActor(&play->colCtx, this->floorBgIds[this->highestFloor]); if (dyna != NULL) { DynaPolyActor_SetActorOnTop(dyna); - DynaPolyActor_SetActorOnSwitch(dyna); + DynaPolyActor_SetSwitchPressed(dyna); if ((this->timer <= 0) && (fabsf(this->dyna.pushForce) > 0.001f) && ObjOshihiki_StrongEnough(this, play) && ObjOshihiki_NoSwitchPress(this, dyna, play) && !ObjOshihiki_CheckWall(play, this->dyna.yRotation, this->dyna.pushForce, this)) { @@ -464,7 +464,7 @@ void ObjOshihiki_OnActor(ObjOshihiki* this, PlayState* play) { dyna = DynaPoly_GetActor(&play->colCtx, this->floorBgIds[this->highestFloor]); if ((dyna != NULL) && (dyna->transformFlags & DYNA_TRANSFORM_POS)) { DynaPolyActor_SetActorOnTop(dyna); - DynaPolyActor_SetActorOnSwitch(dyna); + DynaPolyActor_SetSwitchPressed(dyna); this->dyna.actor.world.pos.y = this->dyna.actor.floorHeight; } else { ObjOshihiki_SetupFall(this, play); diff --git a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c index 0b1cdd53bb..1f244f1581 100644 --- a/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c +++ b/src/overlays/actors/ovl_Obj_Pzlblock/z_obj_pzlblock.c @@ -8,7 +8,7 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_secom_obj/object_secom_obj.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((ObjPzlblock*)thisx) diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index e10f385f5d..9eba40d48a 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -10,7 +10,7 @@ #include "assets/objects/object_tsubo/object_tsubo.h" #include "assets/objects/object_racetsubo/object_racetsubo.h" -#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_THROW_ONLY | ACTOR_FLAG_CAN_PRESS_SWITCH) +#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_THROW_ONLY | ACTOR_FLAG_CAN_PRESS_SWITCHES) #define THIS ((ObjTsubo*)thisx) @@ -536,7 +536,7 @@ void func_80928D80(ObjTsubo* this, PlayState* play) { if (Actor_HasNoParent(&this->actor, play)) { this->actor.room = play->roomCtx.curRoom.num; Actor_MoveWithGravity(&this->actor); - this->actor.flags &= ~ACTOR_FLAG_CAN_PRESS_SWITCH; + this->actor.flags &= ~ACTOR_FLAG_CAN_PRESS_SWITCHES; Actor_UpdateBgCheckInfo(play, &this->actor, 15.0f, 15.0f, 0.0f, UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_40 | UPDBGCHECKINFO_FLAG_80); @@ -651,7 +651,7 @@ void func_8092926C(ObjTsubo* this, PlayState* play) { } else { scale = sPotTypeData[OBJ_TSUBO_GET_TYPE(&this->actor)].scale; if (Math_StepToF(&this->actor.scale.x, scale, scale * 0.1f)) { - this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCH; + this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCHES; func_809289B4(this); } this->actor.scale.z = this->actor.scale.y = this->actor.scale.x; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 92e8114d17..930e63f0c1 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -11011,11 +11011,11 @@ void Player_Init(Actor* thisx, PlayState* play) { } } - this->actor.flags &= ~(ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH | ACTOR_FLAG_CAN_PRESS_SWITCH); + this->actor.flags &= ~(ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCHES | ACTOR_FLAG_CAN_PRESS_SWITCHES); if (this->transformation != PLAYER_FORM_DEKU) { - this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCH; + this->actor.flags |= ACTOR_FLAG_CAN_PRESS_SWITCHES; if (this->transformation == PLAYER_FORM_GORON) { - this->actor.flags |= ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCH; + this->actor.flags |= ACTOR_FLAG_CAN_PRESS_HEAVY_SWITCHES; } } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 8fa5ab3b34..d8ae53df5a 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1104,8 +1104,8 @@ 0x800CAEB0:("DynaPoly_SetPlayerOnTop",), 0x800CAEE0:("DynaPolyActor_SetPlayerAbove",), 0x800CAEF4:("DynaPoly_SetPlayerAbove",), - 0x800CAF24:("DynaPolyActor_SetActorOnSwitch",), - 0x800CAF38:("DynaPolyActor_SetActorOnHeavySwitch",), + 0x800CAF24:("DynaPolyActor_SetSwitchPressed",), + 0x800CAF38:("DynaPolyActor_SetHeavySwitchPressed",), 0x800CAF4C:("DynaPolyActor_IsActorOnTop",), 0x800CAF70:("DynaPolyActor_IsPlayerOnTop",), 0x800CAF94:("DynaPolyActor_IsPlayerAbove",), diff --git a/tools/namefixer.py b/tools/namefixer.py index 88464dced5..7f49fe8222 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -533,8 +533,8 @@ wordReplace = { "DynaPolyActor_SetRidingMovingStateByIndex": "DynaPoly_SetPlayerOnTop", "DynaPolyActor_SetRidingRotatingState": "DynaPolyActor_SetPlayerAbove", "DynaPolyActor_SetRidingRotatingStateByIndex": "DynaPoly_SetPlayerAbove", - "DynaPolyActor_SetSwitchPressedState": "DynaPolyActor_SetActorOnSwitch", - "DynaPolyActor_SetHeavySwitchPressedState": "DynaPolyActor_SetActorOnHeavySwitch", + "DynaPolyActor_SetSwitchPressedState": "DynaPolyActor_SetSwitchPressed", + "DynaPolyActor_SetHeavySwitchPressedState": "DynaPolyActor_SetHeavySwitchPressed", "DynaPolyActor_IsInRidingFallingState": "DynaPolyActor_IsActorOnTop", "DynaPolyActor_IsInRidingMovingState": "DynaPolyActor_IsPlayerOnTop", "DynaPolyActor_IsInRidingRotatingState": "DynaPolyActor_IsPlayerAbove",