mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-14 03:56:06 -05:00
Merge pull request #148 from Kermalis/kermalis-kecleon_shop
Complete Kecleon Bros + Clean Kecleon/Kangaskhan
This commit is contained in:
3
Makefile
3
Makefile
@@ -124,7 +124,8 @@ $(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork
|
||||
|
||||
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
|
||||
|
||||
$(C_BUILDDIR)/kecleon_items_1.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
|
||||
# Stack size in sub_801A9E0 is funky with an unused var
|
||||
$(C_BUILDDIR)/kecleon_bros.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
|
||||
|
||||
|
||||
#### Main Rules ####
|
||||
|
||||
@@ -1548,7 +1548,7 @@ _08001298:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080012B8: .4byte gTeamInventory_203B460
|
||||
_080012B8: .4byte gTeamInventoryRef
|
||||
_080012BC: .4byte gRecruitedPokemonRef
|
||||
thumb_func_end sub_8001248
|
||||
|
||||
@@ -1607,7 +1607,7 @@ _08001306:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08001324: .4byte gTeamInventory_203B460
|
||||
_08001324: .4byte gTeamInventoryRef
|
||||
_08001328: .4byte gRecruitedPokemonRef
|
||||
thumb_func_end sub_80012C0
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@ _0801F074:
|
||||
b _0801F12E
|
||||
.align 2, 0
|
||||
_0801F0C8: .4byte gUnknown_203B270
|
||||
_0801F0CC: .4byte gTeamInventory_203B460
|
||||
_0801F0CC: .4byte gTeamInventoryRef
|
||||
_0801F0D0:
|
||||
ldr r0, _0801F0E0
|
||||
ldr r1, [r0]
|
||||
|
||||
@@ -173,7 +173,7 @@ _08021502:
|
||||
.align 2, 0
|
||||
_08021568: .4byte gUnknown_203B280
|
||||
_0802156C: .4byte gUnknown_80DC494
|
||||
_08021570: .4byte gTeamInventory_203B460
|
||||
_08021570: .4byte gTeamInventoryRef
|
||||
_08021574:
|
||||
mov r0, r10
|
||||
ldr r1, _08021598
|
||||
|
||||
@@ -2732,7 +2732,7 @@ _080441A4:
|
||||
.align 2, 0
|
||||
_080441AC: .4byte gDungeon
|
||||
_080441B0: .4byte 0x00000644
|
||||
_080441B4: .4byte gTeamInventory_203B460
|
||||
_080441B4: .4byte gTeamInventoryRef
|
||||
_080441B8: .4byte gRecruitedPokemonRef
|
||||
thumb_func_end sub_8044124
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ sub_8044CC8:
|
||||
adds r0, r1
|
||||
b _08044D34
|
||||
.align 2, 0
|
||||
_08044CE8: .4byte gTeamInventory_203B460
|
||||
_08044CE8: .4byte gTeamInventoryRef
|
||||
_08044CEC:
|
||||
adds r0, r1, 0
|
||||
cmp r0, 0x80
|
||||
@@ -97,7 +97,7 @@ sub_8044D40:
|
||||
bl FillInventoryGaps
|
||||
b _08044D88
|
||||
.align 2, 0
|
||||
_08044D70: .4byte gTeamInventory_203B460
|
||||
_08044D70: .4byte gTeamInventoryRef
|
||||
_08044D74:
|
||||
lsls r0, r1, 24
|
||||
lsrs r0, 24
|
||||
|
||||
@@ -122,7 +122,7 @@ _08045E94:
|
||||
.align 2, 0
|
||||
_08045EA8: .4byte gDungeon
|
||||
_08045EAC: .4byte 0x0000065b
|
||||
_08045EB0: .4byte gTeamInventory_203B460
|
||||
_08045EB0: .4byte gTeamInventoryRef
|
||||
_08045EB4:
|
||||
ldr r0, [sp, 0xAC]
|
||||
adds r0, 0x60
|
||||
|
||||
@@ -36,7 +36,7 @@ _08047180:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804718C: .4byte gTeamInventory_203B460
|
||||
_0804718C: .4byte gTeamInventoryRef
|
||||
thumb_func_end sub_8047158
|
||||
|
||||
thumb_func_start sub_8047190
|
||||
|
||||
@@ -14912,7 +14912,7 @@ _08052196:
|
||||
movs r0, 0
|
||||
b _080521CA
|
||||
.align 2, 0
|
||||
_080521B4: .4byte gTeamInventory_203B460
|
||||
_080521B4: .4byte gTeamInventoryRef
|
||||
_080521B8: .4byte gRecruitedPokemonRef
|
||||
_080521BC: .4byte 0x00008df8
|
||||
_080521C0: .4byte 0x00008e38
|
||||
|
||||
@@ -786,7 +786,7 @@ _0805DEFC: .4byte gGameOptionsRef
|
||||
_0805DF00: .4byte gRealInputs
|
||||
_0805DF04: .4byte gUnknown_202F22D
|
||||
_0805DF08: .4byte 0x01000200
|
||||
_0805DF0C: .4byte gTeamInventory_203B460
|
||||
_0805DF0C: .4byte gTeamInventoryRef
|
||||
_0805DF10: .4byte gDungeon
|
||||
_0805DF14: .4byte 0x0001820a
|
||||
_0805DF18: .4byte gUnknown_202EE00
|
||||
@@ -4319,7 +4319,7 @@ _0805FBB8: .4byte gFieldMenuGroundPtr
|
||||
_0805FBBC: .4byte gPlayTimeRef
|
||||
_0805FBC0: .4byte gUnknown_202DE30
|
||||
_0805FBC4: .4byte gUnknown_80F9174
|
||||
_0805FBC8: .4byte gTeamInventory_203B460
|
||||
_0805FBC8: .4byte gTeamInventoryRef
|
||||
_0805FBCC: .4byte gUnknown_80F9190
|
||||
_0805FBD0: .4byte gAvailablePokemonNames
|
||||
_0805FBD4: .4byte gUnknown_80F91A8
|
||||
@@ -4807,7 +4807,7 @@ _0805FF66:
|
||||
b _0805FFE8
|
||||
.align 2, 0
|
||||
_0805FFA8: .4byte gUnknown_202F240
|
||||
_0805FFAC: .4byte gTeamInventory_203B460
|
||||
_0805FFAC: .4byte gTeamInventoryRef
|
||||
_0805FFB0: .4byte gDungeon
|
||||
_0805FFB4: .4byte 0x0001357c
|
||||
_0805FFB8: .4byte gUnknown_202F258
|
||||
@@ -5256,7 +5256,7 @@ _0806033C:
|
||||
.align 2, 0
|
||||
_0806034C: .4byte gUnknown_202EE10
|
||||
_08060350: .4byte gUnknown_202F248
|
||||
_08060354: .4byte gTeamInventory_203B460
|
||||
_08060354: .4byte gTeamInventoryRef
|
||||
_08060358: .4byte gUnknown_202F240
|
||||
_0806035C: .4byte gRealInputs
|
||||
_08060360: .4byte gDungeon
|
||||
@@ -5553,7 +5553,7 @@ _08060592:
|
||||
b _08060794
|
||||
.align 2, 0
|
||||
_080605C0: .4byte gTeamToolboxAPtr
|
||||
_080605C4: .4byte gTeamInventory_203B460
|
||||
_080605C4: .4byte gTeamInventoryRef
|
||||
_080605C8: .4byte gUnknown_8106B60
|
||||
_080605CC:
|
||||
ldr r0, _08060630
|
||||
@@ -5605,7 +5605,7 @@ _080605FC:
|
||||
b _08060794
|
||||
.align 2, 0
|
||||
_08060630: .4byte gTeamToolboxBPtr
|
||||
_08060634: .4byte gTeamInventory_203B460
|
||||
_08060634: .4byte gTeamInventoryRef
|
||||
_08060638: .4byte gUnknown_8106B60
|
||||
_0806063C:
|
||||
mov r1, r9
|
||||
@@ -6012,7 +6012,7 @@ _08060964: .4byte gUnknown_202F238
|
||||
_08060968: .4byte gUnknown_202EE6C
|
||||
_0806096C: .4byte gDungeon
|
||||
_08060970: .4byte 0x0000065b
|
||||
_08060974: .4byte gTeamInventory_203B460
|
||||
_08060974: .4byte gTeamInventoryRef
|
||||
_08060978:
|
||||
mov r0, r10
|
||||
adds r0, 0x60
|
||||
@@ -6182,7 +6182,7 @@ _08060ABE:
|
||||
bl sub_8044FF0
|
||||
b _08060B3C
|
||||
.align 2, 0
|
||||
_08060AD4: .4byte gTeamInventory_203B460
|
||||
_08060AD4: .4byte gTeamInventoryRef
|
||||
_08060AD8: .4byte gUnknown_202F238
|
||||
_08060ADC: .4byte gDungeon
|
||||
_08060AE0: .4byte 0x0001357c
|
||||
@@ -6210,7 +6210,7 @@ _08060AE8:
|
||||
.align 2, 0
|
||||
_08060B10: .4byte gDungeon
|
||||
_08060B14: .4byte 0x0000065b
|
||||
_08060B18: .4byte gTeamInventory_203B460
|
||||
_08060B18: .4byte gTeamInventoryRef
|
||||
_08060B1C:
|
||||
ldrb r1, [r7, 0x2]
|
||||
movs r0, 0x37
|
||||
@@ -6356,7 +6356,7 @@ _08060C32:
|
||||
.align 2, 0
|
||||
_08060C50: .4byte gDungeon
|
||||
_08060C54: .4byte 0x0001357c
|
||||
_08060C58: .4byte gTeamInventory_203B460
|
||||
_08060C58: .4byte gTeamInventoryRef
|
||||
_08060C5C: .4byte 0x0000065b
|
||||
_08060C60:
|
||||
ldrb r1, [r7, 0x2]
|
||||
@@ -6586,7 +6586,7 @@ _08060E1A:
|
||||
.align 2, 0
|
||||
_08060E28: .4byte gDungeon
|
||||
_08060E2C: .4byte 0x0000065b
|
||||
_08060E30: .4byte gTeamInventory_203B460
|
||||
_08060E30: .4byte gTeamInventoryRef
|
||||
_08060E34: .4byte 0x0001357c
|
||||
thumb_func_end sub_8060D64
|
||||
|
||||
@@ -17762,7 +17762,7 @@ _08066798:
|
||||
ldr r0, _080667CC
|
||||
b _080667DE
|
||||
.align 2, 0
|
||||
_080667C0: .4byte gTeamInventory_203B460
|
||||
_080667C0: .4byte gTeamInventoryRef
|
||||
_080667C4: .4byte gUnknown_202DE58
|
||||
_080667C8: .4byte 0x00000133
|
||||
_080667CC: .4byte gUnknown_80F8D04
|
||||
@@ -17857,7 +17857,7 @@ _08066856:
|
||||
bl SendMessage
|
||||
b _080668BE
|
||||
.align 2, 0
|
||||
_0806688C: .4byte gTeamInventory_203B460
|
||||
_0806688C: .4byte gTeamInventoryRef
|
||||
_08066890: .4byte gUnknown_202DE58
|
||||
_08066894: .4byte gUnknown_80F8C7C
|
||||
_08066898:
|
||||
@@ -18139,7 +18139,7 @@ sub_8066AC0:
|
||||
ldr r0, _08066AF4
|
||||
b _08066B10
|
||||
.align 2, 0
|
||||
_08066AF0: .4byte gTeamInventory_203B460
|
||||
_08066AF0: .4byte gTeamInventoryRef
|
||||
_08066AF4: .4byte gUnknown_80F8D60
|
||||
_08066AF8:
|
||||
ldrb r1, [r5]
|
||||
|
||||
@@ -1857,7 +1857,7 @@ _0806DEC8:
|
||||
bl SendWaitingEndMessage
|
||||
b _0806DEF2
|
||||
.align 2, 0
|
||||
_0806DED4: .4byte gTeamInventory_203B460
|
||||
_0806DED4: .4byte gTeamInventoryRef
|
||||
_0806DED8: .4byte gDungeon
|
||||
_0806DEDC: .4byte 0x00000679
|
||||
_0806DEE0: .4byte 0x00000676
|
||||
|
||||
@@ -173,7 +173,7 @@ _08073E48:
|
||||
.align 2, 0
|
||||
_08073E64: .4byte gDungeon
|
||||
_08073E68: .4byte 0x0000065b
|
||||
_08073E6C: .4byte gTeamInventory_203B460
|
||||
_08073E6C: .4byte gTeamInventoryRef
|
||||
_08073E70:
|
||||
mov r0, r10
|
||||
adds r0, 0x60
|
||||
|
||||
@@ -1470,7 +1470,7 @@ _0807F204:
|
||||
movs r0, 0x2
|
||||
b _0807F31C
|
||||
.align 2, 0
|
||||
_0807F224: .4byte gTeamInventory_203B460
|
||||
_0807F224: .4byte gTeamInventoryRef
|
||||
_0807F228: .4byte gUnknown_80FE520
|
||||
_0807F22C:
|
||||
movs r0, 0xA6
|
||||
@@ -1597,7 +1597,7 @@ _0807F31C:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0807F324: .4byte gTeamInventory_203B460
|
||||
_0807F324: .4byte gTeamInventoryRef
|
||||
_0807F328: .4byte gDungeon
|
||||
_0807F32C: .4byte 0x000135cc
|
||||
_0807F330: .4byte 0x00000694
|
||||
@@ -1723,7 +1723,7 @@ _0807F41C: .4byte gDungeon
|
||||
_0807F420: .4byte 0x0000066e
|
||||
_0807F424: .4byte 0x0000066f
|
||||
_0807F428: .4byte gUnknown_80FE4B8
|
||||
_0807F42C: .4byte gTeamInventory_203B460
|
||||
_0807F42C: .4byte gTeamInventoryRef
|
||||
_0807F430: .4byte 0x000135cc
|
||||
_0807F434: .4byte 0x00000694
|
||||
_0807F438: .4byte 0x0000068c
|
||||
|
||||
@@ -791,7 +791,7 @@ _08080300:
|
||||
bl sub_80522F4
|
||||
b _0808034A
|
||||
.align 2, 0
|
||||
_0808030C: .4byte gTeamInventory_203B460
|
||||
_0808030C: .4byte gTeamInventoryRef
|
||||
_08080310: .4byte gUnknown_80FDC40
|
||||
_08080314:
|
||||
adds r0, r6, 0
|
||||
@@ -1032,7 +1032,7 @@ _080804B6:
|
||||
ldr r0, _080804C8
|
||||
b _080804D4
|
||||
.align 2, 0
|
||||
_080804C0: .4byte gTeamInventory_203B460
|
||||
_080804C0: .4byte gTeamInventoryRef
|
||||
_080804C4: .4byte gUnknown_80F4E0E
|
||||
_080804C8: .4byte gUnknown_80FD788
|
||||
_080804CC:
|
||||
|
||||
@@ -406,7 +406,7 @@ _080844FC: .4byte gDungeon
|
||||
_08084500: .4byte 0x0000068a
|
||||
_08084504: .4byte gUnknown_80FA32C
|
||||
_08084508: .4byte gUnknown_202DE58
|
||||
_0808450C: .4byte gTeamInventory_203B460
|
||||
_0808450C: .4byte gTeamInventoryRef
|
||||
_08084510: .4byte gUnknown_80FA448
|
||||
_08084514:
|
||||
lsls r1, r3, 2
|
||||
|
||||
@@ -717,7 +717,7 @@ _08086104:
|
||||
movs r0, 0x1
|
||||
b _0808611C
|
||||
.align 2, 0
|
||||
_08086108: .4byte gTeamInventory_203B460
|
||||
_08086108: .4byte gTeamInventoryRef
|
||||
_0808610C: .4byte gDungeon
|
||||
_08086110: .4byte 0x0001357c
|
||||
_08086114:
|
||||
|
||||
@@ -5658,7 +5658,7 @@ _0809BCE8:
|
||||
beq _0809BCF0
|
||||
movs r0, 0x3
|
||||
_0809BCF0:
|
||||
bl DisplayKeckleonDialogueSprite
|
||||
bl CreateKecleonBros
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809BD10
|
||||
@@ -6386,7 +6386,7 @@ _0809C2CA:
|
||||
movs r1, 0x1
|
||||
b _0809C318
|
||||
.align 2, 0
|
||||
_0809C304: .4byte gTeamInventory_203B460
|
||||
_0809C304: .4byte gTeamInventoryRef
|
||||
_0809C308: .4byte gUnknown_202DE58
|
||||
_0809C30C:
|
||||
ldr r0, [r6]
|
||||
@@ -7562,7 +7562,7 @@ sub_809CBBC:
|
||||
.align 2, 0
|
||||
_0809CC0C: .4byte gUnknown_81163E4
|
||||
_0809CC10: .4byte gItemParametersData
|
||||
_0809CC14: .4byte gTeamInventory_203B460
|
||||
_0809CC14: .4byte gTeamInventoryRef
|
||||
_0809CC18: .4byte 0x0001869f
|
||||
_0809CC1C:
|
||||
str r1, [r2]
|
||||
@@ -7648,7 +7648,7 @@ sub_809CC90:
|
||||
b _0809CCD6
|
||||
.align 2, 0
|
||||
_0809CCBC: .4byte gUnknown_81163BC
|
||||
_0809CCC0: .4byte gTeamInventory_203B460
|
||||
_0809CCC0: .4byte gTeamInventoryRef
|
||||
_0809CCC4: .4byte 0x0001869f
|
||||
_0809CCC8:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
|
||||
@@ -581,7 +581,7 @@ _080907F0: .4byte gUnknown_8115DD4
|
||||
_080907F4: .4byte gUnknown_8115E00
|
||||
_080907F8: .4byte gUnknown_8115E28
|
||||
_080907FC: .4byte gUnknown_8115E54
|
||||
_08090800: .4byte gTeamInventory_203B460
|
||||
_08090800: .4byte gTeamInventoryRef
|
||||
_08090804: .4byte gUnknown_8115E80
|
||||
_08090808: .4byte gUnknown_8108F50
|
||||
_0809080C:
|
||||
|
||||
@@ -258,7 +258,7 @@ _08001754:
|
||||
lsls r1, 2
|
||||
b _0800176C
|
||||
.align 2, 0
|
||||
_08001760: .4byte gTeamInventory_203B460
|
||||
_08001760: .4byte gTeamInventoryRef
|
||||
_08001764:
|
||||
ldr r0, _08001774
|
||||
ldr r0, [r0]
|
||||
@@ -269,7 +269,7 @@ _0800176C:
|
||||
ldr r0, [r0]
|
||||
b _0800177A
|
||||
.align 2, 0
|
||||
_08001774: .4byte gTeamInventory_203B460
|
||||
_08001774: .4byte gTeamInventoryRef
|
||||
_08001778:
|
||||
movs r0, 0
|
||||
_0800177A:
|
||||
@@ -423,7 +423,7 @@ _080018A4:
|
||||
ldr r0, [r0]
|
||||
b _080018CE
|
||||
.align 2, 0
|
||||
_080018B4: .4byte gTeamInventory_203B460
|
||||
_080018B4: .4byte gTeamInventoryRef
|
||||
_080018B8:
|
||||
ldr r0, _080018C8
|
||||
ldr r0, [r0]
|
||||
@@ -433,7 +433,7 @@ _080018B8:
|
||||
ldr r0, [r0]
|
||||
b _080018CE
|
||||
.align 2, 0
|
||||
_080018C8: .4byte gTeamInventory_203B460
|
||||
_080018C8: .4byte gTeamInventoryRef
|
||||
_080018CC:
|
||||
movs r0, 0
|
||||
_080018CE:
|
||||
@@ -528,7 +528,7 @@ _08001972:
|
||||
adds r0, r1
|
||||
b _0800198E
|
||||
.align 2, 0
|
||||
_08001980: .4byte gTeamInventory_203B460
|
||||
_08001980: .4byte gTeamInventoryRef
|
||||
_08001984:
|
||||
ldr r0, _08001998
|
||||
ldr r0, [r0]
|
||||
@@ -543,7 +543,7 @@ _08001990:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08001998: .4byte gTeamInventory_203B460
|
||||
_08001998: .4byte gTeamInventoryRef
|
||||
thumb_func_end sub_80018D8
|
||||
|
||||
thumb_func_start sub_800199C
|
||||
@@ -642,7 +642,7 @@ _08001A4E:
|
||||
lsls r1, 2
|
||||
b _08001A64
|
||||
.align 2, 0
|
||||
_08001A58: .4byte gTeamInventory_203B460
|
||||
_08001A58: .4byte gTeamInventoryRef
|
||||
_08001A5C:
|
||||
ldr r0, _08001A70
|
||||
ldr r0, [r0]
|
||||
@@ -657,7 +657,7 @@ _08001A68:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08001A70: .4byte gTeamInventory_203B460
|
||||
_08001A70: .4byte gTeamInventoryRef
|
||||
thumb_func_end sub_800199C
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
||||
@@ -7579,7 +7579,7 @@ _080A1C5E:
|
||||
b _080A236A
|
||||
.align 2, 0
|
||||
_080A1C64: .4byte gUnknown_81167E4
|
||||
_080A1C68: .4byte gTeamInventory_203B460
|
||||
_080A1C68: .4byte gTeamInventoryRef
|
||||
_080A1C6C: .4byte 0x000003e6
|
||||
_080A1C70:
|
||||
ldr r0, _080A1C80
|
||||
@@ -8016,7 +8016,7 @@ _080A1FE0:
|
||||
.align 2, 0
|
||||
_080A200C: .4byte gUnknown_8116844
|
||||
_080A2010: .4byte 0x000003e6
|
||||
_080A2014: .4byte gTeamInventory_203B460
|
||||
_080A2014: .4byte gTeamInventoryRef
|
||||
_080A2018:
|
||||
ldrb r0, [r6, 0x2]
|
||||
movs r1, 0
|
||||
|
||||
@@ -1,758 +0,0 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start UpdateKecleonStoreDialogue
|
||||
UpdateKecleonStoreDialogue:
|
||||
push {r4,lr}
|
||||
sub sp, 0x14
|
||||
ldr r1, _08018EA4
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, 0x8]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x20
|
||||
bls _08018E9A
|
||||
b _080194E8
|
||||
_08018E9A:
|
||||
lsls r0, 2
|
||||
ldr r1, _08018EA8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08018EA4: .4byte gUnknown_203B210
|
||||
_08018EA8: .4byte _08018EAC
|
||||
.align 2, 0
|
||||
_08018EAC:
|
||||
.4byte _08018F30
|
||||
.4byte _08018F58
|
||||
.4byte _08018FA8
|
||||
.4byte _08018FD0
|
||||
.4byte _080194E8
|
||||
.4byte _08018FFC
|
||||
.4byte _08019024
|
||||
.4byte _0801904C
|
||||
.4byte _08019070
|
||||
.4byte _08019094
|
||||
.4byte _080190B8
|
||||
.4byte _080190DC
|
||||
.4byte _08019104
|
||||
.4byte _0801912C
|
||||
.4byte _08019164
|
||||
.4byte _0801918C
|
||||
.4byte _080191B4
|
||||
.4byte _08019294
|
||||
.4byte _080191DC
|
||||
.4byte _080191FA
|
||||
.4byte _08019218
|
||||
.4byte _080193F4
|
||||
.4byte _08019254
|
||||
.4byte _08019314
|
||||
.4byte _0801933C
|
||||
.4byte _080193FE
|
||||
.4byte _08019364
|
||||
.4byte _08019372
|
||||
.4byte _08019380
|
||||
.4byte _080193F4
|
||||
.4byte _080193B4
|
||||
.4byte _0801946C
|
||||
.4byte _080194C0
|
||||
_08018F30:
|
||||
bl sub_8019DAC
|
||||
bl sub_80194F8
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r2, _08018F50
|
||||
ldr r0, _08018F54
|
||||
ldr r4, [r0]
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x5C
|
||||
muls r0, r1
|
||||
adds r0, r2
|
||||
b _08018F76
|
||||
.align 2, 0
|
||||
_08018F50: .4byte gKecleonShopDialogue
|
||||
_08018F54: .4byte gUnknown_203B210
|
||||
_08018F58:
|
||||
bl sub_8019DAC
|
||||
bl sub_80194F8
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08018FA0
|
||||
ldr r0, _08018FA4
|
||||
ldr r4, [r0]
|
||||
ldr r2, [r4]
|
||||
movs r0, 0x5C
|
||||
muls r0, r2
|
||||
adds r1, 0x4
|
||||
adds r0, r1
|
||||
_08018F76:
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, 0x28]
|
||||
adds r3, r4, 0
|
||||
adds r3, 0x34
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x74
|
||||
str r1, [sp]
|
||||
movs r1, 0x4
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x8]
|
||||
adds r1, r4, 0
|
||||
adds r1, 0xE4
|
||||
ldr r1, [r1]
|
||||
str r1, [sp, 0xC]
|
||||
movs r1, 0xC
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0
|
||||
bl sub_8014248
|
||||
b _080194E8
|
||||
.align 2, 0
|
||||
_08018FA0: .4byte gKecleonShopDialogue
|
||||
_08018FA4: .4byte gUnknown_203B210
|
||||
_08018FA8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08018FCC
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x58
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08018FCC: .4byte gKecleonShopDialogue
|
||||
_08018FD0:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08018FF4
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
ldr r3, _08018FF8
|
||||
b _08019456
|
||||
.align 2, 0
|
||||
_08018FF4: .4byte gKecleonShopDialogue
|
||||
_08018FF8: .4byte 0x0000030d
|
||||
_08018FFC:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019020
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x30
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019020: .4byte gKecleonShopDialogue
|
||||
_08019024:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x10
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x1
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019048
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x34
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019048: .4byte gKecleonShopDialogue
|
||||
_0801904C:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
bl sub_8019E04
|
||||
ldr r1, _0801906C
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x38
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_0801906C: .4byte gKecleonShopDialogue
|
||||
_08019070:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019090
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x3C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019090: .4byte gKecleonShopDialogue
|
||||
_08019094:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
bl sub_8019E04
|
||||
ldr r1, _080190B4
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x40
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_080190B4: .4byte gKecleonShopDialogue
|
||||
_080190B8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
bl sub_8019E04
|
||||
ldr r1, _080190D8
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x44
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_080190D8: .4byte gKecleonShopDialogue
|
||||
_080190DC:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019100
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x48
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019100: .4byte gKecleonShopDialogue
|
||||
_08019104:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x10
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x1
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019128
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x4C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019128: .4byte gKecleonShopDialogue
|
||||
_0801912C:
|
||||
ldr r0, _0801915C
|
||||
ldr r1, [r4]
|
||||
adds r1, 0x1C
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x18
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x1
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019160
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x50
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_0801915C: .4byte gUnknown_202DE58
|
||||
_08019160: .4byte gKecleonShopDialogue
|
||||
_08019164:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x18
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0x1
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019188
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x54
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019188: .4byte gKecleonShopDialogue
|
||||
_0801918C:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x12
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _080191B0
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0xC
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_080191B0: .4byte gKecleonShopDialogue
|
||||
_080191B4:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x13
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _080191D8
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x10
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_080191D8: .4byte gKecleonShopDialogue
|
||||
_080191DC:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _080191EC
|
||||
movs r0, 0x3
|
||||
bl sub_8019E40
|
||||
b _080191F2
|
||||
_080191EC:
|
||||
movs r0, 0x3
|
||||
bl sub_801A20C
|
||||
_080191F2:
|
||||
movs r0, 0
|
||||
bl sub_801AD34
|
||||
b _08019378
|
||||
_080191FA:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _0801920A
|
||||
movs r0, 0x1
|
||||
bl sub_8019FCC
|
||||
b _08019210
|
||||
_0801920A:
|
||||
movs r0, 0x1
|
||||
bl sub_801A398
|
||||
_08019210:
|
||||
movs r0, 0
|
||||
bl sub_801AD34
|
||||
b _08019378
|
||||
_08019218:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08019226
|
||||
bl sub_801A0D8
|
||||
b _0801922A
|
||||
_08019226:
|
||||
bl sub_801A4A4
|
||||
_0801922A:
|
||||
movs r0, 0
|
||||
bl sub_801AD34
|
||||
movs r0, 0x1
|
||||
bl DrawTeamMoneyBox
|
||||
bl sub_80195C0
|
||||
ldr r0, _08019250
|
||||
ldr r2, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x84
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x34
|
||||
adds r3, r2, 0
|
||||
adds r3, 0x74
|
||||
ldr r2, [r2, 0x30]
|
||||
b _080193A0
|
||||
.align 2, 0
|
||||
_08019250: .4byte gUnknown_203B210
|
||||
_08019254:
|
||||
bl sub_8019700
|
||||
ldr r0, _08019284
|
||||
ldr r4, _08019288
|
||||
ldr r1, [r4]
|
||||
adds r1, 0x1C
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
ldr r1, _0801928C
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x10]
|
||||
str r0, [r1]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019290
|
||||
ldr r4, [r4]
|
||||
ldr r2, [r4]
|
||||
movs r0, 0x5C
|
||||
muls r0, r2
|
||||
adds r1, 0x14
|
||||
b _0801948C
|
||||
.align 2, 0
|
||||
_08019284: .4byte gUnknown_202DE58
|
||||
_08019288: .4byte gUnknown_203B210
|
||||
_0801928C: .4byte gUnknown_202DE30
|
||||
_08019290: .4byte gKecleonShopDialogue
|
||||
_08019294:
|
||||
bl CountKecleonItems
|
||||
cmp r0, 0
|
||||
bne _080192C0
|
||||
ldr r0, _080192AC
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _080192B0
|
||||
bl sub_801A010
|
||||
b _080192B4
|
||||
.align 2, 0
|
||||
_080192AC: .4byte gUnknown_203B210
|
||||
_080192B0:
|
||||
bl sub_801A3DC
|
||||
_080192B4:
|
||||
ldr r0, _080192BC
|
||||
ldr r1, [r0]
|
||||
movs r0, 0xB
|
||||
b _080192F2
|
||||
.align 2, 0
|
||||
_080192BC: .4byte gUnknown_203B210
|
||||
_080192C0:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _080192EC
|
||||
ldr r0, _080192D8
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _080192DC
|
||||
bl sub_801A010
|
||||
b _080192E0
|
||||
.align 2, 0
|
||||
_080192D8: .4byte gUnknown_203B210
|
||||
_080192DC:
|
||||
bl sub_801A3DC
|
||||
_080192E0:
|
||||
ldr r0, _080192E8
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1
|
||||
b _080192F2
|
||||
.align 2, 0
|
||||
_080192E8: .4byte gUnknown_203B210
|
||||
_080192EC:
|
||||
ldr r0, _0801930C
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x10
|
||||
_080192F2:
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r2, _08019310
|
||||
ldr r0, _0801930C
|
||||
ldr r1, [r0]
|
||||
ldr r3, [r1]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r2, 0x18
|
||||
b _0801944C
|
||||
.align 2, 0
|
||||
_0801930C: .4byte gUnknown_203B210
|
||||
_08019310: .4byte gKecleonShopDialogue
|
||||
_08019314:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1A
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019338
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x1C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019338: .4byte gKecleonShopDialogue
|
||||
_0801933C:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1B
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _08019360
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x20
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
b _08019454
|
||||
.align 2, 0
|
||||
_08019360: .4byte gKecleonShopDialogue
|
||||
_08019364:
|
||||
movs r0, 0x4
|
||||
movs r1, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0xA
|
||||
bl sub_801A5D8
|
||||
b _08019378
|
||||
_08019372:
|
||||
movs r0, 0x1
|
||||
bl sub_801A8D0
|
||||
_08019378:
|
||||
movs r0, 0x1
|
||||
bl DrawTeamMoneyBox
|
||||
b _080194E8
|
||||
_08019380:
|
||||
bl sub_801A9E0
|
||||
movs r0, 0x1
|
||||
bl DrawTeamMoneyBox
|
||||
bl sub_8019660
|
||||
ldr r0, _080193B0
|
||||
ldr r2, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x84
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x34
|
||||
adds r3, r2, 0
|
||||
adds r3, 0x74
|
||||
ldr r2, [r2, 0x2C]
|
||||
_080193A0:
|
||||
str r2, [sp]
|
||||
movs r2, 0x2
|
||||
str r2, [sp, 0x4]
|
||||
movs r2, 0
|
||||
bl sub_8012D60
|
||||
b _080194E8
|
||||
.align 2, 0
|
||||
_080193B0: .4byte gUnknown_203B210
|
||||
_080193B4:
|
||||
bl sub_8019700
|
||||
ldr r0, _080193E4
|
||||
ldr r4, _080193E8
|
||||
ldr r1, [r4]
|
||||
adds r1, 0x1C
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
ldr r1, _080193EC
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x10]
|
||||
str r0, [r1]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _080193F0
|
||||
ldr r4, [r4]
|
||||
ldr r2, [r4]
|
||||
movs r0, 0x5C
|
||||
muls r0, r2
|
||||
adds r1, 0x24
|
||||
b _0801948C
|
||||
.align 2, 0
|
||||
_080193E4: .4byte gUnknown_202DE58
|
||||
_080193E8: .4byte gUnknown_203B210
|
||||
_080193EC: .4byte gUnknown_202DE30
|
||||
_080193F0: .4byte gKecleonShopDialogue
|
||||
_080193F4:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x1C
|
||||
bl sub_801B3C0
|
||||
b _080194E8
|
||||
_080193FE:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
beq _08019418
|
||||
ldr r0, _08019424
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x98
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r1, [r0]
|
||||
ldr r0, _08019428
|
||||
cmp r1, r0
|
||||
ble _08019430
|
||||
_08019418:
|
||||
bl sub_801A928
|
||||
ldr r0, _0801942C
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1
|
||||
b _08019436
|
||||
.align 2, 0
|
||||
_08019424: .4byte gTeamInventory_203B460
|
||||
_08019428: .4byte 0x0001869e
|
||||
_0801942C: .4byte gUnknown_203B210
|
||||
_08019430:
|
||||
ldr r0, _08019460
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x18
|
||||
_08019436:
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r2, _08019464
|
||||
ldr r0, _08019460
|
||||
ldr r1, [r0]
|
||||
ldr r3, [r1]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r2, 0x2C
|
||||
_0801944C:
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
adds r1, 0xE4
|
||||
ldr r2, [r1]
|
||||
_08019454:
|
||||
ldr r3, _08019468
|
||||
_08019456:
|
||||
movs r1, 0
|
||||
bl sub_80141B4
|
||||
b _080194E8
|
||||
.align 2, 0
|
||||
_08019460: .4byte gUnknown_203B210
|
||||
_08019464: .4byte gKecleonShopDialogue
|
||||
_08019468: .4byte 0x0000010d
|
||||
_0801946C:
|
||||
bl sub_8019700
|
||||
ldr r1, _080194B4
|
||||
ldr r4, _080194B8
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x18]
|
||||
str r0, [r1]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _080194BC
|
||||
ldr r4, [r4]
|
||||
ldr r2, [r4]
|
||||
movs r0, 0x5C
|
||||
muls r0, r2
|
||||
adds r1, 0x28
|
||||
_0801948C:
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r3, r4, 0
|
||||
adds r3, 0x34
|
||||
movs r2, 0
|
||||
str r2, [sp]
|
||||
movs r1, 0x4
|
||||
str r1, [sp, 0x4]
|
||||
str r2, [sp, 0x8]
|
||||
adds r4, 0xE4
|
||||
ldr r1, [r4]
|
||||
str r1, [sp, 0xC]
|
||||
movs r1, 0xC
|
||||
str r1, [sp, 0x10]
|
||||
movs r1, 0
|
||||
movs r2, 0x5
|
||||
bl sub_8014248
|
||||
b _080194E8
|
||||
.align 2, 0
|
||||
_080194B4: .4byte gUnknown_202DE30
|
||||
_080194B8: .4byte gUnknown_203B210
|
||||
_080194BC: .4byte gKecleonShopDialogue
|
||||
_080194C0:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0xC]
|
||||
movs r0, 0
|
||||
bl sub_8019E04
|
||||
ldr r1, _080194F0
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2]
|
||||
movs r0, 0x5C
|
||||
muls r0, r3
|
||||
adds r1, 0x2C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r2, 0xE4
|
||||
ldr r2, [r2]
|
||||
ldr r3, _080194F4
|
||||
movs r1, 0
|
||||
bl sub_80141B4
|
||||
_080194E8:
|
||||
add sp, 0x14
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080194F0: .4byte gKecleonShopDialogue
|
||||
_080194F4: .4byte 0x0000010d
|
||||
thumb_func_end UpdateKecleonStoreDialogue
|
||||
|
||||
.align 2,0
|
||||
@@ -133,8 +133,8 @@ gUnknown_81161B8: @ 81161B8
|
||||
gUnknown_81161C8: @ 81161C8
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte sub_8016E40
|
||||
.4byte sub_8016D54
|
||||
.4byte DeleteKangaskhanStorage
|
||||
.4byte KangaskhanStorageCallback
|
||||
|
||||
.global gUnknown_81161D8
|
||||
gUnknown_81161D8: @ 81161D8
|
||||
@@ -154,8 +154,8 @@ gUnknown_81161E8: @ 81161E8
|
||||
gUnknown_81161F8: @ 81161F8
|
||||
.byte 0x01, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.4byte sub_8018CF0
|
||||
.4byte sub_8018C04
|
||||
.4byte DeleteKecleonBros
|
||||
.4byte KecleonBrosCallback
|
||||
|
||||
.global gUnknown_8116208
|
||||
gUnknown_8116208: @ 8116208
|
||||
|
||||
@@ -42,4 +42,6 @@ extern struct FelicityBankWork *gFelicityBankWork;
|
||||
#define FELICITY_BANK_ACTION_WITHDRAW 0
|
||||
#define FELICITY_BANK_ACTION_DEPOSIT 1
|
||||
|
||||
void DrawTeamMoneyBox(u32 param_1);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
#ifndef GUARD_KANGASKHAN_STORAGE_H
|
||||
#define GUARD_KANGASKHAN_STORAGE_H
|
||||
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "file_system.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B208
|
||||
// size: 0x14C
|
||||
struct KangaskhanStorageWork
|
||||
{
|
||||
// size: 0x14C
|
||||
bool32 isAsleep;
|
||||
u32 currState;
|
||||
u32 fallbackState;
|
||||
struct Item storedItem;
|
||||
u32 itemIndex;
|
||||
u8 id; // another id?
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
u32 menuAction3;
|
||||
/* 0x0 */ bool32 isAsleep;
|
||||
/* 0x4 */ u32 currState;
|
||||
/* 0x8 */ u32 fallbackState;
|
||||
/* 0xC */ struct Item storedItem;
|
||||
/* 0x10 */ u32 itemIndex;
|
||||
/* 0x14 */ u8 id; // another id?
|
||||
/* 0x18 */ u32 menuAction1;
|
||||
/* 0x1C */ u32 menuAction2;
|
||||
/* 0x20 */ u32 menuAction3;
|
||||
struct MenuItem unk24[5];
|
||||
u16 unk4C[5];
|
||||
struct MenuStruct unk58;
|
||||
@@ -31,8 +32,8 @@ struct unkStruct_203B208
|
||||
u32 unkC8;
|
||||
u8 unkCC[0xD4 - 0xCC];
|
||||
u32 unkD4;
|
||||
struct OpenedFile *faceFile;
|
||||
u8 *faceData;
|
||||
/* 0xD8 */ struct OpenedFile *faceFile;
|
||||
/* 0xDC */ u8 *faceData;
|
||||
u16 unkE0;
|
||||
u16 unkE2;
|
||||
u8 unkE4;
|
||||
@@ -43,16 +44,17 @@ struct unkStruct_203B208
|
||||
struct UnkTextStruct2 unkEC[4];
|
||||
};
|
||||
|
||||
// size: 0x150
|
||||
struct unkStruct_203B20C
|
||||
{
|
||||
u32 state;
|
||||
/* 0x0 */ u32 state;
|
||||
u8 unk4[4];
|
||||
struct Item item;
|
||||
u32 itemIndex;
|
||||
u8 id;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
u32 menuAction3;
|
||||
/* 0x8 */ struct Item item;
|
||||
/* 0xC */ u32 itemIndex;
|
||||
/* 0x10 */ u8 id;
|
||||
/* 0x14 */ u32 menuAction1;
|
||||
/* 0x18 */ u32 menuAction2;
|
||||
/* 0x1C */ u32 menuAction3;
|
||||
struct MenuItem unk20[8];
|
||||
u16 unk60[8];
|
||||
struct MenuStruct unk70;
|
||||
@@ -69,7 +71,8 @@ struct unkStruct_203B20C
|
||||
struct UnkTextStruct2 unkF0[4];
|
||||
};
|
||||
|
||||
enum KangaskhanStorageStates {
|
||||
enum KangaskhanStorageStates
|
||||
{
|
||||
KANGASKHAN_STORAGE_INIT = 0,
|
||||
KANGASKHAN_STORAGE_MAIN_MENU = 1,
|
||||
KANGASKHAN_STORAGE_EXIT = 4,
|
||||
@@ -78,4 +81,8 @@ enum KangaskhanStorageStates {
|
||||
KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9,
|
||||
};
|
||||
|
||||
u32 CreateKangaskhanStorage(bool32 isAsleep);
|
||||
void DeleteKangaskhanStorage(void);
|
||||
u32 KangaskhanStorageCallback(void);
|
||||
|
||||
#endif
|
||||
|
||||
102
include/kecleon_bros.h
Normal file
102
include/kecleon_bros.h
Normal file
@@ -0,0 +1,102 @@
|
||||
#ifndef GUARD_KECLEON_BROS_H
|
||||
#define GUARD_KECLEON_BROS_H
|
||||
|
||||
#include "file_system.h"
|
||||
#include "item.h"
|
||||
#include "menu.h"
|
||||
#include "text.h"
|
||||
|
||||
// size: 0x148
|
||||
struct KecleonBrosWork
|
||||
{
|
||||
/* 0x0 */ u32 mode; // Corresponds to the enum: KecleonBrosMode
|
||||
/* 0x4 */ bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop
|
||||
/* 0x8 */ u32 currState;
|
||||
/* 0xC */ u32 fallbackState;
|
||||
/* 0x10 */ s32 itemSellPrice;
|
||||
/* 0x14 */ u32 numInventoryItemToSell;
|
||||
/* 0x18 */ s32 inventoryItemSellPrice;
|
||||
/* 0x1C */ struct Item soldItem;
|
||||
/* 0x20 */ u8 itemShopItemIndex;
|
||||
/* 0x21 */ u8 wareShopItemIndex;
|
||||
/* 0x24 */ u32 soldItemInventoryIndex;
|
||||
/* 0x28 */ u32 menuAction1;
|
||||
/* 0x2C */ u32 menuAction2;
|
||||
/* 0x30 */ u32 menuAction3;
|
||||
/* 0x34 */ struct MenuItem menuItems[8];
|
||||
u16 unk74[8];
|
||||
/* 0x84 */ struct MenuStruct menu;
|
||||
/* 0xD4 */ struct OpenedFile *faceFile;
|
||||
/* 0xD8 */ u8 *faceData;
|
||||
u16 unkDC;
|
||||
u16 unkDE;
|
||||
u8 unkE0;
|
||||
u8 unkE1;
|
||||
u8 unkE2;
|
||||
u8 unkE3;
|
||||
struct OpenedFile **unkE4;
|
||||
struct UnkTextStruct2 unkE8[4];
|
||||
};
|
||||
|
||||
// size: 0xA0
|
||||
struct unkStruct_203B214
|
||||
{
|
||||
/* 0x0 */ struct MenuInputStruct input;
|
||||
u32 unk34;
|
||||
struct UnkTextStruct2 *unk38;
|
||||
struct UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
};
|
||||
|
||||
// size: 0xF4
|
||||
struct unkStruct_203B224
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4[INVENTORY_SIZE];
|
||||
/* 0x54 */ struct MenuInputStruct input;
|
||||
u32 unk88;
|
||||
struct UnkTextStruct2 *unk8C;
|
||||
struct UnkTextStruct2 unk90[4];
|
||||
u8 unkF0[4];
|
||||
};
|
||||
|
||||
enum KecleonBrosMode
|
||||
{
|
||||
KECLEON_BROS_MODE_ITEMS_AWAKE,
|
||||
KECLEON_BROS_MODE_ITEMS_ASLEEP,
|
||||
KECLEON_BROS_MODE_WARES_AWAKE,
|
||||
KECLEON_BROS_MODE_WARES_ASLEEP,
|
||||
KECLEON_BROS_MODE_COUNT
|
||||
};
|
||||
|
||||
enum KecleonStoreStates
|
||||
{
|
||||
KECLEON_STORE_INIT = 0,
|
||||
KECLEON_STORE_MAIN_MENU = 1,
|
||||
KECLEON_STORE_EXIT = 4,
|
||||
KECLEON_STORE_NO_STORE_ITEMS = 5,
|
||||
KECLEON_STORE_NO_MONEY = 6,
|
||||
KECLEON_STORE_NO_ITEMS_TO_SELL = 9,
|
||||
KECLEON_STORE_TOO_MANY_ITEMS = 10,
|
||||
KECLEON_STORE_NOT_ENOUGH_MONEY = 12,
|
||||
KECLEON_STORE_CANT_SELL_ITEM = 13,
|
||||
};
|
||||
|
||||
// mode corresponds to the enum: KecleonBrosMode
|
||||
u32 CreateKecleonBros(u32 mode);
|
||||
void DeleteKecleonBros(void);
|
||||
u32 KecleonBrosCallback(void);
|
||||
|
||||
bool32 sub_801A5D8(u32, s32, struct UnkTextStruct2_sub *, u32);
|
||||
u32 sub_801A6E8(bool8);
|
||||
s32 sub_801A8AC(void);
|
||||
void sub_801A8D0(u8);
|
||||
void sub_801A928(void);
|
||||
void sub_801A9E0(void);
|
||||
void sub_801AD34(u32);
|
||||
bool8 sub_801ADA0(s32);
|
||||
void sub_801AE84(void);
|
||||
s32 sub_801AED0(s32);
|
||||
s32 sub_801AEA8(void);
|
||||
|
||||
#endif // GUARD_KECLEON_BROS_H
|
||||
@@ -1,65 +0,0 @@
|
||||
#ifndef GUARD_KECLEON_ITEMS_H
|
||||
#define GUARD_KECLEON_ITEMS_H
|
||||
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
|
||||
struct unkStruct_203B210
|
||||
{
|
||||
// size: 0x148
|
||||
u32 unk0;
|
||||
bool8 isKecleonItemShop; // FALSE indicates it is Kecleon TM Shop
|
||||
u32 currState;
|
||||
u32 fallbackState;
|
||||
s32 itemSellPrice;
|
||||
u32 numInventoryItemToSell;
|
||||
s32 inventoryItemSellPrice;
|
||||
struct Item soldItem;
|
||||
u8 itemShopItemIndex;
|
||||
u8 wareShopItemIndex;
|
||||
u32 soldItemInventoryIndex;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
u32 menuAction3;
|
||||
struct MenuItem menuItems[8];
|
||||
u16 unk74[8];
|
||||
struct MenuStruct menu;
|
||||
struct OpenedFile *faceFile;
|
||||
u8 *faceData;
|
||||
u16 unkDC;
|
||||
u16 unkDE;
|
||||
u8 unkE0;
|
||||
u8 unkE1;
|
||||
u8 unkE2;
|
||||
u8 unkE3;
|
||||
struct OpenedFile **unkE4;
|
||||
struct UnkTextStruct2 unkE8[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B224
|
||||
{
|
||||
// size: 0xF4
|
||||
u32 unk0;
|
||||
u32 unk4[INVENTORY_SIZE];
|
||||
/* 0x54 */ struct MenuInputStruct input;
|
||||
u32 unk88;
|
||||
struct UnkTextStruct2 *unk8C;
|
||||
struct UnkTextStruct2 unk90[4];
|
||||
u8 unkF0[4];
|
||||
};
|
||||
|
||||
enum KecleonStoreStates
|
||||
{
|
||||
KECLEON_STORE_INIT = 0,
|
||||
KECLEON_STORE_MAIN_MENU = 1,
|
||||
KECLEON_STORE_EXIT = 4,
|
||||
KECLEON_STORE_NO_STORE_ITEMS = 5,
|
||||
KECLEON_STORE_NO_MONEY = 6,
|
||||
KECLEON_STORE_NO_ITEMS_TO_SELL = 9,
|
||||
KECLEON_STORE_TOO_MANY_ITEMS = 10,
|
||||
KECLEON_STORE_NOT_ENOUGH_MONEY = 12,
|
||||
KECLEON_STORE_CANT_SELL_ITEM = 13
|
||||
};
|
||||
|
||||
#endif // GUARD_KECLEON_ITEMS_H
|
||||
@@ -15,7 +15,7 @@ struct TeamInventory
|
||||
/* 0x264 */ s32 teamSavings;
|
||||
};
|
||||
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern struct TeamInventory *gTeamInventoryRef;
|
||||
|
||||
#define MAX_TEAM_MONEY 99999
|
||||
#define MAX_TEAM_SAVINGS 9999999
|
||||
|
||||
@@ -31,7 +31,7 @@ struct UnkTextStruct2_sub
|
||||
{
|
||||
// I haven't found a func that reads these separately yet, but simply making an arr[2] will cause assignments to break.
|
||||
// Some funcs only match with this union for some reason even though they don't access the variables separately...
|
||||
// The first func to break is currently sub_801A5D8 in kecleon_items_1.c
|
||||
// The first func to break is currently sub_801A5D8 in kecleon_bros.c
|
||||
// The first func I matched that uses the array is sub_8006554 in text_1.c (using the separated fields doesn't match or get even close)
|
||||
union {
|
||||
struct {
|
||||
|
||||
@@ -97,9 +97,7 @@ SECTIONS {
|
||||
src/code_8012A18_1.o(.text);
|
||||
src/felicity_bank.o(.text);
|
||||
src/kangaskhan_storage.o(.text);
|
||||
src/kecleon_items.o(.text);
|
||||
asm/kecleon_items.o(.text);
|
||||
src/kecleon_items_1.o(.text);
|
||||
src/kecleon_bros.o(.text);
|
||||
src/code_801AFA4.o(.text);
|
||||
src/code_801B3C0.o(.text);
|
||||
src/code_801C620.o(.text);
|
||||
|
||||
@@ -63,7 +63,7 @@ u32 sub_801AFA4(u32 index)
|
||||
{
|
||||
gUnknown_203B22C = MemoryAlloc(sizeof(struct unkStruct_203B22C), 8);
|
||||
gUnknown_203B22C->teamItemIndex = index;
|
||||
gUnknown_203B22C->id = gTeamInventory_203B460->teamItems[index].id;
|
||||
gUnknown_203B22C->id = gTeamInventoryRef->teamItems[index].id;
|
||||
gUnknown_203B22C->moveID = GetItemMoveID(gUnknown_203B22C->id);
|
||||
sub_8092C84(gUnknown_202E1C8, gUnknown_203B22C->moveID);
|
||||
sub_8099690(0);
|
||||
@@ -135,8 +135,8 @@ void sub_801B080(void)
|
||||
sub_8094060(gUnknown_203B22C->moves, gUnknown_203B22C->pokeStruct->moves);
|
||||
if(!IsHMItem(gUnknown_203B22C->id))
|
||||
{
|
||||
gTeamInventory_203B460->teamItems[gUnknown_203B22C->teamItemIndex].quantity = gUnknown_203B22C->id - 0x7D;
|
||||
gTeamInventory_203B460->teamItems[gUnknown_203B22C->teamItemIndex].id = ITEM_TM_USED_TM;
|
||||
gTeamInventoryRef->teamItems[gUnknown_203B22C->teamItemIndex].quantity = gUnknown_203B22C->id - 0x7D;
|
||||
gTeamInventoryRef->teamItems[gUnknown_203B22C->teamItemIndex].id = ITEM_TM_USED_TM;
|
||||
}
|
||||
PlaySound(0x9C << 1);
|
||||
// {CENTER_ALIGN}CM{ARG_POKEMON_8}{END_COLOR_TEXT_1} learned
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
#include "subStruct_203B240.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
// based off of 203B240..
|
||||
struct unkStruct_203B230
|
||||
@@ -72,12 +73,8 @@ extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern u32 sub_801A8AC();
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
|
||||
extern bool8 sub_801ADA0(s32);
|
||||
extern struct UnkTextStruct2 gUnknown_80DBA58;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBA88;
|
||||
extern struct UnkTextStruct2 gUnknown_80DBA70;
|
||||
@@ -93,11 +90,6 @@ extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_8013F84(void);
|
||||
extern s32 sub_80913E0(struct Item *, u32, struct subStruct_203B240 **);
|
||||
extern void sub_80141B4(u8 *, u32, u32 *, u32);
|
||||
extern void sub_801BB20(void);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0(void);
|
||||
extern void sub_801BC24(void);
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
|
||||
extern void sub_80140B4(struct UnkTextStruct2 *);
|
||||
extern void sub_801B46C(u32);
|
||||
@@ -116,9 +108,11 @@ extern void sub_800199C(u32, u32, u32, u32);
|
||||
extern void PlaySound(u32);
|
||||
extern s32 sub_808D544(u32);
|
||||
|
||||
void sub_801B51C();
|
||||
void sub_801B590();
|
||||
void sub_801B480();
|
||||
void sub_801B480(void);
|
||||
void sub_801B51C(void);
|
||||
void sub_801B590(void);
|
||||
void sub_801BB20(void);
|
||||
void sub_801BC24(void);
|
||||
|
||||
|
||||
u32 sub_801B3C0(struct Item *item)
|
||||
@@ -407,14 +401,14 @@ void sub_801B874(void)
|
||||
{
|
||||
if(IsNotMoneyOrUsedTMItem(gUnknown_203B234->unk10.id))
|
||||
{
|
||||
if((gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] + gUnknown_203B234->unkC) > 0x3e7)
|
||||
if((gTeamInventoryRef->teamStorage[gUnknown_203B234->unk10.id] + gUnknown_203B234->unkC) > 0x3e7)
|
||||
{
|
||||
store:
|
||||
gUnknown_203B234->fallbackState = 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.id] += gUnknown_203B234->unkC;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B234->unk10.id] += gUnknown_203B234->unkC;
|
||||
PlaySound(0xCB);
|
||||
gUnknown_203B234->fallbackState = 5;
|
||||
}
|
||||
@@ -611,20 +605,20 @@ void sub_801BC94(void)
|
||||
|
||||
void sub_801BCCC(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B234->unk24 = sub_801A8AC();
|
||||
gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24];
|
||||
gUnknown_203B234->unk20 = gTeamInventoryRef->teamItems[gUnknown_203B234->unk24];
|
||||
sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14);
|
||||
sub_801B748(0xA);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B234->unk24 = sub_801A8AC();
|
||||
gUnknown_203B234->unk20 = gTeamInventory_203B460->teamItems[gUnknown_203B234->unk24];
|
||||
gUnknown_203B234->unk20 = gTeamInventoryRef->teamItems[gUnknown_203B234->unk24];
|
||||
sub_8090E14(gUnknown_202DEA8, &gUnknown_203B234->unk20, &gUnknown_203B234->unk14);
|
||||
sub_8099690(0);
|
||||
sub_801B748(0xB);
|
||||
@@ -641,7 +635,7 @@ void sub_801BD80(void)
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
if (!sub_8012FD8(&gUnknown_203B234->unk28)) {
|
||||
sub_8013114(&gUnknown_203B234->unk28,&menuAction);
|
||||
if (menuAction != 1) gUnknown_203B234->menuAction = menuAction;
|
||||
@@ -676,7 +670,7 @@ void sub_801BE30(void)
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
sub_8012FD8(&gUnknown_203B234->unk28);
|
||||
if (!sub_8012FD8(&gUnknown_203B234->unk78)) {
|
||||
sub_8013114(&gUnknown_203B234->unk78,&menuAction);
|
||||
|
||||
@@ -139,19 +139,16 @@ extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0}
|
||||
extern u8 gUnknown_80DBDC8[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
void sub_8007B7C(s32, s32, s32, s32, s32);
|
||||
extern bool8 sub_801CF14(s32);
|
||||
extern void sub_8007B7C(s32, s32, s32, s32, s32);
|
||||
extern u32 sub_801CE58(void);
|
||||
extern void sub_801CC38(void);
|
||||
extern void sub_801CCD8(void);
|
||||
extern void sub_801CF94(void);
|
||||
extern void ResetSprites(u32);
|
||||
extern void sub_80140B4(struct UnkTextStruct2 *);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
|
||||
extern void sub_8013F84();
|
||||
extern void sub_8013F84(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern char * GetIQSkillDescription(u8 r0);
|
||||
extern s32 GetNumAvailableIQSkills(u8 *param_1, s32 pokeIQ);
|
||||
@@ -167,9 +164,12 @@ extern void sub_801C6B4(void);
|
||||
|
||||
void sub_801BFB4(s32);
|
||||
void sub_801C6D0(s32);
|
||||
void sub_801C7D4();
|
||||
void sub_801C6E4();
|
||||
void sub_801C848();
|
||||
void sub_801C7D4(void);
|
||||
void sub_801C6E4(void);
|
||||
void sub_801C848(void);
|
||||
void sub_801CCD8(void);
|
||||
bool8 sub_801CF14(s32);
|
||||
void sub_801CF94(void);
|
||||
|
||||
u32 sub_801C308(u8);
|
||||
extern void PlaySound(u32);
|
||||
@@ -184,15 +184,15 @@ void sub_801C3B0(u8);
|
||||
void sub_801BFCC(void);
|
||||
void sub_801C03C(void);
|
||||
|
||||
void sub_801C118();
|
||||
void sub_801C1A0();
|
||||
void sub_801C228();
|
||||
void sub_801C118(void);
|
||||
void sub_801C1A0(void);
|
||||
void sub_801C228(void);
|
||||
u8 sub_801CB24(void);
|
||||
|
||||
extern u8 sub_801CB24();
|
||||
extern u32 sub_801CFE0(u8);
|
||||
extern s32 sub_801CFB8(void);
|
||||
extern void sub_801D220();
|
||||
extern void sub_801D3A8();
|
||||
u32 sub_801CFE0(u8);
|
||||
s32 sub_801CFB8(void);
|
||||
extern void sub_801D220(void);
|
||||
extern void sub_801D3A8(void);
|
||||
|
||||
|
||||
bool8 sub_801BEEC(s16 species)
|
||||
@@ -968,7 +968,7 @@ void sub_801CCD8(void)
|
||||
xxx_call_draw_string(8,y,buffer,gUnknown_203B244->unk4E8,0);
|
||||
y2 = sub_8013800(&gUnknown_203B244->input,index);
|
||||
sub_8012BC4((gUnknown_203B244->unk4EC->unkC << 3) - 2,y2,
|
||||
gTeamInventory_203B460->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8);
|
||||
gTeamInventoryRef->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8);
|
||||
if ((sub_801CFE0(uVar3) & 1) != 0) {
|
||||
sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->input,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10);
|
||||
}
|
||||
@@ -989,7 +989,7 @@ u32 sub_801CE58(void)
|
||||
for(itemIndex = 1; itemIndex < NUMBER_OF_ITEM_IDS; itemIndex++)
|
||||
{
|
||||
if ((gUnknown_203B244->unk0 == 2) ||
|
||||
((gTeamInventory_203B460->teamStorage[itemIndex] != 0) && (IsNotMoneyOrUsedTMItem(itemIndex)))) {
|
||||
((gTeamInventoryRef->teamStorage[itemIndex] != 0) && (IsNotMoneyOrUsedTMItem(itemIndex)))) {
|
||||
gUnknown_203B244->itemIDs[itemCount] = itemIndex;
|
||||
itemCount++;
|
||||
}
|
||||
@@ -1017,7 +1017,7 @@ bool8 sub_801CF14(s32 param_1) {
|
||||
else {
|
||||
for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++)
|
||||
{
|
||||
if ((gTeamInventory_203B460->teamStorage[itemID] != 0) && (IsNotMoneyOrUsedTMItem(itemID))) return FALSE;
|
||||
if ((gTeamInventoryRef->teamStorage[itemID] != 0) && (IsNotMoneyOrUsedTMItem(itemID))) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1031,7 +1031,7 @@ bool8 sub_801CF50(s32 param_1) {
|
||||
else {
|
||||
for(itemID = ITEM_STICK; itemID < NUMBER_OF_ITEM_IDS; itemID++)
|
||||
{
|
||||
if ((IsNotMoneyOrUsedTMItem(itemID)) && (gTeamInventory_203B460->teamStorage[itemID] < 999)) return FALSE;
|
||||
if ((IsNotMoneyOrUsedTMItem(itemID)) && (gTeamInventoryRef->teamStorage[itemID] < 999)) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -481,7 +481,7 @@ void sub_801D894(void)
|
||||
rank = GetRescueTeamRank();
|
||||
sprintfStatic(buffer, r5, GetTeamRankString(rank), GetTeamRankPts());
|
||||
xxx_call_draw_string(32, 4, buffer, 2, 0);
|
||||
sprintfStatic(buffer, gUnknown_80DBF4C, gTeamInventory_203B460->teamMoney);
|
||||
sprintfStatic(buffer, gUnknown_80DBF4C, gTeamInventoryRef->teamMoney);
|
||||
xxx_call_draw_string(32, 18, buffer, 2, 0);
|
||||
sub_80073E0(2);
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ u32 sub_8021274(u8 param_1)
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
if ((gUnknown_203B280->unk3C == 2) && (GetFriendAreaPrice(sub_802132C()) > gTeamInventory_203B460->teamMoney))
|
||||
if ((gUnknown_203B280->unk3C == 2) && (GetFriendAreaPrice(sub_802132C()) > gTeamInventoryRef->teamMoney))
|
||||
{
|
||||
PlayMenuSoundEffect(2);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "code_8023144.h"
|
||||
#include "code_800D090.h"
|
||||
#include "friend_area.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
struct unkStruct_3001B5C
|
||||
{
|
||||
@@ -68,11 +69,8 @@ extern void sub_801B450(void);
|
||||
|
||||
void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoostFlags, struct Gummi* gummi);
|
||||
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
s32 GetNumAvailableIQSkills(u8 *iqSkillBuffer, s32 pokeIQ);
|
||||
extern u32 sub_801A8AC(void);
|
||||
|
||||
void sub_8022D2C(void) {
|
||||
s32 index;
|
||||
@@ -126,16 +124,16 @@ void sub_8022D2C(void) {
|
||||
|
||||
void sub_8022E78(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B294->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B294->item = gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex];
|
||||
gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex];
|
||||
sub_8022924(2);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B294->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B294->item = gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex];
|
||||
gUnknown_203B294->item = gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex];
|
||||
sub_8099690(0);
|
||||
sub_8022924(4);
|
||||
break;
|
||||
@@ -151,7 +149,7 @@ void sub_8022EF4(void)
|
||||
s32 boostAmount;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
if (sub_8012FD8(&gUnknown_203B294->unk54) == 0) {
|
||||
sub_8013114(&gUnknown_203B294->unk54,&menuAction);
|
||||
if(menuAction != 1) gUnknown_203B294->menuAction = menuAction;
|
||||
@@ -172,7 +170,7 @@ void sub_8022EF4(void)
|
||||
gUnknown_203B294->unk40 = 1;
|
||||
boostAmount = gUnknown_203B294->gummi.boostAmount;
|
||||
|
||||
sub_8090E14(gUnknown_202DE58, &gTeamInventory_203B460->teamItems[gUnknown_203B294->itemIndex], NULL);
|
||||
sub_8090E14(gUnknown_202DE58, &gTeamInventoryRef->teamItems[gUnknown_203B294->itemIndex], NULL);
|
||||
|
||||
if(boostAmount != -1)
|
||||
ShiftItemsDownFrom(gUnknown_203B294->itemIndex);
|
||||
@@ -219,7 +217,7 @@ void sub_8023068(void)
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
sub_8012FD8(&gUnknown_203B294->unk54);
|
||||
if (sub_8012FD8(&gUnknown_203B294->unkA4) == 0) {
|
||||
sub_8013114(&gUnknown_203B294->unkA4,&menuAction);
|
||||
|
||||
@@ -287,7 +287,7 @@ void sub_8096AF8(struct unkStruct_8096AF8 *param_1, u8 slotIndex,u8 dungeon)
|
||||
if (jobSlot->mailType == MAIL_TYPE_TAKEN_JOB) {
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
if (((item->flags & ITEM_FLAG_EXISTS)) && (item->id == jobSlot->targetItem)) {
|
||||
param_1->unk0 = TRUE;
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ void sub_803A5A0(void)
|
||||
gUnknown_203B3F0->unkAC = 3;
|
||||
gUnknown_203B3F0->unkA4 = 0;
|
||||
gUnknown_203B3F0->unkA8 = 0x3e7;
|
||||
gUnknown_203B3F0->unkA0 = gTeamInventory_203B460->teamStorage[gUnknown_203B3F0->id];
|
||||
gUnknown_203B3F0->unkA0 = gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id];
|
||||
gUnknown_203B3F0->unkB0 = 1;
|
||||
gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1];
|
||||
gUnknown_203B3F0->unkB8 = 0x2C;
|
||||
@@ -331,7 +331,7 @@ void sub_803A810(void)
|
||||
switch(sub_8013BBC(&gUnknown_203B3F0->unk9C))
|
||||
{
|
||||
case 3:
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B3F0->id] = gUnknown_203B3F0->unk9C;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id] = gUnknown_203B3F0->unk9C;
|
||||
// Fallthrough needed to match
|
||||
case 2:
|
||||
sub_803A504(1);
|
||||
|
||||
@@ -38,7 +38,7 @@ extern s32 gNumPotentialTargets;
|
||||
extern u32 gPotentialItemTargetWeights[NUM_DIRECTIONS];
|
||||
extern u32 gPotentialItemTargetDirections[NUM_DIRECTIONS];
|
||||
extern bool8 gTargetAhead[NUM_DIRECTIONS];
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern struct TeamInventory *gTeamInventoryRef;
|
||||
|
||||
void sub_807360C(struct Entity *pokemon)
|
||||
{
|
||||
@@ -176,7 +176,7 @@ void DecideUseItem(struct Entity *pokemon)
|
||||
}
|
||||
else if (pokemonInfo->isTeamLeader)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[toolboxIndex - 2];
|
||||
item = &gTeamInventoryRef->teamItems[toolboxIndex - 2];
|
||||
selectedToolboxIndex = toolboxIndex - 1;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -111,7 +111,7 @@ void MusicBoxCreation(void)
|
||||
indexes[1] = -1;
|
||||
indexes[2] = -1;
|
||||
|
||||
for(iVar4 = 0, pbVar3 = &gTeamInventory_203B460->teamItems[iVar4]; iVar4 < 20; pbVar3++, iVar4++)
|
||||
for(iVar4 = 0, pbVar3 = &gTeamInventoryRef->teamItems[iVar4]; iVar4 < 20; pbVar3++, iVar4++)
|
||||
{
|
||||
if (pbVar3->flags & ITEM_FLAG_EXISTS) {
|
||||
if (pbVar3->id == ITEM_ROCK_PART) {
|
||||
@@ -136,23 +136,23 @@ void MusicBoxCreation(void)
|
||||
createMusicBox = TRUE;
|
||||
|
||||
// clear out each of the parts
|
||||
pbVar4 = &gTeamInventory_203B460->teamItems[indexes[0]];
|
||||
pbVar4 = &gTeamInventoryRef->teamItems[indexes[0]];
|
||||
pbVar4->id = 0;
|
||||
pbVar4->quantity = 0;
|
||||
pbVar4->flags = 0;
|
||||
|
||||
pbVar5 = &gTeamInventory_203B460->teamItems[indexes[1]];
|
||||
pbVar5 = &gTeamInventoryRef->teamItems[indexes[1]];
|
||||
pbVar5->id = 0;
|
||||
pbVar5->quantity = 0;
|
||||
pbVar5->flags = 0;
|
||||
|
||||
pbVar5 = &gTeamInventory_203B460->teamItems[indexes[2]];
|
||||
pbVar5 = &gTeamInventoryRef->teamItems[indexes[2]];
|
||||
pbVar5->id = 0;
|
||||
pbVar5->quantity = 0;
|
||||
pbVar5->flags = 0;
|
||||
|
||||
// init the music box
|
||||
xxx_init_itemslot_8090A8C(&gTeamInventory_203B460->teamItems[indexes[0]], ITEM_MUSIC_BOX, 0);
|
||||
xxx_init_itemslot_8090A8C(&gTeamInventoryRef->teamItems[indexes[0]], ITEM_MUSIC_BOX, 0);
|
||||
}
|
||||
} while (musicBoxOnce);
|
||||
|
||||
@@ -342,7 +342,7 @@ void MusicBoxCreation(void)
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08046EDC: .4byte gTeamInventory_203B460\n"
|
||||
"_08046EDC: .4byte gTeamInventoryRef\n"
|
||||
"_08046EE0: .4byte sub_80861A8\n"
|
||||
"_08046EE4: .4byte gDungeon\n"
|
||||
"_08046EE8: .4byte 0x0001356c\n"
|
||||
@@ -394,7 +394,7 @@ void sub_8046F84(s32 itemFlag)
|
||||
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
if ((item->flags & ITEM_FLAG_EXISTS) && (item->flags & itemFlag)) {
|
||||
item->id = 0;
|
||||
item->quantity = 0;
|
||||
@@ -427,7 +427,7 @@ void sub_804700C(void)
|
||||
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
if ((item->flags & ITEM_FLAG_EXISTS)) {
|
||||
xxx_init_itemslot_8090A8C(item, ITEM_PLAIN_SEED, 0);
|
||||
}
|
||||
@@ -456,7 +456,7 @@ bool8 sub_8047084(s32 itemFlag)
|
||||
|
||||
// NEED THIS ORDERING TO MATCH
|
||||
index = 0;
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
|
||||
for(index = 0; index < INVENTORY_SIZE; item++, index++)
|
||||
{
|
||||
@@ -487,7 +487,7 @@ void sub_8047104(void)
|
||||
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
if (item->flags & ITEM_FLAG_EXISTS)
|
||||
{
|
||||
if(item->id == ITEM_POKE)
|
||||
|
||||
@@ -252,7 +252,7 @@ void sub_8001D88(void)
|
||||
}
|
||||
if (auStack8 > 0x11) {
|
||||
sub_80973A8(0x25,1);
|
||||
if (((FindItemInInventory(ITEM_HM_DIVE) != -1) || (gTeamInventory_203B460->teamStorage[ITEM_HM_DIVE] != 0)) ||
|
||||
if (((FindItemInInventory(ITEM_HM_DIVE) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_DIVE] != 0)) ||
|
||||
(sub_8001D44(5,0x21,3) != 0)) {
|
||||
sub_80973A8(0x22,1);
|
||||
}
|
||||
@@ -278,7 +278,7 @@ void sub_8001D88(void)
|
||||
if (sub_8001D08(5,0,0)) {
|
||||
ScenarioCalc(5,0x21,1);
|
||||
}
|
||||
if ((FindItemInInventory(ITEM_HM_SURF) != -1) || (gTeamInventory_203B460->teamStorage[ITEM_HM_SURF] != 0)) {
|
||||
if ((FindItemInInventory(ITEM_HM_SURF) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_SURF] != 0)) {
|
||||
if (sub_8001D08(7,0,0)) {
|
||||
ScenarioCalc(7,0x26,1);
|
||||
}
|
||||
|
||||
@@ -175,11 +175,11 @@ void UpdateFelicityBankDialogue(void)
|
||||
case 0x1:
|
||||
CreateFelicityBankShopMenu();
|
||||
gFelicityBankWork->fallbackState = 2;
|
||||
if (gTeamInventory_203B460->teamSavings == 0)
|
||||
if (gTeamInventoryRef->teamSavings == 0)
|
||||
sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][1], 0, gFelicityBankWork->menuAction,
|
||||
gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC);
|
||||
else {
|
||||
gUnknown_202DE30 = gTeamInventory_203B460->teamSavings;
|
||||
gUnknown_202DE30 = gTeamInventoryRef->teamSavings;
|
||||
sub_8014248(gFelicityDialogue[gFelicityBankWork->isAsleep][2], 0, gFelicityBankWork->menuAction,
|
||||
gFelicityBankWork->unk14, gFelicityBankWork->unk54, 4, 0, gFelicityBankWork->unkA4, 0xC);
|
||||
}
|
||||
@@ -190,10 +190,10 @@ void UpdateFelicityBankDialogue(void)
|
||||
break;
|
||||
case 0x4:
|
||||
gFelicityBankWork->fallbackState = 6;
|
||||
if (gTeamInventory_203B460->teamSavings == 0)
|
||||
if (gTeamInventoryRef->teamSavings == 0)
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][4], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
else {
|
||||
gUnknown_202DE30 = gTeamInventory_203B460->teamSavings;
|
||||
gUnknown_202DE30 = gTeamInventoryRef->teamSavings;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][5], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
break;
|
||||
@@ -202,11 +202,11 @@ void UpdateFelicityBankDialogue(void)
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][3], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
break;
|
||||
case 0x7:
|
||||
if (gTeamInventory_203B460->teamMoney == 0) {
|
||||
if (gTeamInventoryRef->teamMoney == 0) {
|
||||
gFelicityBankWork->fallbackState = 1;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][7], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
else if (gTeamInventory_203B460->teamSavings >= MAX_TEAM_SAVINGS) {
|
||||
else if (gTeamInventoryRef->teamSavings >= MAX_TEAM_SAVINGS) {
|
||||
gFelicityBankWork->fallbackState = 1;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][8], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
@@ -216,9 +216,9 @@ void UpdateFelicityBankDialogue(void)
|
||||
}
|
||||
break;
|
||||
case 0x8:
|
||||
gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventory_203B460->teamSavings;
|
||||
if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventory_203B460->teamMoney)
|
||||
gFelicityBankWork->maximumDepositWithdraw = gTeamInventory_203B460->teamMoney;
|
||||
gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_SAVINGS - gTeamInventoryRef->teamSavings;
|
||||
if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamMoney)
|
||||
gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamMoney;
|
||||
gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw;
|
||||
gFelicityBankWork->unk6C = 1;
|
||||
gFelicityBankWork->unk74 = 5;
|
||||
@@ -236,24 +236,24 @@ void UpdateFelicityBankDialogue(void)
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][9], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
break;
|
||||
case 0xA:
|
||||
if (gTeamInventory_203B460->teamMoney >= MAX_TEAM_MONEY) {
|
||||
if (gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) {
|
||||
gFelicityBankWork->fallbackState = 1;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][12], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
else if (gTeamInventory_203B460->teamSavings == 0) {
|
||||
else if (gTeamInventoryRef->teamSavings == 0) {
|
||||
gFelicityBankWork->fallbackState = 1;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][11], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
else {
|
||||
gFelicityBankWork->fallbackState = 11;
|
||||
gUnknown_202DE30 = gTeamInventory_203B460->teamSavings;
|
||||
gUnknown_202DE30 = gTeamInventoryRef->teamSavings;
|
||||
sub_80141B4(gFelicityDialogue[gFelicityBankWork->isAsleep][10], 0, gFelicityBankWork->unkA4, 0x10D);
|
||||
}
|
||||
break;
|
||||
case 0xB:
|
||||
gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventory_203B460->teamMoney;
|
||||
if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventory_203B460->teamSavings)
|
||||
gFelicityBankWork->maximumDepositWithdraw = gTeamInventory_203B460->teamSavings;
|
||||
gFelicityBankWork->maximumDepositWithdraw = MAX_TEAM_MONEY - gTeamInventoryRef->teamMoney;
|
||||
if (gFelicityBankWork->maximumDepositWithdraw > gTeamInventoryRef->teamSavings)
|
||||
gFelicityBankWork->maximumDepositWithdraw = gTeamInventoryRef->teamSavings;
|
||||
gFelicityBankWork->unk68 = gFelicityBankWork->maximumDepositWithdraw;
|
||||
gFelicityBankWork->unk6C = 1;
|
||||
gFelicityBankWork->unk74 = 5;
|
||||
@@ -343,8 +343,8 @@ void Felicity_DepositMoney(void)
|
||||
break;
|
||||
case 3:
|
||||
gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64;
|
||||
gTeamInventory_203B460->teamSavings += gFelicityBankWork->chosenAmount;
|
||||
gTeamInventory_203B460->teamMoney -= gFelicityBankWork->chosenAmount;
|
||||
gTeamInventoryRef->teamSavings += gFelicityBankWork->chosenAmount;
|
||||
gTeamInventoryRef->teamMoney -= gFelicityBankWork->chosenAmount;
|
||||
PlaySound(0x14c);
|
||||
UpdateFelicityBankState(9);
|
||||
break;
|
||||
@@ -364,8 +364,8 @@ void Felicity_WithdrawMoney(void)
|
||||
break;
|
||||
case 3:
|
||||
gFelicityBankWork->chosenAmount = gFelicityBankWork->unk64;
|
||||
gTeamInventory_203B460->teamMoney += gFelicityBankWork->chosenAmount;
|
||||
gTeamInventory_203B460->teamSavings -= gFelicityBankWork->chosenAmount;
|
||||
gTeamInventoryRef->teamMoney += gFelicityBankWork->chosenAmount;
|
||||
gTeamInventoryRef->teamSavings -= gFelicityBankWork->chosenAmount;
|
||||
PlaySound(0x14c);
|
||||
UpdateFelicityBankState(0xc);
|
||||
break;
|
||||
@@ -410,9 +410,9 @@ void CreateFelicityMoneySavingsHeader(u32 param_1)
|
||||
sub_8008C54(param_1);
|
||||
sub_80073B8(param_1);
|
||||
xxx_call_draw_string(16, 4, gFelicityMoney, param_1, 0);
|
||||
sub_8012BC4(96, 4, gTeamInventory_203B460->teamMoney, 5, 5, param_1);
|
||||
sub_8012BC4(96, 4, gTeamInventoryRef->teamMoney, 5, 5, param_1);
|
||||
xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0);
|
||||
sub_8012BC4(200, 4, gTeamInventory_203B460->teamSavings, 7, 5, param_1);
|
||||
sub_8012BC4(200, 4, gTeamInventoryRef->teamSavings, 7, 5, param_1);
|
||||
sub_80073E0(param_1);
|
||||
}
|
||||
|
||||
@@ -421,6 +421,6 @@ void DrawTeamMoneyBox(u32 param_1)
|
||||
sub_8008C54(param_1);
|
||||
sub_80073B8(param_1);
|
||||
xxx_call_draw_string(6, 0, &gUnknown_80DB738, param_1, 0); // Money
|
||||
sub_8012BC4(42, 12, gTeamInventory_203B460->teamMoney, 5, 5, param_1);
|
||||
sub_8012BC4(42, 12, gTeamInventoryRef->teamMoney, 5, 5, param_1);
|
||||
sub_80073E0(param_1);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "team_inventory.h"
|
||||
#include "friend_area_action_menu.h"
|
||||
#include "menu_input.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
|
||||
|
||||
@@ -22,9 +23,6 @@ extern void sub_801BEEC(s16);
|
||||
extern void GetLinkedSequence(u32, struct Move *, u16*);
|
||||
extern void sub_801F808(u16*);
|
||||
extern void sub_8027794();
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0();
|
||||
extern void sub_801F1B0(u32, u32);
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void unk_CopyMoves4To8(struct Move *, struct Move *);
|
||||
|
||||
@@ -9,9 +9,10 @@
|
||||
#include "pokemon.h"
|
||||
#include "friend_area_action_menu.h"
|
||||
#include "menu_input.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern struct TeamInventory *gTeamInventoryRef;
|
||||
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
@@ -21,10 +22,7 @@ extern void sub_801F214();
|
||||
extern void SetFriendAreaActionMenuState(u32);
|
||||
extern void PlaySound(u32);
|
||||
extern void nullsub_104();
|
||||
extern void sub_801A928();
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A8AC();
|
||||
extern u32 sub_801A6E8(u32);
|
||||
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern void sub_8027EB8();
|
||||
@@ -320,18 +318,18 @@ void sub_8027AE4(void)
|
||||
|
||||
void sub_8027B28(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B2BC->id = sub_801A8AC();
|
||||
gUnknown_203B2BC->itemToGive.id = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].id;
|
||||
gUnknown_203B2BC->itemToGive.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].quantity;
|
||||
gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id;
|
||||
gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity;
|
||||
SetFriendAreaActionMenuState(0xc);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2BC->id = sub_801A8AC();
|
||||
gUnknown_203B2BC->itemToGive.id = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].id;
|
||||
gUnknown_203B2BC->itemToGive.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2BC->id].quantity;
|
||||
gUnknown_203B2BC->itemToGive.id = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].id;
|
||||
gUnknown_203B2BC->itemToGive.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2BC->id].quantity;
|
||||
sub_8099690(0);
|
||||
SetFriendAreaActionMenuState(0xd);
|
||||
break;
|
||||
@@ -350,7 +348,7 @@ void sub_8027BD8(void)
|
||||
s32 menuAction;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2BC->menuAction2 = menuAction;
|
||||
}
|
||||
@@ -518,10 +516,10 @@ bool8 sub_8027E4C(struct PokemonStruct *pokeStruct)
|
||||
{
|
||||
if(IsThrowableItem(pokeStruct->heldItem.id))
|
||||
{
|
||||
if(gTeamInventory_203B460->teamStorage[pokeStruct->heldItem.id] + pokeStruct->heldItem.quantity > 0x3e7)
|
||||
if(gTeamInventoryRef->teamStorage[pokeStruct->heldItem.id] + pokeStruct->heldItem.quantity > 0x3e7)
|
||||
return FALSE;
|
||||
}
|
||||
else if(gTeamInventory_203B460->teamStorage[pokeStruct->heldItem.id] > 0x3e6)
|
||||
else if(gTeamInventoryRef->teamStorage[pokeStruct->heldItem.id] > 0x3e6)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -545,9 +543,9 @@ void sub_8027EB8(void)
|
||||
case 2:
|
||||
PlaySound(0x14d);
|
||||
if(IsThrowableItem(gUnknown_203B2BC->item2.id))
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += gUnknown_203B2BC->item2.quantity;
|
||||
else
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->item2.id] += 1;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B2BC->item2.id] += 1;
|
||||
gUnknown_203B2BC->item2.id = ITEM_NOTHING;
|
||||
gUnknown_203B2BC->item2.quantity = 0;
|
||||
GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->item2);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "moves.h"
|
||||
#include "menu_input.h"
|
||||
#include "team_inventory.h"
|
||||
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
// there might be more overlap with unkStruct_203B2BC
|
||||
// I was working on the moves and put the data that seemed to correspond to that
|
||||
@@ -126,9 +126,6 @@ extern bool8 sub_8024108(u32);
|
||||
extern u32 sub_801B3C0(struct Item *param_1);
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_801F1B0(u32, u32);
|
||||
extern void sub_801A5D8(u32,u32, u32, u32);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0(void);
|
||||
extern void PlaySound(u32);
|
||||
extern void sub_8024458(s16, u32);
|
||||
extern void sub_801BEEC(s16);
|
||||
@@ -149,10 +146,7 @@ extern void sub_801F214(void);
|
||||
extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32);
|
||||
extern void sub_801F808(u16 *);
|
||||
extern u32 sub_801602C(u32 r0, u8 *name);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_801F8D0(void);
|
||||
extern u32 sub_801F890(void);
|
||||
extern void sub_80160D8(void);
|
||||
@@ -613,18 +607,18 @@ void sub_8025BE8(void)
|
||||
|
||||
void sub_8025C04(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B2B4->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B2B4->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].id;
|
||||
gUnknown_203B2B4->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].quantity;
|
||||
gUnknown_203B2B4->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].id;
|
||||
gUnknown_203B2B4->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].quantity;
|
||||
sub_8025434(0xD);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2B4->itemIndex = sub_801A8AC();
|
||||
gUnknown_203B2B4->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].id;
|
||||
gUnknown_203B2B4->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B4->itemIndex].quantity;
|
||||
gUnknown_203B2B4->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].id;
|
||||
gUnknown_203B2B4->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B4->itemIndex].quantity;
|
||||
sub_8099690(0);
|
||||
sub_8025434(0xE);
|
||||
break;
|
||||
@@ -646,7 +640,7 @@ void sub_8025CB4(void)
|
||||
struct Item item;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
if ((!sub_8012FD8(&gUnknown_203B2B4->unk78)) && (sub_8013114(&gUnknown_203B2B4->unk78,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2B4->menuAction2 = menuAction;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ extern u32 sub_802F298();
|
||||
|
||||
extern char gUnknown_202E5D8[0x50];
|
||||
extern char gAvailablePokemonNames[0x50];
|
||||
extern struct TeamInventory *gTeamInventory_203B460;
|
||||
extern struct TeamInventory *gTeamInventoryRef;
|
||||
|
||||
extern u8 gUnknown_80E44A4[];
|
||||
extern u8 gUnknown_80E4500[];
|
||||
@@ -2692,7 +2692,7 @@ void sub_8034F88(void)
|
||||
mail = GetMailatIndex(gUnknown_203B33C->unk218);
|
||||
if(gUnknown_203B33C->item.id != ITEM_NOTHING)
|
||||
mail->item = gUnknown_203B33C->item;
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B33C->item.id]--;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B33C->item.id]--;
|
||||
SetFriendRescueMenuState(0x75);
|
||||
break;
|
||||
case 7:
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "gulpin_shop.h"
|
||||
#include "moves.h"
|
||||
#include "felicity_bank.h"
|
||||
|
||||
// size: 0x1E0
|
||||
struct unkStruct_203B27C
|
||||
@@ -90,7 +91,6 @@ bool8 sub_8021178(void);
|
||||
void CreateGulpinShopMenu(void);
|
||||
extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32);
|
||||
extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32);
|
||||
extern void DrawTeamMoneyBox(u32);
|
||||
void sub_8020950(void);
|
||||
void sub_8020900(void);
|
||||
bool8 sub_801F808(u16 *moveIDs);
|
||||
@@ -243,7 +243,7 @@ u32 sub_801FC40(void)
|
||||
break;
|
||||
case 0xd:
|
||||
if (gUnknown_203B27C->unk15 == TRUE) {
|
||||
gTeamInventory_203B460->teamMoney -= 150;
|
||||
gTeamInventoryRef->teamMoney -= 150;
|
||||
}
|
||||
return 3;
|
||||
default:
|
||||
@@ -1049,7 +1049,7 @@ void sub_8020EB4(void)
|
||||
sub_801FDA8(0x1F);
|
||||
break;
|
||||
case 8:
|
||||
if(gTeamInventory_203B460->teamMoney < 150)
|
||||
if(gTeamInventoryRef->teamMoney < 150)
|
||||
{
|
||||
PlayMenuSoundEffect(2);
|
||||
sub_801FDA8(0x3);
|
||||
|
||||
164
src/items.c
164
src/items.c
@@ -35,8 +35,8 @@ extern u8 gInvalidItemIDs[0x10];
|
||||
|
||||
EWRAM_DATA struct OpenedFile *gItemParametersFile = {0};
|
||||
EWRAM_DATA struct ItemDataEntry *gItemParametersData = {0};
|
||||
EWRAM_DATA struct TeamInventory gUnknown_20389A8 = {0};
|
||||
EWRAM_DATA_2 struct TeamInventory *gTeamInventory_203B460 = {0};
|
||||
EWRAM_DATA struct TeamInventory gTeamInventory = {0};
|
||||
EWRAM_DATA_2 struct TeamInventory *gTeamInventoryRef = {0};
|
||||
|
||||
extern s32 sub_8090FEC(s32 a1, u8* a2, u8 a3);
|
||||
extern void sub_80073B8(u32);
|
||||
@@ -50,14 +50,14 @@ bool8 AddKecleonWareItem(u8);
|
||||
|
||||
void LoadItemParameters(void)
|
||||
{
|
||||
gTeamInventory_203B460 = &gUnknown_20389A8;
|
||||
gTeamInventoryRef = &gTeamInventory;
|
||||
gItemParametersFile = OpenFileAndGetFileDataPtr(gItemParaFileName,&gSystemFileArchive);
|
||||
gItemParametersData = (struct ItemDataEntry *) gItemParametersFile->data;
|
||||
}
|
||||
|
||||
struct TeamInventory *GetMoneyItemsInfo(void)
|
||||
{
|
||||
return &gUnknown_20389A8;
|
||||
return &gTeamInventory;
|
||||
}
|
||||
|
||||
void InitializeMoneyItems(void)
|
||||
@@ -66,20 +66,20 @@ void InitializeMoneyItems(void)
|
||||
|
||||
for(i = 0; i < INVENTORY_SIZE; i++)
|
||||
{
|
||||
gTeamInventory_203B460->teamItems[i].flags = 0;
|
||||
gTeamInventoryRef->teamItems[i].flags = 0;
|
||||
}
|
||||
|
||||
for(i = 0; i < STORAGE_SIZE; i++)
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[i] = 0;
|
||||
gTeamInventoryRef->teamStorage[i] = 0;
|
||||
}
|
||||
|
||||
for(i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++)
|
||||
{
|
||||
InitKecleonShopItem(i);
|
||||
}
|
||||
gTeamInventory_203B460->teamMoney = 0;
|
||||
gTeamInventory_203B460->teamSavings = 0;
|
||||
gTeamInventoryRef->teamMoney = 0;
|
||||
gTeamInventoryRef->teamSavings = 0;
|
||||
}
|
||||
|
||||
s32 GetNumberOfFilledInventorySlots(void)
|
||||
@@ -90,7 +90,7 @@ s32 GetNumberOfFilledInventorySlots(void)
|
||||
count = 0;
|
||||
for(i = 0; i < INVENTORY_SIZE; i++)
|
||||
{
|
||||
if ((gTeamInventory_203B460->teamItems[i].flags & ITEM_FLAG_EXISTS) != 0) {
|
||||
if ((gTeamInventoryRef->teamItems[i].flags & ITEM_FLAG_EXISTS) != 0) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -465,7 +465,7 @@ void FillInventoryGaps()
|
||||
|
||||
do {
|
||||
while (slot_checking < INVENTORY_SIZE) {
|
||||
if (slot_checking[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) {
|
||||
if (slot_checking[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) {
|
||||
break;
|
||||
}
|
||||
// find next empty slot
|
||||
@@ -478,7 +478,7 @@ void FillInventoryGaps()
|
||||
|
||||
if (slot_checking > last_filled) {
|
||||
// shift it down
|
||||
gTeamInventory_203B460->teamItems[last_filled] = gTeamInventory_203B460->teamItems[slot_checking];
|
||||
gTeamInventoryRef->teamItems[last_filled] = gTeamInventoryRef->teamItems[slot_checking];
|
||||
}
|
||||
slot_checking++;
|
||||
last_filled++;
|
||||
@@ -488,12 +488,12 @@ void FillInventoryGaps()
|
||||
for (; last_filled < INVENTORY_SIZE; last_filled++) {
|
||||
struct Item *slot;
|
||||
#ifdef NONMATCHING
|
||||
slot = &gTeamInventory_203B460->teamItems[last_filled];
|
||||
slot = &gTeamInventoryRef->teamItems[last_filled];
|
||||
#else
|
||||
size_t offs = last_filled << 2;
|
||||
size_t _slot = offs;
|
||||
_slot += (size_t)gTeamInventory_203B460->teamItems;
|
||||
slot = (struct Item*)_slot; // &gTeamInventory_203B460->teamItems[end];
|
||||
_slot += (size_t)gTeamInventoryRef->teamItems;
|
||||
slot = (struct Item*)_slot; // &gTeamInventoryRef->teamItems[end];
|
||||
#endif
|
||||
slot->id = ITEM_NOTHING;
|
||||
slot->quantity = 0;
|
||||
@@ -505,7 +505,7 @@ s32 FindItemInInventory(u8 id)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
if ((gTeamInventory_203B460->teamItems[i].flags & ITEM_FLAG_EXISTS) && (gTeamInventory_203B460->teamItems[i].id == id)) {
|
||||
if ((gTeamInventoryRef->teamItems[i].flags & ITEM_FLAG_EXISTS) && (gTeamInventoryRef->teamItems[i].id == id)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@@ -518,7 +518,7 @@ s32 GetItemCountInInventory(u8 _id)
|
||||
s32 count = 0;
|
||||
s32 i;
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
if ((gTeamInventory_203B460->teamItems[i].unk0 & 1) && (gTeamInventory_203B460->teamItems[i].id == _id)) {
|
||||
if ((gTeamInventoryRef->teamItems[i].unk0 & 1) && (gTeamInventoryRef->teamItems[i].id == _id)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -527,7 +527,7 @@ s32 GetItemCountInInventory(u8 _id)
|
||||
// have to do hacky stuff to fix initialization order of r6 and r2
|
||||
u32 id = _id;
|
||||
s32 count = 0;
|
||||
struct Item *slot = gTeamInventory_203B460->teamItems;
|
||||
struct Item *slot = gTeamInventoryRef->teamItems;
|
||||
s32 one = 1;
|
||||
s32 i = 19;
|
||||
|
||||
@@ -566,16 +566,16 @@ void ShiftItemsDownFrom(s32 start)
|
||||
{
|
||||
s32 i, j;
|
||||
for (i = start, j = start + 1; i < INVENTORY_SIZE - 1; i++, j++) {
|
||||
gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[j];
|
||||
gTeamInventoryRef->teamItems[i] = gTeamInventoryRef->teamItems[j];
|
||||
}
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].id = ITEM_NOTHING;
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].flags = 0;
|
||||
gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].id = ITEM_NOTHING;
|
||||
gTeamInventoryRef->teamItems[INVENTORY_SIZE - 1].flags = 0;
|
||||
}
|
||||
|
||||
void ClearItemSlotAt(u32 index)
|
||||
{
|
||||
gTeamInventory_203B460->teamItems[index].id = ITEM_NOTHING;
|
||||
gTeamInventory_203B460->teamItems[index].flags = 0;
|
||||
gTeamInventoryRef->teamItems[index].id = ITEM_NOTHING;
|
||||
gTeamInventoryRef->teamItems[index].flags = 0;
|
||||
}
|
||||
|
||||
bool8 sub_809124C(u8 id, u8 param_3)
|
||||
@@ -599,9 +599,9 @@ bool8 AddItemToInventory(const struct Item* slot)
|
||||
|
||||
// try to add item to inventory, return 1 if failed
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
UNUSED struct Item* current = &gTeamInventory_203B460->teamItems[i];
|
||||
if (!(i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS)) {
|
||||
gTeamInventory_203B460->teamItems[i] = *slot;
|
||||
UNUSED struct Item* current = &gTeamInventoryRef->teamItems[i];
|
||||
if (!(i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS)) {
|
||||
gTeamInventoryRef->teamItems[i] = *slot;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -613,10 +613,10 @@ void ConvertMoneyItemToMoney()
|
||||
s32 i = 0;
|
||||
|
||||
do {
|
||||
UNUSED struct TeamInventory * _gTeamInventory_203B460 = gTeamInventory_203B460;
|
||||
UNUSED struct TeamInventory * _gTeamInventoryRef = gTeamInventoryRef;
|
||||
UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]);
|
||||
|
||||
struct Item* current_slot = &gTeamInventory_203B460->teamItems[i];
|
||||
struct Item* current_slot = &gTeamInventoryRef->teamItems[i];
|
||||
if ((current_slot->flags & ITEM_FLAG_EXISTS) && (current_slot->id == ITEM_POKE)) {
|
||||
u32 result;
|
||||
|
||||
@@ -634,27 +634,27 @@ void ConvertMoneyItemToMoney()
|
||||
s32 lowest_index = -1;
|
||||
UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]);
|
||||
|
||||
bool8 item_occupied = i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS;
|
||||
bool8 item_occupied = i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS;
|
||||
s32 next = i + 1;
|
||||
|
||||
if (item_occupied) {
|
||||
s32 lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[i].id);
|
||||
s32 lowest_order = GetItemOrder(gTeamInventoryRef->teamItems[i].id);
|
||||
s32 j;
|
||||
|
||||
// find next lowest
|
||||
for (j = next; j < INVENTORY_SIZE; j++) {
|
||||
UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[j]);
|
||||
if ((j[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) && (lowest_order > GetItemOrder(gTeamInventory_203B460->teamItems[j].id))) {
|
||||
if ((j[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) && (lowest_order > GetItemOrder(gTeamInventoryRef->teamItems[j].id))) {
|
||||
lowest_index = j;
|
||||
lowest_order = GetItemOrder(gTeamInventory_203B460->teamItems[j].id);
|
||||
lowest_order = GetItemOrder(gTeamInventoryRef->teamItems[j].id);
|
||||
}
|
||||
}
|
||||
|
||||
if (lowest_index >= 0) {
|
||||
// swap the slots
|
||||
struct Item current = gTeamInventory_203B460->teamItems[i];
|
||||
gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[lowest_index];
|
||||
gTeamInventory_203B460->teamItems[lowest_index] = current;
|
||||
struct Item current = gTeamInventoryRef->teamItems[i];
|
||||
gTeamInventoryRef->teamItems[i] = gTeamInventoryRef->teamItems[lowest_index];
|
||||
gTeamInventoryRef->teamItems[lowest_index] = current;
|
||||
}
|
||||
}
|
||||
} while (++i < INVENTORY_SIZE);
|
||||
@@ -664,17 +664,17 @@ void ConvertMoneyItemToMoney()
|
||||
void AddToTeamMoney(s32 amount)
|
||||
{
|
||||
s32 clamped_money;
|
||||
gTeamInventory_203B460->teamMoney += amount;
|
||||
gTeamInventoryRef->teamMoney += amount;
|
||||
|
||||
// clamp money
|
||||
clamped_money = MAX_TEAM_MONEY;
|
||||
if (gTeamInventory_203B460->teamMoney <= MAX_TEAM_MONEY) {
|
||||
if (gTeamInventory_203B460->teamMoney >= 0) {
|
||||
if (gTeamInventoryRef->teamMoney <= MAX_TEAM_MONEY) {
|
||||
if (gTeamInventoryRef->teamMoney >= 0) {
|
||||
return;
|
||||
}
|
||||
clamped_money = 0;
|
||||
}
|
||||
gTeamInventory_203B460->teamMoney = clamped_money;
|
||||
gTeamInventoryRef->teamMoney = clamped_money;
|
||||
}
|
||||
|
||||
u16 GetItemMoveID(u8 index)
|
||||
@@ -932,7 +932,7 @@ bool8 HasGummiItem()
|
||||
s32 i;
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
UNUSED size_t offs = offsetof(struct TeamInventory, teamItems[i]);
|
||||
if ((i[gTeamInventory_203B460->teamItems].flags & ITEM_FLAG_EXISTS) && IsGummiItem(i[gTeamInventory_203B460->teamItems].id)) {
|
||||
if ((i[gTeamInventoryRef->teamItems].flags & ITEM_FLAG_EXISTS) && IsGummiItem(i[gTeamInventoryRef->teamItems].id)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
@@ -942,14 +942,14 @@ bool8 HasGummiItem()
|
||||
void MoveToStorage(struct Item* slot)
|
||||
{
|
||||
if (IsThrowableItem(slot->id)) {
|
||||
gTeamInventory_203B460->teamStorage[slot->id] += slot->quantity;
|
||||
gTeamInventoryRef->teamStorage[slot->id] += slot->quantity;
|
||||
}
|
||||
else {
|
||||
gTeamInventory_203B460->teamStorage[slot->id]++;
|
||||
gTeamInventoryRef->teamStorage[slot->id]++;
|
||||
}
|
||||
|
||||
if (gTeamInventory_203B460->teamStorage[slot->id] > 999) {
|
||||
gTeamInventory_203B460->teamStorage[slot->id] = 999;
|
||||
if (gTeamInventoryRef->teamStorage[slot->id] > 999) {
|
||||
gTeamInventoryRef->teamStorage[slot->id] = 999;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -958,7 +958,7 @@ s32 CountKecleonShopItems(void)
|
||||
s32 i;
|
||||
s32 counter = 0;
|
||||
for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) {
|
||||
if (gTeamInventory_203B460->kecleonShopItems[i].id) {
|
||||
if (gTeamInventoryRef->kecleonShopItems[i].id) {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
@@ -969,14 +969,14 @@ void InitKecleonShopItem(u8 index)
|
||||
{
|
||||
struct BulkItem* shopItem;
|
||||
|
||||
shopItem = &gTeamInventory_203B460->kecleonShopItems[index];
|
||||
shopItem = &gTeamInventoryRef->kecleonShopItems[index];
|
||||
shopItem->id = ITEM_NOTHING;
|
||||
shopItem->quantity = 0;
|
||||
}
|
||||
|
||||
struct BulkItem* GetKecleonShopItem(u8 i)
|
||||
{
|
||||
return &gTeamInventory_203B460->kecleonShopItems[i];
|
||||
return &gTeamInventoryRef->kecleonShopItems[i];
|
||||
}
|
||||
|
||||
void FillKecleonShopGaps(void)
|
||||
@@ -986,7 +986,7 @@ void FillKecleonShopGaps(void)
|
||||
|
||||
do {
|
||||
while (slot_checking < MAX_KECLEON_ITEM_SHOP_ITEMS) {
|
||||
if (gTeamInventory_203B460->kecleonShopItems[slot_checking].id) {
|
||||
if (gTeamInventoryRef->kecleonShopItems[slot_checking].id) {
|
||||
break;
|
||||
}
|
||||
// find next empty slot
|
||||
@@ -999,7 +999,7 @@ void FillKecleonShopGaps(void)
|
||||
|
||||
if (slot_checking > last_filled) {
|
||||
// shift it down
|
||||
gTeamInventory_203B460->kecleonShopItems[last_filled] = gTeamInventory_203B460->kecleonShopItems[slot_checking];
|
||||
gTeamInventoryRef->kecleonShopItems[last_filled] = gTeamInventoryRef->kecleonShopItems[slot_checking];
|
||||
}
|
||||
slot_checking++;
|
||||
last_filled++;
|
||||
@@ -1017,12 +1017,12 @@ void SortKecleonShopInventory(void) {
|
||||
for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS - 1; i++) {
|
||||
s32 j;
|
||||
for (j = i + 1; j < MAX_KECLEON_ITEM_SHOP_ITEMS; j++) {
|
||||
s32 order_i = GetItemOrder(gTeamInventory_203B460->kecleonShopItems[i].id);
|
||||
s32 order_j = GetItemOrder(gTeamInventory_203B460->kecleonShopItems[j].id);
|
||||
if (order_i > order_j || (order_i == order_j && gTeamInventory_203B460->kecleonShopItems[i].quantity < gTeamInventory_203B460->kecleonShopItems[j].quantity)) {
|
||||
struct BulkItem str_i = gTeamInventory_203B460->kecleonShopItems[i];
|
||||
gTeamInventory_203B460->kecleonShopItems[i] = gTeamInventory_203B460->kecleonShopItems[j];
|
||||
gTeamInventory_203B460->kecleonShopItems[j] = str_i;
|
||||
s32 order_i = GetItemOrder(gTeamInventoryRef->kecleonShopItems[i].id);
|
||||
s32 order_j = GetItemOrder(gTeamInventoryRef->kecleonShopItems[j].id);
|
||||
if (order_i > order_j || (order_i == order_j && gTeamInventoryRef->kecleonShopItems[i].quantity < gTeamInventoryRef->kecleonShopItems[j].quantity)) {
|
||||
struct BulkItem str_i = gTeamInventoryRef->kecleonShopItems[i];
|
||||
gTeamInventoryRef->kecleonShopItems[i] = gTeamInventoryRef->kecleonShopItems[j];
|
||||
gTeamInventoryRef->kecleonShopItems[j] = str_i;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1051,8 +1051,8 @@ bool8 AddKecleonShopItem(u8 itemIndex) {
|
||||
|
||||
xxx_init_helditem_8090B08(&held, itemIndex); // initialize
|
||||
for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) {
|
||||
if (!gTeamInventory_203B460->kecleonShopItems[i].id) {
|
||||
gTeamInventory_203B460->kecleonShopItems[i] = held;
|
||||
if (!gTeamInventoryRef->kecleonShopItems[i].id) {
|
||||
gTeamInventoryRef->kecleonShopItems[i] = held;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1063,7 +1063,7 @@ u32 CountKecleonWareItems(void) {
|
||||
s32 i;
|
||||
u32 count = 0;
|
||||
for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) {
|
||||
if (gTeamInventory_203B460->kecleonWareItems[i].id) {
|
||||
if (gTeamInventoryRef->kecleonWareItems[i].id) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -1071,13 +1071,13 @@ u32 CountKecleonWareItems(void) {
|
||||
}
|
||||
|
||||
void InitKecleonWareItem(u8 index) {
|
||||
struct BulkItem* wareItem = &gTeamInventory_203B460->kecleonWareItems[index];
|
||||
struct BulkItem* wareItem = &gTeamInventoryRef->kecleonWareItems[index];
|
||||
wareItem->id = ITEM_NOTHING;
|
||||
wareItem->quantity = 0;
|
||||
}
|
||||
|
||||
struct BulkItem* GetKecleonWareItem(u8 index) {
|
||||
return &gTeamInventory_203B460->kecleonWareItems[index];
|
||||
return &gTeamInventoryRef->kecleonWareItems[index];
|
||||
}
|
||||
|
||||
void FillKecleonWareGaps(void) {
|
||||
@@ -1086,7 +1086,7 @@ void FillKecleonWareGaps(void) {
|
||||
|
||||
do {
|
||||
while (slot_checking < MAX_KECLEON_WARE_SHOP_ITEMS) {
|
||||
if (gTeamInventory_203B460->kecleonWareItems[slot_checking].id != ITEM_NOTHING) {
|
||||
if (gTeamInventoryRef->kecleonWareItems[slot_checking].id != ITEM_NOTHING) {
|
||||
break;
|
||||
}
|
||||
slot_checking++;
|
||||
@@ -1098,7 +1098,7 @@ void FillKecleonWareGaps(void) {
|
||||
|
||||
if (slot_checking > last_filled) {
|
||||
// shift it down
|
||||
gTeamInventory_203B460->kecleonWareItems[last_filled] = gTeamInventory_203B460->kecleonWareItems[slot_checking];
|
||||
gTeamInventoryRef->kecleonWareItems[last_filled] = gTeamInventoryRef->kecleonWareItems[slot_checking];
|
||||
}
|
||||
slot_checking++;
|
||||
last_filled++;
|
||||
@@ -1116,12 +1116,12 @@ void SortKecleonWareInventory(void) {
|
||||
for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS - 1; i++) {
|
||||
s32 j;
|
||||
for (j = i + 1; j < MAX_KECLEON_WARE_SHOP_ITEMS; j++) {
|
||||
s32 order_i = GetItemOrder(gTeamInventory_203B460->kecleonWareItems[i].id);
|
||||
s32 order_j = GetItemOrder(gTeamInventory_203B460->kecleonWareItems[j].id);
|
||||
if (order_i > order_j || (order_i == order_j && gTeamInventory_203B460->kecleonWareItems[i].quantity < gTeamInventory_203B460->kecleonWareItems[j].quantity)) {
|
||||
struct BulkItem str_i = gTeamInventory_203B460->kecleonWareItems[i];
|
||||
gTeamInventory_203B460->kecleonWareItems[i] = gTeamInventory_203B460->kecleonWareItems[j];
|
||||
gTeamInventory_203B460->kecleonWareItems[j] = str_i;
|
||||
s32 order_i = GetItemOrder(gTeamInventoryRef->kecleonWareItems[i].id);
|
||||
s32 order_j = GetItemOrder(gTeamInventoryRef->kecleonWareItems[j].id);
|
||||
if (order_i > order_j || (order_i == order_j && gTeamInventoryRef->kecleonWareItems[i].quantity < gTeamInventoryRef->kecleonWareItems[j].quantity)) {
|
||||
struct BulkItem str_i = gTeamInventoryRef->kecleonWareItems[i];
|
||||
gTeamInventoryRef->kecleonWareItems[i] = gTeamInventoryRef->kecleonWareItems[j];
|
||||
gTeamInventoryRef->kecleonWareItems[j] = str_i;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1149,8 +1149,8 @@ bool8 AddKecleonWareItem(u8 itemIndex) {
|
||||
|
||||
xxx_init_helditem_8090B08(&held, itemIndex); // initialize
|
||||
for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) {
|
||||
if (!gTeamInventory_203B460->kecleonWareItems[i].id) {
|
||||
gTeamInventory_203B460->kecleonWareItems[i] = held;
|
||||
if (!gTeamInventoryRef->kecleonWareItems[i].id) {
|
||||
gTeamInventoryRef->kecleonWareItems[i] = held;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1164,19 +1164,19 @@ s32 SaveTeamInventory(u8* unk0, u32 size)
|
||||
|
||||
xxx_init_struct_8094924_save_809486C(&unk, unk0, size);
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
SaveItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]);
|
||||
SaveItemSlot(&unk, &gTeamInventoryRef->teamItems[i]);
|
||||
}
|
||||
for (i = 0; i < STORAGE_SIZE; i++) {
|
||||
SaveIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10);
|
||||
SaveIntegerBits(&unk, &gTeamInventoryRef->teamStorage[i], 10);
|
||||
}
|
||||
for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) {
|
||||
SaveHeldItem(&unk, &gTeamInventory_203B460->kecleonShopItems[i]);
|
||||
SaveHeldItem(&unk, &gTeamInventoryRef->kecleonShopItems[i]);
|
||||
}
|
||||
for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) {
|
||||
SaveHeldItem(&unk, &gTeamInventory_203B460->kecleonWareItems[i]);
|
||||
SaveHeldItem(&unk, &gTeamInventoryRef->kecleonWareItems[i]);
|
||||
}
|
||||
SaveIntegerBits(&unk, &gTeamInventory_203B460->teamMoney, 24);
|
||||
SaveIntegerBits(&unk, &gTeamInventory_203B460->teamSavings, 24);
|
||||
SaveIntegerBits(&unk, &gTeamInventoryRef->teamMoney, 24);
|
||||
SaveIntegerBits(&unk, &gTeamInventoryRef->teamSavings, 24);
|
||||
nullsub_102(&unk);
|
||||
return unk.unk8;
|
||||
}
|
||||
@@ -1188,19 +1188,19 @@ s32 RestoreTeamInventory(u8 *unk0, u32 size)
|
||||
|
||||
xxx_init_struct_8094924_restore_809485C(&unk, unk0, size);
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
RestoreItemSlot(&unk, &gTeamInventory_203B460->teamItems[i]);
|
||||
RestoreItemSlot(&unk, &gTeamInventoryRef->teamItems[i]);
|
||||
}
|
||||
for (i = 0; i < STORAGE_SIZE; i++) {
|
||||
RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamStorage[i], 10);
|
||||
RestoreIntegerBits(&unk, &gTeamInventoryRef->teamStorage[i], 10);
|
||||
}
|
||||
for (i = 0; i < MAX_KECLEON_ITEM_SHOP_ITEMS; i++) {
|
||||
RestoreHeldItem(&unk, &gTeamInventory_203B460->kecleonShopItems[i]);
|
||||
RestoreHeldItem(&unk, &gTeamInventoryRef->kecleonShopItems[i]);
|
||||
}
|
||||
for (i = 0; i < MAX_KECLEON_WARE_SHOP_ITEMS; i++) {
|
||||
RestoreHeldItem(&unk, &gTeamInventory_203B460->kecleonWareItems[i]);
|
||||
RestoreHeldItem(&unk, &gTeamInventoryRef->kecleonWareItems[i]);
|
||||
}
|
||||
RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamMoney, 24);
|
||||
RestoreIntegerBits(&unk, &gTeamInventory_203B460->teamSavings, 24);
|
||||
RestoreIntegerBits(&unk, &gTeamInventoryRef->teamMoney, 24);
|
||||
RestoreIntegerBits(&unk, &gTeamInventoryRef->teamSavings, 24);
|
||||
nullsub_102(&unk);
|
||||
return unk.unk8;
|
||||
}
|
||||
@@ -1467,7 +1467,7 @@ void ClearAllItems_8091FB4() {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < INVENTORY_SIZE; i++) {
|
||||
struct Item* slot = &gTeamInventory_203B460->teamItems[i];
|
||||
struct Item* slot = &gTeamInventoryRef->teamItems[i];
|
||||
if (slot->flags & ITEM_FLAG_EXISTS) {
|
||||
slot->flags &= 0xf7;
|
||||
if (slot->id == ITEM_POKE) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1777
src/kecleon_bros.c
Normal file
1777
src/kecleon_bros.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,190 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
#include "item.h"
|
||||
#include "kecleon_items.h"
|
||||
#include "memory.h"
|
||||
|
||||
extern struct unkStruct_203B210 *gUnknown_203B210;
|
||||
extern u8 gUnknown_202E5D8[];
|
||||
extern u8 gUnknown_202E1C8[];
|
||||
extern struct UnkTextStruct2 gUnknown_80DB840;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB870;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB888;
|
||||
extern struct UnkTextStruct2 gUnknown_80DB858;
|
||||
|
||||
void UpdateKecleonStoreState(u32);
|
||||
|
||||
extern void sub_8019730();
|
||||
extern void sub_80199CC();
|
||||
extern void sub_8019B08();
|
||||
extern void sub_8019BBC();
|
||||
extern void sub_8019C78();
|
||||
extern void sub_8019850();
|
||||
extern void sub_80198E8();
|
||||
extern void sub_8019944();
|
||||
extern void sub_8019D30();
|
||||
extern void sub_8019D4C();
|
||||
extern void sub_8019D68();
|
||||
extern void sub_8018D30();
|
||||
extern void UpdateKecleonStoreDialogue();
|
||||
|
||||
u32 DisplayKeckleonDialogueSprite(u32 param_1)
|
||||
{
|
||||
char *monName;
|
||||
struct OpenedFile *faceFile;
|
||||
|
||||
gUnknown_203B210 = MemoryAlloc(sizeof(struct unkStruct_203B210),8);
|
||||
gUnknown_203B210->menuAction1 = 0;
|
||||
gUnknown_203B210->menuAction2 = 0;
|
||||
gUnknown_203B210->menuAction3 = 0;
|
||||
gUnknown_203B210->unk0 = param_1;
|
||||
switch(param_1)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203B210->isKecleonItemShop = TRUE;
|
||||
gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile;
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
|
||||
monName = GetMonSpecies( MONSTER_KECLEON);
|
||||
strcpy(gUnknown_202E1C8 - 0x50, monName);
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_203B210->isKecleonItemShop = TRUE;
|
||||
gUnknown_203B210->unkE4 = NULL;
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
|
||||
monName = GetMonSpecies( MONSTER_KECLEON);
|
||||
strcpy(gUnknown_202E1C8 - 0x50, monName);
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203B210->isKecleonItemShop = FALSE;
|
||||
gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile;
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
|
||||
monName = GetMonSpecies( MONSTER_KECLEON);
|
||||
strcpy(gUnknown_202E1C8 - 0x50, monName);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B210->isKecleonItemShop = FALSE;
|
||||
gUnknown_203B210->unkE4 = NULL;
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
|
||||
monName = GetMonSpecies( MONSTER_KECLEON);
|
||||
strcpy(gUnknown_202E1C8 - 0x50, monName);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON);
|
||||
gUnknown_203B210->faceFile = faceFile;
|
||||
gUnknown_203B210->faceData = faceFile->data;
|
||||
gUnknown_203B210->unkE0 = 0;
|
||||
gUnknown_203B210->unkE1 = 0;
|
||||
gUnknown_203B210->unkE2 = 0;
|
||||
gUnknown_203B210->unkDC = 2;
|
||||
gUnknown_203B210->unkDE = 8;
|
||||
UpdateKecleonStoreState(KECLEON_STORE_INIT);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_8018C04(void)
|
||||
{
|
||||
switch(gUnknown_203B210->currState) {
|
||||
case KECLEON_STORE_INIT:
|
||||
case KECLEON_STORE_MAIN_MENU:
|
||||
sub_8019730();
|
||||
break;
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
sub_80199CC();
|
||||
break;
|
||||
case 0x1a:
|
||||
case 0x1b:
|
||||
sub_8019B08();
|
||||
break;
|
||||
case 0x14:
|
||||
sub_8019BBC();
|
||||
break;
|
||||
case 0x1c:
|
||||
sub_8019C78();
|
||||
break;
|
||||
case 0x16:
|
||||
sub_8019850();
|
||||
break;
|
||||
case 0x1e:
|
||||
sub_80198E8();
|
||||
break;
|
||||
case 0x1f:
|
||||
sub_8019944();
|
||||
break;
|
||||
case 0x15:
|
||||
sub_8019D30();
|
||||
break;
|
||||
case 0x1d:
|
||||
sub_8019D4C();
|
||||
break;
|
||||
case KECLEON_STORE_EXIT:
|
||||
return 3;
|
||||
default:
|
||||
sub_8019D68();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8018CF0(void)
|
||||
{
|
||||
if(gUnknown_203B210 != NULL)
|
||||
{
|
||||
CloseFile(gUnknown_203B210->faceFile);
|
||||
MemoryFree(gUnknown_203B210);
|
||||
gUnknown_203B210 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateKecleonStoreState(u32 newState)
|
||||
{
|
||||
gUnknown_203B210->currState = newState;
|
||||
sub_8018D30();
|
||||
UpdateKecleonStoreDialogue();
|
||||
}
|
||||
|
||||
void sub_8018D30(void)
|
||||
{
|
||||
s32 index;
|
||||
sub_8006518(gUnknown_203B210->unkE8);
|
||||
switch(gUnknown_203B210->currState)
|
||||
{
|
||||
case 0x12:
|
||||
case 0x13:
|
||||
gUnknown_203B210->unkE8[0] = gUnknown_80DB840;
|
||||
gUnknown_203B210->unkE8[2] = gUnknown_80DB840;
|
||||
gUnknown_203B210->unkE8[0] = gUnknown_80DB870;
|
||||
gUnknown_203B210->unkE8[1] = gUnknown_80DB888;
|
||||
break;
|
||||
case 0x1A:
|
||||
case 0x1B:
|
||||
gUnknown_203B210->unkE8[0] = gUnknown_80DB840;
|
||||
gUnknown_203B210->unkE8[1] = gUnknown_80DB840;
|
||||
gUnknown_203B210->unkE8[2] = gUnknown_80DB840;
|
||||
gUnknown_203B210->unkE8[1] = gUnknown_80DB888;
|
||||
break;
|
||||
case 0x14:
|
||||
case 0x1C:
|
||||
gUnknown_203B210->unkE8[2] = gUnknown_80DB858;
|
||||
break;
|
||||
default:
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
case 0x18:
|
||||
case 0x19:
|
||||
for(index = 0; index < 4; index++)
|
||||
gUnknown_203B210->unkE8[index] = gUnknown_80DB840;
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B210->unkE8, 1, 1);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,7 @@
|
||||
#include "text_util.h"
|
||||
#include "team_inventory.h"
|
||||
#include "menu_input.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
struct unkStruct_203B2B0
|
||||
{
|
||||
@@ -193,9 +194,6 @@ void PlaySound(u32);
|
||||
void sub_8024CFC(void);
|
||||
void sub_8025254(void);
|
||||
void sub_8024D48(void);
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0();
|
||||
extern void sub_801B3C0(struct Item *);
|
||||
extern void nullsub_104();
|
||||
void sub_8024DBC(void);
|
||||
@@ -204,10 +202,7 @@ void sub_801AEE4(u32, u32);
|
||||
void sub_808F734(struct PokemonStruct *, s16);
|
||||
u32 sub_801602C(u32 r0, u8 *name);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern s32 sub_801A8AC(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_801A928(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
@@ -734,16 +729,16 @@ void sub_8024F70(void)
|
||||
|
||||
void sub_8024FD4(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC();
|
||||
gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE;
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex];
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex];
|
||||
UpdateLuminousCaveState(8);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[sub_801A8AC()];
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
|
||||
sub_8099690(0);
|
||||
UpdateLuminousCaveState(9);
|
||||
break;
|
||||
@@ -756,20 +751,20 @@ void sub_8024FD4(void)
|
||||
|
||||
void sub_8025058(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
if(gUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC())
|
||||
{
|
||||
gUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC();
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex];
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex];
|
||||
UpdateLuminousCaveState(0xD);
|
||||
}
|
||||
else
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventory_203B460->teamItems[sub_801A8AC()];
|
||||
gUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
|
||||
sub_8099690(0);
|
||||
UpdateLuminousCaveState(0xE);
|
||||
break;
|
||||
@@ -784,7 +779,7 @@ void sub_80250EC(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
|
||||
if(!sub_8012FD8(&gUnknown_203B2B0->unk84))
|
||||
{
|
||||
@@ -811,7 +806,7 @@ void sub_802515C(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
|
||||
if(!sub_8012FD8(&gUnknown_203B2B0->unk84))
|
||||
{
|
||||
@@ -893,13 +888,13 @@ void sub_8025254(void)
|
||||
gUnknown_203B2B0->evoItem1_itemIndex = 0;
|
||||
else
|
||||
{
|
||||
gUnknown_203B2B0->evoItem1_itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].id;
|
||||
gUnknown_203B2B0->evoItem1_itemIndex = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].id;
|
||||
}
|
||||
if(gUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE)
|
||||
gUnknown_203B2B0->evoItem2_ItemIndex = 0;
|
||||
else
|
||||
{
|
||||
gUnknown_203B2B0->evoItem2_ItemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].id;
|
||||
gUnknown_203B2B0->evoItem2_ItemIndex = gTeamInventoryRef->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].id;
|
||||
}
|
||||
|
||||
gUnknown_203B2B0->unk6 = RandInt(0xFF);
|
||||
|
||||
@@ -462,7 +462,7 @@ void sub_8030480(void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
#ifdef NONMATCHING // https://decomp.me/scratch/lM7lE
|
||||
void sub_80304C8(void)
|
||||
{
|
||||
s16 test;
|
||||
|
||||
@@ -642,7 +642,7 @@ void sub_80371B8(void)
|
||||
sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1);
|
||||
if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) &&
|
||||
(item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) {
|
||||
gTeamInventory_203B460->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems;
|
||||
gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,14 +185,14 @@ void sub_8037E38(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *par
|
||||
r3 = sub_800D588() == 0 ? param_1 : param_2;
|
||||
|
||||
if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) {
|
||||
load = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
load = gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
load += r3->numItems;
|
||||
gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8] = load;
|
||||
gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8] = load;
|
||||
}
|
||||
else {
|
||||
load = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
load = gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
load += r3->numItems;
|
||||
gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8] = load;
|
||||
gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8] = load;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *para
|
||||
r3 = sub_800D588() == 0 ? param_1 : param_2;
|
||||
|
||||
if ((r4->itemIndex).itemIndex_u8 == (r3->itemIndex).itemIndex_u8) {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
r2 = gTeamInventoryRef->teamStorage[r4->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
@@ -304,7 +304,7 @@ s32 sub_8038014(struct unkStruct_8035D94 *param_1,struct unkStruct_8035D94 *para
|
||||
linkStatus = COMMS_GOOD;
|
||||
}
|
||||
else {
|
||||
r2 = gTeamInventory_203B460->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
r2 = gTeamInventoryRef->teamStorage[r3->itemIndex.itemIndex_u8];
|
||||
r2 += r3->numItems;
|
||||
if (r2 > 999) {
|
||||
linkStatus = COMMS_NO_ROOM_STORAGE;
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "code_800D090.h"
|
||||
#include "menu_input.h"
|
||||
#include "moves.h"
|
||||
#include "kecleon_bros.h"
|
||||
|
||||
struct unkStruct_203B2B8
|
||||
{
|
||||
@@ -180,10 +181,7 @@ extern void sub_801F8D0(void);
|
||||
extern u32 sub_801B410(void);
|
||||
extern void sub_801B450(void);
|
||||
extern void nullsub_104(void);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern u32 sub_8022860(void);
|
||||
extern void sub_8022908(void);
|
||||
extern void sub_801BF98(void);
|
||||
@@ -197,10 +195,7 @@ bool8 sub_8026E88(struct PokemonStruct *r0);
|
||||
bool8 HasGummiItem();
|
||||
bool8 sub_8026EB8(struct PokemonStruct *r0);
|
||||
extern void sub_801BB20(void);
|
||||
extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0(void);
|
||||
extern void sub_801BC24(void);
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
extern void sub_8024458(s16, u32);
|
||||
void sub_8026E08(u32 r0);
|
||||
void sub_8026DAC(u32 r0, struct BulkItem *item);
|
||||
@@ -811,18 +806,18 @@ void sub_8026B48(void)
|
||||
|
||||
void sub_8026B64(void)
|
||||
{
|
||||
switch(sub_801A6E8(1))
|
||||
switch(sub_801A6E8(TRUE))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B2B8->id = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
sub_8026074(0x14);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B2B8->id = sub_801A8AC();
|
||||
gUnknown_203B2B8->item1.id = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
gUnknown_203B2B8->item1.id = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].id;
|
||||
gUnknown_203B2B8->item1.quantity = gTeamInventoryRef->teamItems[gUnknown_203B2B8->id].quantity;
|
||||
sub_8099690(0);
|
||||
sub_8026074(0x15);
|
||||
break;
|
||||
@@ -844,7 +839,7 @@ void sub_8026C14(void)
|
||||
struct Item slot;
|
||||
|
||||
menuAction = 0;
|
||||
sub_801A6E8(0);
|
||||
sub_801A6E8(FALSE);
|
||||
if ((sub_8012FD8(&gUnknown_203B2B8->unkCC) == '\0') && (sub_8013114(&gUnknown_203B2B8->unkCC,&menuAction), menuAction != 1)) {
|
||||
gUnknown_203B2B8->menuAction2 = menuAction;
|
||||
}
|
||||
@@ -1028,12 +1023,12 @@ bool8 CanTakePokemonHeldItem(struct PokemonStruct *r0)
|
||||
{
|
||||
if(IsThrowableItem(r0->heldItem.id))
|
||||
{
|
||||
if((gTeamInventory_203B460->teamStorage[r0->heldItem.id] + r0->heldItem.quantity) > 999)
|
||||
if((gTeamInventoryRef->teamStorage[r0->heldItem.id] + r0->heldItem.quantity) > 999)
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(gTeamInventory_203B460->teamStorage[r0->heldItem.id] > 998)
|
||||
if(gTeamInventoryRef->teamStorage[r0->heldItem.id] > 998)
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1059,11 +1054,11 @@ void sub_8026FA4(void)
|
||||
PlaySound(0x14d);
|
||||
if(IsThrowableItem(gUnknown_203B2B8->item2.id))
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->item2.id] += gUnknown_203B2B8->item2.quantity;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += gUnknown_203B2B8->item2.quantity;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->item2.id] += 1;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B2B8->item2.id] += 1;
|
||||
}
|
||||
|
||||
gUnknown_203B2B8->item2.id = ITEM_NOTHING;
|
||||
|
||||
@@ -609,7 +609,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
|
||||
gUnknown_203B184 = r0;
|
||||
if(r0 != NULL)
|
||||
{
|
||||
gTeamInventory_203B460 = r0->MoneyItems;
|
||||
gTeamInventoryRef = r0->MoneyItems;
|
||||
gRecruitedPokemonRef = r0->recruitedPokemon;
|
||||
gUnknown_203B480 = r0->unk8;
|
||||
gUnknown_203B484 = r0->unkC;
|
||||
@@ -624,7 +624,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
|
||||
gPlayTimeRef = r0->playTime;
|
||||
return;
|
||||
}
|
||||
gTeamInventory_203B460 = GetMoneyItemsInfo();
|
||||
gTeamInventoryRef = GetMoneyItemsInfo();
|
||||
gRecruitedPokemonRef = GetRecruitedPokemon();
|
||||
gUnknown_203B480 = sub_80950F8();
|
||||
gUnknown_203B484 = sub_8095100();
|
||||
|
||||
@@ -596,10 +596,10 @@ bool8 RecycleMoveAction(struct Entity * pokemon, struct Entity * target)
|
||||
for(index = 0; index < INVENTORY_SIZE; index++)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
item = &gTeamInventory_203B460->teamItems[index];
|
||||
item = &gTeamInventoryRef->teamItems[index];
|
||||
#else
|
||||
register size_t offset asm("r1") = offsetof(struct TeamInventory, teamItems[index]);
|
||||
struct Item* p = gTeamInventory_203B460->teamItems;
|
||||
struct Item* p = gTeamInventoryRef->teamItems;
|
||||
size_t addr = offset + (size_t)p;
|
||||
item = (struct Item*)addr;
|
||||
#endif
|
||||
@@ -832,11 +832,11 @@ bool8 CleanseOrbAction(struct Entity * pokemon, struct Entity * target)
|
||||
if (!entityInfo->isNotTeamMember) {
|
||||
for(index = 0; index < INVENTORY_SIZE; index++){
|
||||
// WTF why does this work...
|
||||
UNUSED struct Item* current = &gTeamInventory_203B460->teamItems[index];
|
||||
flag = index[gTeamInventory_203B460->teamItems].flags;
|
||||
UNUSED struct Item* current = &gTeamInventoryRef->teamItems[index];
|
||||
flag = index[gTeamInventoryRef->teamItems].flags;
|
||||
if (((flag & ITEM_FLAG_EXISTS) != 0) && ((flag & ITEM_FLAG_IN_SHOP) == 0))
|
||||
if((flag & ITEM_FLAG_STICKY) != 0) {
|
||||
gTeamInventory_203B460->teamItems[index].flags = flag & 0xf7;
|
||||
gTeamInventoryRef->teamItems[index].flags = flag & 0xf7;
|
||||
isItemCleaned = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -959,7 +959,7 @@ void HandleConfirmItemtoSendMenu(void)
|
||||
{
|
||||
mail->item = gUnknown_203B2C4->unk41C;
|
||||
}
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2C4->unk41C.id]--;
|
||||
gTeamInventoryRef->teamStorage[gUnknown_203B2C4->unk41C.id]--;
|
||||
SetThankYouMailMenuState(0x29);
|
||||
break;
|
||||
case 8:
|
||||
|
||||
@@ -401,9 +401,9 @@ void TradeItem_SendItemConfirm(void)
|
||||
case 5:
|
||||
sub_801CBB8();
|
||||
// Used temp var to get correct statements
|
||||
load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id];
|
||||
load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id];
|
||||
load -= gTradeItemsMenu->quantityToSend;
|
||||
gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id] = load;
|
||||
gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id] = load;
|
||||
SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING);
|
||||
PrepareSavePakWrite(MONSTER_NONE);
|
||||
break;
|
||||
@@ -497,9 +497,9 @@ void TradeItem_AddItem(void)
|
||||
{
|
||||
// Use temp var to get correct statements
|
||||
u16 load;
|
||||
load = gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id];
|
||||
load = gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id];
|
||||
load += gTradeItemsMenu->sentItem.quantity;
|
||||
gTeamInventory_203B460->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id] = load;
|
||||
gTeamInventoryRef->teamStorage[gTradeItemsMenu->sentItem.itemIdx.id] = load;
|
||||
}
|
||||
|
||||
void sub_80369FC(void)
|
||||
@@ -790,7 +790,7 @@ void sub_8036F30(void)
|
||||
void sub_8036F74(void)
|
||||
{
|
||||
sub_8006518(gTradeItemsMenu->unk184);
|
||||
sub_8036ECC(2, gTeamInventory_203B460->teamStorage[gTradeItemsMenu->itemToSend.id]);
|
||||
sub_8036ECC(2, gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]);
|
||||
sub_801CCD8();
|
||||
sub_8035CF4(gTradeItemsMenu->unk44, 3, 0);
|
||||
sub_8036F30();
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "friend_area.h"
|
||||
#include "wigglytuff_shop.h"
|
||||
#include "felicity_bank.h"
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DC534;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC564;
|
||||
@@ -38,7 +39,6 @@ u8 sub_8021700(u32);
|
||||
void sub_8092578(u8 *buffer, u8 index, u8 r2);
|
||||
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32,u8 *r5, u32);
|
||||
extern void sub_80141B4(const u8 *, u32, u8*, u32);
|
||||
extern void DrawTeamMoneyBox(u32);
|
||||
extern void sub_80211AC(u32, u32);
|
||||
extern void sub_8021354(u32);
|
||||
extern void sub_8021494();
|
||||
@@ -478,7 +478,7 @@ void HandleWigglytuffConfirmFriendAreaMenu(void)
|
||||
switch(menuAction)
|
||||
{
|
||||
case 5:
|
||||
gTeamInventory_203B460->teamMoney -= gWigglytuffShop->friendAreaPrice;
|
||||
gTeamInventoryRef->teamMoney -= gWigglytuffShop->friendAreaPrice;
|
||||
UnlockFriendArea(gWigglytuffShop->chosenFriendArea);
|
||||
PlaySound(0x14C);
|
||||
SetWigglytuffState(CONFIRM_BUY_FRIEND_AREA);
|
||||
@@ -530,11 +530,11 @@ void sub_80225C8(void)
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if(gTeamInventory_203B460->teamMoney == 0)
|
||||
if(gTeamInventoryRef->teamMoney == 0)
|
||||
{
|
||||
SetWigglytuffState(NO_MONEY);
|
||||
}
|
||||
else if(gWigglytuffShop->friendAreaPrice > gTeamInventory_203B460->teamMoney)
|
||||
else if(gWigglytuffShop->friendAreaPrice > gTeamInventoryRef->teamMoney)
|
||||
{
|
||||
SetWigglytuffState(NOT_ENOUGH_MONEY);
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ gUnknown_203B200: /* 203B200 */
|
||||
.include "src/felicity_bank.o"
|
||||
.include "src/kangaskhan_storage.o"
|
||||
|
||||
gUnknown_203B210: /* 203B210 */
|
||||
gKecleonBrosWork: /* 203B210 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B214: /* 203B214 */
|
||||
|
||||
Reference in New Issue
Block a user