Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
7c2ec83
Added an item location to the randomization
viccie211 Sep 22, 2025
6202e7d
Set correct flag on item location and set it to replace
viccie211 Sep 26, 2025
a1d006d
Added a comment and logging
viccie211 Sep 26, 2025
f439a3a
Tried some digging in item00.c
viccie211 Sep 26, 2025
310821a
Add patches to override item drops
HylianFreddy Sep 27, 2025
e9eb95b
Merge remote-tracking branch 'HylianFreddy/override-item-drops' into …
viccie211 Sep 29, 2025
7498032
Reverted item00.c
viccie211 Sep 29, 2025
752a115
Added setting for Rupeesanity
viccie211 Sep 29, 2025
9958fd6
Added KF Blue Rupees
viccie211 Sep 30, 2025
2bd0f31
Added tracking of respawning collectibles
viccie211 Oct 1, 2025
83c97a5
Implemented Spoiler log check
viccie211 Oct 1, 2025
1d74c5b
Run automatic format script as code does not match clang format rules.
viccie211 Oct 1, 2025
d236bde
Merge branch 'feature/first-rupee' into feature/kf-blue-rupees
viccie211 Oct 1, 2025
d001a43
Merge branch 'feature/kf-blue-rupees' into feature/first-respawning-r…
viccie211 Oct 1, 2025
11dbcd3
Run automatic format script as code does not match clang format rules.
viccie211 Oct 1, 2025
a2932dc
Fixed item_ocerride.c
viccie211 Oct 2, 2025
4d4c15d
Added the other green rupees in KF
viccie211 Oct 2, 2025
d5ee9c6
Added some lost woods rupees
viccie211 Oct 2, 2025
f1f62cd
Added Lake Hylia under water items
viccie211 Oct 3, 2025
4a2d7c2
Run automatic format script as code does not match clang format rules.
viccie211 Oct 4, 2025
c9e3bbd
Added some more rupees
viccie211 Oct 7, 2025
6f9357f
Merge branch 'feature/some-more-rupees' of github.com:viccie211/OoT3D…
viccie211 Oct 7, 2025
4c7dc72
Added LH Lab Dive rupees
viccie211 Oct 8, 2025
99314a5
Changed returntype of SaveFile_GetCollectedRandomizedRespawningCollec…
viccie211 Oct 8, 2025
d5e57f4
Merge branch 'feature/first-respawning-rupee' into feature/some-more-…
viccie211 Oct 8, 2025
58b9707
Trying to log some stuff
viccie211 Nov 2, 2025
6904ccb
Fixed is PlayerIsReadyInWater
viccie211 Nov 2, 2025
0667db1
Merge branch 'main' into feature/some-more-rupees
viccie211 Nov 2, 2025
edc5055
Added ZR Waterfall rupees
viccie211 Nov 2, 2025
5fb9435
Added ZF Underwater green rupees
viccie211 Nov 3, 2025
e5420b0
Run automatic format script as code does not match clang format rules.
viccie211 Nov 4, 2025
7acf5ad
First indication how to identify rupee circle rupees
viccie211 Nov 6, 2025
40df458
Got the first Rupee Circle item working
viccie211 Nov 7, 2025
1f603d0
Added some comments, and proper resetting of extraCollectibleFlag whe…
viccie211 Nov 7, 2025
61829ba
Added the other rupees of the KF Circle
viccie211 Nov 8, 2025
35eee5e
Added *some* implementation for saving the rupee circle rupee pickups
viccie211 Nov 8, 2025
9843a78
Fixed a bug where wonder items got replaced as rupee circle items
viccie211 Nov 8, 2025
d0f4c6f
Changed Save logic
viccie211 Nov 10, 2025
0726940
Fixed some major bugs in the saving and loading of rupee collection s…
viccie211 Nov 11, 2025
771392f
Added DMT Rocks rupees
viccie211 Nov 12, 2025
bb864cd
Added DMC Lower rupees
viccie211 Nov 12, 2025
eb2eb2d
Forgot to save the keys
viccie211 Nov 12, 2025
da548fc
Added DMC Scarecrow rupee circle rupees
viccie211 Nov 12, 2025
1545f90
Ran clang-format
viccie211 Nov 12, 2025
f91bc3b
Fixed build issue with locacc_death_mountain
viccie211 Nov 12, 2025
27a3b3c
Added DMT Cow grotto rupee circle
viccie211 Nov 12, 2025
fa9b262
Added octorock grotto
viccie211 Nov 12, 2025
021cebf
Added locaction access for Octorock grotto rupees
viccie211 Nov 12, 2025
49656f4
Added vannilla ice cavern
viccie211 Nov 12, 2025
7f5c486
Added BotW Center pit fall blue rupees
viccie211 Nov 12, 2025
3412498
Added validate settings check on mq dungeons
viccie211 Nov 12, 2025
d2294c6
Reordered item locations
viccie211 Nov 12, 2025
e0b4ff9
Run automatic format script as code does not match clang format rules.
viccie211 Nov 12, 2025
7845c42
Deleted gemini.md
viccie211 Nov 12, 2025
5f3f9bb
Changed the type of an ObjMure3ActionFunc parameter so the compiler w…
viccie211 Nov 12, 2025
d997caa
Added comments
viccie211 Nov 12, 2025
ffa03e1
Removed CitraPrint statements
viccie211 Nov 12, 2025
30c345a
Run automatic format script as code does not match clang format rules.
viccie211 Nov 12, 2025
e06fa2e
Updated the check for ItemGive or PushPendingOverride
viccie211 Nov 12, 2025
4f8acc9
Run automatic format script as code does not match clang format rules.
viccie211 Nov 12, 2025
e6696c1
updated import
viccie211 Nov 12, 2025
9fdca8f
Added some clear and obscure hints
viccie211 Nov 13, 2025
ba9da63
Added more hints
viccie211 Nov 13, 2025
594a604
Added some more hints
viccie211 Nov 14, 2025
97039e2
Avoid crash when formatting malformed hint text
HylianFreddy Nov 15, 2025
4507349
Update source/location_access/locacc_death_mountain.cpp
viccie211 Nov 17, 2025
e457d0e
Update source/location_access/locacc_ice_cavern.cpp
viccie211 Nov 17, 2025
0a04b3b
Update source/location_access/locacc_lost_woods.cpp
viccie211 Nov 17, 2025
9566616
Update source/settings.cpp
viccie211 Nov 17, 2025
2ca3446
Update code/include/z3D/actors/z_obj_mure3.h
viccie211 Nov 17, 2025
0b540d3
Update code/src/item_override.c
viccie211 Nov 17, 2025
5026acb
Renamed rupeesanity flags
viccie211 Nov 18, 2025
bbee2d6
Renamed rupeesanity flags
viccie211 Nov 18, 2025
f3e56f9
Merge branch 'feature/settings-and-formatting' of github.com:viccie21…
viccie211 Nov 18, 2025
7e784f7
Moved rupeesanityflags up
viccie211 Nov 18, 2025
1f9d101
Added logic tricks for ZR and DMC rupees
viccie211 Nov 18, 2025
c4ff6d2
removed multiplayer addition to move to own branch
viccie211 Nov 18, 2025
844f53e
Run automatic format script as code does not match clang format rules.
viccie211 Nov 18, 2025
f8dc631
Fixed Logic tricks
viccie211 Nov 20, 2025
1b87655
Merge remote-tracking branch 'HylianFreddy/fix-hint-crash' into featu…
viccie211 Nov 20, 2025
5da1b38
Set the CanPlay in IceCavern for Song of Time
viccie211 Nov 21, 2025
9ed1031
reverted accidental removal of includes in locacc_death_mountain.cpp
viccie211 Nov 21, 2025
19f14a4
Run automatic format script as code does not match clang format rules.
viccie211 Nov 21, 2025
b681aa1
Fixed logic for DMC Scarecrow rupees
viccie211 Nov 22, 2025
31e04a7
Fixed hints
viccie211 Nov 22, 2025
f2b6d86
Applied HylianFreddy's patch
viccie211 Nov 22, 2025
4538c80
Run automatic format script as code does not match clang format rules.
viccie211 Nov 25, 2025
47bcb3f
Merge pull request #4 from viccie211/feature/settings-and-formatting
viccie211 Nov 25, 2025
2b122ba
Merge branch 'epic/rupee-sanity' into feature/hints
viccie211 Nov 26, 2025
c60b34d
Fixed a bunch of formatting
viccie211 Dec 1, 2025
bc893a3
Reformatted hints
viccie211 Dec 1, 2025
2980481
Reformatted hints and added hints for ZR Waterfall
viccie211 Dec 1, 2025
97c7bc8
Added GV Octorock grotto hints
viccie211 Dec 1, 2025
c650e02
Rephrased two hints
viccie211 Dec 1, 2025
8e09e53
Reformatted dungeon hints
viccie211 Dec 1, 2025
40c769a
Added the last Dungeon hints
viccie211 Dec 1, 2025
438b2aa
Extend EnItem00 struct, detect when spawned by scene layer
HylianFreddy Dec 14, 2025
39778fa
Add g prefix to global variables
HylianFreddy Dec 14, 2025
fc73594
Merge pull request #7 from HylianFreddy/item00-struct-update
viccie211 Dec 14, 2025
42d411c
Fixed a bug with the pot fix overruling rupee circle rupees
viccie211 Dec 14, 2025
535a62f
Fix rupee circle
HylianFreddy Dec 16, 2025
0dd25bb
Run automatic format script as code does not match clang format rules.
viccie211 Dec 23, 2025
b6cc098
Merge pull request #8 from HylianFreddy/rupee-circle-fix
viccie211 Dec 23, 2025
f0a3654
Merge pull request #6 from viccie211/feature/hints
viccie211 Dec 23, 2025
b3ec006
Move ObjMure3_rUpdate in Actor_Init
HylianFreddy Dec 22, 2025
ca8f57e
Formatting
HylianFreddy Dec 23, 2025
cf9ac5c
Merge pull request #9 from HylianFreddy/rupee-formatting
HylianFreddy Dec 23, 2025
21f4f14
Merge pull request #10 from gamestabled/main
HylianFreddy Dec 23, 2025
3da80c1
Expanded rPendingOverride queue to 7
viccie211 Jan 7, 2026
dbacf5a
Run automatic format script as code does not match clang format rules.
viccie211 Jan 7, 2026
e907c81
Merge branch 'main' into epic/rupee-sanity
HylianFreddy Jan 11, 2026
cdfe48d
Handle multiplayer
HylianFreddy Dec 23, 2025
e017c32
Trim whitespace
HylianFreddy Jan 11, 2026
385d071
Merge pull request #11 from HylianFreddy/rupee-multiplayer
HylianFreddy Jan 11, 2026
336df71
Changed the placeholder hints to the English versions
viccie211 Jan 12, 2026
8eb64bd
started implementation of MQ rupee locations
viccie211 Jan 20, 2026
57dbf73
Properly named the MQ Rupees
viccie211 Jan 21, 2026
48c6830
Added the hints for the MQ rupees
viccie211 Jan 21, 2026
efd1218
Added logic for MQ Rupees
viccie211 Jan 21, 2026
37f8ff0
Use u16 for ExtInfBit index
HylianFreddy Jan 22, 2026
64d5a30
Updated logic for MQ JAbu Rupees
viccie211 Jan 23, 2026
a008b63
Run automatic format script as code does not match clang format rules.
viccie211 Jan 23, 2026
2af78e0
Merge pull request #12 from viccie211/feature/mq-rupee-sanity
viccie211 Jan 23, 2026
4b70b43
updated logic trick names to have linebreaks
viccie211 Jan 23, 2026
13cbb0c
Merge pull request #13 from HylianFreddy/rupee-multiplayer
viccie211 Jan 24, 2026
94747b8
Rupeesanity hints: some fixes + Italian translation
HylianFreddy Jan 25, 2026
46e347d
Merge pull request #14 from HylianFreddy/italian-rupees
viccie211 Jan 25, 2026
76af439
Added freestandingRupee category where they were missing
viccie211 Jan 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions code/include/z3D/actors/z_en_box.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@
#include "z3D/z3D.h"

typedef struct EnBox {
/* 0x000 */ Actor actor;
/* 0x1A4 */ char unk_1A4[0x1F4];
} EnBox; // size 0x398
/* 0x0000 */ DynaPolyActor dyna;
/* 0x01BC */ SkelAnime skelAnime;
/* 0x0240 */ char unk_240[0x148];
/* 0x0388 */ ZARInfo* zarInfo;
/* 0x038C */ char unk_38C[0xC];
} EnBox; // size = 0x398

#endif //_EN_BOX_H_
12 changes: 10 additions & 2 deletions code/include/z3D/actors/z_en_item00.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,22 @@ typedef enum Item00Type {
/* 0xFF */ ITEM00_NONE = 0xFF
} Item00Type;

typedef struct EnItem00Extension {
u16 extraCollectibleFlag;
u8 spawnedBySceneLayer;
} EnItem00Extension;

typedef struct EnItem00 {
/* 0x000 */ Actor actor;
/* 0x1A4 */ void* action_fn;
/* 0x1A4 */ void* actionFunc;
/* 0x1A8 */ u16 collectibleFlag;
/* 0x1AA */ char unk_1AA[0x4];
/* 0x1AE */ u16 unk_1AE;
/* 0x1B0 */ u16 unk_1B0;
/* 0x1B2 */ char unk_1B2[0x66];
} EnItem00; // size 0x218
// end of base game struct
/* 0x218 */ EnItem00Extension rExt;
} EnItem00;
_Static_assert(offsetof(EnItem00, rExt) == 0x218, "EnItem00 size");

#endif //_EN_ITEM00_H_
17 changes: 17 additions & 0 deletions code/include/z3D/actors/z_obj_mure3.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef Z_OBJ_MURE3_H
#define Z_OBJ_MURE3_H

#include "z3D/z3D.h"

typedef void (*ObjMure3ActionFunc)(struct Actor*, struct GlobalContext*);

struct ObjMure3;

typedef struct ObjMure3 {
/* 0x0000 */ Actor actor;
/* 0x014C */ ObjMure3ActionFunc actionFunc;
/* 0x0150 */ struct EnItem00* spawnedRupees[7];
/* 0x016C */ u16 unk_16C;
} ObjMure3; // size = 0x0170

#endif
3 changes: 3 additions & 0 deletions code/include/z3D/z3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -811,6 +811,9 @@ typedef u32 (*Flags_GetSwitch_proc)(GlobalContext* globalCtx, u32 flag);
typedef u32 (*Flags_GetCollectible_proc)(GlobalContext* globalCtx, u32 flag);
#define Flags_GetCollectible ((Flags_GetCollectible_proc)GAME_ADDR(0x36405C))

typedef u32 (*Flags_SetCollectible_proc)(GlobalContext* globalCtx, u32 flag);
#define Flags_SetCollectible ((Flags_SetCollectible_proc)GAME_ADDR(0x3329D8))

typedef u32 (*Flags_GetClear_proc)(GlobalContext* globalCtx, u32 flag);
#define Flags_GetClear ((Flags_GetClear_proc)GAME_ADDR(0x36CF6C))

Expand Down
4 changes: 4 additions & 0 deletions code/include/z3D/z3Dactor.h
Original file line number Diff line number Diff line change
Expand Up @@ -390,4 +390,8 @@ typedef void (*Actor_UpdateBgCheckInfo_proc)(struct GlobalContext* globalCtx, Ac
typedef s32 (*Player_InCsMode_proc)(struct GlobalContext* globalCtx);
#define Player_InCsMode ((Player_InCsMode_proc)GAME_ADDR(0x36A7A0))

typedef Actor* (*Actor_FindNearby_proc)(struct GlobalContext* globalCtx, Actor* ref_actor, s16 actorId,
u8 actor_category, f32 range);
#define Actor_FindNearby ((Actor_FindNearby_proc)GAME_ADDR(0x369334))

#endif
8 changes: 8 additions & 0 deletions code/oot.ld
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,10 @@ SECTIONS
*(.patch_GohmaEggDeathSignalParent)
}

.patch_Item00GiveAutomaticItemDrop 0x1F6E4C : {
*(.patch_Item00GiveAutomaticItemDrop)
}

.patch_ItemGiveBombchuDropOne 0x1F6F70 : {
*(.patch_ItemGiveBombchuDropOne)
}
Expand Down Expand Up @@ -640,6 +644,10 @@ SECTIONS
*(.patch_GetObjectEntry_EnHintnutsInit)
}

.patch_Item00GiveCollectedItemDrop 0x22B974 : {
*(.patch_Item00GiveCollectedItemDrop)
}

.patch_patch_ItemGiveBombchuDropTwo 0x22BAE4 : {
*(.patch_ItemGiveBombchuDropTwo)
}
Expand Down
20 changes: 16 additions & 4 deletions code/src/actor.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
#include "stalfos.h"
#include "bubble.h"
#include "ganondorf.h"
#include "obj_mure3.h"

#define OBJECT_GI_KEY 170
#define OBJECT_GI_BOSSKEY 185
Expand Down Expand Up @@ -129,10 +130,11 @@ void Actor_Init() {

gActorOverlayTable[0xF].initInfo->update = (ActorFunc)BgYdanSp_rUpdate;

gActorOverlayTable[0x15].initInfo->init = EnItem00_rInit;
gActorOverlayTable[0x15].initInfo->destroy = EnItem00_rDestroy;
gActorOverlayTable[0x15].initInfo->update = EnItem00_rUpdate;
gActorOverlayTable[0x15].initInfo->draw = EnItem00_rDraw;
gActorOverlayTable[0x15].initInfo->init = EnItem00_rInit;
gActorOverlayTable[0x15].initInfo->destroy = EnItem00_rDestroy;
gActorOverlayTable[0x15].initInfo->update = EnItem00_rUpdate;
gActorOverlayTable[0x15].initInfo->draw = EnItem00_rDraw;
gActorOverlayTable[0x15].initInfo->instanceSize = sizeof(EnItem00);

gActorOverlayTable[0x1D].initInfo->update = EnPeehat_rUpdate;

Expand Down Expand Up @@ -315,6 +317,8 @@ void Actor_Init() {

gActorOverlayTable[0x1A3].initInfo->update = EnDntNomal_rUpdate;

gActorOverlayTable[0x1AB].initInfo->update = ObjMure3_rUpdate;

gActorOverlayTable[0x1B0].initInfo->update = EnSkb_rUpdate;

gActorOverlayTable[0x1B9].initInfo->init = EnGs_rInit;
Expand Down Expand Up @@ -379,6 +383,14 @@ u8 ActorSetup_OverrideEntry(ActorEntry* actorEntry, s32 actorEntryIndex) {
return TRUE;
}

if (actorEntry->id == ACTOR_EN_ITEM00) {
// Mark as spawned by scene layer.
// All vanilla actor entries for EnItem00 have Z rotation set to 0,
// so we can use it as a custom flag.
actorEntry->rot.z = -1;
return FALSE;
}

return Enemizer_OverrideActorEntry(actorEntry, actorEntryIndex);
}

Expand Down
9 changes: 1 addition & 8 deletions code/src/actors/chest.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,7 @@
#define _CHEST_H_

#include "z3D/z3D.h"

typedef struct EnBox {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x01BC */ SkelAnime skelAnime;
/* 0x0240 */ char unk_240[0x148];
/* 0x0388 */ ZARInfo* zarInfo;
/* 0x038C */ char unk_38C[0xC];
} EnBox; // size = 0x398
#include "z3D/actors/z_en_box.h"

typedef enum {
CHEST_MAJOR,
Expand Down
36 changes: 32 additions & 4 deletions code/src/actors/item00.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
#include "z3D/z3D.h"
#include "z3D/actors/z_en_item00.h"
#include "models.h"
#include "actors/obj_mure3.h"
#include "settings.h"
#include "common.h"
#include "savefile.h"

#define EnItem00_Init ((ActorFunc)GAME_ADDR(0x1F69B4))

Expand All @@ -13,7 +16,7 @@

#define THIS ((EnItem00*)thisx)

#define FUN_002B175C (void*)GAME_ADDR(0x2B175C)
#define EnItem00_Collected ((void*)GAME_ADDR(0x2B175C))

void EnItem00_rInit(Actor* thisx, GlobalContext* globalCtx) {
EnItem00* item = THIS;
Expand Down Expand Up @@ -44,7 +47,25 @@ void EnItem00_rInit(Actor* thisx, GlobalContext* globalCtx) {
item->actor.params = (item->actor.params & 0xFF00) | 0x00;
}
}

// If Z rotation is -1, it was set in `ActorSetup_OverrideEntry`
if (thisx->home.rot.z == -1) {
item->rExt.spawnedBySceneLayer = TRUE;
thisx->home.rot.z = 0;
}

EnItem00_Init(&item->actor, globalCtx);

// For rupees spawned by Rupee Circles (ObjMure3) we use an "extraCollectibleFlag".
// Since collectibleFlag normally gets truncated to 0x3F we can use any value at or above
// 0x40. We've reserved 0x40-0x46 for Rupee circle rupees.
if (item->collectibleFlag == 0x00 && gIsObjMure3Updating) {
item->rExt.extraCollectibleFlag = gExtraCollectibleFlag;
gExtraCollectibleFlag += 1;
if (gExtraCollectibleFlag > 0x46) {
gExtraCollectibleFlag = 0x40;
}
}
Model_SpawnByActor(&item->actor, globalCtx, 0);
}

Expand All @@ -58,9 +79,16 @@ void EnItem00_rDestroy(Actor* thisx, GlobalContext* globalCtx) {
void EnItem00_rUpdate(Actor* thisx, GlobalContext* globalCtx) {
EnItem00* item = THIS;

if (Flags_GetCollectible(globalCtx, item->collectibleFlag) && item->action_fn != FUN_002B175C) {
Actor_Kill(&item->actor);
return;
if (gSettingsContext.mp_Enabled && item->actionFunc != EnItem00_Collected) {
if (Flags_GetCollectible(globalCtx, item->collectibleFlag)) {
Actor_Kill(&item->actor);
return;
}

u16 flag = item->rExt.extraCollectibleFlag ? item->rExt.extraCollectibleFlag : item->collectibleFlag;
if (SaveFile_GetRupeeSanityFlag(globalCtx->sceneNum, flag)) {
Model_DestroyByActor(thisx);
}
}

EnItem00_Update(&item->actor, globalCtx);
Expand Down
13 changes: 13 additions & 0 deletions code/src/actors/obj_mure3.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "z3D/z3D.h"
#include "common.h"

u8 gIsObjMure3Updating = 0; // global variable for rupee circle rupee replacement.
u8 gExtraCollectibleFlag = 0x40; // global variable for rupee circle rupee replacement.
#define ObjMure3_Update ((ActorFunc)GAME_ADDR(0x002318ac))

void ObjMure3_rUpdate(Actor* thisx, GlobalContext* globalCtx) {
gExtraCollectibleFlag = 0x40;
gIsObjMure3Updating = TRUE;
ObjMure3_Update(thisx, globalCtx);
gIsObjMure3Updating = FALSE;
}
9 changes: 9 additions & 0 deletions code/src/actors/obj_mure3.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#ifndef _OBJ_MURE3_H_
#define _OBJ_MURE3_H_

#include "z3D/z3D.h"
extern u8 gIsObjMure3Updating; // global variable for rupee circle rupee replacement.
extern u8 gExtraCollectibleFlag; // global variable for rupee circle rupee replacement.
void ObjMure3_rUpdate(Actor* thisx, GlobalContext* globalCtx);

#endif //_OBJ_MURE3_H_
22 changes: 22 additions & 0 deletions code/src/hooks.s
Original file line number Diff line number Diff line change
Expand Up @@ -2487,3 +2487,25 @@ hook_OcarinaNoteSound_Npc:
cpy r1,r0
pop {r0, r2-r12, lr}
bx lr

.global hook_Item00GiveAutomaticItemDrop
hook_Item00GiveAutomaticItemDrop:
ldrsh r0,[r4,#0x1c]
push {r0-r12, lr}
cpy r0,r4 @ actor
bl ItemOverride_GetItemDrop
cmp r0,#0x0
pop {r0-r12, lr}
addne lr,lr,#0x8 @ Item overridden, skip Item_Give
bx lr

.global hook_Item00GiveCollectedItemDrop
hook_Item00GiveCollectedItemDrop:
ldrsh r0,[r5,#0x1c]
push {r0-r12, lr}
cpy r0,r5 @ actor
bl ItemOverride_GetItemDrop
cmp r0,#0x0
pop {r0-r12, lr}
addne lr,lr,#0x8 @ Item overridden, skip Item_Give
bx lr
Loading