Deku Playground Docs (#1318)

* Actor shared memory

* EnGameLupy

* EnLiftNuts

* object_dnt

* PR Suggestions

* Things I missed

* sPad

* Format

* PR comments
This commit is contained in:
Derek Hensley 2023-07-10 19:47:39 -07:00 committed by GitHub
parent db6268a12e
commit 913cd981c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 760 additions and 657 deletions

View File

@ -1,91 +1,106 @@
<Root> <Root>
<!-- Assets for business scrubs -->
<File Name="object_dnt" Segment="6"> <File Name="object_dnt" Segment="6">
<Animation Name="object_dnt_Anim_000994" Offset="0x994" /> <!-- Original name is "dnt_banban" --> <!-- Animations -->
<Animation Name="object_dnt_Anim_0012F4" Offset="0x12F4" /> <!-- Original name is "dnt_boyon" --> <Animation Name="gBusinessScrubShockedPoundAnim" Offset="0x994" /> <!-- Original name is "dnt_banban" -->
<DList Name="object_dnt_DL_001350" Offset="0x1350" /> <Animation Name="gBusinessScrubTakeOffHatAnim" Offset="0x12F4" /> <!-- Original name is "dnt_boyon" -->
<DList Name="object_dnt_DL_001420" Offset="0x1420" />
<Animation Name="object_dnt_Anim_001BC8" Offset="0x1BC8" /> <!-- Original name is "dnt_fly" --> <!-- Additional Eyes DLs -->
<Animation Name="object_dnt_Anim_001E2C" Offset="0x1E2C" /> <!-- Original name is "dnt_iyaiya" --> <DList Name="gBusinessScrubEyesWideDL" Offset="0x1350" />
<Animation Name="object_dnt_Anim_002268" Offset="0x2268" /> <!-- Original name is "dnt_iyaiyaTOmuun" --> <DList Name="gBusinessScrubEyesSquintDL" Offset="0x1420" />
<Animation Name="object_dnt_Anim_002670" Offset="0x2670" /> <!-- Original name is "dnt_kouka" -->
<Animation Name="object_dnt_Anim_0029E8" Offset="0x29E8" /> <!-- Original name is "dnt_moguru" --> <!-- Animations -->
<Animation Name="object_dnt_Anim_002F08" Offset="0x2F08" /> <!-- Original name is "dnt_muun" --> <Animation Name="gBusinessScrubFlyLoopAnim" Offset="0x1BC8" /> <!-- Original name is "dnt_fly" -->
<Animation Name="object_dnt_Anim_003438" Offset="0x3438" /> <!-- Original name is "dnt_nooo" --> <Animation Name="gBusinessScrubShockedShakeHeadAnim" Offset="0x1E2C" /> <!-- Original name is "dnt_iyaiya" -->
<Animation Name="object_dnt_Anim_0038CC" Offset="0x38CC" /> <!-- Original name is "dnt_onedari" --> <Animation Name="gBusinessScrubShockedEndAnim" Offset="0x2268" /> <!-- Original name is "dnt_iyaiyaTOmuun" -->
<Animation Name="object_dnt_Anim_003CC0" Offset="0x3CC0" /> <!-- Original name is "dnt_onedariTOwait" --> <Animation Name="gBusinessScrubFlyEndAnim" Offset="0x2670" /> <!-- Original name is "dnt_kouka" -->
<Blob Name="object_dnt_Blob_003CD0" Size="0x10" Offset="0x3CD0" /> <Animation Name="gBusinessScrubBurrowAnim" Offset="0x29E8" /> <!-- Original name is "dnt_moguru" -->
<Animation Name="object_dnt_Anim_004700" Offset="0x4700" /> <!-- Original name is "dnt_spoon" --> <Animation Name="gBusinessScrubThinkAnim" Offset="0x2F08" /> <!-- Original name is "dnt_muun" -->
<Animation Name="object_dnt_Anim_004AA0" Offset="0x4AA0" /> <!-- Original name is "dnt_tobidasu01" --> <Animation Name="gBusinessScrubShockedStartAnim" Offset="0x3438" /> <!-- Original name is "dnt_nooo" -->
<Animation Name="object_dnt_Anim_004E38" Offset="0x4E38" /> <!-- Original name is "dnt_tobidasu02" --> <Animation Name="gBusinessScrubExcitedLoopAnim" Offset="0x38CC" /> <!-- Original name is "dnt_onedari" -->
<Animation Name="object_dnt_Anim_005488" Offset="0x5488" /> <!-- Original name is "dnt_wait" --> <Animation Name="gBusinessScrubExcitedEndAnim" Offset="0x3CC0" /> <!-- Original name is "dnt_onedariTOwait" -->
<Animation Name="object_dnt_Anim_00577C" Offset="0x577C" /> <!-- Original name is "dnt_wait02" --> <TextureAnimation Name="gBusinessScrubEmptyTexAnim" Offset="0x3CD0" />
<Animation Name="object_dnt_Anim_005CA8" Offset="0x5CA8" /> <!-- Original name is "dnt_waitTOonedari" --> <Animation Name="gBusinessScrubFlyStartAnim" Offset="0x4700" /> <!-- Original name is "dnt_spoon" -->
<DList Name="object_dnt_DL_007EA0" Offset="0x7EA0" /> <Animation Name="gBusinessScrubRiseUpAnim" Offset="0x4AA0" /> <!-- Original name is "dnt_tobidasu01" -->
<DList Name="object_dnt_DL_008048" Offset="0x8048" /> <Animation Name="gBusinessScrubJumpAnim" Offset="0x4E38" /> <!-- Original name is "dnt_tobidasu02" -->
<DList Name="object_dnt_DL_008290" Offset="0x8290" /> <Animation Name="gBusinessScrubStandingAnim" Offset="0x5488" /> <!-- Original name is "dnt_wait" -->
<DList Name="object_dnt_DL_008320" Offset="0x8320" /> <Animation Name="gBusinessScrubBobAnim" Offset="0x577C" /> <!-- Original name is "dnt_wait02" --> <!-- used as the idle anim when half burrowed into a deku flower-->
<DList Name="object_dnt_DL_008438" Offset="0x8438" /> <Animation Name="gBusinessScrubExcitedStartAnim" Offset="0x5CA8" /> <!-- Original name is "dnt_waitTOonedari" -->
<DList Name="object_dnt_DL_0085D8" Offset="0x85D8" />
<DList Name="object_dnt_DL_008688" Offset="0x8688" /> <!-- DLs -->
<DList Name="object_dnt_DL_008718" Offset="0x8718" /> <DList Name="gBusinessScrubHeadDL" Offset="0x7EA0" />
<DList Name="object_dnt_DL_008838" Offset="0x8838" /> <DList Name="gBusinessScrubLeftArmBagDL" Offset="0x8048" />
<DList Name="object_dnt_DL_008A48" Offset="0x8A48" /> <DList Name="gBusinessScrubEyesDL" Offset="0x8290" />
<DList Name="object_dnt_DL_008B60" Offset="0x8B60" /> <DList Name="gBusinessScrubScalpDL" Offset="0x8320" />
<DList Name="object_dnt_DL_008C10" Offset="0x8C10" /> <DList Name="gBusinessScrubHatDL" Offset="0x8438" />
<DList Name="object_dnt_DL_008DB0" Offset="0x8DB0" /> <DList Name="gBusinessScrubHairDL" Offset="0x85D8" />
<DList Name="object_dnt_DL_008ED0" Offset="0x8ED0" /> <DList Name="gBusinessScrubLeftEarDL" Offset="0x8688" />
<DList Name="object_dnt_DL_0090E8" Offset="0x90E8" /> <DList Name="gBusinessScrubLeftHandDL" Offset="0x8718" />
<DList Name="object_dnt_DL_009200" Offset="0x9200" /> <DList Name="gBusinessScrubLeftHandBagDL" Offset="0x8838" />
<DList Name="object_dnt_DL_0092B0" Offset="0x92B0" /> <DList Name="gBusinessScrubLeftForearmDL" Offset="0x8A48" />
<DList Name="object_dnt_DL_009340" Offset="0x9340" /> <DList Name="gBusinessScrubLeftUpperArmDL" Offset="0x8B60" />
<DList Name="object_dnt_DL_0093D0" Offset="0x93D0" /> <DList Name="gBusinessScrubRightHandHatDL" Offset="0x8C10" />
<DList Name="object_dnt_DL_0094E8" Offset="0x94E8" /> <DList Name="gBusinessScrubRightHandDL" Offset="0x8DB0" />
<DList Name="object_dnt_DL_009630" Offset="0x9630" /> <DList Name="gBusinessScrubRightHandBagDL" Offset="0x8ED0" />
<DList Name="object_dnt_DL_009740" Offset="0x9740" /> <DList Name="gBusinessScrubRightForearmDL" Offset="0x90E8" />
<DList Name="object_dnt_DL_009838" Offset="0x9838" /> <DList Name="gBusinessScrubRightUpperArmDL" Offset="0x9200" />
<DList Name="object_dnt_DL_0098D8" Offset="0x98D8" /> <DList Name="gBusinessScrubRightMustacheDL" Offset="0x92B0" />
<DList Name="object_dnt_DL_0099E8" Offset="0x99E8" /> <DList Name="gBusinessScrubRightEarDL" Offset="0x9340" />
<DList Name="object_dnt_DL_009AE0" Offset="0x9AE0" /> <DList Name="gBusinessScrubSnoutDL" Offset="0x93D0" />
<Texture Name="object_dnt_Tex_009B80" OutName="tex_009B80" Format="rgba16" Width="16" Height="16" Offset="0x9B80" /> <DList Name="gBusinessScrubBodyDL" Offset="0x94E8" />
<Texture Name="object_dnt_Tex_009D80" OutName="tex_009D80" Format="rgba16" Width="16" Height="16" Offset="0x9D80" /> <DList Name="gBusinessScrubLeftFootDL" Offset="0x9630" />
<Texture Name="object_dnt_Tex_009F80" OutName="tex_009F80" Format="rgba16" Width="8" Height="16" Offset="0x9F80" /> <DList Name="gBusinessScrubLeftShinDL" Offset="0x9740" />
<Texture Name="object_dnt_Tex_00A080" OutName="tex_00A080" Format="rgba16" Width="8" Height="16" Offset="0xA080" /> <DList Name="gBusinessScrubLeftThighDL" Offset="0x9838" />
<Texture Name="object_dnt_Tex_00A180" OutName="tex_00A180" Format="rgba16" Width="2" Height="16" Offset="0xA180" /> <DList Name="gBusinessScrubRightFootDL" Offset="0x98D8" />
<Texture Name="object_dnt_Tex_00A1C0" OutName="tex_00A1C0" Format="rgba16" Width="8" Height="8" Offset="0xA1C0" /> <DList Name="gBusinessScrubRightShinDL" Offset="0x99E8" />
<Texture Name="object_dnt_Tex_00A240" OutName="tex_00A240" Format="rgba16" Width="8" Height="16" Offset="0xA240" /> <DList Name="gBusinessScrubRightThighDL" Offset="0x9AE0" />
<Texture Name="object_dnt_Tex_00A340" OutName="tex_00A340" Format="rgba16" Width="16" Height="32" Offset="0xA340" />
<Texture Name="object_dnt_Tex_00A740" OutName="tex_00A740" Format="rgba16" Width="8" Height="8" Offset="0xA740" /> <!-- Textures -->
<Texture Name="object_dnt_Tex_00A7C0" OutName="tex_00A7C0" Format="rgba16" Width="16" Height="8" Offset="0xA7C0" /> <Texture Name="gBusinessScrubSkinTex" OutName="business_scrub_skin" Format="rgba16" Width="16" Height="16" Offset="0x9B80" />
<Texture Name="object_dnt_Tex_00A8C0" OutName="tex_00A8C0" Format="rgba16" Width="16" Height="16" Offset="0xA8C0" /> <Texture Name="gBusinessScrubLeafTex" OutName="business_scrub_leaf" Format="rgba16" Width="16" Height="16" Offset="0x9D80" />
<Limb Name="object_dnt_Standardlimb_00AAC0" Type="Standard" EnumName="OBJECT_DNT_LIMB_01" Offset="0xAAC0" /> <Texture Name="gBusinessScrubBagOpeningTex" OutName="business_scrub_bag_opening" Format="rgba16" Width="8" Height="16" Offset="0x9F80" />
<Limb Name="object_dnt_Standardlimb_00AACC" Type="Standard" EnumName="OBJECT_DNT_LIMB_02" Offset="0xAACC" /> <Texture Name="gBusinessScrubBagCordTex" OutName="business_scrub_bag_cord" Format="rgba16" Width="8" Height="16" Offset="0xA080" />
<Limb Name="object_dnt_Standardlimb_00AAD8" Type="Standard" EnumName="OBJECT_DNT_LIMB_03" Offset="0xAAD8" /> <Texture Name="gBusinessScrubBagTex" OutName="business_scrub_bag" Format="rgba16" Width="2" Height="16" Offset="0xA180" />
<Limb Name="object_dnt_Standardlimb_00AAE4" Type="Standard" EnumName="OBJECT_DNT_LIMB_04" Offset="0xAAE4" /> <Texture Name="gBusinessScrubHatTex" OutName="business_scrub_hat" Format="rgba16" Width="8" Height="8" Offset="0xA1C0" />
<Limb Name="object_dnt_Standardlimb_00AAF0" Type="Standard" EnumName="OBJECT_DNT_LIMB_05" Offset="0xAAF0" /> <Texture Name="gBusinessScrubHatLeafTex" OutName="business_scrub_hat_leaf" Format="rgba16" Width="8" Height="16" Offset="0xA240" />
<Limb Name="object_dnt_Standardlimb_00AAFC" Type="Standard" EnumName="OBJECT_DNT_LIMB_06" Offset="0xAAFC" /> <Texture Name="gBusinessScrubHairTex" OutName="business_scrub_hair" Format="rgba16" Width="16" Height="32" Offset="0xA340" />
<Limb Name="object_dnt_Standardlimb_00AB08" Type="Standard" EnumName="OBJECT_DNT_LIMB_07" Offset="0xAB08" /> <Texture Name="gBusinessScrubScalpTex" OutName="business_scrub_scalp" Format="rgba16" Width="8" Height="8" Offset="0xA740" />
<Limb Name="object_dnt_Standardlimb_00AB14" Type="Standard" EnumName="OBJECT_DNT_LIMB_08" Offset="0xAB14" /> <Texture Name="gBusinessScrubSnoutTex" OutName="business_scrub_snout" Format="rgba16" Width="16" Height="8" Offset="0xA7C0" />
<Limb Name="object_dnt_Standardlimb_00AB20" Type="Standard" EnumName="OBJECT_DNT_LIMB_09" Offset="0xAB20" /> <Texture Name="gBusinessScrubEyeTex" OutName="business_scrub_eye" Format="rgba16" Width="16" Height="16" Offset="0xA8C0" />
<Limb Name="object_dnt_Standardlimb_00AB2C" Type="Standard" EnumName="OBJECT_DNT_LIMB_0A" Offset="0xAB2C" />
<Limb Name="object_dnt_Standardlimb_00AB38" Type="Standard" EnumName="OBJECT_DNT_LIMB_0B" Offset="0xAB38" /> <!-- Skeleton -->
<Limb Name="object_dnt_Standardlimb_00AB44" Type="Standard" EnumName="OBJECT_DNT_LIMB_0C" Offset="0xAB44" /> <Limb Name="gBusinessScrubRootLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_ROOT" Offset="0xAAC0" />
<Limb Name="object_dnt_Standardlimb_00AB50" Type="Standard" EnumName="OBJECT_DNT_LIMB_0D" Offset="0xAB50" /> <Limb Name="gBusinessScrubBodyLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_BODY" Offset="0xAACC" />
<Limb Name="object_dnt_Standardlimb_00AB5C" Type="Standard" EnumName="OBJECT_DNT_LIMB_0E" Offset="0xAB5C" /> <Limb Name="gBusinessScrubRightThighLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_THIGH" Offset="0xAAD8" />
<Limb Name="object_dnt_Standardlimb_00AB68" Type="Standard" EnumName="OBJECT_DNT_LIMB_0F" Offset="0xAB68" /> <Limb Name="gBusinessScrubRightShinLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_SHIN" Offset="0xAAE4" />
<Limb Name="object_dnt_Standardlimb_00AB74" Type="Standard" EnumName="OBJECT_DNT_LIMB_10" Offset="0xAB74" /> <Limb Name="gBusinessScrubRightFootLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_FOOT" Offset="0xAAF0" />
<Limb Name="object_dnt_Standardlimb_00AB80" Type="Standard" EnumName="OBJECT_DNT_LIMB_11" Offset="0xAB80" /> <Limb Name="gBusinessScrubLeftThighLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_THIGH" Offset="0xAAFC" />
<Limb Name="object_dnt_Standardlimb_00AB8C" Type="Standard" EnumName="OBJECT_DNT_LIMB_12" Offset="0xAB8C" /> <Limb Name="gBusinessScrubLeftShinLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_SHIN" Offset="0xAB08" />
<Limb Name="object_dnt_Standardlimb_00AB98" Type="Standard" EnumName="OBJECT_DNT_LIMB_13" Offset="0xAB98" /> <Limb Name="gBusinessScrubLeftFootLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_FOOT" Offset="0xAB14" />
<Limb Name="object_dnt_Standardlimb_00ABA4" Type="Standard" EnumName="OBJECT_DNT_LIMB_14" Offset="0xABA4" /> <Limb Name="gBusinessScrubHeadLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_HEAD" Offset="0xAB20" />
<Limb Name="object_dnt_Standardlimb_00ABB0" Type="Standard" EnumName="OBJECT_DNT_LIMB_15" Offset="0xABB0" /> <Limb Name="gBusinessScrubSnoutLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_SNOUT" Offset="0xAB2C" />
<Limb Name="object_dnt_Standardlimb_00ABBC" Type="Standard" EnumName="OBJECT_DNT_LIMB_16" Offset="0xABBC" /> <Limb Name="gBusinessScrubRightLeafLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_LEAF" Offset="0xAB38" />
<Limb Name="object_dnt_Standardlimb_00ABC8" Type="Standard" EnumName="OBJECT_DNT_LIMB_17" Offset="0xABC8" /> <Limb Name="gBusinessScrubRightMustacheLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_MUSTACHE" Offset="0xAB44" />
<Limb Name="object_dnt_Standardlimb_00ABD4" Type="Standard" EnumName="OBJECT_DNT_LIMB_18" Offset="0xABD4" /> <Limb Name="gBusinessScrubRightUpperArmLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_UPPER_ARM" Offset="0xAB50" />
<Limb Name="object_dnt_Standardlimb_00ABE0" Type="Standard" EnumName="OBJECT_DNT_LIMB_19" Offset="0xABE0" /> <Limb Name="gBusinessScrubRightForearmLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_FOREARM" Offset="0xAB5C" />
<Limb Name="object_dnt_Standardlimb_00ABEC" Type="Standard" EnumName="OBJECT_DNT_LIMB_1A" Offset="0xABEC" /> <Limb Name="gBusinessScrubRightHandHatLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_HAND_HAT" Offset="0xAB68" />
<Limb Name="object_dnt_Standardlimb_00ABF8" Type="Standard" EnumName="OBJECT_DNT_LIMB_1B" Offset="0xABF8" /> <Limb Name="gBusinessScrubRightHandBagLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_HAND_BAG" Offset="0xAB74" />
<Skeleton Name="object_dnt_Skel_00AC70" Type="Flex" LimbType="Standard" LimbNone="OBJECT_DNT_LIMB_NONE" LimbMax="OBJECT_DNT_LIMB_MAX" EnumName="ObjectDntLimb" Offset="0xAC70" /> <Limb Name="gBusinessScrubRightHandLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_RIGHT_HAND" Offset="0xAB80" />
<Animation Name="object_dnt_Anim_00B0B4" Offset="0xB0B4" /> <!-- Original name is "dnt_walk" --> <Limb Name="gBusinessScrubLeftUpperArmLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_UPPER_ARM" Offset="0xAB8C" />
<Texture Name="object_dnt_Tex_00B0D0" OutName="tex_00B0D0" Format="rgba16" Width="16" Height="16" Offset="0xB0D0" /> <Limb Name="gBusinessScrubLeftForearmLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_FOREARM" Offset="0xAB98" />
<Limb Name="gBusinessScrubLeftHandLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_HAND" Offset="0xABA4" />
<Limb Name="gBusinessScrubLeftHandBagLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_HAND_BAG" Offset="0xABB0" />
<Limb Name="gBusinessScrubLeftLeafLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_LEAF" Offset="0xABBC" />
<Limb Name="gBusinessScrubScalpLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_SCALP" Offset="0xABC8" />
<Limb Name="gBusinessScrubHairLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_HAIR" Offset="0xABD4" />
<Limb Name="gBusinessScrubHatLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_HAT" Offset="0xABE0" />
<Limb Name="gBusinessScrubEyesLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_EYES" Offset="0xABEC" />
<Limb Name="gBusinessScrubLeftArmBagLimb" Type="Standard" EnumName="BUSINESS_SCRUB_LIMB_LEFT_ARM_BAG" Offset="0xABF8" />
<Skeleton Name="gBusinessScrubSkel" Type="Flex" LimbType="Standard" LimbNone="BUSINESS_SCRUB_LIMB_NONE" LimbMax="BUSINESS_SCRUB_LIMB_MAX" EnumName="BusinessScrubLimb" Offset="0xAC70" />
<Animation Name="gBusinessScrubWalkAnim" Offset="0xB0B4" /> <!-- Original name is "dnt_walk" -->
<!-- An exact copy of gBusinessScrubEyeTex -->
<Texture Name="gBusinessScrubEye2Tex" OutName="business_scrub_eye_2" Format="rgba16" Width="16" Height="16" Offset="0xB0D0" />
</File> </File>
</Root> </Root>

View File

@ -499,9 +499,9 @@ void TitleCard_InitBossName(GameState* gameState, TitleCardContext* titleCtx, Te
s32 Actor_SetPlayerImpact(PlayState* play, PlayerImpactType type, s32 timer, f32 dist, Vec3f* pos); s32 Actor_SetPlayerImpact(PlayState* play, PlayerImpactType type, s32 timer, f32 dist, Vec3f* pos);
f32 Actor_GetPlayerImpact(PlayState* play, f32 range, Vec3f* pos, PlayerImpactType* type); f32 Actor_GetPlayerImpact(PlayState* play, f32 range, Vec3f* pos, PlayerImpactType* type);
void* func_800B6584(PlayState* play, s16 id, void* arg2, size_t size); void* Actor_AddSharedMemoryEntry(PlayState* play, s16 id, void* ptr, size_t size);
void* func_800B6608(PlayState* play, s16 id); void* Actor_FreeSharedMemoryEntry(PlayState* play, s16 id);
void* func_800B6680(PlayState* play, s16 id); void* Actor_FindSharedMemoryEntry(PlayState* play, s16 id);
void Actor_Kill(Actor* actor); void Actor_Kill(Actor* actor);
void Actor_SetWorldToHome(Actor* actor); void Actor_SetWorldToHome(Actor* actor);
void Actor_SetFocus(Actor* actor, f32 height); void Actor_SetFocus(Actor* actor, f32 height);

View File

@ -348,11 +348,11 @@ typedef struct PlayerImpact {
/* 0x08 */ Vec3f pos; /* 0x08 */ Vec3f pos;
} PlayerImpact; // size = 0x14 } PlayerImpact; // size = 0x14
typedef struct ActorContext_unk_20C { typedef struct ActorSharedMemoryEntry {
/* 0x0 */ s16 id; /* 0x0 */ s16 id;
/* 0x2 */ s8 isDynamicallyInitialised; /* 0x2 */ s8 isDynamicallyInitialised;
/* 0x4 */ void* ptr; /* 0x4 */ void* ptr;
} ActorContext_unk_20C; // size = 0x8 } ActorSharedMemoryEntry; // size = 0x8
typedef struct ActorContextSceneFlags { typedef struct ActorContextSceneFlags {
/* 0x00 */ u32 switches[4]; // First 0x40 are permanent, second 0x40 are temporary /* 0x00 */ u32 switches[4]; // First 0x40 are permanent, second 0x40 are temporary
@ -412,7 +412,7 @@ typedef struct ActorContext {
/* 0x1E4 */ TitleCardContext titleCtxt; /* 0x1E4 */ TitleCardContext titleCtxt;
/* 0x1F4 */ PlayerImpact playerImpact; /* 0x1F4 */ PlayerImpact playerImpact;
/* 0x208 */ UNK_TYPE1 unk_208[0x4]; /* 0x208 */ UNK_TYPE1 unk_208[0x4];
/* 0x20C */ ActorContext_unk_20C unk_20C[8]; /* 0x20C */ ActorSharedMemoryEntry actorSharedMemory[8];
/* 0x24C */ UNK_TYPE1 unk_24C[0x4]; /* 0x24C */ UNK_TYPE1 unk_24C[0x4];
/* 0x250 */ void* absoluteSpace; // Space used to allocate actor overlays of alloc type ALLOCTYPE_ABSOLUTE /* 0x250 */ void* absoluteSpace; // Space used to allocate actor overlays of alloc type ALLOCTYPE_ABSOLUTE
/* 0x254 */ struct EnTorch2* elegyShells[5]; // PLAYER_FORM_MAX /* 0x254 */ struct EnTorch2* elegyShells[5]; // PLAYER_FORM_MAX

View File

@ -674,10 +674,10 @@ typedef enum {
#define WEEKEVENTREG_14_02 PACK_WEEKEVENTREG_FLAG(14, 0x02) #define WEEKEVENTREG_14_02 PACK_WEEKEVENTREG_FLAG(14, 0x02)
#define WEEKEVENTREG_14_04 PACK_WEEKEVENTREG_FLAG(14, 0x04) #define WEEKEVENTREG_14_04 PACK_WEEKEVENTREG_FLAG(14, 0x04)
#define WEEKEVENTREG_DRANK_CHATEAU_ROMANI PACK_WEEKEVENTREG_FLAG(14, 0x08) #define WEEKEVENTREG_DRANK_CHATEAU_ROMANI PACK_WEEKEVENTREG_FLAG(14, 0x08)
#define WEEKEVENTREG_14_10 PACK_WEEKEVENTREG_FLAG(14, 0x10) #define WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_1 PACK_WEEKEVENTREG_FLAG(14, 0x10)
#define WEEKEVENTREG_14_20 PACK_WEEKEVENTREG_FLAG(14, 0x20) #define WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_2 PACK_WEEKEVENTREG_FLAG(14, 0x20)
#define WEEKEVENTREG_14_40 PACK_WEEKEVENTREG_FLAG(14, 0x40) #define WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_3 PACK_WEEKEVENTREG_FLAG(14, 0x40)
#define WEEKEVENTREG_14_80 PACK_WEEKEVENTREG_FLAG(14, 0x80) #define WEEKEVENTREG_RECEIVED_DEKU_PLAYGROUND_HEART_PIECE PACK_WEEKEVENTREG_FLAG(14, 0x80)
#define WEEKEVENTREG_15_01 PACK_WEEKEVENTREG_FLAG(15, 0x01) #define WEEKEVENTREG_15_01 PACK_WEEKEVENTREG_FLAG(15, 0x01)
#define WEEKEVENTREG_15_02 PACK_WEEKEVENTREG_FLAG(15, 0x02) #define WEEKEVENTREG_15_02 PACK_WEEKEVENTREG_FLAG(15, 0x02)
#define WEEKEVENTREG_15_04 PACK_WEEKEVENTREG_FLAG(15, 0x04) #define WEEKEVENTREG_15_04 PACK_WEEKEVENTREG_FLAG(15, 0x04)

View File

@ -956,33 +956,37 @@ f32 Actor_GetPlayerImpact(PlayState* play, f32 range, Vec3f* pos, PlayerImpactTy
} }
/** /**
* Initializes an element of the `play->actorCtx.unk_20C` array to the `arg2` pointer, or allocates one using the * Initializes an element of the `play->actorCtx.actorSharedMemory` array to the `ptr` pointer, or allocates one using
* `size` argument in case `arg2` is NULL. This element is associated to an `id` * the `size` argument in case `ptr` is NULL. This element is associated to an `id`.
* *
* In success returns the allocated pointer if `arg2` was NULL or the `arg2` pointer otherwise * This allows allows different actors the ability to access the varible, and thus communicate with each other by
* In failure (There's no space left in `play->actorCtx.unk_20C` or an allocation error happened) returns NULL * reading/setting the value.
*
* In success: returns the allocated pointer if `ptr` was NULL or the `ptr` pointer otherwise.
* In failure (There's no space left in `play->actorCtx.actorSharedMemory` or an allocation error happened): returns
* NULL.
* *
* Note there are no duplicated id checks. * Note there are no duplicated id checks.
* *
* Used only by EnLiftNuts. * Used only by EnLiftNuts.
*/ */
void* func_800B6584(PlayState* play, s16 id, void* arg2, size_t size) { void* Actor_AddSharedMemoryEntry(PlayState* play, s16 id, void* ptr, size_t size) {
ActorContext_unk_20C* entry = play->actorCtx.unk_20C; ActorSharedMemoryEntry* entry = play->actorCtx.actorSharedMemory;
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(play->actorCtx.unk_20C); i++) { for (i = 0; i < ARRAY_COUNT(play->actorCtx.actorSharedMemory); i++) {
if (entry->id == 0) { if (entry->id == 0) {
if (arg2 == NULL) { if (ptr == NULL) {
arg2 = ZeldaArena_Malloc(size); ptr = ZeldaArena_Malloc(size);
if (arg2 == NULL) { if (ptr == NULL) {
return NULL; return NULL;
} }
entry->isDynamicallyInitialised = true; entry->isDynamicallyInitialised = true;
} }
entry->id = id; entry->id = id;
entry->ptr = arg2; entry->ptr = ptr;
return arg2; return ptr;
} }
entry++; entry++;
@ -992,18 +996,18 @@ void* func_800B6584(PlayState* play, s16 id, void* arg2, size_t size) {
} }
/** /**
* Frees the first element of `play->actorCtx.unk_20C` with id `id`. * Frees the first element of `play->actorCtx.actorSharedMemory` with id `id`.
* *
* If success, the free'd pointer is returned. * If success, the free'd pointer is returned.
* If failure, NULL is returned. * If failure, NULL is returned.
* *
* Used only by EnLiftNuts. * Used only by EnLiftNuts.
*/ */
void* func_800B6608(PlayState* play, s16 id) { void* Actor_FreeSharedMemoryEntry(PlayState* play, s16 id) {
ActorContext_unk_20C* entry = play->actorCtx.unk_20C; ActorSharedMemoryEntry* entry = play->actorCtx.actorSharedMemory;
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(play->actorCtx.unk_20C); i++) { for (i = 0; i < ARRAY_COUNT(play->actorCtx.actorSharedMemory); i++) {
if (id == entry->id) { if (id == entry->id) {
entry->id = 0; entry->id = 0;
if (entry->isDynamicallyInitialised) { if (entry->isDynamicallyInitialised) {
@ -1020,16 +1024,16 @@ void* func_800B6608(PlayState* play, s16 id) {
} }
/** /**
* Retrieves the first pointer stored with the id `id`. * Retrieves the first pointer stored with the id `id` from `play->actorCtx.actorSharedMemory`.
* If there's no pointer stored with that id, NULL is returned. * If there's no pointer stored with that id, NULL is returned.
* *
* Used only by EnGamelupy. * Used only by EnGamelupy.
*/ */
void* func_800B6680(PlayState* play, s16 id) { void* Actor_FindSharedMemoryEntry(PlayState* play, s16 id) {
ActorContext_unk_20C* entry = play->actorCtx.unk_20C; ActorSharedMemoryEntry* entry = play->actorCtx.actorSharedMemory;
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(play->actorCtx.unk_20C); i++) { for (i = 0; i < ARRAY_COUNT(play->actorCtx.actorSharedMemory); i++) {
if (id == entry->id) { if (id == entry->id) {
return entry->ptr; return entry->ptr;
} }

View File

@ -88,7 +88,7 @@ u16 sPersistentCycleWeekEventRegs[ARRAY_COUNT(gSaveContext.save.saveInfo.weekEve
/* 11 */ 0, /* 11 */ 0,
/* 12 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_12_10), /* 12 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_12_10),
/* 13 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_OCEANSIDE_WALLET_UPGRADE), /* 13 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_OCEANSIDE_WALLET_UPGRADE),
/* 14 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_14_80), /* 14 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_DEKU_PLAYGROUND_HEART_PIECE),
/* 15 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_15_20), /* 15 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_15_20),
/* 16 */ 0, /* 16 */ 0,
/* 17 */ 0, /* 17 */ 0,

View File

@ -63,29 +63,29 @@ static ColliderCylinderInitType1 sCylinderInit = {
}; };
static AnimationInfoS sAnimationInfo[] = { static AnimationInfoS sAnimationInfo[] = {
{ &object_dnt_Anim_005488, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubStandingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00B0B4, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_004AA0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubRiseUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004E38, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_005CA8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubExcitedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0038CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedEndAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004700, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003438, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001E2C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedShakeHeadAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_000994, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedPoundAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_002268, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002F08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubThinkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00577C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, { &gBusinessScrubBobAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 8, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 8, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 4, -1, ANIMMODE_ONCE, -4 }, { &gBusinessScrubBurrowAnim, 1.0f, 4, -1, ANIMMODE_ONCE, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002670, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
}; };
static u16 D_80BF048C[] = { static u16 D_80BF048C[] = {
@ -1598,7 +1598,7 @@ void EnAkindonuts_Init(Actor* thisx, PlayState* play) {
EnAkindonuts* this = THIS; EnAkindonuts* this = THIS;
Actor_ProcessInitChain(&this->actor, sInitChain); Actor_ProcessInitChain(&this->actor, sInitChain);
SkelAnime_InitFlex(play, &this->skelAnime, &object_dnt_Skel_00AC70, &object_dnt_Anim_005488, this->jointTable, SkelAnime_InitFlex(play, &this->skelAnime, &gBusinessScrubSkel, &gBusinessScrubStandingAnim, this->jointTable,
this->morphTable, 28); this->morphTable, 28);
Collider_InitCylinder(play, &this->collider); Collider_InitCylinder(play, &this->collider);
Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit);
@ -1679,9 +1679,9 @@ s32 EnAkindonuts_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, V
if (limbIndex == 26) { if (limbIndex == 26) {
if ((this->unk_338 == 6) || (this->unk_338 == 5) || (this->unk_338 == 7)) { if ((this->unk_338 == 6) || (this->unk_338 == 5) || (this->unk_338 == 7)) {
*dList = object_dnt_DL_001350; *dList = gBusinessScrubEyesWideDL;
} else { } else {
*dList = object_dnt_DL_008290; *dList = gBusinessScrubEyesDL;
} }
} }
return false; return false;

View File

@ -16,12 +16,12 @@ void EnGamelupy_Destroy(Actor* thisx, PlayState* play);
void EnGamelupy_Update(Actor* thisx, PlayState* play); void EnGamelupy_Update(Actor* thisx, PlayState* play);
void EnGamelupy_Draw(Actor* thisx, PlayState* play); void EnGamelupy_Draw(Actor* thisx, PlayState* play);
void func_80AF6958(EnGamelupy* this, PlayState* play); void EnGamelupy_FindSharedMemory(EnGamelupy* this, PlayState* play);
void func_80AF69A8(EnGamelupy* this, PlayState* play); void EnGamelupy_Idle(EnGamelupy* this, PlayState* play);
void func_80AF6A78(EnGamelupy* this, PlayState* play); void EnGamelupy_Collected(EnGamelupy* this, PlayState* play);
void func_80AF6944(EnGamelupy* this); void EnGamelupy_SetupFindSharedMemory(EnGamelupy* this);
void func_80AF6994(EnGamelupy* this); void EnGamelupy_SetupIdle(EnGamelupy* this);
void func_80AF6A38(EnGamelupy* this); void EnGamelupy_SetupCollected(EnGamelupy* this);
ActorInit En_Gamelupy_InitVars = { ActorInit En_Gamelupy_InitVars = {
ACTOR_EN_GAMELUPY, ACTOR_EN_GAMELUPY,
@ -74,15 +74,15 @@ void EnGamelupy_Init(Actor* thisx, PlayState* play) {
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
this->actor.gravity = -0.5f; this->actor.gravity = -0.5f;
this->actor.shape.rot.y = Rand_Next(); this->actor.shape.rot.y = Rand_Next();
this->unk_19C = 0; this->collectedTimer = 0;
this->unk_19E = 0; this->sparklesAngle = 0;
this->unk_1A0 = 0x7D0; this->sparklesAngleStep = 0x7D0;
if (this->actor.params == 1) { if (EN_GAMELUPY_GET_TYPE(&this->actor) == ENGAMELUPY_TYPE_BLUE) {
this->rupeeIndex = 1; this->type = ENGAMELUPY_TYPE_BLUE;
} else { } else {
this->rupeeIndex = 0; this->type = ENGAMELUPY_TYPE_GREEN;
} }
func_80AF6944(this); EnGamelupy_SetupFindSharedMemory(this);
} }
void EnGamelupy_Destroy(Actor* thisx, PlayState* play) { void EnGamelupy_Destroy(Actor* thisx, PlayState* play) {
@ -91,77 +91,77 @@ void EnGamelupy_Destroy(Actor* thisx, PlayState* play) {
Collider_DestroyCylinder(play, &this->collider); Collider_DestroyCylinder(play, &this->collider);
} }
void func_80AF6854(EnGamelupy* this, PlayState* play) { void EnGamelupy_SpawnSparkles(EnGamelupy* this, PlayState* play) {
Vec3f sp4C; Vec3f pos;
Vec3f sp40; Vec3f accel;
Vec3f sp30; Vec3f velocity;
sp4C = this->actor.world.pos; pos = this->actor.world.pos;
sp30.x = Math_SinS(this->unk_19E) * 3.0f; velocity.x = Math_SinS(this->sparklesAngle) * 3.0f;
sp30.y = 5.5f; velocity.y = 5.5f;
sp30.z = Math_CosS(this->unk_19E) * 3.0f; velocity.z = Math_CosS(this->sparklesAngle) * 3.0f;
sp40.x = -0.05f * sp30.x; accel.x = -0.05f * velocity.x;
sp40.y = -0.4f; accel.y = -0.4f;
sp40.z = -0.05f * sp30.z; accel.z = -0.05f * velocity.z;
EffectSsKirakira_SpawnDispersed(play, &sp4C, &sp30, &sp40, &sPrimColor, &sEnvColor, 3000, 40); EffectSsKirakira_SpawnDispersed(play, &pos, &velocity, &accel, &sPrimColor, &sEnvColor, 3000, 40);
this->unk_19E += this->unk_1A0; this->sparklesAngle += this->sparklesAngleStep;
} }
void func_80AF6944(EnGamelupy* this) { void EnGamelupy_SetupFindSharedMemory(EnGamelupy* this) {
this->actionFunc = func_80AF6958; this->actionFunc = EnGamelupy_FindSharedMemory;
} }
void func_80AF6958(EnGamelupy* this, PlayState* play) { void EnGamelupy_FindSharedMemory(EnGamelupy* this, PlayState* play) {
s16* unk_198 = func_800B6680(play, ACTOR_EN_GAMELUPY); s16* minigameScore = Actor_FindSharedMemoryEntry(play, ACTOR_EN_GAMELUPY);
if (unk_198 != NULL) { if (minigameScore != NULL) {
this->unk_198 = unk_198; this->minigameScore = minigameScore;
func_80AF6994(this); EnGamelupy_SetupIdle(this);
} }
} }
void func_80AF6994(EnGamelupy* this) { void EnGamelupy_SetupIdle(EnGamelupy* this) {
this->actionFunc = func_80AF69A8; this->actionFunc = EnGamelupy_Idle;
} }
void func_80AF69A8(EnGamelupy* this, PlayState* play) { void EnGamelupy_Idle(EnGamelupy* this, PlayState* play) {
if (this->collider.base.ocFlags1 & OC1_HIT) { if (this->collider.base.ocFlags1 & OC1_HIT) {
*this->unk_198 += 50; *this->minigameScore += ENGAMELUPY_POINTS;
if (this->rupeeIndex == 1) { if (this->type == ENGAMELUPY_TYPE_BLUE) {
Rupees_ChangeBy(5); Rupees_ChangeBy(5);
} else { } else {
Rupees_ChangeBy(1); Rupees_ChangeBy(1);
} }
func_80AF6A38(this); EnGamelupy_SetupCollected(this);
} }
this->actor.shape.rot.y += 0x1F4; this->actor.shape.rot.y += 0x1F4;
} }
void func_80AF6A38(EnGamelupy* this) { void EnGamelupy_SetupCollected(EnGamelupy* this) {
this->unk_19C = 0; this->collectedTimer = 0;
this->actor.gravity = 0.0f; this->actor.gravity = 0.0f;
Actor_PlaySfx(&this->actor, NA_SE_SY_GET_RUPY); Actor_PlaySfx(&this->actor, NA_SE_SY_GET_RUPY);
this->actionFunc = func_80AF6A78; this->actionFunc = EnGamelupy_Collected;
} }
void func_80AF6A78(EnGamelupy* this, PlayState* play) { void EnGamelupy_Collected(EnGamelupy* this, PlayState* play) {
f32 scale; f32 scale;
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
if (this->unk_19C > 30) { if (this->collectedTimer > 30) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} else { } else {
this->unk_19C++; this->collectedTimer++;
this->actor.world.pos = player->actor.world.pos; this->actor.world.pos = player->actor.world.pos;
this->actor.world.pos.y += 40.0f; this->actor.world.pos.y += 40.0f;
scale = (30.0f - this->unk_19C) * 0.001f; scale = (30.0f - this->collectedTimer) * 0.001f;
Actor_SetScale(&this->actor, scale); Actor_SetScale(&this->actor, scale);
func_80AF6854(this, play); EnGamelupy_SpawnSparkles(this, play);
} }
this->actor.shape.rot.y += 0x3E8; this->actor.shape.rot.y += 0x3E8;
} }
void func_80AF6B40(EnGamelupy* this, PlayState* play) { void EnGamelupy_UpdateCollision(EnGamelupy* this, PlayState* play) {
Collider_UpdateCylinder(&this->actor, &this->collider); Collider_UpdateCylinder(&this->actor, &this->collider);
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
} }
@ -172,7 +172,7 @@ void EnGamelupy_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play); this->actionFunc(this, play);
Actor_MoveWithGravity(&this->actor); Actor_MoveWithGravity(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 32.0f, 30.0f, 0.0f, UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_8); Actor_UpdateBgCheckInfo(play, &this->actor, 32.0f, 30.0f, 0.0f, UPDBGCHECKINFO_FLAG_4 | UPDBGCHECKINFO_FLAG_8);
func_80AF6B40(this, play); EnGamelupy_UpdateCollision(this, play);
} }
void EnGamelupy_Draw(Actor* thisx, PlayState* play) { void EnGamelupy_Draw(Actor* thisx, PlayState* play) {
@ -184,7 +184,7 @@ void EnGamelupy_Draw(Actor* thisx, PlayState* play) {
Gfx_SetupDL25_Opa(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx);
func_800B8050(&this->actor, play, 0); func_800B8050(&this->actor, play, 0);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sRupeeTextures[this->rupeeIndex])); gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sRupeeTextures[this->type]));
gSPDisplayList(POLY_OPA_DISP++, gRupeeDL); gSPDisplayList(POLY_OPA_DISP++, gRupeeDL);
CLOSE_DISPS(play->state.gfxCtx); CLOSE_DISPS(play->state.gfxCtx);

View File

@ -5,17 +5,27 @@
struct EnGamelupy; struct EnGamelupy;
#define ENGAMELUPY_POINTS 50
typedef void (*EnGamelupyActionFunc)(struct EnGamelupy*, PlayState*); typedef void (*EnGamelupyActionFunc)(struct EnGamelupy*, PlayState*);
#define EN_GAMELUPY_GET_TYPE(thisx) ((thisx)->params)
typedef enum {
/* 0 */ ENGAMELUPY_TYPE_GREEN,
/* 1 */ ENGAMELUPY_TYPE_BLUE,
/* 2 */ ENGAMELUPY_TYPE_MAX
} EnGamelupyType;
typedef struct EnGamelupy { typedef struct EnGamelupy {
/* 0x000 */ Actor actor; /* 0x000 */ Actor actor;
/* 0x144 */ ColliderCylinder collider; /* 0x144 */ ColliderCylinder collider;
/* 0x190 */ EnGamelupyActionFunc actionFunc; /* 0x190 */ EnGamelupyActionFunc actionFunc;
/* 0x194 */ s32 rupeeIndex; /* 0x194 */ s32 type;
/* 0x198 */ s16* unk_198; /* 0x198 */ s16* minigameScore; // Pointer to shared memory location with actor EnLiftNuts
/* 0x19C */ s16 unk_19C; /* 0x19C */ s16 collectedTimer;
/* 0x19E */ s16 unk_19E; /* 0x19E */ s16 sparklesAngle;
/* 0x1A0 */ s16 unk_1A0; /* 0x1A0 */ s16 sparklesAngleStep;
} EnGamelupy; // size = 0x1A4 } EnGamelupy; // size = 0x1A4
#endif // Z_EN_GAMELUPY_H #endif // Z_EN_GAMELUPY_H

File diff suppressed because it is too large Load Diff

View File

@ -8,25 +8,25 @@ struct EnLiftNuts;
typedef void (*EnLiftNutsActionFunc)(struct EnLiftNuts*, PlayState*); typedef void (*EnLiftNutsActionFunc)(struct EnLiftNuts*, PlayState*);
#define ENLIFTNUTS_GET_FF00(thisx) (((thisx)->params & 0xFF00) >> 8) #define ENLIFTNUTS_GET_PATH_INDEX(thisx) (((thisx)->params & 0xFF00) >> 8)
typedef struct EnLiftNuts { typedef struct EnLiftNuts {
/* 0x000 */ Actor actor; /* 0x000 */ Actor actor;
/* 0x144 */ ColliderCylinder collider; /* 0x144 */ ColliderCylinder collider;
/* 0x190 */ SkelAnime skelAnime; /* 0x190 */ SkelAnime skelAnime;
/* 0x1D4 */ EnLiftNutsActionFunc actionFunc; /* 0x1D4 */ EnLiftNutsActionFunc actionFunc;
/* 0x1D8 */ Vec3f vec_1D8; /* 0x1D8 */ Vec3f waypointPos;
/* 0x1E4 */ s32 unk_1E4; /* 0x1E4 */ s32 eyeTexIndex;
/* 0x1E8 */ s32 unk_1E8; /* 0x1E8 */ s32 unk1E8; // Set but never used
/* 0x1EC */ s16* ptr_1EC; /* 0x1EC */ s16* minigameScore; // Pointer to shared memory location with actor EnGamelupy
/* 0x1F0 */ Vec3s jointTable[OBJECT_DNT_LIMB_MAX]; /* 0x1F0 */ Vec3s jointTable[BUSINESS_SCRUB_LIMB_MAX];
/* 0x298 */ Vec3s morphTable[OBJECT_DNT_LIMB_MAX]; /* 0x298 */ Vec3s morphTable[BUSINESS_SCRUB_LIMB_MAX];
/* 0x340 */ UNK_TYPE1 unk_340[0xC]; /* 0x340 */ UNK_TYPE1 unk_340[0xC];
/* 0x34C */ s16 textId; /* 0x34C */ s16 textId;
/* 0x34E */ s16 unk_34E; /* 0x34E */ s16 autotalk;
/* 0x350 */ UNK_TYPE1 unk_350[0x4]; /* 0x350 */ UNK_TYPE1 unk_350[0x4];
/* 0x354 */ s16 unk_354; /* 0x354 */ s16 timer; // Frame counter used for various different things
/* 0x356 */ s16 unk_356; /* 0x356 */ s16 isFirstTimeHiding;
} EnLiftNuts; // size = 0x358 } EnLiftNuts; // size = 0x358
#endif // Z_EN_LIFT_NUTS_H #endif // Z_EN_LIFT_NUTS_H

View File

@ -65,29 +65,29 @@ static ColliderCylinderInitType1 sCylinderInit = {
}; };
static AnimationInfoS sAnimationInfo[] = { static AnimationInfoS sAnimationInfo[] = {
{ &object_dnt_Anim_005488, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubStandingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00B0B4, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_004AA0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubRiseUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004E38, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_005CA8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubExcitedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0038CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedEndAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004700, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003438, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001E2C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedShakeHeadAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_000994, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedPoundAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_002268, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002F08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubThinkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00577C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, { &gBusinessScrubBobAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 8, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 8, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 4, -1, ANIMMODE_ONCE, -4 }, { &gBusinessScrubBurrowAnim, 1.0f, 4, -1, ANIMMODE_ONCE, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002670, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
}; };
Gfx* D_80BCCCDC[] = { gKakeraLeafMiddle, gKakeraLeafTip }; Gfx* D_80BCCCDC[] = { gKakeraLeafMiddle, gKakeraLeafTip };
@ -691,7 +691,7 @@ void EnScopenuts_Init(Actor* thisx, PlayState* play) {
} }
Actor_ProcessInitChain(&this->actor, sInitChain); Actor_ProcessInitChain(&this->actor, sInitChain);
SkelAnime_InitFlex(play, &this->skelAnime, &object_dnt_Skel_00AC70, &object_dnt_Anim_005488, this->jointTable, SkelAnime_InitFlex(play, &this->skelAnime, &gBusinessScrubSkel, &gBusinessScrubStandingAnim, this->jointTable,
this->morphTable, 28); this->morphTable, 28);
Collider_InitCylinder(play, &this->collider); Collider_InitCylinder(play, &this->collider);
Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit);
@ -794,9 +794,9 @@ s32 EnScopenuts_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Ve
if (limbIndex == 26) { if (limbIndex == 26) {
if ((this->unk_33C == 0x162F) || (this->unk_33C == 0x1630)) { if ((this->unk_33C == 0x162F) || (this->unk_33C == 0x1630)) {
*dList = object_dnt_DL_001420; *dList = gBusinessScrubEyesSquintDL;
} else { } else {
*dList = object_dnt_DL_008290; *dList = gBusinessScrubEyesDL;
} }
} }

View File

@ -81,29 +81,29 @@ static ColliderCylinderInitType1 sCylinderInit = {
}; };
static AnimationInfoS sAnimationInfo[] = { static AnimationInfoS sAnimationInfo[] = {
{ &object_dnt_Anim_005488, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubStandingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00B0B4, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_004AA0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubRiseUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004E38, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_005CA8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubExcitedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0038CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubExcitedEndAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_004700, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_003438, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedStartAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001E2C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedShakeHeadAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_000994, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubShockedPoundAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_002268, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubShockedEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002F08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubThinkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_00577C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, { &gBusinessScrubBobAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 8, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 8, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_0029E8, 1.0f, 4, -1, ANIMMODE_ONCE, -4 }, { &gBusinessScrubBurrowAnim, 1.0f, 4, -1, ANIMMODE_ONCE, -4 },
{ &object_dnt_Anim_0029E8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_001BC8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gBusinessScrubFlyLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
{ &object_dnt_Anim_0012F4, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubTakeOffHatAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 },
{ &object_dnt_Anim_002670, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gBusinessScrubFlyEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
@ -953,7 +953,7 @@ void EnSellnuts_Init(Actor* thisx, PlayState* play) {
} }
Actor_ProcessInitChain(&this->actor, sInitChain); Actor_ProcessInitChain(&this->actor, sInitChain);
SkelAnime_InitFlex(play, &this->skelAnime, &object_dnt_Skel_00AC70, &object_dnt_Anim_005488, this->jointTable, SkelAnime_InitFlex(play, &this->skelAnime, &gBusinessScrubSkel, &gBusinessScrubStandingAnim, this->jointTable,
this->morphTable, 28); this->morphTable, 28);
Collider_InitCylinder(play, &this->collider); Collider_InitCylinder(play, &this->collider);
Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit); Collider_SetCylinderType1(play, &this->collider, &this->actor, &sCylinderInit);
@ -1106,9 +1106,9 @@ s32 EnSellnuts_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
if (limbIndex == 26) { if (limbIndex == 26) {
if ((this->unk_34C == 6) || (this->unk_34C == 5) || (this->unk_34C == 7)) { if ((this->unk_34C == 6) || (this->unk_34C == 5) || (this->unk_34C == 7)) {
*dList = object_dnt_DL_001350; *dList = gBusinessScrubEyesWideDL;
} else { } else {
*dList = object_dnt_DL_008290; *dList = gBusinessScrubEyesDL;
} }
} }

View File

@ -700,9 +700,9 @@
0x800B6474:("Actor_UpdatePlayerImpact",), 0x800B6474:("Actor_UpdatePlayerImpact",),
0x800B648C:("Actor_SetPlayerImpact",), 0x800B648C:("Actor_SetPlayerImpact",),
0x800B64FC:("Actor_GetPlayerImpact",), 0x800B64FC:("Actor_GetPlayerImpact",),
0x800B6584:("func_800B6584",), 0x800B6584:("Actor_AddSharedMemoryEntry",),
0x800B6608:("func_800B6608",), 0x800B6608:("Actor_FreeSharedMemoryEntry",),
0x800B6680:("func_800B6680",), 0x800B6680:("Actor_FindSharedMemoryEntry",),
0x800B670C:("Actor_Kill",), 0x800B670C:("Actor_Kill",),
0x800B672C:("Actor_SetWorldToHome",), 0x800B672C:("Actor_SetWorldToHome",),
0x800B675C:("Actor_SetFocus",), 0x800B675C:("Actor_SetFocus",),
@ -12504,48 +12504,48 @@
0x80AE939C:("func_80AE939C",), 0x80AE939C:("func_80AE939C",),
0x80AE9574:("ObjBigicicle_Update",), 0x80AE9574:("ObjBigicicle_Update",),
0x80AE9780:("ObjBigicicle_Draw",), 0x80AE9780:("ObjBigicicle_Draw",),
0x80AE9A20:("func_80AE9A20",), 0x80AE9A20:("EnLiftNuts_AddSharedMemoryEntry",),
0x80AE9A80:("func_80AE9A80",), 0x80AE9A80:("EnLiftNuts_FreeSharedMemoryEntry",),
0x80AE9AC4:("func_80AE9AC4",), 0x80AE9AC4:("EnLiftNuts_Autotalk",),
0x80AE9B4C:("func_80AE9B4C",), 0x80AE9B4C:("EnLiftNuts_GameState",),
0x80AE9B8C:("func_80AE9B8C",), 0x80AE9B8C:("EnLiftNuts_GetNumDaysWon",),
0x80AE9BCC:("func_80AE9BCC",), 0x80AE9BCC:("EnLiftNuts_TryHide",),
0x80AE9CA8:("EnLiftNuts_Init",), 0x80AE9CA8:("EnLiftNuts_Init",),
0x80AE9EEC:("EnLiftNuts_Destroy",), 0x80AE9EEC:("EnLiftNuts_Destroy",),
0x80AE9F28:("func_80AE9F28",), 0x80AE9F28:("EnLiftNuts_SetupIdleHidden",),
0x80AE9F70:("func_80AE9F70",), 0x80AE9F70:("EnLiftNuts_IdleHidden",),
0x80AE9FC8:("func_80AE9FC8",), 0x80AE9FC8:("EnLiftNuts_SetupBurrow",),
0x80AEA044:("func_80AEA044",), 0x80AEA044:("EnLiftNuts_Burrow",),
0x80AEA0B4:("func_80AEA0B4",), 0x80AEA0B4:("EnLiftNuts_SetupIdle",),
0x80AEA128:("func_80AEA128",), 0x80AEA128:("EnLiftNuts_RiseUp",),
0x80AEA1A0:("func_80AEA1A0",), 0x80AEA1A0:("EnLiftNuts_Idle",),
0x80AEA7A4:("func_80AEA7A4",), 0x80AEA7A4:("EnLiftNuts_HandleConversationChoice",),
0x80AEA910:("func_80AEA910",), 0x80AEA910:("EnLiftNuts_HandleConversation5",),
0x80AEABF0:("func_80AEABF0",), 0x80AEABF0:("EnLiftNuts_SetupStartConversation",),
0x80AEAC64:("func_80AEAC64",), 0x80AEAC64:("EnLiftNuts_StartConversation",),
0x80AEACF8:("func_80AEACF8",), 0x80AEACF8:("EnLiftNuts_HandleConversation",),
0x80AEAEAC:("func_80AEAEAC",), 0x80AEAEAC:("EnLiftNuts_SetupMove",),
0x80AEAF14:("func_80AEAF14",), 0x80AEAF14:("EnLiftNuts_Move",),
0x80AEAF8C:("func_80AEAF8C",), 0x80AEAF8C:("EnLiftNuts_SetupMovePlayer",),
0x80AEAFA0:("func_80AEAFA0",), 0x80AEAFA0:("EnLiftNuts_MovePlayer",),
0x80AEB114:("func_80AEB114",), 0x80AEB114:("EnLiftNuts_SetupStartGame",),
0x80AEB148:("func_80AEB148",), 0x80AEB148:("EnLiftNuts_StartGame",),
0x80AEB1C8:("func_80AEB1C8",), 0x80AEB1C8:("EnLiftNuts_SetupStartGameImmediately",),
0x80AEB230:("func_80AEB230",), 0x80AEB230:("EnLiftNuts_StartGameImmediately",),
0x80AEB280:("func_80AEB280",), 0x80AEB280:("EnLiftNuts_SetupRunGame",),
0x80AEB294:("func_80AEB294",), 0x80AEB294:("EnLiftNuts_RunGame",),
0x80AEB3E0:("func_80AEB3E0",), 0x80AEB3E0:("EnLiftNuts_SetupEndGame",),
0x80AEB428:("func_80AEB428",), 0x80AEB428:("EnLiftNuts_EndGame",),
0x80AEB584:("func_80AEB584",), 0x80AEB584:("EnLiftNuts_SetupGiveReward",),
0x80AEB598:("func_80AEB598",), 0x80AEB598:("EnLiftNuts_GiveReward",),
0x80AEB684:("func_80AEB684",), 0x80AEB684:("EnLiftNuts_SetupResumeConversation",),
0x80AEB698:("func_80AEB698",), 0x80AEB698:("EnLiftNuts_ResumeConversation",),
0x80AEB828:("func_80AEB828",), 0x80AEB828:("EnLiftNuts_SetupStartHiding",),
0x80AEB8A4:("func_80AEB8A4",), 0x80AEB8A4:("EnLiftNuts_StartHiding",),
0x80AEB934:("func_80AEB934",), 0x80AEB934:("EnLiftNuts_Hide",),
0x80AEB974:("func_80AEB974",), 0x80AEB974:("EnLiftNuts_UpdateEyes",),
0x80AEB9E0:("func_80AEB9E0",), 0x80AEB9E0:("EnLiftNuts_SpawnDust",),
0x80AEBB30:("func_80AEBB30",), 0x80AEBB30:("EnLiftNuts_UpdateCollision",),
0x80AEBB74:("EnLiftNuts_Update",), 0x80AEBB74:("EnLiftNuts_Update",),
0x80AEBC18:("func_80AEBC18",), 0x80AEBC18:("func_80AEBC18",),
0x80AEBC90:("func_80AEBC90",), 0x80AEBC90:("func_80AEBC90",),
@ -12699,14 +12699,14 @@
0x80AF6094:("EnWdhand_Draw",), 0x80AF6094:("EnWdhand_Draw",),
0x80AF6760:("EnGamelupy_Init",), 0x80AF6760:("EnGamelupy_Init",),
0x80AF6828:("EnGamelupy_Destroy",), 0x80AF6828:("EnGamelupy_Destroy",),
0x80AF6854:("func_80AF6854",), 0x80AF6854:("EnGamelupy_SpawnSparkles",),
0x80AF6944:("func_80AF6944",), 0x80AF6944:("EnGamelupy_SetupFindSharedMemory",),
0x80AF6958:("func_80AF6958",), 0x80AF6958:("EnGamelupy_FindSharedMemory",),
0x80AF6994:("func_80AF6994",), 0x80AF6994:("EnGamelupy_SetupIdle",),
0x80AF69A8:("func_80AF69A8",), 0x80AF69A8:("EnGamelupy_Idle",),
0x80AF6A38:("func_80AF6A38",), 0x80AF6A38:("EnGamelupy_SetupCollected",),
0x80AF6A78:("func_80AF6A78",), 0x80AF6A78:("EnGamelupy_Collected",),
0x80AF6B40:("func_80AF6B40",), 0x80AF6B40:("EnGamelupy_UpdateCollision",),
0x80AF6B84:("EnGamelupy_Update",), 0x80AF6B84:("EnGamelupy_Update",),
0x80AF6BF8:("EnGamelupy_Draw",), 0x80AF6BF8:("EnGamelupy_Draw",),
0x80AF6DE0:("func_80AF6DE0",), 0x80AF6DE0:("func_80AF6DE0",),

View File

@ -214,9 +214,9 @@ asm/non_matchings/code/z_actor/Actor_InitPlayerImpact.s,Actor_InitPlayerImpact,0
asm/non_matchings/code/z_actor/Actor_UpdatePlayerImpact.s,Actor_UpdatePlayerImpact,0x800B6474,0x6 asm/non_matchings/code/z_actor/Actor_UpdatePlayerImpact.s,Actor_UpdatePlayerImpact,0x800B6474,0x6
asm/non_matchings/code/z_actor/Actor_SetPlayerImpact.s,Actor_SetPlayerImpact,0x800B648C,0x1C asm/non_matchings/code/z_actor/Actor_SetPlayerImpact.s,Actor_SetPlayerImpact,0x800B648C,0x1C
asm/non_matchings/code/z_actor/Actor_GetPlayerImpact.s,Actor_GetPlayerImpact,0x800B64FC,0x22 asm/non_matchings/code/z_actor/Actor_GetPlayerImpact.s,Actor_GetPlayerImpact,0x800B64FC,0x22
asm/non_matchings/code/z_actor/func_800B6584.s,func_800B6584,0x800B6584,0x21 asm/non_matchings/code/z_actor/Actor_AddSharedMemoryEntry.s,func_800B6584,0x800B6584,0x21
asm/non_matchings/code/z_actor/func_800B6608.s,func_800B6608,0x800B6608,0x1E asm/non_matchings/code/z_actor/Actor_FreeSharedMemoryEntry.s,func_800B6608,0x800B6608,0x1E
asm/non_matchings/code/z_actor/func_800B6680.s,func_800B6680,0x800B6680,0x23 asm/non_matchings/code/z_actor/Actor_FindSharedMemoryEntry.s,func_800B6680,0x800B6680,0x23
asm/non_matchings/code/z_actor/Actor_Kill.s,Actor_Kill,0x800B670C,0x8 asm/non_matchings/code/z_actor/Actor_Kill.s,Actor_Kill,0x800B670C,0x8
asm/non_matchings/code/z_actor/Actor_SetWorldToHome.s,Actor_SetWorldToHome,0x800B672C,0xC asm/non_matchings/code/z_actor/Actor_SetWorldToHome.s,Actor_SetWorldToHome,0x800B672C,0xC
asm/non_matchings/code/z_actor/Actor_SetFocus.s,Actor_SetFocus,0x800B675C,0x11 asm/non_matchings/code/z_actor/Actor_SetFocus.s,Actor_SetFocus,0x800B675C,0x11

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
214 asm/non_matchings/code/z_actor/Actor_UpdatePlayerImpact.s Actor_UpdatePlayerImpact 0x800B6474 0x6
215 asm/non_matchings/code/z_actor/Actor_SetPlayerImpact.s Actor_SetPlayerImpact 0x800B648C 0x1C
216 asm/non_matchings/code/z_actor/Actor_GetPlayerImpact.s Actor_GetPlayerImpact 0x800B64FC 0x22
217 asm/non_matchings/code/z_actor/func_800B6584.s asm/non_matchings/code/z_actor/Actor_AddSharedMemoryEntry.s func_800B6584 0x800B6584 0x21
218 asm/non_matchings/code/z_actor/func_800B6608.s asm/non_matchings/code/z_actor/Actor_FreeSharedMemoryEntry.s func_800B6608 0x800B6608 0x1E
219 asm/non_matchings/code/z_actor/func_800B6680.s asm/non_matchings/code/z_actor/Actor_FindSharedMemoryEntry.s func_800B6680 0x800B6680 0x23
220 asm/non_matchings/code/z_actor/Actor_Kill.s Actor_Kill 0x800B670C 0x8
221 asm/non_matchings/code/z_actor/Actor_SetWorldToHome.s Actor_SetWorldToHome 0x800B672C 0xC
222 asm/non_matchings/code/z_actor/Actor_SetFocus.s Actor_SetFocus 0x800B675C 0x11

View File

@ -120,10 +120,10 @@ weekEventReg = {
(14 << 8) | 0x02: "WEEKEVENTREG_14_02", (14 << 8) | 0x02: "WEEKEVENTREG_14_02",
(14 << 8) | 0x04: "WEEKEVENTREG_14_04", (14 << 8) | 0x04: "WEEKEVENTREG_14_04",
(14 << 8) | 0x08: "WEEKEVENTREG_DRANK_CHATEAU_ROMANI", (14 << 8) | 0x08: "WEEKEVENTREG_DRANK_CHATEAU_ROMANI",
(14 << 8) | 0x10: "WEEKEVENTREG_14_10", (14 << 8) | 0x10: "WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_1",
(14 << 8) | 0x20: "WEEKEVENTREG_14_20", (14 << 8) | 0x20: "WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_2",
(14 << 8) | 0x40: "WEEKEVENTREG_14_40", (14 << 8) | 0x40: "WEEKEVENTREG_WON_DEKU_PLAYGROUND_DAY_3",
(14 << 8) | 0x80: "WEEKEVENTREG_14_80", (14 << 8) | 0x80: "WEEKEVENTREG_RECEIVED_DEKU_PLAYGROUND_HEART_PIECE",
(15 << 8) | 0x01: "WEEKEVENTREG_15_01", (15 << 8) | 0x01: "WEEKEVENTREG_15_01",
(15 << 8) | 0x02: "WEEKEVENTREG_15_02", (15 << 8) | 0x02: "WEEKEVENTREG_15_02",
(15 << 8) | 0x04: "WEEKEVENTREG_15_04", (15 << 8) | 0x04: "WEEKEVENTREG_15_04",