summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/include/ov05.inc6
-rw-r--r--asm/include/ov14.inc2
-rw-r--r--asm/include/ov15.inc4
-rw-r--r--asm/ov00/Item/Item.s77
-rw-r--r--asm/ov00/include/ov00_020ae7a4.inc4
-rw-r--r--asm/ov00/ov00_020773c0.s74
-rw-r--r--asm/ov00/ov00_020ae7a4.s4
-rw-r--r--asm/ov05.s6
-rw-r--r--asm/ov14.s2
-rw-r--r--asm/ov15.s4
-rw-r--r--include/Item/Item.hpp7
-rw-r--r--src/00_Core/Item/Item.cpp8
-rw-r--r--src/00_Core/Item/ItemManager.cpp (renamed from src/00_Core/ItemManager.cpp)0
13 files changed, 107 insertions, 91 deletions
diff --git a/asm/include/ov05.inc b/asm/include/ov05.inc
index 3219ee26..343ac88e 100644
--- a/asm/include/ov05.inc
+++ b/asm/include/ov05.inc
@@ -829,7 +829,7 @@
.extern func_ov09_0211ca20
.extern _ZNK11ItemManager13HasAllPotionsEv
.extern _ZNK11ItemManager13HasAllPotionsEv
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern func_ov03_020fb0b0
.extern func_ov00_020a8138
.extern func_ov00_020a8158
@@ -960,9 +960,9 @@
.extern func_ov00_020a8360
.extern func_ov00_020c1500
.extern func_ov00_020a8390
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern _ZN11ItemManager8GiveItemEjjj
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern func_ov00_020a8c78
.extern func_ov00_020a8be8
.extern func_ov00_020b4440
diff --git a/asm/include/ov14.inc b/asm/include/ov14.inc
index af386d07..cda25c4c 100644
--- a/asm/include/ov14.inc
+++ b/asm/include/ov14.inc
@@ -4618,7 +4618,7 @@
.extern func_ov03_020fb118
.extern func_ov00_020d71a0
.extern data_ov09_0211f5dc
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern func_ov03_020fc10c
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
.extern func_ov03_020fab60
diff --git a/asm/include/ov15.inc b/asm/include/ov15.inc
index 48bc51db..ad24b548 100644
--- a/asm/include/ov15.inc
+++ b/asm/include/ov15.inc
@@ -3072,7 +3072,7 @@
.extern func_ov00_0207c1b0
.extern func_ov00_020ceacc
.extern func_0202e58c
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern func_ov03_020fb0b0
.extern func_ov09_0211ca20
.extern func_ov09_0211cac0
@@ -6126,7 +6126,7 @@
.extern _ZN11ItemManager15LoadFanfareItemEj
.extern gItemManager
.extern data_027e0fe4
-.extern func_ov00_020ad020
+.extern _ZN4Item18func_ov00_020ad020Ei
.extern func_ov03_020fc10c
.extern func_ov00_020d73bc
.extern func_ov00_0207c1b0
diff --git a/asm/ov00/Item/Item.s b/asm/ov00/Item/Item.s
new file mode 100644
index 00000000..207e0254
--- /dev/null
+++ b/asm/ov00/Item/Item.s
@@ -0,0 +1,77 @@
+ .include "macros/function.inc"
+
+ .text
+
+ .global _ZN4Item18func_ov00_020ad020Ei
+ thumb_func_start _ZN4Item18func_ov00_020ad020Ei
+_ZN4Item18func_ov00_020ad020Ei: ; 0x020ad020
+ cmp r0, #0x2b
+ bgt _020ad02c
+ bge _020ad060
+ cmp r0, #0x25
+ beq _020ad060
+ b _020ad064
+_020ad02c:
+ cmp r0, #0x3d
+ bgt _020ad034
+ beq _020ad060
+ b _020ad064
+_020ad034:
+ sub r0, #0x79
+ cmp r0, #0xc
+ bhi _020ad064
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020ad046: ; jump table
+ .short _020ad060 - _020ad046 - 2 ; case 0
+ .short _020ad060 - _020ad046 - 2 ; case 1
+ .short _020ad060 - _020ad046 - 2 ; case 2
+ .short _020ad060 - _020ad046 - 2 ; case 3
+ .short _020ad064 - _020ad046 - 2 ; case 4
+ .short _020ad060 - _020ad046 - 2 ; case 5
+ .short _020ad064 - _020ad046 - 2 ; case 6
+ .short _020ad064 - _020ad046 - 2 ; case 7
+ .short _020ad064 - _020ad046 - 2 ; case 8
+ .short _020ad064 - _020ad046 - 2 ; case 9
+ .short _020ad064 - _020ad046 - 2 ; case 10
+ .short _020ad064 - _020ad046 - 2 ; case 11
+ .short _020ad060 - _020ad046 - 2 ; case 12
+_020ad060:
+ mov r0, #1
+ bx lr
+_020ad064:
+ mov r0, #0
+ bx lr
+ thumb_func_end _ZN4Item18func_ov00_020ad020Ei
+
+ .global _ZN4Item18func_ov00_020ad068Ei
+ thumb_func_start _ZN4Item18func_ov00_020ad068Ei
+_ZN4Item18func_ov00_020ad068Ei: ; 0x020ad068
+ sub r0, #0x6b
+ cmp r0, #5
+ bhi _020ad08a
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020ad07a: ; jump table
+ .short _020ad086 - _020ad07a - 2 ; case 0
+ .short _020ad086 - _020ad07a - 2 ; case 1
+ .short _020ad086 - _020ad07a - 2 ; case 2
+ .short _020ad086 - _020ad07a - 2 ; case 3
+ .short _020ad086 - _020ad07a - 2 ; case 4
+ .short _020ad086 - _020ad07a - 2 ; case 5
+_020ad086:
+ mov r0, #1
+ bx lr
+_020ad08a:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end _ZN4Item18func_ov00_020ad068Ei
diff --git a/asm/ov00/include/ov00_020ae7a4.inc b/asm/ov00/include/ov00_020ae7a4.inc
index a17efdd7..53dd4841 100644
--- a/asm/ov00/include/ov00_020ae7a4.inc
+++ b/asm/ov00/include/ov00_020ae7a4.inc
@@ -1167,9 +1167,9 @@
.extern func_ov05_021096bc
.extern func_ov00_020a914c
.extern func_ov00_020a914c
-.extern func_ov00_020ad068
+.extern _ZN4Item18func_ov00_020ad068Ei
.extern func_ov00_020a914c
-.extern func_ov00_020ad068
+.extern _ZN4Item18func_ov00_020ad068Ei
.extern func_ov00_020a914c
.extern func_ov00_020b3024
.extern func_ov00_020a914c
diff --git a/asm/ov00/ov00_020773c0.s b/asm/ov00/ov00_020773c0.s
index a43332b4..62abfc86 100644
--- a/asm/ov00/ov00_020773c0.s
+++ b/asm/ov00/ov00_020773c0.s
@@ -71927,80 +71927,6 @@ func_ov00_020ad018: ; 0x020ad018
bx lr
arm_func_end func_ov00_020ad018
- .global func_ov00_020ad020
- thumb_func_start func_ov00_020ad020
-func_ov00_020ad020: ; 0x020ad020
- cmp r0, #0x2b
- bgt _020ad02c
- bge _020ad060
- cmp r0, #0x25
- beq _020ad060
- b _020ad064
-_020ad02c:
- cmp r0, #0x3d
- bgt _020ad034
- beq _020ad060
- b _020ad064
-_020ad034:
- sub r0, #0x79
- cmp r0, #0xc
- bhi _020ad064
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020ad046: ; jump table
- .short _020ad060 - _020ad046 - 2 ; case 0
- .short _020ad060 - _020ad046 - 2 ; case 1
- .short _020ad060 - _020ad046 - 2 ; case 2
- .short _020ad060 - _020ad046 - 2 ; case 3
- .short _020ad064 - _020ad046 - 2 ; case 4
- .short _020ad060 - _020ad046 - 2 ; case 5
- .short _020ad064 - _020ad046 - 2 ; case 6
- .short _020ad064 - _020ad046 - 2 ; case 7
- .short _020ad064 - _020ad046 - 2 ; case 8
- .short _020ad064 - _020ad046 - 2 ; case 9
- .short _020ad064 - _020ad046 - 2 ; case 10
- .short _020ad064 - _020ad046 - 2 ; case 11
- .short _020ad060 - _020ad046 - 2 ; case 12
-_020ad060:
- mov r0, #1
- bx lr
-_020ad064:
- mov r0, #0
- bx lr
- thumb_func_end func_ov00_020ad020
-
- .global func_ov00_020ad068
- thumb_func_start func_ov00_020ad068
-func_ov00_020ad068: ; 0x020ad068
- sub r0, #0x6b
- cmp r0, #5
- bhi _020ad08a
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020ad07a: ; jump table
- .short _020ad086 - _020ad07a - 2 ; case 0
- .short _020ad086 - _020ad07a - 2 ; case 1
- .short _020ad086 - _020ad07a - 2 ; case 2
- .short _020ad086 - _020ad07a - 2 ; case 3
- .short _020ad086 - _020ad07a - 2 ; case 4
- .short _020ad086 - _020ad07a - 2 ; case 5
-_020ad086:
- mov r0, #1
- bx lr
-_020ad08a:
- mov r0, #0
- bx lr
- .align 2, 0
- thumb_func_end func_ov00_020ad068
-
.rodata
.global data_ov00_020d8770
data_ov00_020d8770: ; 0x020d8770
diff --git a/asm/ov00/ov00_020ae7a4.s b/asm/ov00/ov00_020ae7a4.s
index 5b643613..56f9bd94 100644
--- a/asm/ov00/ov00_020ae7a4.s
+++ b/asm/ov00/ov00_020ae7a4.s
@@ -18238,7 +18238,7 @@ func_ov00_020bcefc: ; 0x020bcefc
ldmeqia sp!, {r3, pc}
bl func_ov00_020a914c
ldr r0, [r0, #0x74]
- blx func_ov00_020ad068
+ blx _ZN4Item18func_ov00_020ad068Ei
cmp r0, #0
moveq r0, #1
movne r0, #0
@@ -18255,7 +18255,7 @@ func_ov00_020bcf2c: ; 0x020bcf2c
ldmeqia sp!, {r3, pc}
bl func_ov00_020a914c
ldr r0, [r0, #0x74]
- blx func_ov00_020ad068
+ blx _ZN4Item18func_ov00_020ad068Ei
ldmia sp!, {r3, pc}
arm_func_end func_ov00_020bcf2c
diff --git a/asm/ov05.s b/asm/ov05.s
index 7f0fd44c..38a2435d 100644
--- a/asm/ov05.s
+++ b/asm/ov05.s
@@ -9700,7 +9700,7 @@ _02108bd0:
strne r0, [r4, #0x74]
_02108be8:
ldr r0, [r4, #0x74]
- blx func_ov00_020ad020
+ blx _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
ldr r1, [r4, #0x74]
beq _02108c14
@@ -10640,7 +10640,7 @@ _02109874:
b _021098bc
_0210989c:
mov r0, r4
- blx func_ov00_020ad020
+ blx _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
bne _021098bc
ldr r0, _021099cc ; =gItemManager
@@ -10649,7 +10649,7 @@ _0210989c:
blx _ZN11ItemManager8GiveItemEjjj
_021098bc:
mov r0, r4
- blx func_ov00_020ad020
+ blx _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
bne _02109914
ldr r0, _021099d0 ; =data_027e0c68
diff --git a/asm/ov14.s b/asm/ov14.s
index 8ab1a820..9c70677b 100644
--- a/asm/ov14.s
+++ b/asm/ov14.s
@@ -61799,7 +61799,7 @@ func_ov14_021508b8: ; 0x021508b8
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
- bl func_ov00_020ad020
+ bl _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
beq _021508ce
ldr r0, _021508dc ; =data_027e0c68
diff --git a/asm/ov15.s b/asm/ov15.s
index 447808d3..b21f34a7 100644
--- a/asm/ov15.s
+++ b/asm/ov15.s
@@ -44494,7 +44494,7 @@ _0214526c:
cmp r0, #0
beq _02145420
bl func_ov15_021464fc
- blx func_ov00_020ad020
+ blx _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
movne r0, #0xb
strneb r0, [sb, #0x34d]
@@ -88280,7 +88280,7 @@ func_ov15_0216a968: ; 0x0216a968
sub sp, sp, #0x1c
mov r4, r0
ldr r0, [r4, #8]
- blx func_ov00_020ad020
+ blx _ZN4Item18func_ov00_020ad020Ei
cmp r0, #0
beq _0216a994
ldr r0, _0216aa1c ; =data_027e0c68
diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp
index ab759d21..be4dd102 100644
--- a/include/Item/Item.hpp
+++ b/include/Item/Item.hpp
@@ -48,7 +48,7 @@ enum ItemFlag_ {
ItemFlag_COUNT = 128,
};
-typedef u32 ItemId;
+typedef s32 ItemId;
enum ItemId_ {
ItemId_SmallKey = 1,
ItemId_GreenRupee = 2,
@@ -143,3 +143,8 @@ enum ItemId_ {
ItemId_Unk_133 = 133,
};
+
+namespace Item {
+ bool func_ov00_020ad020(ItemId item);
+ bool func_ov00_020ad068(ItemId item);
+}
diff --git a/src/00_Core/Item/Item.cpp b/src/00_Core/Item/Item.cpp
new file mode 100644
index 00000000..522dd51d
--- /dev/null
+++ b/src/00_Core/Item/Item.cpp
@@ -0,0 +1,8 @@
+#include "Item/Item.hpp"
+
+#ifdef STUBS
+
+bool Item::func_ov00_020ad020(ItemId item) {}
+bool Item::func_ov00_020ad068(ItemId item) {}
+
+#endif
diff --git a/src/00_Core/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index 742a3f81..742a3f81 100644
--- a/src/00_Core/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp