mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-30 12:58:10 -05:00
split out and decomp most of wigglytuff shop
This commit is contained in:
File diff suppressed because it is too large
Load Diff
664
asm/code_8023144.s
Normal file
664
asm/code_8023144.s
Normal file
@@ -0,0 +1,664 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80227B8
|
||||
sub_80227B8:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
bl ResetUnusedInputStruct
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r4, _08022810
|
||||
movs r0, 0xD4
|
||||
lsls r0, 1
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
adds r2, r0, 0
|
||||
adds r2, 0xF4
|
||||
movs r1, 0
|
||||
str r1, [r2]
|
||||
str r5, [r0, 0x48]
|
||||
cmp r5, 0
|
||||
beq _08022820
|
||||
ldr r4, _08022814
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x7
|
||||
bl PrintColoredPokeNameToBuffer
|
||||
adds r4, 0x50
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x6
|
||||
bl PrintColoredPokeNameToBuffer
|
||||
bl HasGummiItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08022818
|
||||
movs r0, 0
|
||||
bl sub_8022924
|
||||
b _08022856
|
||||
.align 2, 0
|
||||
_08022810: .4byte gUnknown_203B294
|
||||
_08022814: .4byte gAvailablePokemonNames
|
||||
_08022818:
|
||||
movs r0, 0x11
|
||||
bl sub_8022924
|
||||
b _08022856
|
||||
_08022820:
|
||||
ldr r4, _08022848
|
||||
ldr r5, _0802284C
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl strcpy
|
||||
adds r4, 0x50
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl strcpy
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
bne _08022850
|
||||
movs r0, 0x12
|
||||
bl sub_8022924
|
||||
b _08022856
|
||||
.align 2, 0
|
||||
_08022848: .4byte gAvailablePokemonNames
|
||||
_0802284C: .4byte gUnknown_80DC5EC
|
||||
_08022850:
|
||||
movs r0, 0
|
||||
bl sub_8022924
|
||||
_08022856:
|
||||
movs r0, 0x1
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80227B8
|
||||
|
||||
thumb_func_start sub_8022860
|
||||
sub_8022860:
|
||||
push {lr}
|
||||
ldr r0, _08022878
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x16
|
||||
bhi _080228FE
|
||||
lsls r0, 2
|
||||
ldr r1, _0802287C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022878: .4byte gUnknown_203B294
|
||||
_0802287C: .4byte _08022880
|
||||
.align 2, 0
|
||||
_08022880:
|
||||
.4byte _080228DC
|
||||
.4byte _080228DC
|
||||
.4byte _080228E2
|
||||
.4byte _080228E8
|
||||
.4byte _080228EE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228FE
|
||||
.4byte _080228F4
|
||||
.4byte _080228FA
|
||||
_080228DC:
|
||||
bl sub_8022E78
|
||||
b _08022902
|
||||
_080228E2:
|
||||
bl sub_8022EF4
|
||||
b _08022902
|
||||
_080228E8:
|
||||
bl sub_8023068
|
||||
b _08022902
|
||||
_080228EE:
|
||||
bl sub_80230E8
|
||||
b _08022902
|
||||
_080228F4:
|
||||
bl sub_8023104
|
||||
b _08022902
|
||||
_080228FA:
|
||||
movs r0, 0x3
|
||||
b _08022904
|
||||
_080228FE:
|
||||
bl sub_8023120
|
||||
_08022902:
|
||||
movs r0, 0
|
||||
_08022904:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8022860
|
||||
|
||||
thumb_func_start sub_8022908
|
||||
sub_8022908:
|
||||
push {r4,lr}
|
||||
ldr r4, _08022920
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0802291A
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0802291A:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08022920: .4byte gUnknown_203B294
|
||||
thumb_func_end sub_8022908
|
||||
|
||||
thumb_func_start sub_8022924
|
||||
sub_8022924:
|
||||
push {lr}
|
||||
ldr r1, _08022938
|
||||
ldr r1, [r1]
|
||||
str r0, [r1]
|
||||
bl sub_802293C
|
||||
bl sub_8022A10
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08022938: .4byte gUnknown_203B294
|
||||
thumb_func_end sub_8022924
|
||||
|
||||
thumb_func_start sub_802293C
|
||||
sub_802293C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r4, _08022964
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xA4
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x3
|
||||
beq _080229A4
|
||||
cmp r0, 0x3
|
||||
bgt _08022968
|
||||
cmp r0, 0x2
|
||||
beq _08022972
|
||||
b _080229BC
|
||||
.align 2, 0
|
||||
_08022964: .4byte gUnknown_203B294
|
||||
_08022968:
|
||||
cmp r0, 0x10
|
||||
bgt _080229BC
|
||||
cmp r0, 0xA
|
||||
blt _080229BC
|
||||
b _080229E6
|
||||
_08022972:
|
||||
bl sub_8022D2C
|
||||
ldr r2, [r4]
|
||||
movs r0, 0xBC
|
||||
lsls r0, 1
|
||||
adds r2, r0
|
||||
ldr r1, _080229A0
|
||||
ldm r1!, {r3,r5,r6}
|
||||
stm r2!, {r3,r5,r6}
|
||||
ldm r1!, {r3,r5,r7}
|
||||
stm r2!, {r3,r5,r7}
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, r0
|
||||
adds r1, 0xF8
|
||||
bl sub_8012CAC
|
||||
ldr r0, [r4]
|
||||
movs r6, 0xC2
|
||||
lsls r6, 1
|
||||
adds r0, r6
|
||||
movs r1, 0x6
|
||||
strh r1, [r0]
|
||||
b _080229E6
|
||||
.align 2, 0
|
||||
_080229A0: .4byte gUnknown_80DC5BC
|
||||
_080229A4:
|
||||
movs r7, 0xB0
|
||||
lsls r7, 1
|
||||
adds r1, r7
|
||||
ldr r0, _080229B8
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
b _080229E6
|
||||
.align 2, 0
|
||||
_080229B8: .4byte gUnknown_80DC5D4
|
||||
_080229BC:
|
||||
ldr r0, _08022A08
|
||||
mov r12, r0
|
||||
movs r1, 0xA4
|
||||
lsls r1, 1
|
||||
mov r8, r1
|
||||
ldr r4, _08022A0C
|
||||
movs r3, 0
|
||||
movs r2, 0x3
|
||||
_080229CC:
|
||||
mov r5, r12
|
||||
ldr r1, [r5]
|
||||
adds r1, r3
|
||||
add r1, r8
|
||||
adds r0, r4, 0
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
adds r3, 0x18
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bge _080229CC
|
||||
_080229E6:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, _08022A08
|
||||
ldr r0, [r0]
|
||||
movs r6, 0xA4
|
||||
lsls r6, 1
|
||||
adds r0, r6
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08022A08: .4byte gUnknown_203B294
|
||||
_08022A0C: .4byte gUnknown_80DC5A4
|
||||
thumb_func_end sub_802293C
|
||||
|
||||
thumb_func_start sub_8022A10
|
||||
sub_8022A10:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x8
|
||||
ldr r1, _08022A2C
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x16
|
||||
bls _08022A22
|
||||
b _08022D1E
|
||||
_08022A22:
|
||||
lsls r0, 2
|
||||
ldr r1, _08022A30
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022A2C: .4byte gUnknown_203B294
|
||||
_08022A30: .4byte _08022A34
|
||||
.align 2, 0
|
||||
_08022A34:
|
||||
.4byte _08022A90
|
||||
.4byte _08022AAA
|
||||
.4byte _08022AB2
|
||||
.4byte _08022AE0
|
||||
.4byte _08022B10
|
||||
.4byte _08022B1A
|
||||
.4byte _08022B24
|
||||
.4byte _08022B34
|
||||
.4byte _08022B44
|
||||
.4byte _08022B54
|
||||
.4byte _08022B64
|
||||
.4byte _08022C28
|
||||
.4byte _08022CA0
|
||||
.4byte _08022CA8
|
||||
.4byte _08022CB0
|
||||
.4byte _08022CB8
|
||||
.4byte _08022CC0
|
||||
.4byte _08022CC8
|
||||
.4byte _08022CD8
|
||||
.4byte _08022CE8
|
||||
.4byte _08022CF8
|
||||
.4byte _08022D14
|
||||
.4byte _08022D1E
|
||||
_08022A90:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x48]
|
||||
cmp r0, 0
|
||||
beq _08022A9C
|
||||
movs r0, 0x5
|
||||
b _08022A9E
|
||||
_08022A9C:
|
||||
movs r0, 0x1
|
||||
_08022A9E:
|
||||
movs r1, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0xA
|
||||
bl sub_801A5D8
|
||||
b _08022D22
|
||||
_08022AAA:
|
||||
movs r0, 0x1
|
||||
bl sub_801A8D0
|
||||
b _08022D22
|
||||
_08022AB2:
|
||||
bl sub_801A9E0
|
||||
ldr r0, _08022ADC
|
||||
ldr r2, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x54
|
||||
adds r1, r2, 0
|
||||
adds r1, 0xF8
|
||||
movs r4, 0x9C
|
||||
lsls r4, 1
|
||||
adds r3, r2, r4
|
||||
adds r2, 0xF4
|
||||
ldr r2, [r2]
|
||||
str r2, [sp]
|
||||
movs r2, 0x2
|
||||
str r2, [sp, 0x4]
|
||||
movs r2, 0
|
||||
bl sub_8012D60
|
||||
b _08022D22
|
||||
.align 2, 0
|
||||
_08022ADC: .4byte gUnknown_203B294
|
||||
_08022AE0:
|
||||
bl sub_801A9E0
|
||||
ldr r4, _08022B08
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x54
|
||||
movs r1, 0
|
||||
bl sub_8012EA4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xA4
|
||||
ldr r1, _08022B0C
|
||||
movs r2, 0x3
|
||||
str r2, [sp]
|
||||
movs r2, 0x1
|
||||
str r2, [sp, 0x4]
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8012D60
|
||||
b _08022D22
|
||||
.align 2, 0
|
||||
_08022B08: .4byte gUnknown_203B294
|
||||
_08022B0C: .4byte gUnknown_80DC584
|
||||
_08022B10:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x50
|
||||
bl sub_801B3C0
|
||||
b _08022D22
|
||||
_08022B1A:
|
||||
ldr r0, _08022B20
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022B20: .4byte gUnknown_80DC5F4
|
||||
_08022B24:
|
||||
ldr r0, _08022B2C
|
||||
ldr r3, _08022B30
|
||||
b _08022D02
|
||||
.align 2, 0
|
||||
_08022B2C: .4byte gUnknown_80DC618
|
||||
_08022B30: .4byte 0x00000101
|
||||
_08022B34:
|
||||
ldr r0, _08022B3C
|
||||
ldr r3, _08022B40
|
||||
b _08022D02
|
||||
.align 2, 0
|
||||
_08022B3C: .4byte gUnknown_80DC674
|
||||
_08022B40: .4byte 0x00000101
|
||||
_08022B44:
|
||||
ldr r0, _08022B4C
|
||||
ldr r3, _08022B50
|
||||
b _08022D02
|
||||
.align 2, 0
|
||||
_08022B4C: .4byte gUnknown_80DC6CC
|
||||
_08022B50: .4byte 0x00000101
|
||||
_08022B54:
|
||||
ldr r0, _08022B5C
|
||||
ldr r3, _08022B60
|
||||
b _08022D02
|
||||
.align 2, 0
|
||||
_08022B5C: .4byte gUnknown_80DC728
|
||||
_08022B60: .4byte 0x00000101
|
||||
_08022B64:
|
||||
ldr r7, _08022B68
|
||||
b _08022B78
|
||||
.align 2, 0
|
||||
_08022B68: .4byte gUnknown_203B294
|
||||
_08022B6C:
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x40]
|
||||
adds r0, 0x1
|
||||
str r0, [r1, 0x40]
|
||||
cmp r0, 0x17
|
||||
bgt _08022C10
|
||||
_08022B78:
|
||||
movs r5, 0
|
||||
movs r6, 0
|
||||
movs r3, 0
|
||||
ldr r2, [r4]
|
||||
ldr r0, [r2, 0x38]
|
||||
cmp r5, r0
|
||||
bge _08022BA4
|
||||
ldrb r1, [r2, 0x8]
|
||||
b _08022B9C
|
||||
_08022B8A:
|
||||
adds r3, 0x1
|
||||
ldr r2, [r4]
|
||||
ldr r0, [r2, 0x38]
|
||||
cmp r3, r0
|
||||
bge _08022BA4
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x8
|
||||
adds r0, r3
|
||||
ldrb r1, [r0]
|
||||
_08022B9C:
|
||||
ldr r0, [r2, 0x40]
|
||||
cmp r1, r0
|
||||
bne _08022B8A
|
||||
movs r5, 0x1
|
||||
_08022BA4:
|
||||
movs r3, 0
|
||||
ldr r2, [r4]
|
||||
ldr r0, [r2, 0x3C]
|
||||
cmp r3, r0
|
||||
bge _08022BCE
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x20
|
||||
b _08022BC4
|
||||
_08022BB4:
|
||||
adds r3, 0x1
|
||||
ldr r2, [r4]
|
||||
ldr r0, [r2, 0x3C]
|
||||
cmp r3, r0
|
||||
bge _08022BCE
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x20
|
||||
adds r0, r3
|
||||
_08022BC4:
|
||||
ldrb r1, [r0]
|
||||
ldr r0, [r2, 0x40]
|
||||
cmp r1, r0
|
||||
bne _08022BB4
|
||||
movs r6, 0x1
|
||||
_08022BCE:
|
||||
cmp r5, r6
|
||||
beq _08022B6C
|
||||
ldr r1, [r7]
|
||||
movs r0, 0xA
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, [r1, 0x40]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetIQSkillName
|
||||
adds r1, r0, 0
|
||||
ldr r0, _08022C18
|
||||
bl strcpy
|
||||
movs r0, 0xCB
|
||||
bl PlaySound
|
||||
ldr r0, _08022C1C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
ldr r3, _08022C20
|
||||
bl sub_80141B4
|
||||
ldr r1, [r7]
|
||||
ldr r0, [r1, 0x40]
|
||||
adds r0, 0x1
|
||||
str r0, [r1, 0x40]
|
||||
ldr r0, _08022C24
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x40]
|
||||
cmp r0, 0x17
|
||||
bgt _08022C10
|
||||
b _08022D22
|
||||
_08022C10:
|
||||
movs r0, 0xB
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
.align 2, 0
|
||||
_08022C18: .4byte gUnknown_202DEA8
|
||||
_08022C1C: .4byte gUnknown_80DC788
|
||||
_08022C20: .4byte 0x00000101
|
||||
_08022C24: .4byte gUnknown_203B294
|
||||
_08022C28:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
bl nullsub_104
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x46
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0x8
|
||||
bhi _08022C98
|
||||
lsls r0, 2
|
||||
ldr r1, _08022C48
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022C48: .4byte _08022C4C
|
||||
.align 2, 0
|
||||
_08022C4C:
|
||||
.4byte _08022C70
|
||||
.4byte _08022C78
|
||||
.4byte _08022C80
|
||||
.4byte _08022C98
|
||||
.4byte _08022C88
|
||||
.4byte _08022C98
|
||||
.4byte _08022C98
|
||||
.4byte _08022C98
|
||||
.4byte _08022C90
|
||||
_08022C70:
|
||||
movs r0, 0x16
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022C78:
|
||||
movs r0, 0xD
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022C80:
|
||||
movs r0, 0xE
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022C88:
|
||||
movs r0, 0xF
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022C90:
|
||||
movs r0, 0x10
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022C98:
|
||||
movs r0, 0xC
|
||||
bl sub_8022924
|
||||
b _08022D22
|
||||
_08022CA0:
|
||||
ldr r0, _08022CA4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CA4: .4byte gUnknown_80DC7B4
|
||||
_08022CA8:
|
||||
ldr r0, _08022CAC
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CAC: .4byte gUnknown_80DC7FC
|
||||
_08022CB0:
|
||||
ldr r0, _08022CB4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CB4: .4byte gUnknown_80DC81C
|
||||
_08022CB8:
|
||||
ldr r0, _08022CBC
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CBC: .4byte gUnknown_80DC844
|
||||
_08022CC0:
|
||||
ldr r0, _08022CC4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CC4: .4byte gUnknown_80DC864
|
||||
_08022CC8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _08022CD4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CD4: .4byte gUnknown_80DC88C
|
||||
_08022CD8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _08022CE4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CE4: .4byte gUnknown_80DC8AC
|
||||
_08022CE8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _08022CF4
|
||||
b _08022D00
|
||||
.align 2, 0
|
||||
_08022CF4: .4byte gUnknown_80DC8C8
|
||||
_08022CF8:
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x16
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _08022D0C
|
||||
_08022D00:
|
||||
ldr r3, _08022D10
|
||||
_08022D02:
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl sub_80141B4
|
||||
b _08022D22
|
||||
.align 2, 0
|
||||
_08022D0C: .4byte gUnknown_80DC8DC
|
||||
_08022D10: .4byte 0x00000301
|
||||
_08022D14:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x4C]
|
||||
bl sub_801AFA4
|
||||
b _08022D22
|
||||
_08022D1E:
|
||||
bl sub_801A928
|
||||
_08022D22:
|
||||
add sp, 0x8
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8022A10
|
||||
|
||||
.align 2,0
|
||||
112
asm/wigglytuff_shop.s
Normal file
112
asm/wigglytuff_shop.s
Normal file
@@ -0,0 +1,112 @@
|
||||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80226F0
|
||||
sub_80226F0:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
mov r1, sp
|
||||
movs r2, 0
|
||||
movs r0, 0x80
|
||||
strb r0, [r1]
|
||||
strb r0, [r1, 0x1]
|
||||
movs r0, 0x10
|
||||
strb r0, [r1, 0x2]
|
||||
strb r2, [r1, 0x3]
|
||||
bl sub_8099B94
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08022782
|
||||
ldr r0, _08022728
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x98
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x4
|
||||
bhi _0802275C
|
||||
lsls r0, 2
|
||||
ldr r1, _0802272C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08022728: .4byte gUnknown_203B290
|
||||
_0802272C: .4byte _08022730
|
||||
.align 2, 0
|
||||
_08022730:
|
||||
.4byte _0802275C
|
||||
.4byte _08022744
|
||||
.4byte _08022750
|
||||
.4byte _08022744
|
||||
.4byte _08022750
|
||||
_08022744:
|
||||
movs r0, 0x5
|
||||
movs r1, 0x2
|
||||
ldr r2, [sp]
|
||||
bl sub_8099AFC
|
||||
b _08022772
|
||||
_08022750:
|
||||
movs r0, 0x5
|
||||
movs r1, 0x2
|
||||
ldr r2, [sp]
|
||||
bl sub_8099A5C
|
||||
b _08022772
|
||||
_0802275C:
|
||||
ldr r4, _0802278C
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x8]
|
||||
bl UpdateWigglytuffState
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x98
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
_08022772:
|
||||
ldr r0, _0802278C
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x98
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
_08022782:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802278C: .4byte gUnknown_203B290
|
||||
thumb_func_end sub_80226F0
|
||||
|
||||
thumb_func_start sub_8022790
|
||||
sub_8022790:
|
||||
push {lr}
|
||||
ldr r0, _080227A8
|
||||
ldr r2, [r0]
|
||||
movs r0, 0x9A
|
||||
lsls r0, 1
|
||||
adds r1, r2, r0
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _080227AC
|
||||
subs r0, 0x1
|
||||
str r0, [r1]
|
||||
b _080227B2
|
||||
.align 2, 0
|
||||
_080227A8: .4byte gUnknown_203B290
|
||||
_080227AC:
|
||||
ldr r0, [r2, 0x8]
|
||||
bl UpdateWigglytuffState
|
||||
_080227B2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8022790
|
||||
|
||||
.align 2,0
|
||||
@@ -118,6 +118,9 @@ SECTIONS {
|
||||
asm/code_801EE10.o(.text);
|
||||
src/code_801EE10_mid.o(.text);
|
||||
asm/code_801EE10_mid.o(.text);
|
||||
src/wigglytuff_shop.o(.text);
|
||||
asm/wigglytuff_shop.o(.text);
|
||||
asm/code_8023144.o(.text);
|
||||
src/code_8023144.o(.text);
|
||||
asm/code_801EE10_1.o(.text);
|
||||
src/code_801EE10_1.o(.text);
|
||||
|
||||
628
src/wigglytuff_shop.c
Normal file
628
src/wigglytuff_shop.c
Normal file
@@ -0,0 +1,628 @@
|
||||
#include "global.h"
|
||||
#include "constants/friend_area.h"
|
||||
#include "file_system.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "input.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "friend_area.h"
|
||||
|
||||
struct unkStruct_8092638
|
||||
{
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
u32 unk5;
|
||||
};
|
||||
extern u8 gUnknown_202E628[];
|
||||
extern u32 gUnknown_202DE30[2];
|
||||
extern u8 gUnknown_202E5D8[];
|
||||
extern u8 gUnknown_202E1C8[];
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
|
||||
extern u8 *gWigglytuffDialogue[2][20];
|
||||
extern u8 *gWigglytuffCheck[];
|
||||
extern u8 *gUnknown_80D4920[];
|
||||
extern u8 *gUnknown_80D4928[];
|
||||
extern u8 *gUnknown_80D4934[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
extern u8 *gUnknown_80D4978[];
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DC534;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC564;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC54C;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC534;
|
||||
|
||||
s32 sub_80144A4(s32 *);
|
||||
u8 sub_8021700(u32);
|
||||
void sub_8092578(u8 *buffer, u8 index, u8 r2);
|
||||
void sub_80222C8(void);
|
||||
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();
|
||||
extern void sub_803AA34();
|
||||
extern void sub_8021774(u8,u32, u32);
|
||||
extern void sub_809249C(u8, u32);
|
||||
extern void sub_8021830(void);
|
||||
extern u32 sub_80217EC(void);
|
||||
extern u8 sub_803ABC8(void);
|
||||
extern u32 sub_8021274(u32);
|
||||
extern u8 sub_802132C(void);
|
||||
extern void sub_80213A0(void);
|
||||
extern void sub_8022380(void);
|
||||
extern void PlaySound(u32);
|
||||
bool8 sub_8023144(s32 param_1, s32 index, struct UnkTextStruct2_sub *sub, u32 param_4);
|
||||
void sub_8023354(u8 param_1);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
extern void sub_8022420(void);
|
||||
extern void sub_8092638(u8,struct unkStruct_8092638 *, u32, u32);
|
||||
|
||||
extern u32 sub_8023278(u32);
|
||||
void sub_80233A0(void);
|
||||
s16 sub_802331C(void);
|
||||
extern void sub_8022460(void);
|
||||
extern void sub_8022538(void);
|
||||
extern void sub_80225C8(void);
|
||||
extern void sub_80224D4(void);
|
||||
extern void sub_80226F0(void);
|
||||
extern void sub_8022790(void);
|
||||
extern void sub_8022668(void);
|
||||
extern void sub_8022684(void);
|
||||
extern void sub_80226CC(void);
|
||||
|
||||
void UpdateWigglytuffState(s32);
|
||||
void sub_8021D5C(void);
|
||||
void UpdateWigglytuffDialogue(void);
|
||||
|
||||
struct unkStruct_203B290
|
||||
{
|
||||
// size: 0x138
|
||||
bool32 isAsleep;
|
||||
s32 state;
|
||||
s32 fallbackState;
|
||||
s32 friendAreaPrice;
|
||||
u8 chosenFriendArea;
|
||||
s16 chosenSpecies;
|
||||
u32 menuAction1;
|
||||
u32 menuAction2;
|
||||
struct MenuItem unk1C[8];
|
||||
u16 unk5C[0x8];
|
||||
struct MenuStruct unk6C;
|
||||
/* 0xBC */ struct OpenedFile *faceFile;
|
||||
/* 0xC0 */ u8 *faceData;
|
||||
u16 unkC4;
|
||||
u16 unkC6;
|
||||
u8 unkC8;
|
||||
u8 unkC9;
|
||||
u8 unkCA;
|
||||
u8 fillCB;
|
||||
u8 *unkCC;
|
||||
struct UnkTextStruct2 unkD0[4];
|
||||
u32 unk130;
|
||||
u32 unk134;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B290 *gUnknown_203B290;
|
||||
|
||||
bool8 CreateWigglytuffShop(bool32 isAsleep)
|
||||
{
|
||||
char *string;
|
||||
struct OpenedFile *file;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0, 1, 1);
|
||||
gUnknown_203B290 = MemoryAlloc(sizeof(struct unkStruct_203B290), 8);
|
||||
gUnknown_203B290->menuAction1 = 0;
|
||||
gUnknown_203B290->menuAction2 = 0;
|
||||
gUnknown_203B290->isAsleep = isAsleep;
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8,MONSTER_WIGGLYTUFF);
|
||||
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8,MONSTER_WIGGLYTUFF);
|
||||
string = GetMonSpecies(MONSTER_WIGGLYTUFF);
|
||||
strcpy(gUnknown_202E1C8 - 0x50, string);
|
||||
if (gUnknown_203B290->isAsleep == TRUE) {
|
||||
gUnknown_203B290->unkCC = NULL;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B290->unkCC = (u8 *)&gUnknown_203B290->faceFile;
|
||||
}
|
||||
file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF);
|
||||
gUnknown_203B290->faceFile = file;
|
||||
gUnknown_203B290->faceData = file->data;
|
||||
gUnknown_203B290->unkC8 = 0;
|
||||
gUnknown_203B290->unkC9 = 0;
|
||||
gUnknown_203B290->unkCA = 0;
|
||||
gUnknown_203B290->unkC4 = 2;
|
||||
gUnknown_203B290->unkC6 = 8;
|
||||
UpdateWigglytuffState(0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_8021C5C(void)
|
||||
{
|
||||
switch(gUnknown_203B290->state)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
sub_8022460();
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
sub_8022538();
|
||||
break;
|
||||
case 0xb:
|
||||
sub_80225C8();
|
||||
break;
|
||||
case 0x11:
|
||||
sub_80224D4();
|
||||
break;
|
||||
case 0xd:
|
||||
sub_80226F0();
|
||||
break;
|
||||
case 0xe:
|
||||
sub_8022790();
|
||||
break;
|
||||
case 0x10:
|
||||
sub_8022668();
|
||||
break;
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
sub_8022684();
|
||||
break;
|
||||
case 4:
|
||||
return 3;
|
||||
default:
|
||||
sub_80226CC();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_8021D1C(void)
|
||||
{
|
||||
if(gUnknown_203B290)
|
||||
{
|
||||
CloseFile(gUnknown_203B290->faceFile);
|
||||
MemoryFree(gUnknown_203B290);
|
||||
gUnknown_203B290 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateWigglytuffState(s32 newState)
|
||||
{
|
||||
gUnknown_203B290->state = newState;
|
||||
sub_8021D5C();
|
||||
UpdateWigglytuffDialogue();
|
||||
}
|
||||
|
||||
void sub_8021D5C(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
sub_8006518(gUnknown_203B290->unkD0);
|
||||
switch(gUnknown_203B290->state)
|
||||
{
|
||||
case 0x9:
|
||||
case 0xA:
|
||||
gUnknown_203B290->unkD0[0] = gUnknown_80DC534;
|
||||
gUnknown_203B290->unkD0[2] = gUnknown_80DC534;
|
||||
gUnknown_203B290->unkD0[1] = gUnknown_80DC564;
|
||||
break;
|
||||
case 0xB:
|
||||
gUnknown_203B290->unkD0[2] = gUnknown_80DC54C;
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
gUnknown_203B290->unkD0[index] = gUnknown_80DC534;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B290->unkD0, 1, 1);
|
||||
}
|
||||
|
||||
void UpdateWigglytuffDialogue(void)
|
||||
{
|
||||
char *string;
|
||||
struct unkStruct_8092638 uStack_14;
|
||||
|
||||
switch(gUnknown_203B290->state)
|
||||
{
|
||||
case 0:
|
||||
sub_80222C8();
|
||||
sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][0],0,gUnknown_203B290->menuAction1,gUnknown_203B290->unk1C,gUnknown_203B290->unk5C,4,0,gUnknown_203B290->unkCC,0xc);
|
||||
break;
|
||||
case 1:
|
||||
sub_80222C8();
|
||||
sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][1],0,gUnknown_203B290->menuAction1,gUnknown_203B290->unk1C,gUnknown_203B290->unk5C,4,0,gUnknown_203B290->unkCC,0xc);
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_203B290->fallbackState = 9;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][3],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_203B290->fallbackState = 10;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][4],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203B290->fallbackState = 1;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][19],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B290->fallbackState = 4;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][2],0,gUnknown_203B290->unkCC,0x30d);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case 5:
|
||||
gUnknown_203B290->fallbackState = 3;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][8],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 6:
|
||||
gUnknown_203B290->fallbackState = 10;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][9],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x12:
|
||||
gUnknown_203B290->fallbackState = 3;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][10],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x13:
|
||||
gUnknown_203B290->fallbackState = 10;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][11],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 9:
|
||||
sub_80211AC(2,3);
|
||||
DrawTeamMoneyBox(1);
|
||||
break;
|
||||
case 10:
|
||||
sub_8021354(1);
|
||||
DrawTeamMoneyBox(1);
|
||||
break;
|
||||
case 0xb:
|
||||
sub_8021494();
|
||||
DrawTeamMoneyBox(1);
|
||||
sub_8022380();
|
||||
sub_8012D60(&gUnknown_203B290->unk6C,gUnknown_203B290->unk1C,0,gUnknown_203B290->unk5C, gUnknown_203B290->menuAction2,2);
|
||||
break;
|
||||
case 0x11:
|
||||
sub_8022420();
|
||||
sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0);
|
||||
gUnknown_202DE30[0] = gUnknown_203B290->friendAreaPrice;
|
||||
sub_8014248(gWigglytuffDialogue[gUnknown_203B290->isAsleep][5],0,5,gUnknown_203B290->unk1C,0,4,0,gUnknown_203B290->unkCC,0xc);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_8021774(gUnknown_203B290->chosenFriendArea,0,2);
|
||||
break;
|
||||
case 0xc:
|
||||
gUnknown_203B290->fallbackState = 0xd;
|
||||
sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0);
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][6],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0xd:
|
||||
gUnknown_203B290->fallbackState = 0xe;
|
||||
PlaySound(0x25b);
|
||||
gUnknown_203B290->unk130 = 1;
|
||||
break;
|
||||
case 0xe:
|
||||
gUnknown_203B290->fallbackState = 0xf;
|
||||
gUnknown_203B290->unk134 = 0x1e;
|
||||
break;
|
||||
case 0xf:
|
||||
if (sub_8021700(2) != 0) {
|
||||
sub_80213A0();
|
||||
gUnknown_203B290->fallbackState = 0x12;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B290->fallbackState = 8;
|
||||
}
|
||||
PlaySound(0xce);
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][7],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x14:
|
||||
gUnknown_203B290->fallbackState = 0x16;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][12],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x15:
|
||||
gUnknown_203B290->fallbackState = 0x17;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][13],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x16:
|
||||
sub_8023144(0,3,0,10);
|
||||
break;
|
||||
case 0x17:
|
||||
sub_8023354(1);
|
||||
break;
|
||||
case 0x18:
|
||||
sub_8092638(gUnknown_203B290->chosenFriendArea,&uStack_14,0,0);
|
||||
if (uStack_14.unk4 != 0) {
|
||||
gUnknown_203B290->fallbackState = 0x19;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(GetFriendAreaUnlockCondition(gUnknown_203B290->chosenFriendArea))
|
||||
{
|
||||
case UNLOCK_SHOP_POST_GAME:
|
||||
if (sub_80023E4(6) != 0) {
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
}
|
||||
else {
|
||||
gUnknown_203B290->fallbackState = 0x1a;
|
||||
}
|
||||
break;
|
||||
case UNLOCK_WONDER_MAIL:
|
||||
gUnknown_203B290->fallbackState = 0x1b;
|
||||
break;
|
||||
case UNLOCK_LEGENDARY_REQUEST:
|
||||
gUnknown_203B290->fallbackState = 0x1c;
|
||||
break;
|
||||
default:
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
break;
|
||||
}
|
||||
}
|
||||
string = GetMonSpecies(gUnknown_203B290->chosenSpecies);
|
||||
strcpy(gAvailablePokemonNames,string);
|
||||
sub_8092578(gUnknown_202E628,gUnknown_203B290->chosenFriendArea,0);
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][14],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x19:
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][15],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x1a:
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][16],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x1b:
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][17],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
case 0x1c:
|
||||
gUnknown_203B290->fallbackState = 0x15;
|
||||
sub_80141B4(gWigglytuffDialogue[gUnknown_203B290->isAsleep][18],0,gUnknown_203B290->unkCC,0x10d);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80222C8(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 index = 0;
|
||||
MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C));
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4978;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 2;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = *gWigglytuffCheck;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 3;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4970;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 4;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4934;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 1;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = NULL;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 1;
|
||||
|
||||
for(i = 0; i < index; i++)
|
||||
{
|
||||
if(gUnknown_203B290->unk5C[i] == 0 && gUnknown_203B290->unk1C[i].menuAction == gUnknown_203B290->menuAction1)
|
||||
return;
|
||||
}
|
||||
for(i = 0; i < index; i++)
|
||||
{
|
||||
if(gUnknown_203B290->unk5C[i] == 0)
|
||||
{
|
||||
gUnknown_203B290->menuAction1 = gUnknown_203B290->unk1C[i].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022380(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 index = 0;
|
||||
MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C));
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4978;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 2;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4970;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 4;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = NULL;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 1;
|
||||
|
||||
for(i = 0; i < index; i++)
|
||||
{
|
||||
if(gUnknown_203B290->unk5C[i] == 0 && gUnknown_203B290->unk1C[i].menuAction == gUnknown_203B290->menuAction2)
|
||||
return;
|
||||
}
|
||||
for(i = 0; i < index; i++)
|
||||
{
|
||||
if(gUnknown_203B290->unk5C[i] == 0)
|
||||
{
|
||||
gUnknown_203B290->menuAction2 = gUnknown_203B290->unk1C[i].menuAction;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022420(void)
|
||||
{
|
||||
s32 index = 0;
|
||||
MemoryFill16(gUnknown_203B290->unk5C, 0, sizeof(gUnknown_203B290->unk5C));
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4920;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 5;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = *gUnknown_80D4928;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 6;
|
||||
index++;
|
||||
gUnknown_203B290->unk1C[index].text = NULL;
|
||||
gUnknown_203B290->unk1C[index].menuAction = 1;
|
||||
}
|
||||
|
||||
void sub_8022460(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0)
|
||||
{
|
||||
if (menuAction != 1) {
|
||||
gUnknown_203B290->menuAction1 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if (sub_8021700(2) != 0) {
|
||||
UpdateWigglytuffState(5);
|
||||
}
|
||||
else {
|
||||
UpdateWigglytuffState(7);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
UpdateWigglytuffState(0x14);
|
||||
break;
|
||||
case 4:
|
||||
UpdateWigglytuffState(2);
|
||||
break;
|
||||
case 1:
|
||||
UpdateWigglytuffState(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80224D4(void)
|
||||
{
|
||||
s32 menuAction;
|
||||
|
||||
if (sub_80144A4(&menuAction) == 0) {
|
||||
switch(menuAction)
|
||||
{
|
||||
case 5:
|
||||
gTeamInventory_203B460->teamMoney -= gUnknown_203B290->friendAreaPrice;
|
||||
UnlockFriendArea(gUnknown_203B290->chosenFriendArea);
|
||||
PlaySound(0x14C);
|
||||
UpdateWigglytuffState(0xC);
|
||||
break;
|
||||
case 1:
|
||||
case 6:
|
||||
UpdateWigglytuffState(0xA);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022538(void)
|
||||
{
|
||||
switch(sub_8021274(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B290->chosenFriendArea = sub_802132C();
|
||||
gUnknown_203B290->friendAreaPrice = GetFriendAreaPrice(gUnknown_203B290->chosenFriendArea);
|
||||
UpdateWigglytuffState(0xB);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B290->chosenFriendArea = sub_802132C();
|
||||
gUnknown_203B290->friendAreaPrice = GetFriendAreaPrice(gUnknown_203B290->chosenFriendArea);
|
||||
UpdateWigglytuffState(0x10);
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
case 2:
|
||||
sub_80213A0();
|
||||
UpdateWigglytuffState(1);
|
||||
break;
|
||||
case 1:
|
||||
default:
|
||||
DrawTeamMoneyBox(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80225C8(void)
|
||||
{
|
||||
s32 menuAction = 0;
|
||||
sub_8021274(0);
|
||||
if(sub_8012FD8(&gUnknown_203B290->unk6C) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B290->unk6C, &menuAction);
|
||||
if(menuAction != 1) gUnknown_203B290->menuAction2 = menuAction;
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 2:
|
||||
if(gTeamInventory_203B460->teamMoney == 0)
|
||||
{
|
||||
UpdateWigglytuffState(6);
|
||||
}
|
||||
else if(gUnknown_203B290->friendAreaPrice > gTeamInventory_203B460->teamMoney)
|
||||
{
|
||||
UpdateWigglytuffState(0x13);
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateWigglytuffState(0x11);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
UpdateWigglytuffState(0x10);
|
||||
break;
|
||||
case 1:
|
||||
UpdateWigglytuffState(10);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022668(void)
|
||||
{
|
||||
switch(sub_80217EC())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_8021830();
|
||||
UpdateWigglytuffState(0xA);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8022684(void)
|
||||
{
|
||||
switch(sub_8023278(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B290->chosenSpecies = sub_802331C();
|
||||
gUnknown_203B290->chosenFriendArea = GetFriendArea(gUnknown_203B290->chosenSpecies);
|
||||
UpdateWigglytuffState(0x18);
|
||||
break;
|
||||
case 2:
|
||||
sub_80233A0();
|
||||
UpdateWigglytuffState(1);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80226CC(void)
|
||||
{
|
||||
s32 temp;
|
||||
|
||||
if (sub_80144A4(&temp) == 0)
|
||||
{
|
||||
UpdateWigglytuffState(gUnknown_203B290->fallbackState);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user