mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
Decomp sub_80479B8 and sub_80482FC
This commit is contained in:
parent
5fe3e86372
commit
471597c387
|
|
@ -1071,979 +1071,4 @@ _080479B0:
|
|||
bx r1
|
||||
thumb_func_end sub_8047930
|
||||
|
||||
thumb_func_start sub_80479B8
|
||||
sub_80479B8:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x1C
|
||||
adds r4, r3, 0
|
||||
ldr r5, [sp, 0x3C]
|
||||
ldr r7, [sp, 0x40]
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r10, r2
|
||||
cmp r6, 0
|
||||
beq _08047AD0
|
||||
cmp r1, 0
|
||||
bne _08047ABC
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
ldr r1, [r5, 0x70]
|
||||
mov r9, r1
|
||||
ldrb r0, [r1, 0x6]
|
||||
cmp r0, 0
|
||||
beq _08047A20
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08047A3C
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
beq _08047A3C
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x1
|
||||
eors r0, r1
|
||||
negs r1, r0
|
||||
orrs r1, r0
|
||||
lsrs r1, 31
|
||||
mov r8, r1
|
||||
b _08047A3C
|
||||
_08047A20:
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
beq _08047A3C
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2
|
||||
bl IQSkillIsEnabled
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
_08047A3C:
|
||||
adds r0, r5, 0
|
||||
bl CannotUseItems
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08047A4C
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
_08047A4C:
|
||||
mov r1, r8
|
||||
cmp r1, 0
|
||||
beq _08047ABC
|
||||
mov r0, r9
|
||||
adds r0, 0x60
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08047ABC
|
||||
mov r1, r9
|
||||
ldrb r0, [r1, 0x8]
|
||||
cmp r0, 0x1
|
||||
bne _08047A76
|
||||
adds r1, r5, 0x4
|
||||
adds r0, r4, 0
|
||||
adds r2, r7, 0
|
||||
bl sub_80464C8
|
||||
bl _080482BA
|
||||
_08047A76:
|
||||
ldr r0, _08047AAC
|
||||
bl PlaySoundEffect
|
||||
ldr r0, _08047AB0
|
||||
adds r1, r7, 0
|
||||
bl sub_8045BF8
|
||||
ldr r0, _08047AB4
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
bl SetMessageArgument
|
||||
ldr r0, _08047AB8
|
||||
ldr r2, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80522F4
|
||||
ldr r0, [r7]
|
||||
mov r1, r9
|
||||
str r0, [r1, 0x60]
|
||||
adds r0, r5, 0
|
||||
bl sub_806A6E8
|
||||
bl _080482BA
|
||||
.align 2, 0
|
||||
_08047AAC: .4byte 0x0000014d
|
||||
_08047AB0: .4byte gUnknown_202DE58
|
||||
_08047AB4: .4byte gAvailablePokemonNames
|
||||
_08047AB8: .4byte gUnknown_80FDBB8
|
||||
_08047ABC:
|
||||
cmp r6, 0
|
||||
beq _08047AD0
|
||||
adds r0, r5, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_8042390
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl SetShopkeeperAggression
|
||||
_08047AD0:
|
||||
ldrb r1, [r7]
|
||||
movs r0, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08047B2C
|
||||
ldr r0, _08047B1C
|
||||
adds r1, r7, 0
|
||||
bl sub_8045BF8
|
||||
ldr r0, _08047B20
|
||||
ldr r2, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80522F4
|
||||
cmp r6, 0
|
||||
beq _08047B30
|
||||
ldr r0, _08047B24
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
add r0, sp, 0x18
|
||||
str r0, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
ldr r0, _08047B28
|
||||
str r0, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
str r1, [sp, 0x10]
|
||||
str r1, [sp, 0x14]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x1
|
||||
bl sub_806F370
|
||||
adds r0, r4, 0
|
||||
bl sub_8071DA4
|
||||
b _080482BA
|
||||
.align 2, 0
|
||||
_08047B1C: .4byte gUnknown_202DE58
|
||||
_08047B20: .4byte gUnknown_80FE3E8
|
||||
_08047B24: .4byte gUnknown_80F4FAE
|
||||
_08047B28: .4byte 0x00000217
|
||||
_08047B2C:
|
||||
cmp r6, 0
|
||||
bne _08047B38
|
||||
_08047B30:
|
||||
adds r0, r5, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_804245C
|
||||
_08047B38:
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _08047B56
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x5
|
||||
movs r3, 0
|
||||
bl sub_8078B5C
|
||||
_08047B56:
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x5
|
||||
beq _08047B72
|
||||
ldrb r0, [r7, 0x2]
|
||||
bl GetItemCategory
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xA
|
||||
bne _08047B9C
|
||||
_08047B72:
|
||||
cmp r6, 0
|
||||
beq _08047B88
|
||||
ldr r0, _08047B84
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
mov r0, sp
|
||||
adds r0, 0x19
|
||||
b _08048284
|
||||
.align 2, 0
|
||||
_08047B84: .4byte gUnknown_80F4FAC
|
||||
_08047B88:
|
||||
ldr r0, _08047B98
|
||||
ldr r2, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80522F4
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047B98: .4byte gUnknown_80FE458
|
||||
_08047B9C:
|
||||
ldrb r0, [r7, 0x2]
|
||||
subs r0, 0x1
|
||||
cmp r0, 0xE8
|
||||
bls _08047BA6
|
||||
b _08048276
|
||||
_08047BA6:
|
||||
lsls r0, 2
|
||||
ldr r1, _08047BB0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08047BB0: .4byte _08047BB4
|
||||
.align 2, 0
|
||||
_08047BB4:
|
||||
.4byte _08047F58
|
||||
.4byte _08047F70
|
||||
.4byte _08047F88
|
||||
.4byte _08047FA0
|
||||
.4byte _08047FB8
|
||||
.4byte _08047FD0
|
||||
.4byte _08047FF0
|
||||
.4byte _08047FE8
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048004
|
||||
.4byte _0804825E
|
||||
.4byte _08048010
|
||||
.4byte _0804801A
|
||||
.4byte _0804804C
|
||||
.4byte _08048276
|
||||
.4byte _0804802E
|
||||
.4byte _0804809C
|
||||
.4byte _08048038
|
||||
.4byte _08048024
|
||||
.4byte _080480BA
|
||||
.4byte _080480C4
|
||||
.4byte _08048042
|
||||
.4byte _0804806A
|
||||
.4byte _08048060
|
||||
.4byte _08048056
|
||||
.4byte _0804807E
|
||||
.4byte _080480B0
|
||||
.4byte _08048074
|
||||
.4byte _080480D8
|
||||
.4byte _080480CE
|
||||
.4byte _08048092
|
||||
.4byte _08048088
|
||||
.4byte _080480A6
|
||||
.4byte _080480E4
|
||||
.4byte _080480EE
|
||||
.4byte _080480F8
|
||||
.4byte _08048102
|
||||
.4byte _0804810C
|
||||
.4byte _08048212
|
||||
.4byte _08048122
|
||||
.4byte _0804813C
|
||||
.4byte _0804812A
|
||||
.4byte _08048146
|
||||
.4byte _08048152
|
||||
.4byte _0804815E
|
||||
.4byte _0804816A
|
||||
.4byte _08048176
|
||||
.4byte _08048182
|
||||
.4byte _0804818E
|
||||
.4byte _0804819A
|
||||
.4byte _080481A6
|
||||
.4byte _080481B2
|
||||
.4byte _080481BE
|
||||
.4byte _080481CA
|
||||
.4byte _080481D6
|
||||
.4byte _080481E2
|
||||
.4byte _080481EE
|
||||
.4byte _080481FA
|
||||
.4byte _08048206
|
||||
.4byte _08048212
|
||||
.4byte _08048220
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _0804823A
|
||||
.4byte _08048252
|
||||
.4byte _08048246
|
||||
.4byte _0804826A
|
||||
.4byte _0804822E
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048276
|
||||
.4byte _08048116
|
||||
_08047F58:
|
||||
ldr r0, _08047F6C
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x1
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047F6C: .4byte gUnknown_80F503A
|
||||
_08047F70:
|
||||
ldr r0, _08047F84
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x2
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047F84: .4byte gUnknown_80F503C
|
||||
_08047F88:
|
||||
ldr r0, _08047F9C
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x3
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047F9C: .4byte gUnknown_80F503E
|
||||
_08047FA0:
|
||||
ldr r0, _08047FB4
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x4
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047FB4: .4byte gUnknown_80F5040
|
||||
_08047FB8:
|
||||
ldr r0, _08047FCC
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x5
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047FCC: .4byte gUnknown_80F5042
|
||||
_08047FD0:
|
||||
ldr r0, _08047FE4
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x6
|
||||
bl sub_80482FC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08047FE4: .4byte gUnknown_80F5044
|
||||
_08047FE8:
|
||||
ldr r0, _08047FEC
|
||||
b _08047FF2
|
||||
.align 2, 0
|
||||
_08047FEC: .4byte gUnknown_80F5048
|
||||
_08047FF0:
|
||||
ldr r0, _08048000
|
||||
_08047FF2:
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048340
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08048000: .4byte gUnknown_80F5046
|
||||
_08048004:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
mov r2, r10
|
||||
bl sub_8048364
|
||||
b _080482B4
|
||||
_08048010:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048374
|
||||
b _080482B4
|
||||
_0804801A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_804839C
|
||||
b _080482B4
|
||||
_08048024:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80483D4
|
||||
b _080482B4
|
||||
_0804802E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80483F4
|
||||
b _080482B4
|
||||
_08048038:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl XEyeSeedAction
|
||||
b _080482B4
|
||||
_08048042:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_804840C
|
||||
b _080482B4
|
||||
_0804804C:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_804841C
|
||||
b _080482B4
|
||||
_08048056:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_804849C
|
||||
b _080482B4
|
||||
_08048060:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048428
|
||||
b _080482B4
|
||||
_0804806A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048450
|
||||
b _080482B4
|
||||
_08048074:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048480
|
||||
b _080482B4
|
||||
_0804807E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80482D4
|
||||
b _080482B4
|
||||
_08048088:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048490
|
||||
b _080482B4
|
||||
_08048092:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80484A8
|
||||
b _080482B4
|
||||
_0804809C:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80484DC
|
||||
b _080482B4
|
||||
_080480A6:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80484BC
|
||||
b _080482B4
|
||||
_080480B0:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80484C8
|
||||
b _080482B4
|
||||
_080480BA:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80484E8
|
||||
b _080482B4
|
||||
_080480C4:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048524
|
||||
b _080482B4
|
||||
_080480CE:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80485B0
|
||||
b _080482B4
|
||||
_080480D8:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_804869C
|
||||
b _080482B4
|
||||
_080480E4:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80483C4
|
||||
b _080482B4
|
||||
_080480EE:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_804891C
|
||||
b _080482B4
|
||||
_080480F8:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048928
|
||||
b _080482B4
|
||||
_08048102:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048934
|
||||
b _080482B4
|
||||
_0804810C:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048940
|
||||
b _080482B4
|
||||
_08048116:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl nullsub_94
|
||||
b _080482B4
|
||||
_08048122:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x64
|
||||
b _08048130
|
||||
_0804812A:
|
||||
ldr r2, _08048138
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
_08048130:
|
||||
movs r3, 0xA
|
||||
bl sub_80487CC
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_08048138: .4byte 0x000003e7
|
||||
_0804813C:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8048E04
|
||||
b _080482B4
|
||||
_08048146:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x1
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_08048152:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x2
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_0804815E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x3
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_0804816A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x4
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_08048176:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x5
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_08048182:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x6
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_0804818E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x7
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_0804819A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x8
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481A6:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x9
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481B2:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xA
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481BE:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xB
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481CA:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xC
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481D6:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xD
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481E2:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xE
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481EE:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xF
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_080481FA:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x10
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_08048206:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x11
|
||||
bl sub_80487E0
|
||||
b _080482B4
|
||||
_08048212:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x32
|
||||
movs r3, 0x5
|
||||
bl sub_80487CC
|
||||
b _080482B4
|
||||
_08048220:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xA
|
||||
movs r3, 0
|
||||
bl sub_80487CC
|
||||
b _080482B4
|
||||
_0804822E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048DB8
|
||||
b _080482B4
|
||||
_0804823A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048EB0
|
||||
b _080482B4
|
||||
_08048246:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048EC4
|
||||
b _080482B4
|
||||
_08048252:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048ED8
|
||||
b _080482B4
|
||||
_0804825E:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048EEC
|
||||
b _080482B4
|
||||
_0804826A:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
bl sub_8048F00
|
||||
b _080482B4
|
||||
_08048276:
|
||||
cmp r6, 0
|
||||
beq _080482A8
|
||||
ldr r0, _080482A0
|
||||
movs r1, 0
|
||||
ldrsh r2, [r0, r1]
|
||||
mov r0, sp
|
||||
adds r0, 0x1A
|
||||
_08048284:
|
||||
str r0, [sp]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x4]
|
||||
ldr r0, _080482A4
|
||||
str r0, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
str r1, [sp, 0x10]
|
||||
str r1, [sp, 0x14]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0x1
|
||||
bl sub_806F370
|
||||
b _080482B4
|
||||
.align 2, 0
|
||||
_080482A0: .4byte gUnknown_80F4FAC
|
||||
_080482A4: .4byte 0x00000217
|
||||
_080482A8:
|
||||
ldr r0, _080482CC
|
||||
ldr r2, [r0]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_80522F4
|
||||
_080482B4:
|
||||
adds r0, r4, 0
|
||||
bl sub_8071DA4
|
||||
_080482BA:
|
||||
add sp, 0x1C
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080482CC: .4byte gUnknown_80FE458
|
||||
thumb_func_end sub_80479B8
|
||||
|
||||
thumb_func_start nullsub_205
|
||||
nullsub_205:
|
||||
bx lr
|
||||
thumb_func_end nullsub_205
|
||||
|
||||
thumb_func_start sub_80482D4
|
||||
sub_80482D4:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r1, _080482F8
|
||||
adds r0, r4, 0
|
||||
movs r2, 0x1
|
||||
bl CalculateStatusTurns
|
||||
adds r2, r0, 0
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r3, 0x1
|
||||
bl sub_8075C58
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080482F8: .4byte gUnknown_80F4E74
|
||||
thumb_func_end sub_80482D4
|
||||
|
||||
thumb_func_start sub_80482FC
|
||||
sub_80482FC:
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0xC
|
||||
mov r8, r0
|
||||
mov r9, r1
|
||||
adds r6, r2, 0
|
||||
lsls r4, r3, 24
|
||||
lsrs r4, 24
|
||||
add r5, sp, 0x4
|
||||
ldr r1, _0804833C
|
||||
adds r0, r5, 0
|
||||
bl InitPokemonMove
|
||||
strb r6, [r5, 0x4]
|
||||
movs r3, 0x80
|
||||
lsls r3, 1
|
||||
str r4, [sp]
|
||||
mov r0, r8
|
||||
mov r1, r9
|
||||
add r2, sp, 0x4
|
||||
bl sub_8055640
|
||||
add sp, 0xC
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804833C: .4byte 0x00000195
|
||||
thumb_func_end sub_80482FC
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "constants/type.h"
|
||||
#include "dungeon_action.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "dungeon_music.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "move_effects_target.h"
|
||||
|
|
@ -16,6 +17,7 @@
|
|||
#include "moves.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_80521D0.h"
|
||||
#include "code_808417C.h"
|
||||
#include "pokemon.h"
|
||||
#include "structs/str_position.h"
|
||||
#include "status.h"
|
||||
|
|
@ -40,7 +42,21 @@ extern s16 gUnknown_80F4FA6; // 0x2D
|
|||
extern u32 gUnknown_8106A4C;
|
||||
extern u32 gUnknown_8106A50;
|
||||
extern s16 gUnknown_80F4FAC;
|
||||
extern s16 gUnknown_80F503A;
|
||||
extern s16 gUnknown_80F503C;
|
||||
extern s16 gUnknown_80F503E;
|
||||
extern s16 gUnknown_80F5040;
|
||||
extern s16 gUnknown_80F5042;
|
||||
extern s16 gUnknown_80F5044;
|
||||
extern s16 gUnknown_80F5046;
|
||||
extern s16 gUnknown_80F5048;
|
||||
extern s16 gUnknown_80F4FAE;
|
||||
extern s16 gUnknown_80F4FAC;
|
||||
extern s16 gUnknown_80F4E74[];
|
||||
|
||||
extern u8 *gUnknown_80FDBB8[];
|
||||
extern u8 *gUnknown_80FE458[];
|
||||
extern u8 *gUnknown_80FE3E8[];
|
||||
extern u8 *gUnknown_80FEAE8[];
|
||||
extern u8 *gUnknown_80FDBA0[];
|
||||
extern u8 *gUnknown_80FE434[];
|
||||
|
|
@ -84,8 +100,8 @@ extern void sub_803EAF0(u32, u32);
|
|||
extern void sub_8044C10(bool8);
|
||||
Entity *DrawFieldGiveItemMenu(u32, u32);
|
||||
extern void PrintFieldMessage(u32, u8 *, u32);
|
||||
extern void sub_8044E24(u32, u32, u32);
|
||||
extern void sub_804245C(u32, Item *);
|
||||
extern void sub_8044E24(Entity *, u32, u32);
|
||||
extern void sub_804245C(Entity *, Item *);
|
||||
extern u8 sub_8072938(Entity *, u16);
|
||||
extern void sub_807D148(Entity *pokemon, Entity *r1, u32 r2, Position *r3);
|
||||
extern void sub_8072008(Entity *pokemon, Entity *r1, u32 r2, u8 r3, u32);
|
||||
|
|
@ -99,59 +115,401 @@ Entity *sub_80696FC(Entity *);
|
|||
extern void sub_80943A0(void*, s32);
|
||||
extern void sub_803E708(u32 r0, u32 r1);
|
||||
extern void sub_806A7E8(EntityInfo *, s32);
|
||||
extern u32 sub_8055640(struct Entity *, struct Entity *, struct Move *, u32, u32);
|
||||
|
||||
void StunSeedItemAction(Entity *, Entity *);
|
||||
void MaxElixirAction(Entity *, Entity *);
|
||||
void ProteinItemAction(Entity *, Entity *);
|
||||
void CalciumItemAction(Entity *, Entity *);
|
||||
void IronItemAction(Entity *, Entity *);
|
||||
void ZincItemAction(Entity *, Entity *);
|
||||
void sub_80487CC(Entity *, Entity *, u32, u32);
|
||||
void GrimyFoodItemAction(Entity *, Entity *);
|
||||
void HandleGummiItemAction(Entity *, Entity *, u8);
|
||||
void IcePartItemAction(Entity *, Entity *, u8);
|
||||
void SteelPartItemAction(Entity *, Entity *, u8);
|
||||
void RockPartItemAction(Entity *, Entity *, u8);
|
||||
void MusicBoxItemAction(Entity *, Entity *, u8);
|
||||
void nullsub_94(Entity *, Entity *, u8);
|
||||
void KeyItemAction(Entity *, Entity *, u8);
|
||||
void sub_8078B5C(Entity *, Entity *, u32, u32, u32);
|
||||
void sub_8048340(Entity *, Entity *, u32);
|
||||
void HealSeedItemAction(Entity *, Entity *, u8);
|
||||
void WishStoneItemAction(Entity *, Entity *, u8);
|
||||
void OranBerryItemAction(Entity *, Entity *);
|
||||
void ChestoBerryItemAction(Entity *, Entity *);
|
||||
void JoySeedItemAction(Entity *, Entity *);
|
||||
void GinsengItemAction(Entity *, Entity *);
|
||||
void BlastSeedItemAction(Entity *, Entity *, u8);
|
||||
void SitrusBerryItemAction(Entity *, Entity *);
|
||||
void WarpSeedItemAction(Entity *, Entity *);
|
||||
void PlainSeedItemAction(Entity *, Entity *);
|
||||
void SleepSeedItemAction(Entity *, Entity *);
|
||||
void TotterSeedItemAction(Entity *, Entity *);
|
||||
void CheriBerryItemAction(Entity *, Entity *);
|
||||
void PechaBerryItemAction(Entity *, Entity *);
|
||||
void QuickSeedItemAction(Entity *, Entity *);
|
||||
void HungerSeedItemAction(Entity *, Entity *);
|
||||
void RawstBerryItemAction(Entity *, Entity *);
|
||||
void LifeSeedItemAction(Entity *, Entity *);
|
||||
void AllureSeedItemAction(Entity *, Entity *);
|
||||
void EyedropSeedItemAction(Entity *, Entity *);
|
||||
void BlinkerSeedItemAction(Entity *, Entity *);
|
||||
void DoomSeedItemAction(Entity *, Entity *);
|
||||
void sub_80482FC(Entity *, Entity *, u32, u8);
|
||||
|
||||
extern void sub_8071DA4(Entity *);
|
||||
extern void SetShopkeeperAggression(Entity *, Entity *);
|
||||
extern void sub_80464C8(Entity *, Position *, Item *);
|
||||
extern void sub_806A6E8(Entity *);
|
||||
extern void sub_8042390(Entity *, Item *);
|
||||
|
||||
void sub_80479B8(char param_1, char param_2, u8 param_3, Entity *pokemon, Entity *target, Item *item)
|
||||
{
|
||||
EntityInfo *info;
|
||||
u32 flag;
|
||||
u8 uStack_24;
|
||||
u8 uStack_23;
|
||||
u8 auStack_22;
|
||||
|
||||
if (param_1 != '\0') {
|
||||
if (param_2 == '\0') {
|
||||
flag = FALSE;
|
||||
info = target->info;
|
||||
if (info->isNotTeamMember) {
|
||||
if ((GetItemCategory(item->id) != CATEGORY_THROWN_LINE) && (GetItemCategory(item->id) != CATEGORY_BERRIES_SEEDS_VITAMINS)) {
|
||||
flag = GetItemCategory(item->id) == CATEGORY_THROWN_ARC ? FALSE : TRUE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (GetItemCategory(item->id) != CATEGORY_BERRIES_SEEDS_VITAMINS) {
|
||||
flag = IQSkillIsEnabled(target, IQ_ITEM_CATCHER);
|
||||
}
|
||||
}
|
||||
if (CannotUseItems(target)) {
|
||||
flag = FALSE;
|
||||
}
|
||||
if (flag && ((info->heldItem.flags & ITEM_FLAG_EXISTS) == 0)) {
|
||||
if (info->shopkeeper == TRUE) {
|
||||
sub_80464C8(pokemon,&target->pos,item);
|
||||
return;
|
||||
}
|
||||
PlaySoundEffect(0x14d);
|
||||
sub_8045BF8(gUnknown_202DE58,item);
|
||||
SetMessageArgument(gAvailablePokemonNames,target,0);
|
||||
sub_80522F4(pokemon,target,*gUnknown_80FDBB8);
|
||||
info->heldItem = *item;
|
||||
sub_806A6E8(target);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (param_1 != '\0') {
|
||||
sub_8042390(target,item);
|
||||
SetShopkeeperAggression(pokemon,target);
|
||||
}
|
||||
}
|
||||
if ((item->flags & ITEM_FLAG_STICKY)) {
|
||||
sub_8045BF8(gUnknown_202DE58,item);
|
||||
sub_80522F4(pokemon,target,*gUnknown_80FE3E8);
|
||||
if (param_1 != '\0') {
|
||||
sub_806F370(pokemon,target,gUnknown_80F4FAE,1,&uStack_24,0,0x217,0,0,0);
|
||||
sub_8071DA4(pokemon);
|
||||
return;
|
||||
}
|
||||
else goto _jump;
|
||||
}
|
||||
else {
|
||||
if (param_1 == 0)
|
||||
_jump:
|
||||
sub_804245C(target,item);
|
||||
}
|
||||
if (GetItemCategory(item->id) == CATEGORY_BERRIES_SEEDS_VITAMINS) {
|
||||
sub_8078B5C(pokemon,target,5,0,0);
|
||||
}
|
||||
if ((GetItemCategory(item->id) == CATEGORY_TMS_HMS) || (GetItemCategory(item->id) == CATEGORY_LINK_BOX)) {
|
||||
if (param_1 != '\0') {
|
||||
sub_806F370(pokemon,target,gUnknown_80F4FAC,1,&uStack_23,0,0x217,0,0,0);
|
||||
goto _080482B4;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80522F4(pokemon,target,*gUnknown_80FE458);
|
||||
goto _080482B4;
|
||||
}
|
||||
}
|
||||
switch(item->id) {
|
||||
case ITEM_STICK:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F503A,1);
|
||||
break;
|
||||
case ITEM_IRON_THORN:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F503C,2);
|
||||
break;
|
||||
case ITEM_SILVER_SPIKE:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F503E,3);
|
||||
break;
|
||||
case ITEM_GOLD_FANG:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F5040,4);
|
||||
break;
|
||||
case ITEM_CACNEA_SPIKE:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F5042,5);
|
||||
break;
|
||||
case ITEM_CORSOLA_TWIG:
|
||||
sub_80482FC(pokemon,target,gUnknown_80F5044,6);
|
||||
break;
|
||||
case ITEM_GEO_PEBBLE:
|
||||
sub_8048340(pokemon,target,gUnknown_80F5048);
|
||||
break;
|
||||
case ITEM_GRAVELEROCK:
|
||||
sub_8048340(pokemon,target,gUnknown_80F5046);
|
||||
break;
|
||||
case ITEM_HEAL_SEED:
|
||||
HealSeedItemAction(pokemon,target,param_3);
|
||||
break;
|
||||
case ITEM_ORAN_BERRY:
|
||||
OranBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_SITRUS_BERRY:
|
||||
SitrusBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_LIFE_SEED:
|
||||
LifeSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_BLINKER_SEED:
|
||||
BlinkerSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_ALLURE_SEED:
|
||||
AllureSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_QUICK_SEED:
|
||||
QuickSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_EYEDROP_SEED:
|
||||
EyedropSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_TOTTER_SEED:
|
||||
TotterSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_CHERI_BERRY:
|
||||
CheriBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_PECHA_BERRY:
|
||||
PechaBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_WARP_SEED:
|
||||
WarpSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_SLEEP_SEED:
|
||||
SleepSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_CHESTO_BERRY:
|
||||
ChestoBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_JOY_SEED:
|
||||
JoySeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_DOOM_SEED:
|
||||
DoomSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_STUN_SEED:
|
||||
StunSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_PLAIN_SEED:
|
||||
PlainSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_RAWST_BERRY:
|
||||
RawstBerryItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_HUNGER_SEED:
|
||||
HungerSeedItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_GINSENG:
|
||||
GinsengItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_BLAST_SEED:
|
||||
BlastSeedItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_MAX_ELIXIR:
|
||||
MaxElixirAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_PROTEIN:
|
||||
ProteinItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_CALCIUM:
|
||||
CalciumItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_IRON:
|
||||
IronItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_ZINC:
|
||||
ZincItemAction(pokemon,target);
|
||||
break;
|
||||
case 0xe9:
|
||||
nullsub_94(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_BIG_APPLE:
|
||||
sub_80487CC(pokemon,target,100,10);
|
||||
break;
|
||||
case ITEM_HUGE_APPLE:
|
||||
sub_80487CC(pokemon,target,999,10);
|
||||
break;
|
||||
case ITEM_GRIMY_FOOD:
|
||||
GrimyFoodItemAction(pokemon,target);
|
||||
break;
|
||||
case ITEM_WHITE_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,1);
|
||||
break;
|
||||
case ITEM_RED_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,2);
|
||||
break;
|
||||
case ITEM_BLUE_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,3);
|
||||
break;
|
||||
case ITEM_GRASS_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,4);
|
||||
break;
|
||||
case ITEM_YELLOW_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,5);
|
||||
break;
|
||||
case ITEM_CLEAR_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,6);
|
||||
break;
|
||||
case ITEM_ORANGE_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,7);
|
||||
break;
|
||||
case ITEM_PINK_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,8);
|
||||
break;
|
||||
case ITEM_BROWN_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,9);
|
||||
break;
|
||||
case ITEM_SKY_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,10);
|
||||
break;
|
||||
case ITEM_GOLD_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0xb);
|
||||
break;
|
||||
case ITEM_GREEN_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0xc);
|
||||
break;
|
||||
case ITEM_GRAY_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0xd);
|
||||
break;
|
||||
case ITEM_PURPLE_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0xe);
|
||||
break;
|
||||
case ITEM_ROYAL_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0xf);
|
||||
break;
|
||||
case ITEM_BLACK_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0x10);
|
||||
break;
|
||||
case ITEM_SILVER_GUMMI:
|
||||
HandleGummiItemAction(pokemon,target,0x11);
|
||||
break;
|
||||
case ITEM_APPLE:
|
||||
case ITEM_BANANA:
|
||||
sub_80487CC(pokemon,target,0x32,5);
|
||||
break;
|
||||
case ITEM_CHESTNUT:
|
||||
sub_80487CC(pokemon,target,10,0);
|
||||
break;
|
||||
case ITEM_KEY:
|
||||
KeyItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_ICE_PART:
|
||||
IcePartItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_ROCK_PART:
|
||||
RockPartItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_STEEL_PART:
|
||||
SteelPartItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_WISH_STONE:
|
||||
WishStoneItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
case ITEM_MUSIC_BOX:
|
||||
MusicBoxItemAction(pokemon,target,param_1);
|
||||
break;
|
||||
default:
|
||||
if (param_1 != '\0') {
|
||||
sub_806F370(pokemon,target,gUnknown_80F4FAC,1,&auStack_22,0,0x217,0,0,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_80522F4(pokemon,target,*gUnknown_80FE458);
|
||||
}
|
||||
break;
|
||||
}
|
||||
_080482B4:
|
||||
sub_8071DA4(pokemon);
|
||||
}
|
||||
|
||||
UNUSED void nullsub_205(void) { }
|
||||
|
||||
void SleepSeedItemAction(Entity *pokemon, Entity *target) {
|
||||
sub_8075C58(pokemon, target, CalculateStatusTurns(target, gUnknown_80F4E74, TRUE), TRUE);
|
||||
}
|
||||
|
||||
void sub_80482FC(Entity *pokemon, Entity *target, u32 pp, u8 param_4) {
|
||||
Move move;
|
||||
|
||||
InitPokemonMove(&move, MOVE_PROJECTILE);
|
||||
move.PP = pp;
|
||||
sub_8055640(pokemon, target, &move, 0x100, param_4);
|
||||
}
|
||||
|
||||
void sub_8048340(Entity *pokemon, Entity *target, u32 r2)
|
||||
{
|
||||
sub_806F370(pokemon, target, r2, 1, 0, 0, 528, 0, 0, 0);
|
||||
}
|
||||
|
||||
void sub_8048364(Entity *pokemon, Entity *target, u8 r2)
|
||||
void HealSeedItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
sub_8079F20(pokemon, target, 1, r2);
|
||||
}
|
||||
|
||||
void sub_8048374(Entity *pokemon, Entity *target)
|
||||
void OranBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
HealTargetHP(pokemon, target, gUnknown_80F4FB6, gUnknown_80F4FB8, TRUE);
|
||||
}
|
||||
|
||||
void sub_804839C(Entity *pokemon, Entity *target)
|
||||
void SitrusBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
HealTargetHP(pokemon, target, gUnknown_80F4FBA, gUnknown_80F4FBC, TRUE);
|
||||
}
|
||||
|
||||
void sub_80483C4(Entity *pokemon, Entity *target)
|
||||
void MaxElixirAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RestorePPTarget(pokemon, target, 999);
|
||||
}
|
||||
|
||||
void sub_80483D4(Entity *pokemon, Entity *target)
|
||||
void LifeSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
HealTargetHP(pokemon, target, 0, gUnknown_80F4FBE, TRUE);
|
||||
}
|
||||
|
||||
void sub_80483F4(Entity *pokemon, Entity *target)
|
||||
void BlinkerSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
BlindTarget(pokemon, target);
|
||||
}
|
||||
|
||||
void XEyeSeedAction(Entity *pokemon, Entity *target)
|
||||
void AllureSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
CrossEyeVisionTarget(pokemon, target);
|
||||
}
|
||||
|
||||
void sub_804840C(Entity *pokemon, Entity *target)
|
||||
void QuickSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RaiseMovementSpeedTarget(pokemon, target, 0, TRUE);
|
||||
}
|
||||
|
||||
void sub_804841C(Entity *pokemon, Entity *target)
|
||||
void EyedropSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RestoreVisionTarget(pokemon, target);
|
||||
}
|
||||
|
||||
void sub_8048428(Entity *pokemon, Entity *target)
|
||||
void CheriBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
if(target->info->nonVolatileStatus == STATUS_PARALYSIS)
|
||||
SendNonVolatileEndMessage(pokemon, target);
|
||||
|
|
@ -160,7 +518,7 @@ void sub_8048428(Entity *pokemon, Entity *target)
|
|||
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
|
||||
}
|
||||
|
||||
void sub_8048450(Entity *pokemon, Entity *target)
|
||||
void PechaBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
if((u8)(target->info->nonVolatileStatus - 2) <= 1)
|
||||
SendNonVolatileEndMessage(pokemon, target);
|
||||
|
|
@ -169,43 +527,43 @@ void sub_8048450(Entity *pokemon, Entity *target)
|
|||
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
|
||||
}
|
||||
|
||||
void sub_8048480(Entity *pokemon, Entity *target)
|
||||
void WarpSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
sub_807D148(pokemon, target, 0, NULL);
|
||||
}
|
||||
|
||||
void sub_8048490(Entity *pokemon, Entity *target)
|
||||
void ChestoBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
SleeplessStatusTarget(pokemon, target);
|
||||
}
|
||||
|
||||
void sub_804849C(Entity *pokemon, Entity *target)
|
||||
void TotterSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
ConfuseStatusTarget(pokemon, target, TRUE);
|
||||
}
|
||||
|
||||
void sub_80484A8(Entity *pokemon, Entity *target)
|
||||
void JoySeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
sub_8072008(pokemon, target, 1, 1, 1);
|
||||
}
|
||||
|
||||
void sub_80484BC(Entity *pokemon, Entity *target)
|
||||
void StunSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
PetrifiedStatusTarget(pokemon, target);
|
||||
}
|
||||
|
||||
void sub_80484C8(Entity *pokemon, Entity *target)
|
||||
void PlainSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
// Pointer to "But nothing happened!"
|
||||
sub_80522F4(pokemon, target, *gUnknown_80F89F4);
|
||||
}
|
||||
|
||||
void sub_80484DC(Entity *pokemon, Entity *target)
|
||||
void DoomSeedItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
LevelDownTarget(pokemon, target, 1);
|
||||
}
|
||||
|
||||
void sub_80484E8(Entity *pokemon, Entity *target)
|
||||
void RawstBerryItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
if(target->info->nonVolatileStatus == STATUS_BURN)
|
||||
SendNonVolatileEndMessage(pokemon, target);
|
||||
|
|
@ -217,7 +575,7 @@ void sub_80484E8(Entity *pokemon, Entity *target)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8048524(Entity *pokemon, Entity * target)
|
||||
void HungerSeedItemAction(Entity *pokemon, Entity * target)
|
||||
{
|
||||
EntityInfo *entityInfo;
|
||||
EntityInfo *entityInfo_1;
|
||||
|
|
@ -247,7 +605,7 @@ void sub_8048524(Entity *pokemon, Entity * target)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_80485B0(Entity *pokemon, Entity * target)
|
||||
void GinsengItemAction(Entity *pokemon, Entity * target)
|
||||
{
|
||||
bool8 isMoveBoosted;
|
||||
s32 moveIndex;
|
||||
|
|
@ -298,7 +656,7 @@ void sub_80485B0(Entity *pokemon, Entity * target)
|
|||
sub_80522F4(pokemon,target,*gUnknown_80FE40C);
|
||||
}
|
||||
|
||||
void sub_804869C(Entity *pokemon, Entity * target, u8 param_3)
|
||||
void BlastSeedItemAction(Entity *pokemon, Entity * target, u8 param_3)
|
||||
{
|
||||
s32 uVar1;
|
||||
EntityInfo *entityInfo;
|
||||
|
|
@ -363,7 +721,7 @@ static inline bool8 JoinLocationCannotUseItems_1(EntityInfo *pokemonInfo)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80487E0(Entity *pokemon, Entity *target, u8 gummiIndex)
|
||||
void HandleGummiItemAction(Entity *pokemon, Entity *target, u8 gummiIndex)
|
||||
{
|
||||
s32 iVar3;
|
||||
EntityInfo *targetInfo;
|
||||
|
|
@ -413,27 +771,27 @@ void sub_80487E0(Entity *pokemon, Entity *target, u8 gummiIndex)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_804891C(Entity *pokemon, Entity *target)
|
||||
void ProteinItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RaiseAtkStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048928(Entity *pokemon, Entity *target)
|
||||
void CalciumItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RaiseSpAtkStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048934(Entity *pokemon, Entity *target)
|
||||
void IronItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RaiseDefStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void sub_8048940(Entity *pokemon, Entity *target)
|
||||
void ZincItemAction(Entity *pokemon, Entity *target)
|
||||
{
|
||||
RaiseSpDefStatTarget(pokemon, target, 3);
|
||||
}
|
||||
|
||||
void nullsub_94(void)
|
||||
void nullsub_94(Entity *pokemon, Entity *target, u8 r2)
|
||||
{}
|
||||
|
||||
static inline bool8 JoinLocationCannotUseItems_2(EntityInfo *pokemonInfo)
|
||||
|
|
@ -449,7 +807,7 @@ static inline bool8 JoinLocationCannotUseItems_2(EntityInfo *pokemonInfo)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8048950(u32 param_1,Item *item)
|
||||
bool8 sub_8048950(Entity *param_1,Item *item)
|
||||
{
|
||||
u8 flag;
|
||||
u16 moveID;
|
||||
|
|
@ -514,7 +872,7 @@ static inline bool8 JoinLocationCannotUseItems_3(EntityInfo *pokemonInfo)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8048A68(u32 param_1,Item *item)
|
||||
bool8 sub_8048A68(Entity *param_1,Item *item)
|
||||
{
|
||||
u8 flag;
|
||||
Entity *entity2;
|
||||
|
|
@ -720,7 +1078,7 @@ bool8 sub_8048D50(Entity * pokemon, Item *item)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8048DB8(Entity *pokemon, Entity *target, u8 r2)
|
||||
void KeyItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
u8 temp;
|
||||
if(r2 != 0)
|
||||
|
|
@ -729,7 +1087,7 @@ void sub_8048DB8(Entity *pokemon, Entity *target, u8 r2)
|
|||
sub_8051E7C(pokemon);
|
||||
}
|
||||
|
||||
void sub_8048E04(Entity *pokemon, Entity * target)
|
||||
void GrimyFoodItemAction(Entity *pokemon, Entity * target)
|
||||
{
|
||||
sub_8078B5C(pokemon, target, 0x1E, 0, 1);
|
||||
switch(DungeonRandInt(5))
|
||||
|
|
@ -753,27 +1111,27 @@ void sub_8048E04(Entity *pokemon, Entity * target)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8048EB0(Entity *pokemon)
|
||||
void IcePartItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrIcePartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EC4(Entity *pokemon)
|
||||
void RockPartItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrRockPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048ED8(Entity *pokemon)
|
||||
void SteelPartItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrSteelPartCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048EEC(Entity *pokemon)
|
||||
void WishStoneItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
SendMessage(pokemon, *gPtrWishStoneCrumbledMessage);
|
||||
}
|
||||
|
||||
void sub_8048F00(Entity *pokemon)
|
||||
void MusicBoxItemAction(Entity *pokemon, Entity *target, u8 r2)
|
||||
{
|
||||
sub_80421C0(pokemon, 0xD6);
|
||||
SendMessage(pokemon, *gPtrMusicBoxPlayedCrumbledMessage);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user