mirror of
https://github.com/zeldaret/ph
synced 2026-06-03 02:28:52 -04:00
Decomp ItemManager::GiveItem
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
.extern Divide
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager7AddItemEi
|
||||
.extern _ZN11ItemManager8GiveKeysEj
|
||||
.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j
|
||||
|
||||
+1
-1
@@ -76814,7 +76814,7 @@ _0203826c:
|
||||
ldr r1, [r4, #4]
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
add sp, sp, #0x18
|
||||
mov r0, #2
|
||||
ldmia sp!, {r3, r4, r5, pc}
|
||||
|
||||
@@ -21,6 +21,6 @@
|
||||
.extern func_ov00_020cf374
|
||||
.extern func_ov00_020d73bc
|
||||
.extern func_ov05_02104004
|
||||
.extern func_ov09_0211c700
|
||||
.extern func_ov09_0211ca20
|
||||
.extern EquipLinebeckCannon
|
||||
.extern GiveShipPart
|
||||
.extern gItemManager
|
||||
|
||||
+12
-785
@@ -3,782 +3,9 @@
|
||||
|
||||
.text
|
||||
|
||||
.global _ZN11ItemManager8GiveItemEi
|
||||
thumb_func_start _ZN11ItemManager8GiveItemEi
|
||||
_ZN11ItemManager8GiveItemEi: ; 0x020adcdc
|
||||
push {r3, r4, r5, lr}
|
||||
cmp r1, #0x76
|
||||
bgt _020addd2
|
||||
blt _020adce6
|
||||
b _020ae128
|
||||
_020adce6:
|
||||
cmp r1, #0x6f
|
||||
bgt _020adda0
|
||||
blt _020adcee
|
||||
b _020ae0ec
|
||||
_020adcee:
|
||||
cmp r1, #0x6c
|
||||
bgt _020add8e
|
||||
blt _020adcf6
|
||||
b _020ae0bc
|
||||
_020adcf6:
|
||||
cmp r1, #0x3d
|
||||
bgt _020add86
|
||||
cmp r1, #0
|
||||
blt _020add8c
|
||||
add r2, r1, r1
|
||||
add r2, pc
|
||||
ldrh r2, [r2, #6]
|
||||
lsl r2, r2, #0x10
|
||||
asr r2, r2, #0x10
|
||||
add pc, r2
|
||||
_020add0a: ; jump table
|
||||
.short _020ae222 - _020add0a - 2 ; case 0
|
||||
.short _020ade36 - _020add0a - 2 ; case 1
|
||||
.short _020ade3e - _020add0a - 2 ; case 2
|
||||
.short _020ade7c - _020add0a - 2 ; case 3
|
||||
.short _020ade98 - _020add0a - 2 ; case 4
|
||||
.short _020ae222 - _020add0a - 2 ; case 5
|
||||
.short _020ae1fe - _020add0a - 2 ; case 6
|
||||
.short _020adeb4 - _020add0a - 2 ; case 7
|
||||
.short _020adec8 - _020add0a - 2 ; case 8
|
||||
.short _020ade5c - _020add0a - 2 ; case 9
|
||||
.short _020ae1fe - _020add0a - 2 ; case 10
|
||||
.short _020ae1fe - _020add0a - 2 ; case 11
|
||||
.short _020aded2 - _020add0a - 2 ; case 12
|
||||
.short _020adedc - _020add0a - 2 ; case 13
|
||||
.short _020adebe - _020add0a - 2 ; case 14
|
||||
.short _020ae1fe - _020add0a - 2 ; case 15
|
||||
.short _020ae222 - _020add0a - 2 ; case 16
|
||||
.short _020ae1fe - _020add0a - 2 ; case 17
|
||||
.short _020adefa - _020add0a - 2 ; case 18
|
||||
.short _020adf12 - _020add0a - 2 ; case 19
|
||||
.short _020adf2c - _020add0a - 2 ; case 20
|
||||
.short _020adf46 - _020add0a - 2 ; case 21
|
||||
.short _020adf60 - _020add0a - 2 ; case 22
|
||||
.short _020ae1fe - _020add0a - 2 ; case 23
|
||||
.short _020ade48 - _020add0a - 2 ; case 24
|
||||
.short _020ade52 - _020add0a - 2 ; case 25
|
||||
.short _020ade66 - _020add0a - 2 ; case 26
|
||||
.short _020ade70 - _020add0a - 2 ; case 27
|
||||
.short _020ae1fe - _020add0a - 2 ; case 28
|
||||
.short _020ae1fe - _020add0a - 2 ; case 29
|
||||
.short _020ae1fe - _020add0a - 2 ; case 30
|
||||
.short _020adee6 - _020add0a - 2 ; case 31
|
||||
.short _020adef0 - _020add0a - 2 ; case 32
|
||||
.short _020ae1fe - _020add0a - 2 ; case 33
|
||||
.short _020ae1fe - _020add0a - 2 ; case 34
|
||||
.short _020ae1fe - _020add0a - 2 ; case 35
|
||||
.short _020adf7a - _020add0a - 2 ; case 36
|
||||
.short _020adf96 - _020add0a - 2 ; case 37
|
||||
.short _020adfbe - _020add0a - 2 ; case 38
|
||||
.short _020adfd8 - _020add0a - 2 ; case 39
|
||||
.short _020adff2 - _020add0a - 2 ; case 40
|
||||
.short _020adff8 - _020add0a - 2 ; case 41
|
||||
.short _020adffe - _020add0a - 2 ; case 42
|
||||
.short _020ae1fe - _020add0a - 2 ; case 43
|
||||
.short _020ae004 - _020add0a - 2 ; case 44
|
||||
.short _020ae024 - _020add0a - 2 ; case 45
|
||||
.short _020ae032 - _020add0a - 2 ; case 46
|
||||
.short _020ae040 - _020add0a - 2 ; case 47
|
||||
.short _020ae1fe - _020add0a - 2 ; case 48
|
||||
.short _020ae1fe - _020add0a - 2 ; case 49
|
||||
.short _020ae1fe - _020add0a - 2 ; case 50
|
||||
.short _020ae1fe - _020add0a - 2 ; case 51
|
||||
.short _020ae1fe - _020add0a - 2 ; case 52
|
||||
.short _020ae1fe - _020add0a - 2 ; case 53
|
||||
.short _020ae1fe - _020add0a - 2 ; case 54
|
||||
.short _020ae1fe - _020add0a - 2 ; case 55
|
||||
.short _020ae014 - _020add0a - 2 ; case 56
|
||||
.short _020ae1fe - _020add0a - 2 ; case 57
|
||||
.short _020ae1fe - _020add0a - 2 ; case 58
|
||||
.short _020ae1fe - _020add0a - 2 ; case 59
|
||||
.short _020ae1fe - _020add0a - 2 ; case 60
|
||||
.short _020ae04e - _020add0a - 2 ; case 61
|
||||
_020add86:
|
||||
cmp r1, #0x6b
|
||||
bne _020add8c
|
||||
b _020ae0ac
|
||||
_020add8c:
|
||||
b _020ae1fe
|
||||
_020add8e:
|
||||
cmp r1, #0x6d
|
||||
bgt _020add98
|
||||
bne _020add96
|
||||
b _020ae0cc
|
||||
_020add96:
|
||||
b _020ae1fe
|
||||
_020add98:
|
||||
cmp r1, #0x6e
|
||||
bne _020add9e
|
||||
b _020ae0dc
|
||||
_020add9e:
|
||||
b _020ae1fe
|
||||
_020adda0:
|
||||
cmp r1, #0x72
|
||||
bgt _020addba
|
||||
blt _020adda8
|
||||
b _020ae082
|
||||
_020adda8:
|
||||
cmp r1, #0x70
|
||||
bgt _020addb2
|
||||
bne _020addb0
|
||||
b _020ae0fc
|
||||
_020addb0:
|
||||
b _020ae1fe
|
||||
_020addb2:
|
||||
cmp r1, #0x71
|
||||
bne _020addb8
|
||||
b _020ae072
|
||||
_020addb8:
|
||||
b _020ae1fe
|
||||
_020addba:
|
||||
cmp r1, #0x74
|
||||
bgt _020addca
|
||||
blt _020addc2
|
||||
b _020ae09e
|
||||
_020addc2:
|
||||
cmp r1, #0x73
|
||||
bne _020addc8
|
||||
b _020ae090
|
||||
_020addc8:
|
||||
b _020ae1fe
|
||||
_020addca:
|
||||
cmp r1, #0x75
|
||||
bne _020addd0
|
||||
b _020ae10c
|
||||
_020addd0:
|
||||
b _020ae1fe
|
||||
_020addd2:
|
||||
cmp r1, #0x7c
|
||||
bgt _020ade06
|
||||
blt _020addda
|
||||
b _020ae1b0
|
||||
_020addda:
|
||||
cmp r1, #0x79
|
||||
bgt _020addf4
|
||||
blt _020adde2
|
||||
b _020ae16c
|
||||
_020adde2:
|
||||
cmp r1, #0x77
|
||||
bgt _020addec
|
||||
bne _020addea
|
||||
b _020ae144
|
||||
_020addea:
|
||||
b _020ae1fe
|
||||
_020addec:
|
||||
cmp r1, #0x78
|
||||
bne _020addf2
|
||||
b _020ae160
|
||||
_020addf2:
|
||||
b _020ae1fe
|
||||
_020addf4:
|
||||
cmp r1, #0x7a
|
||||
bgt _020addfe
|
||||
bne _020addfc
|
||||
b _020ae182
|
||||
_020addfc:
|
||||
b _020ae1fe
|
||||
_020addfe:
|
||||
cmp r1, #0x7b
|
||||
bne _020ade04
|
||||
thumb_func_end _ZN11ItemManager8GiveItemEi
|
||||
_020ade02:
|
||||
b _020ae198
|
||||
_020ade04:
|
||||
b _020ae1fe
|
||||
_020ade06:
|
||||
cmp r1, #0x81
|
||||
bgt _020ade20
|
||||
blt _020ade0e
|
||||
b _020ae1e6
|
||||
_020ade0e:
|
||||
cmp r1, #0x7f
|
||||
bgt _020ade18
|
||||
bne _020ade16
|
||||
b _020ae1c6
|
||||
_020ade16:
|
||||
b _020ae1fe
|
||||
_020ade18:
|
||||
cmp r1, #0x80
|
||||
bne _020ade1e
|
||||
b _020ae1d6
|
||||
_020ade1e:
|
||||
b _020ae1fe
|
||||
_020ade20:
|
||||
cmp r1, #0x83
|
||||
bgt _020ade2e
|
||||
bge _020ade32
|
||||
cmp r1, #0x82
|
||||
bne _020ade2c
|
||||
b _020ae1f2
|
||||
_020ade2c:
|
||||
b _020ae1fe
|
||||
_020ade2e:
|
||||
cmp r1, #0x84
|
||||
bne _020ade34
|
||||
_020ade32:
|
||||
b _020ae222
|
||||
_020ade34:
|
||||
b _020ae1fe
|
||||
_020ade36:
|
||||
mov r1, #1
|
||||
bl _ZN11ItemManager8GiveKeysEj
|
||||
b _020ae222
|
||||
_020ade3e:
|
||||
mov r1, #1
|
||||
add r2, r1, #0
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade48:
|
||||
mov r1, #5
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade52:
|
||||
mov r1, #0x14
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade5c:
|
||||
mov r1, #0x64
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade66:
|
||||
mov r1, #0xc8
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade70:
|
||||
mov r1, #0x4b
|
||||
lsl r1, r1, #2
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ade7c:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #1
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
mov r1, #0
|
||||
blx _ZN11ItemManager12GetEquipItemEi
|
||||
ldr r2, [r0]
|
||||
mov r1, #1
|
||||
ldr r2, [r2, #0x20]
|
||||
blx r2
|
||||
b _020ae222
|
||||
_020ade98:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #2
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
mov r1, #1
|
||||
blx _ZN11ItemManager12GetEquipItemEi
|
||||
ldr r2, [r0]
|
||||
mov r1, #1
|
||||
ldr r2, [r2, #0x20]
|
||||
blx r2
|
||||
b _020ae222
|
||||
_020adeb4:
|
||||
mov r1, #4
|
||||
mov r2, #0xa
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adebe:
|
||||
mov r1, #7
|
||||
mov r2, #0xa
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adec8:
|
||||
mov r1, #5
|
||||
mov r2, #0x14
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020aded2:
|
||||
mov r1, #2
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adedc:
|
||||
mov r1, #3
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adee6:
|
||||
mov r1, #8
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adef0:
|
||||
mov r1, #6
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager13GiveEquipItemEij
|
||||
b _020ae222
|
||||
_020adefa:
|
||||
mov r1, #0x4b
|
||||
lsl r1, r1, #2
|
||||
ldr r3, [r0, r1]
|
||||
mov r2, #1
|
||||
orr r3, r2
|
||||
str r3, [r0, r1]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x13
|
||||
ldr r0, [r0]
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf12:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #2
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #9
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf2c:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #4
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0xa
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf46:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #8
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0xb
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf60:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #0x10
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0xc
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf7a:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
add r1, r2, #0
|
||||
ldr r3, [r0, r2]
|
||||
sub r1, #0x2c
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x2b
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adf96:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
add r1, r2, #0
|
||||
ldr r3, [r0, r2]
|
||||
add r1, #0xd4
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x30
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
mov r0, #3
|
||||
mov r1, #0
|
||||
bl func_ov09_0211ca20
|
||||
bl func_ov09_0211c700
|
||||
b _020ae222
|
||||
_020adfbe:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #0x40
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x16
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adfd8:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
ldr r3, [r0, r2]
|
||||
mov r1, #0x80
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x17
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020adff2:
|
||||
bl _ZN11ItemManager13UpgradeQuiverEv
|
||||
b _020ae222
|
||||
_020adff8:
|
||||
bl _ZN11ItemManager14UpgradeBombBagEv
|
||||
b _020ae222
|
||||
_020adffe:
|
||||
bl _ZN11ItemManager17UpgradeBombchuBagEv
|
||||
b _020ae222
|
||||
_020ae004:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xa
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae014:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xa
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae024:
|
||||
add r1, r0, #0
|
||||
add r1, #0x25
|
||||
ldrb r1, [r1]
|
||||
add r0, #0x25
|
||||
add r1, r1, #1
|
||||
strb r1, [r0]
|
||||
b _020ae222
|
||||
_020ae032:
|
||||
add r1, r0, #0
|
||||
add r1, #0x26
|
||||
ldrb r1, [r1]
|
||||
add r0, #0x26
|
||||
add r1, r1, #1
|
||||
strb r1, [r0]
|
||||
b _020ae222
|
||||
_020ae040:
|
||||
add r1, r0, #0
|
||||
add r1, #0x24
|
||||
ldrb r1, [r1]
|
||||
add r0, #0x24
|
||||
add r1, r1, #1
|
||||
strb r1, [r0]
|
||||
b _020ae222
|
||||
_020ae04e:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xc
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x8c
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
ldr r0, _020ae248 ; =gHealthManager
|
||||
mov r1, #5
|
||||
ldr r0, [r0]
|
||||
strh r1, [r0, #8]
|
||||
b _020ae222
|
||||
_020ae072:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xc
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae082:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x7e
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020ae090:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x7d
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020ae09e:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x7f
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
b _020ae222
|
||||
_020ae0ac:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x18
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae0bc:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x18
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae0cc:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x16
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae0dc:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x1a
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae0ec:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x1c
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae0fc:
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0x1a
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae10c:
|
||||
mov r1, #0
|
||||
_020ae10e:
|
||||
add r2, r0, r1
|
||||
add r2, #0xbc
|
||||
ldrb r2, [r2]
|
||||
cmp r2, #0
|
||||
bne _020ae120
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager9SetPotionEjj
|
||||
b _020ae222
|
||||
_020ae120:
|
||||
add r1, r1, #1
|
||||
cmp r1, #2
|
||||
blt _020ae10e
|
||||
b _020ae222
|
||||
_020ae128:
|
||||
mov r1, #0
|
||||
_020ae12a:
|
||||
add r2, r0, r1
|
||||
add r2, #0xbc
|
||||
ldrb r2, [r2]
|
||||
cmp r2, #0
|
||||
bne _020ae13c
|
||||
mov r2, #2
|
||||
blx _ZN11ItemManager9SetPotionEjj
|
||||
b _020ae222
|
||||
_020ae13c:
|
||||
add r1, r1, #1
|
||||
cmp r1, #2
|
||||
blt _020ae12a
|
||||
b _020ae222
|
||||
_020ae144:
|
||||
mov r1, #0
|
||||
_020ae146:
|
||||
add r2, r0, r1
|
||||
add r2, #0xbc
|
||||
ldrb r2, [r2]
|
||||
cmp r2, #0
|
||||
bne _020ae158
|
||||
mov r2, #3
|
||||
blx _ZN11ItemManager9SetPotionEjj
|
||||
b _020ae222
|
||||
_020ae158:
|
||||
add r1, r1, #1
|
||||
cmp r1, #2
|
||||
blt _020ae146
|
||||
b _020ae222
|
||||
_020ae160:
|
||||
mov r1, #0xe1
|
||||
ldr r2, [r0, #0xc]
|
||||
lsl r1, r1, #4
|
||||
add r1, r2, r1
|
||||
str r1, [r0, #0xc]
|
||||
b _020ae222
|
||||
_020ae16c:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
ldr r1, _020ae24c ; =0x00000126
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
mov r0, #6
|
||||
mov r1, #8
|
||||
bl func_ov09_0211ca20
|
||||
b _020ae222
|
||||
_020ae182:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
ldr r1, _020ae250 ; =0x00000127
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
mov r0, #4
|
||||
mov r1, #8
|
||||
bl func_ov09_0211ca20
|
||||
b _020ae222
|
||||
_020ae198:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x4a
|
||||
ldr r0, [r0]
|
||||
lsl r1, r1, #2
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
mov r0, #3
|
||||
mov r1, #8
|
||||
bl func_ov09_0211ca20
|
||||
b _020ae222
|
||||
_020ae1b0:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
ldr r1, _020ae254 ; =0x00000129
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
mov r0, #2
|
||||
mov r1, #8
|
||||
bl func_ov09_0211ca20
|
||||
b _020ae222
|
||||
_020ae1c6:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #1
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xe
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae1d6:
|
||||
mov r2, #0x4b
|
||||
lsl r2, r2, #2
|
||||
mov r1, #2
|
||||
ldr r3, [r0, r2]
|
||||
lsl r1, r1, #0xe
|
||||
orr r1, r3
|
||||
str r1, [r0, r2]
|
||||
b _020ae222
|
||||
_020ae1e6:
|
||||
mov r1, #9
|
||||
mvn r1, r1
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ae1f2:
|
||||
mov r1, #0x31
|
||||
mvn r1, r1
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
b _020ae222
|
||||
_020ae1fe:
|
||||
cmp r1, #0x4b
|
||||
blt _020ae222
|
||||
cmp r1, #0x6a
|
||||
bgt _020ae222
|
||||
mov r2, #0x4a
|
||||
lsl r2, r2, #2
|
||||
add r1, #0x15
|
||||
add r3, r0, r2
|
||||
lsr r0, r1, #5
|
||||
mov r4, #0x1f
|
||||
lsl r2, r0, #2
|
||||
mov r5, #1
|
||||
and r1, r4
|
||||
add r4, r5, #0
|
||||
ldr r0, [r3, r2]
|
||||
lsl r4, r1
|
||||
orr r0, r4
|
||||
str r0, [r3, r2]
|
||||
_020ae222:
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x7d
|
||||
ldr r0, [r0]
|
||||
blx _ZN14AdventureFlags3GetEj
|
||||
cmp r0, #0
|
||||
beq _020ae270
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
mov r1, #0x7e
|
||||
ldr r0, [r0]
|
||||
blx _ZN14AdventureFlags3GetEj
|
||||
cmp r0, #0
|
||||
beq _020ae270
|
||||
ldr r0, _020ae244 ; =gAdventureFlags
|
||||
b _020ae258
|
||||
nop
|
||||
_020ae244: .word gAdventureFlags
|
||||
_020ae248: .word gHealthManager
|
||||
_020ae24c: .word 0x00000126
|
||||
_020ae250: .word 0x00000127
|
||||
_020ae254: .word 0x00000129
|
||||
_020ae258:
|
||||
mov r1, #0x7f
|
||||
ldr r0, [r0]
|
||||
blx _ZN14AdventureFlags3GetEj
|
||||
cmp r0, #0
|
||||
beq _020ae270
|
||||
ldr r0, _020ae274 ; =gAdventureFlags
|
||||
mov r1, #0x80
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
blx _ZN14AdventureFlags3SetEjb
|
||||
_020ae270:
|
||||
pop {r3, r4, r5, pc}
|
||||
nop
|
||||
_020ae274: .word gAdventureFlags
|
||||
|
||||
.global _ZN11ItemManager13GiveEquipItemEij
|
||||
thumb_func_start _ZN11ItemManager13GiveEquipItemEij
|
||||
_ZN11ItemManager13GiveEquipItemEij: ; 0x020ae278
|
||||
.global _ZN11ItemManager13GiveEquipItemEit
|
||||
thumb_func_start _ZN11ItemManager13GiveEquipItemEit
|
||||
_ZN11ItemManager13GiveEquipItemEit: ; 0x020ae278
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r1, #0
|
||||
str r2, [sp]
|
||||
@@ -815,7 +42,7 @@ _ZN11ItemManager13GiveEquipItemEij: ; 0x020ae278
|
||||
_020ae2bc:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end _ZN11ItemManager13GiveEquipItemEij
|
||||
thumb_func_end _ZN11ItemManager13GiveEquipItemEit
|
||||
|
||||
.global _ZN11ItemManager13UnequipPotionEv
|
||||
thumb_func_start _ZN11ItemManager13UnequipPotionEv
|
||||
@@ -842,9 +69,9 @@ _ZNK11ItemManager12GetMaxRupeesEv: ; 0x020ae2d4
|
||||
arm_func_end _ZNK11ItemManager12GetMaxRupeesEv
|
||||
_020ae2dc: .word 0x0000270f
|
||||
|
||||
.global _ZN11ItemManager10GiveRupeesEjj
|
||||
arm_func_start _ZN11ItemManager10GiveRupeesEjj
|
||||
_ZN11ItemManager10GiveRupeesEjj: ; 0x020ae2e0
|
||||
.global _ZN11ItemManager10GiveRupeesEsi
|
||||
arm_func_start _ZN11ItemManager10GiveRupeesEsi
|
||||
_ZN11ItemManager10GiveRupeesEsi: ; 0x020ae2e0
|
||||
stmdb sp!, {r4, r5, r6, lr}
|
||||
mov r6, r0
|
||||
ldrh r3, [r6, #0x22]
|
||||
@@ -876,7 +103,7 @@ _020ae344:
|
||||
strh r4, [r6, #0x22]
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
arm_func_end _ZN11ItemManager10GiveRupeesEjj
|
||||
arm_func_end _ZN11ItemManager10GiveRupeesEsi
|
||||
_020ae34c: .word data_027e103c
|
||||
|
||||
.global _ZNK11ItemManager18func_ov00_020ae350Ev
|
||||
@@ -1115,9 +342,9 @@ _ZN11ItemManager18func_ov00_020ae4dcEj: ; 0x020ae4dc
|
||||
bx lr
|
||||
arm_func_end _ZN11ItemManager18func_ov00_020ae4dcEj
|
||||
|
||||
.global _ZN11ItemManager9SetPotionEjj
|
||||
arm_func_start _ZN11ItemManager9SetPotionEjj
|
||||
_ZN11ItemManager9SetPotionEjj: ; 0x020ae50c
|
||||
.global _ZN11ItemManager9SetPotionEjh
|
||||
arm_func_start _ZN11ItemManager9SetPotionEjh
|
||||
_ZN11ItemManager9SetPotionEjh: ; 0x020ae50c
|
||||
add r3, r0, r1
|
||||
strb r2, [r3, #0xbc]
|
||||
cmp r2, #0
|
||||
@@ -1141,7 +368,7 @@ _020ae544:
|
||||
orr r0, r2, r1, lsl r0
|
||||
str r0, [ip, r3, lsl #2]
|
||||
bx lr
|
||||
arm_func_end _ZN11ItemManager9SetPotionEjj
|
||||
arm_func_end _ZN11ItemManager9SetPotionEjh
|
||||
|
||||
.global _ZNK11ItemManager9HasPotionEj
|
||||
arm_func_start _ZNK11ItemManager9HasPotionEj
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
.extern _ZN10PlayerBase8TeleportEP5Vec3psibb
|
||||
.extern _ZN10PlayerBase8vfunc_04Ev
|
||||
.extern _ZN10PlayerBase9AddHealthEs
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager12GetEquipItemEi
|
||||
.extern _ZN11ItemManager12GetItemModelEj
|
||||
.extern _ZN11ItemManager13UnequipPotionEv
|
||||
|
||||
@@ -15332,7 +15332,7 @@ func_ov00_020bd510: ; 0x020bd510
|
||||
ldmltia sp!, {r3, r4, r5, pc}
|
||||
rsb r1, r2, #0
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
mvn lr, #0
|
||||
mov r3, #0
|
||||
str r3, [sp, #0xc]
|
||||
|
||||
+1
-1
@@ -510,7 +510,7 @@
|
||||
.extern func_ov09_02118cd4
|
||||
.extern func_ov09_0211c724
|
||||
.extern func_ov09_0211c808
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov12_02134208
|
||||
.extern func_ov14_02127df4
|
||||
|
||||
+1
-1
@@ -9681,7 +9681,7 @@ _02108b9c:
|
||||
str r0, [r4, #0x74]
|
||||
ldr r0, [sp, #4]
|
||||
ldr r1, [sp]
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
b _02108be8
|
||||
_02108bb4:
|
||||
ldr r0, _02108cf0 ; =gItemManager
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
.extern Divide
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager13EquipShipPartEjj
|
||||
.extern _ZN11ItemManager16SetShipPartCountEjjc
|
||||
.extern _ZN11ItemManager16SetTreasureCountEjc
|
||||
|
||||
+10
-10
@@ -16992,9 +16992,9 @@ _0211c6f2:
|
||||
thumb_func_end func_ov09_0211c6b4
|
||||
_0211c6fc: .word gItemManager
|
||||
|
||||
.global func_ov09_0211c700
|
||||
thumb_func_start func_ov09_0211c700
|
||||
func_ov09_0211c700: ; 0x0211c700
|
||||
.global EquipLinebeckCannon
|
||||
thumb_func_start EquipLinebeckCannon
|
||||
EquipLinebeckCannon: ; 0x0211c700
|
||||
push {r3, lr}
|
||||
ldr r0, _0211c720 ; =gItemManager
|
||||
mov r1, #3
|
||||
@@ -17010,7 +17010,7 @@ func_ov09_0211c700: ; 0x0211c700
|
||||
_0211c71c:
|
||||
pop {r3, pc}
|
||||
nop
|
||||
thumb_func_end func_ov09_0211c700
|
||||
thumb_func_end EquipLinebeckCannon
|
||||
_0211c720: .word gItemManager
|
||||
|
||||
.global func_ov09_0211c724
|
||||
@@ -17414,7 +17414,7 @@ func_ov09_0211c9a8: ; 0x0211c9a8
|
||||
add r1, r0, #0
|
||||
add r0, r6, #0
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
blx _ZN11ItemManager10GiveRupeesEsi
|
||||
ldr r0, _0211c9e4 ; =gItemManager
|
||||
add r1, r5, #0
|
||||
ldr r6, [r0]
|
||||
@@ -17445,7 +17445,7 @@ func_ov09_0211c9e8: ; 0x0211c9e8
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
mov r2, #1
|
||||
blx _ZN11ItemManager10GiveRupeesEjj
|
||||
blx _ZN11ItemManager10GiveRupeesEsi
|
||||
ldr r0, _0211ca1c ; =gItemManager
|
||||
add r1, r5, #0
|
||||
ldr r4, [r0]
|
||||
@@ -17463,9 +17463,9 @@ func_ov09_0211c9e8: ; 0x0211c9e8
|
||||
thumb_func_end func_ov09_0211c9e8
|
||||
_0211ca1c: .word gItemManager
|
||||
|
||||
.global func_ov09_0211ca20
|
||||
thumb_func_start func_ov09_0211ca20
|
||||
func_ov09_0211ca20: ; 0x0211ca20
|
||||
.global GiveShipPart
|
||||
thumb_func_start GiveShipPart
|
||||
GiveShipPart: ; 0x0211ca20
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
add r5, r0, #0
|
||||
@@ -17538,7 +17538,7 @@ _0211ca94:
|
||||
add sp, #4
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end func_ov09_0211ca20
|
||||
thumb_func_end GiveShipPart
|
||||
_0211caa8: .word gItemManager
|
||||
_0211caac: .word data_ov09_0211f294
|
||||
_0211cab0: .word data_ov09_0211f298
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN5Actor10SetUnk_11bEv
|
||||
.extern _ZN5Actor11SetVelocityEP5Vec3p
|
||||
.extern _ZN5Actor12ApplyGravityEv
|
||||
|
||||
@@ -371,7 +371,7 @@ _0213b2f8:
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
ldr r0, [r5, #0x158]
|
||||
mvn r1, #0
|
||||
cmp r0, #0
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
.extern _ZN11ItemManager18EquipItem_vfunc_38Ei
|
||||
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
|
||||
.extern _ZN11ItemManager8GiveItemEi
|
||||
.extern _ZN11ItemManager9SetPotionEjj
|
||||
.extern _ZN11ItemManager9SetPotionEjh
|
||||
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
|
||||
.extern _ZN12ActorManager13FindActorByIdEj
|
||||
.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j
|
||||
|
||||
@@ -5280,7 +5280,7 @@ _0213f516:
|
||||
ldr r0, _0213f598 ; =gItemManager
|
||||
mov r2, #0
|
||||
ldr r0, [r0]
|
||||
blx _ZN11ItemManager9SetPotionEjj
|
||||
blx _ZN11ItemManager9SetPotionEjh
|
||||
b _0213f534
|
||||
_0213f52c:
|
||||
add r1, r1, #1
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@
|
||||
.extern _ZN10PlayerBase8TeleportEP5Vec3psibb
|
||||
.extern _ZN10PlayerBase8vfunc_04Ev
|
||||
.extern _ZN10PlayerBase9AddHealthEs
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager10SetUnk_09eEjt
|
||||
.extern _ZN11ItemManager15LoadFanfareItemEi
|
||||
.extern _ZN11ItemManager18func_ov00_020ad528Ev
|
||||
@@ -892,7 +892,7 @@
|
||||
.extern func_ov09_0211c6b4
|
||||
.extern func_ov09_0211c724
|
||||
.extern func_ov09_0211c808
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov09_0211cc74
|
||||
.extern func_ov09_0211cc98
|
||||
|
||||
+4
-4
@@ -44522,7 +44522,7 @@ _021452d4:
|
||||
bl func_ov15_0214651c
|
||||
mov r1, r0
|
||||
mov r0, r4
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
b _02145334
|
||||
_02145300:
|
||||
cmp r5, #0x30
|
||||
@@ -54185,7 +54185,7 @@ func_ov15_0214d358: ; 0x0214d358
|
||||
mov r1, r0
|
||||
mov r0, r5
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
ldr r1, [r4, #0x158]
|
||||
ldr r0, _0214d3dc ; =data_ov00_020eec9c
|
||||
add r1, r1, #0xfa
|
||||
@@ -88224,7 +88224,7 @@ _0216a8a8:
|
||||
bl func_ov15_0214651c
|
||||
mov r1, r0
|
||||
mov r0, r6
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
b _0216a8f8
|
||||
_0216a8cc:
|
||||
cmp r4, #0x30
|
||||
@@ -99853,7 +99853,7 @@ func_ov15_02174794: ; 0x02174794
|
||||
mov r1, r0
|
||||
mov r0, r5
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
ldr r1, [r4, #0x2c]
|
||||
ldr r0, _02174878 ; =data_ov00_020eec9c
|
||||
add r1, r1, #0xfa
|
||||
|
||||
+1
-1
@@ -323,7 +323,7 @@
|
||||
.extern func_ov09_0211c45c
|
||||
.extern func_ov09_0211c724
|
||||
.extern func_ov09_0211c808
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov14_02120ac4
|
||||
.extern func_ov14_021231d4
|
||||
|
||||
+1
-1
@@ -2701,7 +2701,7 @@ _0216faf8:
|
||||
blx func_ov09_0211c724
|
||||
ldr r0, [sp, #4]
|
||||
ldr r1, [sp]
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
_0216fb20:
|
||||
mov r0, r4
|
||||
add sp, sp, #0xc
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
.extern Divide
|
||||
.extern LoadTreasureItemFanfare
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager8GiveAmmoEit
|
||||
.extern _ZN12ActorManager8GetActorEP8ActorRef
|
||||
.extern _ZN5Actor10SetUnk_11bEv
|
||||
@@ -183,7 +183,7 @@
|
||||
.extern func_ov09_0211c1a8
|
||||
.extern func_ov09_0211c980
|
||||
.extern func_ov09_0211c9a0
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov09_0211cca4
|
||||
.extern func_ov09_0211ccb4
|
||||
|
||||
+2
-2
@@ -1049,7 +1049,7 @@ _0217cae4:
|
||||
ldr r0, [r0]
|
||||
rsb r1, r1, #0
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
bl func_ov31_0217cf1c
|
||||
ldr r0, [r0, #0x470]
|
||||
cmp r0, #0
|
||||
@@ -5443,7 +5443,7 @@ func_ov31_0217ff08: ; 0x0217ff08
|
||||
bl func_ov31_02180260
|
||||
mov r1, r0
|
||||
mov r0, r4
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
bl func_ov31_0217bdb8
|
||||
bl func_ov31_0217bd80
|
||||
cmp r0, #0
|
||||
|
||||
+1
-1
@@ -239,7 +239,7 @@
|
||||
.extern func_ov09_0211c9a0
|
||||
.extern func_ov09_0211c9a8
|
||||
.extern func_ov09_0211c9e8
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov09_0211cb3c
|
||||
.extern func_ov09_0211cb5c
|
||||
|
||||
+1
-1
@@ -1976,7 +1976,7 @@ func_ov45_0218ad80: ; 0x0218ad80
|
||||
add r0, ip, r0, asr #1
|
||||
sub r1, lr, r1
|
||||
mov r4, #0x2b
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
b _0218ae0c
|
||||
_0218ae00:
|
||||
sub r0, lr, #0x48
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
.extern Approach_thunk
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager16SetTreasureCountEjc
|
||||
.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j
|
||||
.extern _ZN12ActorManager22FindNearestActorOfTypeEP8ActorRefPS_jP5Vec3p
|
||||
|
||||
+1
-1
@@ -3035,7 +3035,7 @@ _02192754:
|
||||
strb r2, [r5, #0x48b]
|
||||
ldr r0, [r0]
|
||||
mov r2, #1
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
ldrb r2, [r5, #0x48a]
|
||||
ldr r0, _021927d0 ; =gItemManager
|
||||
sub r1, r4, #1
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
.extern Divide
|
||||
.extern _ZN10ActorRupee18func_ov14_0213b5f4EjiP5Vec3pb
|
||||
.extern _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder
|
||||
.extern _ZN11ItemManager10GiveRupeesEjj
|
||||
.extern _ZN11ItemManager10GiveRupeesEsi
|
||||
.extern _ZN11ItemManager10RemoveItemEi
|
||||
.extern _ZN11ItemManager12GetItemModelEj
|
||||
.extern _ZN5Actor10SetUnk_11bEv
|
||||
|
||||
+1
-1
@@ -894,7 +894,7 @@ _02196068:
|
||||
mov r0, r5
|
||||
rsb r1, r1, #0
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager10GiveRupeesEjj
|
||||
bl _ZN11ItemManager10GiveRupeesEsi
|
||||
ldrb r1, [r4, #0x5c9]
|
||||
ldr r0, _021960f0 ; =gItemManager
|
||||
add r1, r1, #1
|
||||
|
||||
+1
-1
@@ -169,7 +169,7 @@
|
||||
.extern func_ov05_021082e4
|
||||
.extern func_ov09_0211c724
|
||||
.extern func_ov09_0211c808
|
||||
.extern func_ov09_0211ca20
|
||||
.extern GiveShipPart
|
||||
.extern func_ov09_0211cac0
|
||||
.extern func_ov14_021448f4
|
||||
.extern func_ov14_02144a90
|
||||
|
||||
+1
-1
@@ -1159,7 +1159,7 @@ _021963c4:
|
||||
blx func_ov09_0211c724
|
||||
ldr r0, [sp, #4]
|
||||
ldr r1, [sp]
|
||||
blx func_ov09_0211ca20
|
||||
blx GiveShipPart
|
||||
_021963ec:
|
||||
mov r0, r4
|
||||
add sp, sp, #0xc
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
.extern _ZN11ItemManager12GetItemModelEj
|
||||
.extern _ZN11ItemManager17EquipPreviousItemEv
|
||||
.extern _ZN11ItemManager9SetPotionEjj
|
||||
.extern _ZN11ItemManager9SetPotionEjh
|
||||
.extern _ZN12ActorManager8GetActorEP8ActorRef
|
||||
.extern _ZN13LinkStateBase12GetGrabActorEv
|
||||
.extern _ZN13LinkStateBase12GetPlayerPosEv
|
||||
|
||||
+1
-1
@@ -432,7 +432,7 @@ _02199244:
|
||||
ldr r1, [r4, #0xc]
|
||||
ldr r0, [r0]
|
||||
mov r2, #0
|
||||
bl _ZN11ItemManager9SetPotionEjj
|
||||
bl _ZN11ItemManager9SetPotionEjh
|
||||
ldr r0, _0219926c ; =gItemManager
|
||||
ldr r0, [r0]
|
||||
bl _ZN11ItemManager17EquipPreviousItemEv
|
||||
|
||||
@@ -224,7 +224,7 @@ enum ItemId_ {
|
||||
/* 0x80 */ ItemId_Unk_128 = 128,
|
||||
/* 0x81 */ ItemId_Rupoor10 = 129,
|
||||
/* 0x82 */ ItemId_Rupoor50 = 130,
|
||||
|
||||
/* 0x83 */ ItemId_Unk_131 = 131,
|
||||
/* 0x84 */ ItemId_Unk_132 = 132,
|
||||
/* 0x85 */ ItemId_Unk_133 = 133,
|
||||
/* 0x86 */ ItemId_Unk_134 = 134,
|
||||
|
||||
@@ -307,7 +307,7 @@ public:
|
||||
|
||||
// Rupees
|
||||
u32 GetMaxRupees() const;
|
||||
void GiveRupees(u16 amount, unk32 param2);
|
||||
void GiveRupees(s16 amount, unk32 param2);
|
||||
|
||||
// Potion
|
||||
void SetPotion(u32 index, Potion potion);
|
||||
|
||||
@@ -23,7 +23,7 @@ enum AdventureFlag_ {
|
||||
|
||||
/* 0x30 */ AdventureFlag_Cannon = 48,
|
||||
|
||||
/* 0x7d */ AdventureFlag_Azurine = 126,
|
||||
/* 0x7d */ AdventureFlag_Azurine = 125,
|
||||
/* 0x7e */ AdventureFlag_Crimsonine = 126,
|
||||
/* 0x7f */ AdventureFlag_Aquanine = 127,
|
||||
/* 0x80 */ AdventureFlag_Unk_128 = 128,
|
||||
|
||||
@@ -458,3 +458,282 @@ THUMB bool ItemManager::GetFanfareItemScale(Vec3p *scale) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" void GiveShipPart(ShipPart part, ShipType type);
|
||||
extern "C" void EquipLinebeckCannon();
|
||||
THUMB void ItemManager::GiveItem(ItemId id) {
|
||||
switch (id) {
|
||||
case ItemId_SmallKey: {
|
||||
this->GiveKeys(1);
|
||||
} break;
|
||||
|
||||
case ItemId_GreenRupee: {
|
||||
this->GiveRupees(1, true);
|
||||
} break;
|
||||
|
||||
case ItemId_BlueRupee: {
|
||||
this->GiveRupees(5, true);
|
||||
} break;
|
||||
|
||||
case ItemId_RedRupee: {
|
||||
this->GiveRupees(20, true);
|
||||
} break;
|
||||
|
||||
case ItemId_BigGreenRupee: {
|
||||
this->GiveRupees(100, true);
|
||||
} break;
|
||||
|
||||
case ItemId_BigRedRupee: {
|
||||
this->GiveRupees(200, true);
|
||||
} break;
|
||||
|
||||
case ItemId_GoldRupee: {
|
||||
this->GiveRupees(300, true);
|
||||
} break;
|
||||
|
||||
case ItemId_OshusSword: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_OshusSword);
|
||||
this->GetEquipItem(ItemFlag_OshusSword)->GiveAmmo(1);
|
||||
} break;
|
||||
|
||||
case ItemId_WoodenShield: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_WoodenShield);
|
||||
this->GetEquipItem(ItemFlag_WoodenShield)->GiveAmmo(1);
|
||||
} break;
|
||||
|
||||
case ItemId_BombBag: {
|
||||
this->GiveEquipItem(ItemFlag_BombBag, 10);
|
||||
} break;
|
||||
|
||||
case ItemId_BombchuBag: {
|
||||
this->GiveEquipItem(ItemFlag_BombchuBag, 10);
|
||||
} break;
|
||||
|
||||
case ItemId_Bow: {
|
||||
this->GiveEquipItem(ItemFlag_Bow, 20);
|
||||
} break;
|
||||
|
||||
case ItemId_Boomerang: {
|
||||
this->GiveEquipItem(ItemFlag_Boomerang, 1);
|
||||
} break;
|
||||
|
||||
case ItemId_Scoop: {
|
||||
this->GiveEquipItem(ItemFlag_Shovel, 1);
|
||||
} break;
|
||||
|
||||
case ItemId_Hammer: {
|
||||
this->GiveEquipItem(ItemFlag_Hammer, 1);
|
||||
} break;
|
||||
|
||||
case ItemId_Rope: {
|
||||
this->GiveEquipItem(ItemFlag_GrapplingHook, 1);
|
||||
} break;
|
||||
|
||||
case ItemId_PhantomHourglass: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_Hourglass);
|
||||
gAdventureFlags->Set(AdventureFlag_Hourglass, true);
|
||||
} break;
|
||||
|
||||
case ItemId_SWSeaChart: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SeaChartSW);
|
||||
gAdventureFlags->Set(AdventureFlag_SWSeaChart, true);
|
||||
} break;
|
||||
|
||||
case ItemId_NWSeaChart: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SeaChartNW);
|
||||
gAdventureFlags->Set(AdventureFlag_NWSeaChart, true);
|
||||
} break;
|
||||
|
||||
case ItemId_SESeaChart: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SeaChartSE);
|
||||
gAdventureFlags->Set(AdventureFlag_SESeaChart, true);
|
||||
} break;
|
||||
|
||||
case ItemId_NESeaChart: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SeaChartNE);
|
||||
gAdventureFlags->Set(AdventureFlag_NESeaChart, true);
|
||||
} break;
|
||||
|
||||
case ItemId_FishingRod: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_FishingRod);
|
||||
gAdventureFlags->Set(AdventureFlag_FishingRod, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Cannon: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_Cannon);
|
||||
gAdventureFlags->Set(AdventureFlag_Cannon, true);
|
||||
GiveShipPart(ShipPart_Cannon, ShipType_Linebeck);
|
||||
EquipLinebeckCannon();
|
||||
} break;
|
||||
|
||||
case ItemId_SunKey: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SunKey);
|
||||
gAdventureFlags->Set(AdventureFlag_SunKey, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Unk_39: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_Unk_39);
|
||||
gAdventureFlags->Set(AdventureFlag_Unk_23, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Quiver: {
|
||||
this->UpgradeQuiver();
|
||||
} break;
|
||||
|
||||
case ItemId_BigBombBag: {
|
||||
this->UpgradeBombBag();
|
||||
} break;
|
||||
|
||||
case ItemId_BigBombchuBag: {
|
||||
this->UpgradeBombchuBag();
|
||||
} break;
|
||||
|
||||
case ItemId_KingsKey: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_KingsKey);
|
||||
} break;
|
||||
|
||||
case ItemId_GhostKey: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_GhostKey);
|
||||
} break;
|
||||
|
||||
case ItemId_PowerGem: {
|
||||
this->mNumGems[Gem_Power] += 1;
|
||||
} break;
|
||||
|
||||
case ItemId_WisdomGem: {
|
||||
this->mNumGems[Gem_Wisdom] += 1;
|
||||
} break;
|
||||
|
||||
case ItemId_CourageGem: {
|
||||
this->mNumGems[Gem_Courage] += 1;
|
||||
} break;
|
||||
|
||||
case ItemId_SalvageArm: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SalvageArm);
|
||||
gAdventureFlags->Set(AdventureFlag_SalvageArm, true);
|
||||
gHealthManager->mSalvageArmHealth = 5;
|
||||
} break;
|
||||
|
||||
case ItemId_SwordsmanScroll: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_SwordsmansScroll);
|
||||
} break;
|
||||
|
||||
case ItemId_Crimsonine: {
|
||||
gAdventureFlags->Set(AdventureFlag_Crimsonine, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Azurine: {
|
||||
gAdventureFlags->Set(AdventureFlag_Azurine, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Aquanine: {
|
||||
gAdventureFlags->Set(AdventureFlag_Aquanine, true);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfPowerUpgradeLvl1: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_PowerLv1);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfWisdomUpgradeLvl1: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_WisdomLv1);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfCourageUpgradeLvl1: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_CourageLv1);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfPowerUpgradeLvl2: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_PowerLv2);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfWisdomUpgradeLvl2: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_WisdomLv2);
|
||||
} break;
|
||||
|
||||
case ItemId_SpiritOfCourageUpgradeLvl2: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_CourageLv2);
|
||||
} break;
|
||||
|
||||
case ItemId_RedPotion: {
|
||||
for (s32 i = 0; i < 2; ++i) {
|
||||
if (this->mPotions[i] != Potion_None) continue;
|
||||
this->SetPotion(i, Potion_Red);
|
||||
break;
|
||||
}
|
||||
} break;
|
||||
|
||||
case ItemId_PurplePotion: {
|
||||
for (s32 i = 0; i < 2; ++i) {
|
||||
if (this->mPotions[i] != Potion_None) continue;
|
||||
this->SetPotion(i, Potion_Purple);
|
||||
break;
|
||||
}
|
||||
} break;
|
||||
|
||||
case ItemId_YellowPotion: {
|
||||
for (s32 i = 0; i < 2; ++i) {
|
||||
if (this->mPotions[i] != Potion_None) continue;
|
||||
this->SetPotion(i, Potion_Yellow);
|
||||
break;
|
||||
}
|
||||
} break;
|
||||
|
||||
case ItemId_SandOfHours: {
|
||||
this->mHourglassSandFrames += 3600;
|
||||
} break;
|
||||
|
||||
case ItemId_GoldenChimney: {
|
||||
gAdventureFlags->Set(AdventureFlag_ReceivedGoldenChimney, true);
|
||||
GiveShipPart(ShipPart_Chimney, ShipType_Golden);
|
||||
} break;
|
||||
|
||||
case ItemId_GoldenHandrail: {
|
||||
gAdventureFlags->Set(AdventureFlag_ReceivedGoldenHandrail, true);
|
||||
GiveShipPart(ShipPart_Handrail, ShipType_Golden);
|
||||
} break;
|
||||
|
||||
case ItemId_GoldenCannon: {
|
||||
gAdventureFlags->Set(AdventureFlag_ReceivedGoldenCannon, true);
|
||||
GiveShipPart(ShipPart_Cannon, ShipType_Golden);
|
||||
} break;
|
||||
|
||||
case ItemId_GoldenHull: {
|
||||
gAdventureFlags->Set(AdventureFlag_ReceivedGoldenHull, true);
|
||||
GiveShipPart(ShipPart_Hull, ShipType_Golden);
|
||||
} break;
|
||||
|
||||
case ItemId_CycloneSlate: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_CycloneSlate);
|
||||
} break;
|
||||
|
||||
case ItemId_Unk_128: {
|
||||
SET_FLAG(this->mItemFlags.flags, ItemFlag_Unk_47);
|
||||
} break;
|
||||
|
||||
case ItemId_Rupoor10: {
|
||||
this->GiveRupees(-10, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Rupoor50: {
|
||||
this->GiveRupees(-50, true);
|
||||
} break;
|
||||
|
||||
case ItemId_Unk_0: break;
|
||||
case ItemId_Unk_5: break;
|
||||
case ItemId_Unk_16: break;
|
||||
case ItemId_Unk_131: break;
|
||||
case ItemId_Unk_132: break;
|
||||
|
||||
default: {
|
||||
if (ItemId_TREASURE_CHART_START <= id && id <= ItemId_TREASURE_CHART_END) {
|
||||
SET_FLAG(this->mItemFlags.flags, id + ItemFlag_TREASURE_CHART_START - ItemId_TreasureChart1);
|
||||
}
|
||||
} break;
|
||||
}
|
||||
if (
|
||||
gAdventureFlags->Get(AdventureFlag_Azurine) &&
|
||||
gAdventureFlags->Get(AdventureFlag_Crimsonine) &&
|
||||
gAdventureFlags->Get(AdventureFlag_Aquanine)
|
||||
) {
|
||||
gAdventureFlags->Set(AdventureFlag_Unk_128, true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user