diff options
| author | engineer124 <47598039+engineer124@users.noreply.github.com> | 2024-11-26 11:26:55 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-26 11:26:55 +1100 |
| commit | ba693efb0820f354df2b95a136ffc283639c0bf8 (patch) | |
| tree | 471645e082d1214ba5dc93bfaea846b6e0c58209 /include | |
| parent | a448168d372113e6251afba25153f2065a4caabf (diff) | |
Document Hookshot Attachment (#1745)
* hookshot attachment
* period
Diffstat (limited to 'include')
| -rw-r--r-- | include/z64actor.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/include/z64actor.h b/include/z64actor.h index 5218cba27..3f6501080 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -465,20 +465,20 @@ typedef enum DoorLockType { // Actor is discoverable by the Attention System. This enables Tatl to hover over the actor when it is in range. // The actor can also be locked onto (as long as `ACTOR_FLAG_LOCK_ON_DISABLED` is not set). -#define ACTOR_FLAG_ATTENTION_ENABLED (1 << 0) +#define ACTOR_FLAG_ATTENTION_ENABLED (1 << 0) // Unused -#define ACTOR_FLAG_2 (1 << 1) +#define ACTOR_FLAG_2 (1 << 1) // Actor is hostile toward the Player. Player has specific "battle" behavior when locked onto hostile actors. // Enemy background music will also be played when the player is close enough to a hostile actor. // Note: This must be paired with `ACTOR_FLAG_ATTENTION_ENABLED` to have any effect. -#define ACTOR_FLAG_HOSTILE (1 << 2) +#define ACTOR_FLAG_HOSTILE (1 << 2) // Actor is considered "friendly"; Opposite flag of `ACTOR_FLAG_HOSTILE`. // 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_FRIENDLY (1 << 3) // #define ACTOR_FLAG_10 (1 << 4) // @@ -501,9 +501,15 @@ typedef enum DoorLockType { #define ACTOR_FLAG_800 (1 << 11) // Actor will not shake when a quake occurs -#define ACTOR_FLAG_IGNORE_QUAKE (1 << 12) -// -#define ACTOR_FLAG_2000 (1 << 13) +#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`. +// 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. +// This only has an effect for Gold Skulltula Tokens (EN_SI) which has overlapping behavior for hookshot and boomerang. +#define ACTOR_FLAG_HOOKSHOT_ATTACHED (1 << 13) // When hit by an arrow, the actor will be able to attach to the arrow and fly with it in the air #define ACTOR_FLAG_CAN_ATTACH_TO_ARROW (1 << 14) @@ -538,15 +544,15 @@ typedef enum DoorLockType { // When Player is carrying this actor, it can only be thrown, not dropped/placed. // Typically an actor can only be thrown when moving, but this allows an actor to be thrown when standing still. -#define ACTOR_FLAG_THROW_ONLY (1 << 23) +#define ACTOR_FLAG_THROW_ONLY (1 << 23) // When colliding with Player's body AC collider, a "thump" sound will play indicating his body has been hit -#define ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT (1 << 24) +#define ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT (1 << 24) // Actor can update even if Player is currently using the ocarina. // 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) +#define ACTOR_FLAG_UPDATE_DURING_OCARINA (1 << 25) // Actor can press and hold down switches. // See usages of `DynaPolyActor_SetSwitchPressed` and `DynaPolyActor_IsSwitchPressed` for more context on how switches work. @@ -554,7 +560,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_LOCK_ON_DISABLED (1 << 27) // #define ACTOR_FLAG_10000000 (1 << 28) // |
