mirror of
https://github.com/zeldaret/mm.git
synced 2026-08-22 06:19:54 -04:00
Document Actor Ocarina Interaction (#1748)
* ocarina interaction * cleanup * 0x * document zora exception * add comment
This commit is contained in:
+10
-6
@@ -569,8 +569,12 @@ typedef enum DoorLockType {
|
||||
|
||||
//
|
||||
#define ACTOR_FLAG_10000000 (1 << 28)
|
||||
//
|
||||
#define ACTOR_FLAG_20000000 (1 << 29)
|
||||
|
||||
// Signals that player has accepted an offer to use the ocarina to interact with an actor
|
||||
// An exception is made for EN_ZOT, see `Player_ActionHandler_13`.
|
||||
// Player will retain this flag until the player is finished playing the ocarina
|
||||
// Actor will retain this flag until `Actor_OcarinaInteractionAccepted` is called or manually turned off by the actor
|
||||
#define ACTOR_FLAG_OCARINA_INTERACTION (1 << 29)
|
||||
|
||||
// Camera will slowly drift to the actor while approaching it.
|
||||
// Uses the attention system but `ACTOR_FLAG_ATTENTION_ENABLED` is not required.
|
||||
@@ -839,10 +843,10 @@ s32 Actor_OfferTalkNearColChkInfoCylinder(Actor* actor, struct PlayState* play);
|
||||
s32 Actor_TextboxIsClosing(Actor* actor, struct PlayState* play);
|
||||
s32 Actor_ChangeFocus(Actor* actor1, struct PlayState* play, Actor* actor2);
|
||||
|
||||
s32 func_800B8718(Actor* actor, struct GameState* gameState);
|
||||
s32 func_800B874C(Actor* actor, struct PlayState* play, f32 xzRange, f32 yRange);
|
||||
s32 func_800B8804(Actor* actor, struct PlayState* play, f32 xzRange);
|
||||
s32 func_800B886C(Actor* actor, struct PlayState* play);
|
||||
s32 Actor_OcarinaInteractionAccepted(Actor* actor, struct GameState* gameState);
|
||||
s32 Actor_OfferOcarinaInteraction(Actor* actor, struct PlayState* play, f32 xzRange, f32 yRange);
|
||||
s32 Actor_OfferOcarinaInteractionNearby(Actor* actor, struct PlayState* play, f32 xzRange);
|
||||
s32 Actor_NoOcarinaInteraction(Actor* actor, struct PlayState* play);
|
||||
void Actor_GetScreenPos(struct PlayState* play, Actor* actor, s16* posX, s16* posY);
|
||||
bool Actor_OnScreen(struct PlayState* play, Actor* actor);
|
||||
s32 Actor_HasParent(Actor* actor, struct PlayState* play);
|
||||
|
||||
+5
-6
@@ -1148,7 +1148,7 @@ typedef struct Player {
|
||||
/* 0x164 */ Gfx** waistDLists;
|
||||
/* 0x168 */ UNK_TYPE1 unk_168[0x4C];
|
||||
/* 0x1B4 */ s16 unk_1B4;
|
||||
/* 0x1B6 */ char unk_1B6[2];
|
||||
/* 0x1B6 */ UNK_TYPE1 unk_1B6[0x2];
|
||||
/* 0x1B8 */ u8 giObjectLoading;
|
||||
/* 0x1BC */ DmaRequest giObjectDmaRequest;
|
||||
/* 0x1DC */ OSMesgQueue giObjectLoadQueue;
|
||||
@@ -1194,7 +1194,6 @@ typedef struct Player {
|
||||
s16 doorBgCamIndex; // `BgCamIndex` used during a sliding door and spiral staircase cutscenes
|
||||
} cv; // "Cutscene Variable": context dependent variable that has different meanings depending on what function is called
|
||||
/* 0x3BC */ s16 subCamId;
|
||||
/* 0x3BE */ char unk_3BE[2];
|
||||
/* 0x3C0 */ Vec3f unk_3C0;
|
||||
/* 0x3CC */ s16 unk_3CC;
|
||||
/* 0x3CE */ s8 unk_3CE;
|
||||
@@ -1208,7 +1207,7 @@ typedef struct Player {
|
||||
/* 0x664 */ ColliderQuad shieldQuad;
|
||||
/* 0x6E4 */ ColliderCylinder shieldCylinder;
|
||||
/* 0x730 */ Actor* focusActor; // Actor that Player and the camera are looking at; Used for lock-on, talking, and more
|
||||
/* 0x734 */ char unk_734[4];
|
||||
/* 0x734 */ UNK_TYPE1 unk_734[0x4];
|
||||
/* 0x738 */ s32 zTargetActiveTimer; // Non-zero values indicate Z-Targeting should update; Values under 5 indicate lock-on is releasing
|
||||
/* 0x73C */ s32 meleeWeaponEffectIndex[3];
|
||||
/* 0x748 */ PlayerActionFunc actionFunc;
|
||||
@@ -1229,9 +1228,9 @@ typedef struct Player {
|
||||
/* 0xA87 */ s8 exchangeItemAction; // PlayerItemAction enum
|
||||
/* 0xA88 */ Actor* talkActor;
|
||||
/* 0xA8C */ f32 talkActorDistance;
|
||||
/* 0xA90 */ Actor* unk_A90;
|
||||
/* 0xA94 */ f32 unk_A94;
|
||||
/* 0xA98 */ Actor* unk_A98;
|
||||
/* 0xA90 */ Actor* ocarinaInteractionActor;
|
||||
/* 0xA94 */ f32 ocarinaInteractionDistance;
|
||||
/* 0xA98 */ UNK_TYPE1 unk_A98[0x4];
|
||||
/* 0xA9C */ f32 secretRumbleCharge; // builds per frame until discharges with a rumble request
|
||||
/* 0xAA0 */ f32 closestSecretDistSq; // Used to augment `secretRumbleCharge`. Cleared every frame
|
||||
/* 0xAA4 */ s8 idleType;
|
||||
|
||||
Reference in New Issue
Block a user