mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-16 13:57:14 -05:00
Moves and some friend_area_action_menu
This commit is contained in:
@@ -308,526 +308,4 @@ _0801E3E8: .4byte gWindowBGGreenString
|
||||
_0801E3EC: .4byte gUnknown_203B260
|
||||
thumb_func_end CreateOptionsMenu
|
||||
|
||||
thumb_func_start sub_801E3F0
|
||||
sub_801E3F0:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _0801E46C
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _0801E406
|
||||
movs r0, 0x9C
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
_0801E406:
|
||||
ldr r0, [r4]
|
||||
str r5, [r0, 0x34]
|
||||
lsls r1, r5, 1
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, 0x3C
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x38]
|
||||
adds r0, 0x3C
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x34]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0801E470
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x38]
|
||||
movs r1, 0xA
|
||||
bl sub_8012D08
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x5
|
||||
movs r2, 0xA
|
||||
adds r3, r5, 0
|
||||
bl sub_8013818
|
||||
bl sub_801E594
|
||||
bl sub_801E5E8
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801E46C: .4byte gUnknown_203B264
|
||||
_0801E470: .4byte gUnknown_80DC0BC
|
||||
thumb_func_end sub_801E3F0
|
||||
|
||||
thumb_func_start sub_801E474
|
||||
sub_801E474:
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801E48C
|
||||
ldr r0, _0801E488
|
||||
ldr r0, [r0]
|
||||
bl sub_8013660
|
||||
movs r0, 0
|
||||
b _0801E4EE
|
||||
.align 2, 0
|
||||
_0801E488: .4byte gUnknown_203B264
|
||||
_0801E48C:
|
||||
ldr r0, _0801E4A4
|
||||
ldr r0, [r0]
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x2
|
||||
beq _0801E4AE
|
||||
cmp r0, 0x2
|
||||
bgt _0801E4A8
|
||||
cmp r0, 0x1
|
||||
beq _0801E4B8
|
||||
b _0801E4CC
|
||||
.align 2, 0
|
||||
_0801E4A4: .4byte gUnknown_203B264
|
||||
_0801E4A8:
|
||||
cmp r0, 0x4
|
||||
beq _0801E4C2
|
||||
b _0801E4CC
|
||||
_0801E4AE:
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0801E4EE
|
||||
_0801E4B8:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _0801E4EE
|
||||
_0801E4C2:
|
||||
movs r0, 0x4
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x4
|
||||
b _0801E4EE
|
||||
_0801E4CC:
|
||||
ldr r0, _0801E4E0
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1
|
||||
bl sub_80138B8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801E4E4
|
||||
movs r0, 0
|
||||
b _0801E4EE
|
||||
.align 2, 0
|
||||
_0801E4E0: .4byte gUnknown_203B264
|
||||
_0801E4E4:
|
||||
bl sub_801E594
|
||||
bl sub_801E5E8
|
||||
movs r0, 0x1
|
||||
_0801E4EE:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801E474
|
||||
|
||||
thumb_func_start sub_801E4F4
|
||||
sub_801E4F4:
|
||||
ldr r0, _0801E50C
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1E
|
||||
ldrsh r2, [r1, r0]
|
||||
movs r3, 0x1C
|
||||
ldrsh r0, [r1, r3]
|
||||
muls r0, r2
|
||||
movs r2, 0x18
|
||||
ldrsh r1, [r1, r2]
|
||||
adds r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801E50C: .4byte gUnknown_203B264
|
||||
thumb_func_end sub_801E4F4
|
||||
|
||||
thumb_func_start sub_801E510
|
||||
sub_801E510:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r5, _0801E548
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl sub_800641C
|
||||
ldr r0, [r5]
|
||||
bl sub_8013984
|
||||
bl sub_801E594
|
||||
bl sub_801E5E8
|
||||
cmp r4, 0
|
||||
beq _0801E542
|
||||
ldr r0, [r5]
|
||||
bl AddMenuCursorSprite
|
||||
_0801E542:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E548: .4byte gUnknown_203B264
|
||||
thumb_func_end sub_801E510
|
||||
|
||||
thumb_func_start sub_801E54C
|
||||
sub_801E54C:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0801E58C
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0801E586
|
||||
ldr r0, [r2, 0x34]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0801E590
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0801E586:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E58C: .4byte gUnknown_203B264
|
||||
_0801E590: .4byte gUnknown_80DC0A0
|
||||
thumb_func_end sub_801E54C
|
||||
|
||||
thumb_func_start sub_801E594
|
||||
sub_801E594:
|
||||
push {r4,lr}
|
||||
ldr r4, _0801E5E4
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2, 0x34]
|
||||
lsls r1, r3, 1
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x4A
|
||||
asrs r3, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r2, 0x34]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r2, r0
|
||||
adds r3, 0x2
|
||||
adds r2, 0x4C
|
||||
strh r3, [r2]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E5E4: .4byte gUnknown_203B264
|
||||
thumb_func_end sub_801E594
|
||||
|
||||
thumb_func_start sub_801E5E8
|
||||
sub_801E5E8:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
ldr r4, _0801E64C
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073B8
|
||||
ldr r2, _0801E650
|
||||
ldr r0, [r4]
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
movs r5, 0
|
||||
adds r6, r4, 0
|
||||
ldr r4, _0801E654
|
||||
_0801E616:
|
||||
ldr r0, [r6]
|
||||
adds r1, r5, 0
|
||||
bl sub_8013800
|
||||
adds r1, r0, 0
|
||||
ldr r2, [r4]
|
||||
ldr r0, [r6]
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0xA
|
||||
bl xxx_call_draw_string
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x4
|
||||
ble _0801E616
|
||||
ldr r0, _0801E64C
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073E0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E64C: .4byte gUnknown_203B264
|
||||
_0801E650: .4byte gUnknown_80DC0D4
|
||||
_0801E654: .4byte gUnknown_80DAA98
|
||||
thumb_func_end sub_801E5E8
|
||||
|
||||
thumb_func_start sub_801E658
|
||||
sub_801E658:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _0801E6C4
|
||||
movs r0, 0xA0
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
movs r1, 0
|
||||
str r1, [r0, 0x34]
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x3C
|
||||
str r1, [r0, 0x38]
|
||||
adds r0, r1, 0
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x34]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0801E6C8
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r0, 0x38]
|
||||
adds r0, 0x9C
|
||||
str r0, [r1, 0x14]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r1, 0x5
|
||||
movs r2, 0x1
|
||||
bl sub_8013818
|
||||
ldr r0, [r4]
|
||||
strh r5, [r0, 0x1E]
|
||||
bl sub_801E714
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0801E6C4: .4byte gUnknown_203B268
|
||||
_0801E6C8: .4byte gUnknown_80DC0FC
|
||||
thumb_func_end sub_801E658
|
||||
|
||||
thumb_func_start sub_801E6CC
|
||||
sub_801E6CC:
|
||||
push {r4,lr}
|
||||
ldr r4, _0801E6E8
|
||||
ldr r0, [r4]
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _0801E6EC
|
||||
cmp r0, 0x2
|
||||
bne _0801E6F6
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _0801E70C
|
||||
.align 2, 0
|
||||
_0801E6E8: .4byte gUnknown_203B268
|
||||
_0801E6EC:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _0801E70C
|
||||
_0801E6F6:
|
||||
ldr r0, [r4]
|
||||
bl sub_8013938
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801E706
|
||||
movs r0, 0
|
||||
b _0801E70C
|
||||
_0801E706:
|
||||
bl sub_801E714
|
||||
movs r0, 0x1
|
||||
_0801E70C:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_801E6CC
|
||||
|
||||
thumb_func_start sub_801E714
|
||||
sub_801E714:
|
||||
push {lr}
|
||||
bl sub_801E76C
|
||||
bl sub_801E7AC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_801E714
|
||||
|
||||
thumb_func_start sub_801E724
|
||||
sub_801E724:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0801E764
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _0801E75E
|
||||
ldr r0, [r2, 0x34]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x3C
|
||||
ldr r0, _0801E768
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0801E75E:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E764: .4byte gUnknown_203B268
|
||||
_0801E768: .4byte gUnknown_80DC0E4
|
||||
thumb_func_end sub_801E724
|
||||
|
||||
thumb_func_start sub_801E76C
|
||||
sub_801E76C:
|
||||
push {r4,lr}
|
||||
ldr r4, _0801E7A8
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x20]
|
||||
adds r0, 0x9C
|
||||
movs r2, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x1E]
|
||||
adds r0, 0x9D
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9E
|
||||
movs r1, 0xF
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9F
|
||||
strb r2, [r0]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E7A8: .4byte gUnknown_203B268
|
||||
thumb_func_end sub_801E76C
|
||||
|
||||
thumb_func_start sub_801E7AC
|
||||
sub_801E7AC:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
ldr r5, _0801E804
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073B8
|
||||
ldr r3, [r5]
|
||||
movs r0, 0x1E
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r1, 3
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x10
|
||||
ldr r4, _0801E808
|
||||
adds r1, r4
|
||||
ldr r2, [r1]
|
||||
ldr r3, [r3, 0x34]
|
||||
movs r6, 0
|
||||
str r6, [sp]
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r1, [r5]
|
||||
movs r2, 0x1E
|
||||
ldrsh r0, [r1, r2]
|
||||
lsls r0, 3
|
||||
adds r4, 0x4
|
||||
adds r0, r4
|
||||
ldr r2, [r0]
|
||||
ldr r3, [r1, 0x34]
|
||||
str r6, [sp]
|
||||
movs r0, 0xA
|
||||
movs r1, 0x14
|
||||
bl xxx_call_draw_string
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073E0
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0801E804: .4byte gUnknown_203B268
|
||||
_0801E808: .4byte gUnknown_80DAA98
|
||||
thumb_func_end sub_801E7AC
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -2391,7 +2391,7 @@ _08043E46:
|
||||
cmp r0, 0
|
||||
beq _08043E58
|
||||
adds r0, r5, 0
|
||||
bl sub_8092BF4
|
||||
bl GetMoveMaxPP
|
||||
strb r0, [r4, 0x4]
|
||||
_08043E58:
|
||||
adds r4, 0x8
|
||||
@@ -2710,7 +2710,7 @@ _080440D0:
|
||||
bne _080440F0
|
||||
ldrh r1, [r5]
|
||||
adds r0, r2, 0
|
||||
bl sub_8092AD4
|
||||
bl InitZeroedPPPokemonMove
|
||||
b _080440F8
|
||||
.align 2, 0
|
||||
_080440E4: .4byte gRecruitedPokemonRef
|
||||
|
||||
@@ -4593,7 +4593,7 @@ _080473E0:
|
||||
add r4, sp, 0x208
|
||||
adds r0, r4, 0
|
||||
ldr r1, _080474B8
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldr r0, [r5, 0x10]
|
||||
adds r1, r4, 0
|
||||
bl sub_80571F0
|
||||
@@ -5120,7 +5120,7 @@ _080477FA:
|
||||
lsrs r7, r1, 31
|
||||
ldr r1, _08047854
|
||||
add r0, sp, 0x8
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldr r0, [r4, 0x10]
|
||||
add r1, sp, 0x8
|
||||
bl sub_80571F0
|
||||
@@ -6275,7 +6275,7 @@ sub_80482FC:
|
||||
add r5, sp, 0x4
|
||||
ldr r1, _0804833C
|
||||
adds r0, r5, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
strb r6, [r5, 0x4]
|
||||
movs r3, 0x80
|
||||
lsls r3, 1
|
||||
|
||||
@@ -118,12 +118,12 @@ _080485EE:
|
||||
cmp r0, 0
|
||||
beq _0804862C
|
||||
adds r0, r5, 0
|
||||
bl sub_8092BC0
|
||||
bl GetMovePower
|
||||
cmp r0, 0
|
||||
beq _0804862C
|
||||
ldrb r6, [r4, 0x5]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092C0C
|
||||
bl GetMoveUnk12
|
||||
adds r1, r0, 0
|
||||
ldrb r0, [r4, 0x5]
|
||||
add r0, r10
|
||||
@@ -1615,7 +1615,7 @@ _080492FA:
|
||||
ldrb r4, [r5, 0x4]
|
||||
adds r0, r7, 0
|
||||
str r2, [sp]
|
||||
bl sub_8092BF4
|
||||
bl GetMoveMaxPP
|
||||
ldr r2, [sp]
|
||||
cmp r4, r0
|
||||
beq _0804930C
|
||||
|
||||
@@ -2451,7 +2451,7 @@ _08053734:
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
ldr r0, [sp, 0x18]
|
||||
bl sub_8092CD8
|
||||
bl GetMoveTargetsUser
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080537B4
|
||||
@@ -2856,7 +2856,7 @@ _08053A86:
|
||||
cmp r0, 0x5
|
||||
bne _08053AE8
|
||||
ldr r0, [sp, 0x18]
|
||||
bl sub_8092CC0
|
||||
bl GetMoveAffectedByMagicCoat
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08053B5C
|
||||
@@ -3006,7 +3006,7 @@ _08053BC0:
|
||||
cmp r0, 0
|
||||
beq _08053BFA
|
||||
mov r0, r8
|
||||
bl sub_8092D08
|
||||
bl IsBlockedBySoundproof
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08053BFA
|
||||
@@ -5866,7 +5866,7 @@ sub_8055640:
|
||||
bl sub_8071A44
|
||||
mov r8, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_8092C24
|
||||
bl GetMoveCriticalHitChance
|
||||
str r0, [sp]
|
||||
add r0, sp, 0x14
|
||||
str r0, [sp, 0x4]
|
||||
@@ -5920,7 +5920,7 @@ sub_80556BC:
|
||||
bl sub_8071A44
|
||||
mov r8, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_8092C24
|
||||
bl GetMoveCriticalHitChance
|
||||
str r0, [sp]
|
||||
add r0, sp, 0x14
|
||||
str r0, [sp, 0x4]
|
||||
@@ -6179,7 +6179,7 @@ sub_80558DC:
|
||||
mov r9, r2
|
||||
ldr r1, [r1, 0x70]
|
||||
mov r10, r1
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0x1
|
||||
@@ -7042,7 +7042,7 @@ sub_8055FA0:
|
||||
adds r0, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r1, [r7]
|
||||
add r0, sp, 0x110
|
||||
strb r1, [r0]
|
||||
@@ -7084,7 +7084,7 @@ _0805602C:
|
||||
adds r0, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r1, [r7]
|
||||
add r0, sp, 0x118
|
||||
strb r1, [r0]
|
||||
@@ -7142,7 +7142,7 @@ _08056084:
|
||||
beq _080560CC
|
||||
_080560AE:
|
||||
ldrh r0, [r7, 0x2]
|
||||
bl sub_809422C
|
||||
bl DoesMoveCharge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080560CC
|
||||
@@ -7194,7 +7194,7 @@ _08056124:
|
||||
cmp r0, 0
|
||||
bne _08056132
|
||||
ldrh r0, [r7, 0x2]
|
||||
bl sub_8092CA8
|
||||
bl GetMoveUseText
|
||||
b _08056136
|
||||
_08056132:
|
||||
ldr r0, _08056194
|
||||
@@ -7222,7 +7222,7 @@ _08056156:
|
||||
cmp r0, 0x1
|
||||
bne _080561A0
|
||||
ldrh r0, [r7, 0x2]
|
||||
bl sub_8092CF0
|
||||
bl GetMoveAffectedByMuzzled
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080561A0
|
||||
@@ -8461,7 +8461,7 @@ sub_8056B34:
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
mov r0, r8
|
||||
bl sub_8092BD8
|
||||
bl GetMoveAccuracy
|
||||
adds r5, r0, 0
|
||||
movs r0, 0x64
|
||||
bl DungeonRandomCapped
|
||||
@@ -8608,7 +8608,7 @@ _08056C5A:
|
||||
cmp r0, 0
|
||||
beq _08056C86
|
||||
mov r0, r8
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_8092354
|
||||
@@ -9152,7 +9152,7 @@ _0805706C: .4byte gUnknown_203B438
|
||||
thumb_func_start sub_8057070
|
||||
sub_8057070:
|
||||
push {lr}
|
||||
bl sub_8092BA8
|
||||
bl GetMoveHitCount
|
||||
cmp r0, 0
|
||||
bne _08057082
|
||||
movs r0, 0x2
|
||||
@@ -9231,4 +9231,4 @@ _080570EA:
|
||||
_080570F0: .4byte gUnknown_81069F4
|
||||
thumb_func_end sub_80570AC
|
||||
|
||||
.align 2, 0
|
||||
.align 2, 0
|
||||
|
||||
@@ -392,7 +392,7 @@ sub_80573CC:
|
||||
cmp r1, 0x5
|
||||
bne _08057414
|
||||
adds r0, r4, 0
|
||||
bl sub_8092C54
|
||||
bl GetMoveDealsDirectDamage
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805743E
|
||||
@@ -460,7 +460,7 @@ sub_805744C:
|
||||
cmp r1, 0x5
|
||||
bne _0805748E
|
||||
adds r0, r4, 0
|
||||
bl sub_8092C54
|
||||
bl GetMoveDealsDirectDamage
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080574B6
|
||||
@@ -603,7 +603,7 @@ sub_805755C:
|
||||
b _08057580
|
||||
_08057576:
|
||||
adds r0, r4, 0
|
||||
bl sub_809422C
|
||||
bl DoesMoveCharge
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_08057580:
|
||||
|
||||
@@ -162,7 +162,7 @@ _08057B12:
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
mov r0, sp
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r1, [r4]
|
||||
movs r0, 0x20
|
||||
orrs r0, r1
|
||||
@@ -896,7 +896,7 @@ _080580A0:
|
||||
bge _08058088
|
||||
_080580B0:
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -1285,7 +1285,7 @@ sub_805836C:
|
||||
adds r4, r0, 0
|
||||
_0805838A:
|
||||
adds r0, r2, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
add r1, sp, 0x18
|
||||
@@ -1470,7 +1470,7 @@ sub_80584C0:
|
||||
movs r5, 0
|
||||
_080584F0:
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -2902,7 +2902,7 @@ _08058F7E:
|
||||
adds r0, r5, r4
|
||||
ldrh r1, [r0]
|
||||
mov r0, sp
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r4, 0x4
|
||||
adds r5, r4
|
||||
ldr r4, [r5]
|
||||
@@ -2975,7 +2975,7 @@ sub_8059004:
|
||||
adds r5, r2, 0
|
||||
adds r6, r3, 0
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -3094,7 +3094,7 @@ sub_80590D4:
|
||||
mov r1, r9
|
||||
strb r1, [r0]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
@@ -3125,7 +3125,7 @@ _0805911C:
|
||||
_08059130: .4byte gUnknown_80FEB88
|
||||
_08059134:
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -3469,7 +3469,7 @@ _080593C8: .4byte gUnknown_80FE3BC
|
||||
_080593CC:
|
||||
adds r0, r5, 0
|
||||
mov r1, r12
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldr r0, _0805941C
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
@@ -3765,7 +3765,7 @@ sub_80595EC:
|
||||
add r0, sp, 0x18
|
||||
strb r7, [r0]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
@@ -3785,7 +3785,7 @@ sub_80595EC:
|
||||
_0805962C: .4byte gUnknown_80FEB8C
|
||||
_08059630:
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -3916,7 +3916,7 @@ sub_8059714:
|
||||
add r0, sp, 0x18
|
||||
strb r5, [r0]
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -4023,7 +4023,7 @@ sub_80597F0:
|
||||
adds r5, r2, 0
|
||||
adds r6, r3, 0
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -4328,7 +4328,7 @@ sub_8059A2C:
|
||||
ldrb r0, [r0, 0x9]
|
||||
mov r10, r0
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -4433,7 +4433,7 @@ sub_8059AF8:
|
||||
add r0, sp, 0x18
|
||||
strb r7, [r0]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
@@ -4453,7 +4453,7 @@ sub_8059AF8:
|
||||
_08059B38: .4byte gUnknown_80FEB90
|
||||
_08059B3C:
|
||||
adds r0, r5, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -4921,7 +4921,7 @@ _08059E8A:
|
||||
bl sub_8071A44
|
||||
adds r5, r0, 0
|
||||
adds r0, r7, 0
|
||||
bl sub_8092C24
|
||||
bl GetMoveCriticalHitChance
|
||||
str r0, [sp]
|
||||
add r2, sp, 0x18
|
||||
str r2, [sp, 0x4]
|
||||
@@ -5103,7 +5103,7 @@ _08059FFE:
|
||||
bl sub_8071A44
|
||||
adds r5, r0, 0
|
||||
adds r0, r7, 0
|
||||
bl sub_8092C24
|
||||
bl GetMoveCriticalHitChance
|
||||
str r0, [sp]
|
||||
add r2, sp, 0x18
|
||||
str r2, [sp, 0x4]
|
||||
@@ -6340,7 +6340,7 @@ _0805A94C:
|
||||
add r4, sp, 0x1C
|
||||
ldr r1, _0805AA44
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80571F0
|
||||
@@ -7957,7 +7957,7 @@ _0805B588:
|
||||
bge _0805B570
|
||||
_0805B598:
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -8039,7 +8039,7 @@ sub_805B618:
|
||||
adds r0, r4, r5
|
||||
ldrh r1, [r0]
|
||||
mov r0, sp
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r5, 0x4
|
||||
adds r4, r5
|
||||
ldr r4, [r4]
|
||||
@@ -8295,7 +8295,7 @@ sub_805B808:
|
||||
add r0, sp, 0x18
|
||||
strb r5, [r0]
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -9523,7 +9523,7 @@ sub_805C138:
|
||||
add r0, sp, 0x18
|
||||
strb r5, [r0]
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -9643,7 +9643,7 @@ sub_805C208:
|
||||
bl GetSizeOrbDmg
|
||||
mov r10, r0
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
@@ -10965,7 +10965,7 @@ sub_805CEB8:
|
||||
cmp r0, 0x1
|
||||
bne _0805CEE0
|
||||
adds r0, r7, 0
|
||||
bl sub_8092C3C
|
||||
bl GetMoveCannotHitFrozen
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0805CEE0
|
||||
@@ -24313,7 +24313,7 @@ sub_8063C88:
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
bl sub_809422C
|
||||
bl DoesMoveCharge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08063CAE
|
||||
@@ -24333,7 +24333,7 @@ _08063CAE:
|
||||
adds r4, r0, r4
|
||||
_08063CBC:
|
||||
ldrh r0, [r4, 0x2]
|
||||
bl sub_809422C
|
||||
bl DoesMoveCharge
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08063CA6
|
||||
@@ -31816,7 +31816,7 @@ sub_8067904:
|
||||
str r0, [r1]
|
||||
add r0, sp, 0x8
|
||||
mov r1, r9
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r0, [r0]
|
||||
@@ -37270,7 +37270,7 @@ _0806A3A0:
|
||||
orrs r0, r1
|
||||
strb r0, [r4, 0x1]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092BF4
|
||||
bl GetMoveMaxPP
|
||||
strb r0, [r4, 0x4]
|
||||
_0806A3C2:
|
||||
adds r4, 0x8
|
||||
|
||||
@@ -1558,4 +1558,4 @@ _08070B68:
|
||||
bx r1
|
||||
thumb_func_end sub_8070B48
|
||||
|
||||
.align 2, 0
|
||||
.align 2, 0
|
||||
|
||||
@@ -190,7 +190,7 @@ sub_8071A1C:
|
||||
cmp r1, r0
|
||||
beq _08071A38
|
||||
adds r0, r2, 0
|
||||
bl sub_8092B00
|
||||
bl GetMoveType
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
b _08071A3E
|
||||
@@ -214,7 +214,7 @@ sub_8071A44:
|
||||
cmp r1, r0
|
||||
beq _08071A60
|
||||
adds r0, r4, 0
|
||||
bl sub_8092BC0
|
||||
bl GetMovePower
|
||||
ldrb r1, [r4, 0x5]
|
||||
adds r0, r1
|
||||
b _08071A6A
|
||||
@@ -1983,7 +1983,7 @@ _080727E4:
|
||||
bne _08072806
|
||||
ldrh r1, [r6]
|
||||
adds r0, r3, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r1, [r5]
|
||||
movs r0, 0x4
|
||||
orrs r0, r1
|
||||
@@ -2177,7 +2177,7 @@ _08072964:
|
||||
bne _08072980
|
||||
adds r0, r2, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r1, [r4, 0x1]
|
||||
movs r0, 0x4
|
||||
orrs r0, r1
|
||||
@@ -6311,7 +6311,7 @@ _08074A46:
|
||||
add r4, sp, 0x28
|
||||
ldr r1, _08074B48
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r0, [r4]
|
||||
movs r1, 0x10
|
||||
orrs r0, r1
|
||||
|
||||
@@ -6847,7 +6847,7 @@ _08079326:
|
||||
ldrb r0, [r4, 0x4]
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
bl sub_8092BF4
|
||||
bl GetMoveMaxPP
|
||||
str r0, [sp, 0x4]
|
||||
ldr r1, [sp]
|
||||
ldr r0, [sp, 0x4]
|
||||
@@ -12176,7 +12176,7 @@ _0807BCB0:
|
||||
movs r1, 0xB0
|
||||
lsls r1, 1
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
mov r0, sp
|
||||
mov r1, r10
|
||||
adds r2, r4, 0
|
||||
@@ -12380,7 +12380,7 @@ _0807BE38:
|
||||
b _0807BE54
|
||||
_0807BE4A:
|
||||
adds r0, r6, 0
|
||||
bl sub_8092B90
|
||||
bl GetMoveWeight
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0807BE54:
|
||||
@@ -12698,7 +12698,7 @@ _0807C06E:
|
||||
cmp r0, 0x5
|
||||
bne _0807C0B0
|
||||
mov r0, r10
|
||||
bl sub_8092C54
|
||||
bl GetMoveDealsDirectDamage
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807C0C4
|
||||
@@ -13610,7 +13610,7 @@ _0807C77C:
|
||||
_0807C78A:
|
||||
mov r0, r8
|
||||
movs r1, 0x2
|
||||
bl sub_8092BD8
|
||||
bl GetMoveAccuracy
|
||||
adds r4, r0, 0
|
||||
movs r0, 0x64
|
||||
bl DungeonRandomCapped
|
||||
@@ -14176,7 +14176,7 @@ _0807CBAC:
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldrb r0, [r7, 0x7]
|
||||
mov r10, r4
|
||||
mov r9, r5
|
||||
@@ -14394,7 +14394,7 @@ sub_807CD64:
|
||||
_0807CD88:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_8092AE0
|
||||
bl GetMoveTargetingFlags
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
_0807CD94:
|
||||
@@ -14625,7 +14625,7 @@ _0807CF4E:
|
||||
add r4, sp, 0x1C
|
||||
ldr r1, _0807D058
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldr r0, [sp, 0x28]
|
||||
adds r1, r4, 0
|
||||
bl sub_80571F0
|
||||
@@ -16903,7 +16903,7 @@ sub_807E1A0:
|
||||
add r4, sp, 0x1C
|
||||
ldr r1, _0807E20C
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80571F0
|
||||
@@ -19797,7 +19797,7 @@ _0807F8FA:
|
||||
add r4, sp, 0xE4
|
||||
ldr r1, _0807F9AC
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_80571F0
|
||||
|
||||
@@ -412,7 +412,7 @@ _080905A6:
|
||||
adds r0, 0xCC
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl sub_8092A88
|
||||
bl InitPokemonMove
|
||||
ldr r0, _080905E0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
|
||||
749
asm/code_8094148.s
Normal file
749
asm/code_8094148.s
Normal file
@@ -0,0 +1,749 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8094268
|
||||
sub_8094268:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
adds r3, r1, 0
|
||||
asrs r0, r3, 16
|
||||
asrs r1, r2, 16
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
ldr r6, _080942B0
|
||||
ands r3, r6
|
||||
orrs r3, r0
|
||||
adds r2, r3, r2
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
ldr r4, _080942B4
|
||||
ands r3, r4
|
||||
orrs r3, r2
|
||||
asrs r1, r3, 16
|
||||
ldr r0, _080942B8
|
||||
cmp r1, r0
|
||||
ble _080942A6
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ands r3, r4
|
||||
orrs r3, r0
|
||||
asrs r0, r3, 16
|
||||
ldr r1, _080942BC
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
ands r3, r6
|
||||
orrs r3, r0
|
||||
_080942A6:
|
||||
str r3, [r5]
|
||||
adds r0, r5, 0
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080942B0: .4byte 0x0000ffff
|
||||
_080942B4: .4byte 0xffff0000
|
||||
_080942B8: .4byte 0x000003e7
|
||||
_080942BC: .4byte 0xfffffc18
|
||||
thumb_func_end sub_8094268
|
||||
|
||||
thumb_func_start sub_80942C0
|
||||
sub_80942C0:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r3, r1, 0
|
||||
asrs r0, r3, 16
|
||||
asrs r1, r2, 16
|
||||
subs r0, r1
|
||||
lsls r0, 16
|
||||
ldr r4, _08094310
|
||||
ands r3, r4
|
||||
orrs r3, r0
|
||||
subs r2, r3, r2
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
ldr r1, _08094314
|
||||
ands r3, r1
|
||||
orrs r3, r2
|
||||
cmp r3, 0
|
||||
bge _080942FC
|
||||
subs r0, r3, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ands r3, r1
|
||||
orrs r3, r0
|
||||
asrs r0, r3, 16
|
||||
movs r2, 0xFA
|
||||
lsls r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 16
|
||||
ands r3, r4
|
||||
orrs r3, r0
|
||||
_080942FC:
|
||||
lsls r0, r3, 16
|
||||
cmp r0, 0
|
||||
bge _08094304
|
||||
movs r3, 0
|
||||
_08094304:
|
||||
str r3, [r5]
|
||||
adds r0, r5, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08094310: .4byte 0x0000ffff
|
||||
_08094314: .4byte 0xffff0000
|
||||
thumb_func_end sub_80942C0
|
||||
|
||||
thumb_func_start sub_8094318
|
||||
sub_8094318:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r3, r1, 0
|
||||
lsls r0, r3, 16
|
||||
asrs r1, r0, 16
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 16
|
||||
cmp r1, r0
|
||||
bgt _08094336
|
||||
cmp r1, r0
|
||||
blt _0809433A
|
||||
asrs r1, r3, 16
|
||||
asrs r0, r2, 16
|
||||
cmp r1, r0
|
||||
ble _0809433A
|
||||
_08094336:
|
||||
str r2, [r4]
|
||||
b _0809433C
|
||||
_0809433A:
|
||||
str r3, [r4]
|
||||
_0809433C:
|
||||
adds r0, r4, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8094318
|
||||
|
||||
thumb_func_start sub_8094344
|
||||
sub_8094344:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r3, r1, 0
|
||||
lsls r0, r3, 16
|
||||
asrs r1, r0, 16
|
||||
lsls r0, r2, 16
|
||||
asrs r0, 16
|
||||
cmp r1, r0
|
||||
bgt _08094362
|
||||
cmp r1, r0
|
||||
blt _08094366
|
||||
asrs r1, r3, 16
|
||||
asrs r0, r2, 16
|
||||
cmp r1, r0
|
||||
ble _08094366
|
||||
_08094362:
|
||||
str r3, [r4]
|
||||
b _08094368
|
||||
_08094366:
|
||||
str r2, [r4]
|
||||
_08094368:
|
||||
adds r0, r4, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8094344
|
||||
|
||||
thumb_func_start sub_8094370
|
||||
sub_8094370:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r1, 16
|
||||
lsls r2, 16
|
||||
ldr r4, _08094398
|
||||
lsrs r3, r1, 16
|
||||
orrs r3, r2
|
||||
asrs r2, 16
|
||||
ldr r1, _0809439C
|
||||
asrs r0, r1, 16
|
||||
cmp r2, r0
|
||||
ble _0809438C
|
||||
ands r3, r4
|
||||
orrs r3, r1
|
||||
_0809438C:
|
||||
str r3, [r5]
|
||||
adds r0, r5, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08094398: .4byte 0x0000ffff
|
||||
_0809439C: .4byte 0x03e70000
|
||||
thumb_func_end sub_8094370
|
||||
|
||||
thumb_func_start sub_80943A0
|
||||
sub_80943A0:
|
||||
lsls r1, 16
|
||||
lsrs r2, r1, 16
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
thumb_func_end sub_80943A0
|
||||
|
||||
thumb_func_start sub_80943A8
|
||||
sub_80943A8:
|
||||
push {r4,r5,lr}
|
||||
ldr r3, [r1, 0x4]
|
||||
lsrs r2, r3, 16
|
||||
ldr r1, _080943D4
|
||||
ands r5, r1
|
||||
orrs r5, r2
|
||||
ldr r4, _080943D8
|
||||
adds r2, r4, 0
|
||||
ands r2, r3
|
||||
lsls r1, r2, 5
|
||||
subs r1, r2
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
lsrs r1, 16
|
||||
lsls r1, 16
|
||||
ands r5, r4
|
||||
orrs r5, r1
|
||||
str r5, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080943D4: .4byte 0xffff0000
|
||||
_080943D8: .4byte 0x0000ffff
|
||||
thumb_func_end sub_80943A8
|
||||
|
||||
thumb_func_start sub_80943DC
|
||||
sub_80943DC:
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, 0
|
||||
lsls r1, r4, 16
|
||||
asrs r1, 16
|
||||
lsls r0, r1, 5
|
||||
subs r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
asrs r1, r4, 16
|
||||
adds r0, r1
|
||||
lsls r3, r2, 16
|
||||
asrs r3, 16
|
||||
lsls r1, r3, 5
|
||||
subs r1, r3
|
||||
lsls r1, 2
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
asrs r2, 16
|
||||
adds r1, r2
|
||||
muls r0, r1
|
||||
movs r5, 0xFA
|
||||
lsls r5, 2
|
||||
adds r1, r5, 0
|
||||
bl __divsi3
|
||||
adds r6, r0, 0
|
||||
adds r1, r5, 0
|
||||
bl __divsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r1, _08094448
|
||||
ands r4, r1
|
||||
orrs r4, r0
|
||||
adds r0, r6, 0
|
||||
adds r1, r5, 0
|
||||
bl __modsi3
|
||||
lsls r0, 16
|
||||
ldr r1, _0809444C
|
||||
ands r1, r4
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
str r0, [r1]
|
||||
mov r0, r8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08094448: .4byte 0xffff0000
|
||||
_0809444C: .4byte 0x0000ffff
|
||||
thumb_func_end sub_80943DC
|
||||
|
||||
thumb_func_start sub_8094450
|
||||
sub_8094450:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
lsls r0, r1, 16
|
||||
asrs r2, r0, 16
|
||||
cmp r2, 0
|
||||
bne _0809446A
|
||||
asrs r0, r1, 16
|
||||
cmp r0, 0
|
||||
bne _08094466
|
||||
movs r0, 0
|
||||
b _08094476
|
||||
_08094466:
|
||||
movs r0, 0x1
|
||||
b _08094476
|
||||
_0809446A:
|
||||
asrs r0, r1, 16
|
||||
cmp r0, 0
|
||||
bne _08094474
|
||||
adds r0, r2, 0
|
||||
b _08094476
|
||||
_08094474:
|
||||
adds r0, r2, 0x1
|
||||
_08094476:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8094450
|
||||
|
||||
thumb_func_start sub_809447C
|
||||
sub_809447C:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r2, 0x10
|
||||
bl RestoreIntegerBits
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x10
|
||||
bl RestoreIntegerBits
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809447C
|
||||
|
||||
thumb_func_start sub_809449C
|
||||
sub_809449C:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
movs r2, 0x10
|
||||
bl SaveIntegerBits
|
||||
adds r4, 0x2
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
movs r2, 0x10
|
||||
bl SaveIntegerBits
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809449C
|
||||
|
||||
thumb_func_start sub_80944BC
|
||||
sub_80944BC:
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r1, 0
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
ldr r0, _080944F4
|
||||
cmp r1, r0
|
||||
bgt _08094500
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
mov r0, sp
|
||||
bl sub_8092AA8
|
||||
ldr r0, _080944F8
|
||||
mov r1, sp
|
||||
movs r2, 0
|
||||
bl sub_80928C0
|
||||
ldr r0, _080944FC
|
||||
ldr r0, [r0]
|
||||
adds r2, r4, 0
|
||||
adds r2, 0xC8
|
||||
adds r1, r4, 0
|
||||
movs r3, 0
|
||||
bl xxx_format_string
|
||||
b _08094516
|
||||
.align 2, 0
|
||||
_080944F4: .4byte 0x000001f3
|
||||
_080944F8: .4byte gUnknown_202DE58
|
||||
_080944FC: .4byte gUnknown_811383C
|
||||
_08094500:
|
||||
ldr r0, _08094520
|
||||
ldr r2, _08094524
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r0, 0x4
|
||||
adds r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, 0
|
||||
movs r2, 0xC8
|
||||
bl strncpy
|
||||
_08094516:
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08094520: .4byte gUnknown_8113080
|
||||
_08094524: .4byte 0xfffffe0c
|
||||
thumb_func_end sub_80944BC
|
||||
|
||||
thumb_func_start sub_8094528
|
||||
sub_8094528:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
ldr r0, _08094544
|
||||
cmp r1, r0
|
||||
ble _08094550
|
||||
ldr r0, _08094548
|
||||
ldr r2, _0809454C
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
b _08094552
|
||||
.align 2, 0
|
||||
_08094544: .4byte 0x000001f3
|
||||
_08094548: .4byte gUnknown_8113080
|
||||
_0809454C: .4byte 0xfffffe0c
|
||||
_08094550:
|
||||
movs r0, 0x1
|
||||
_08094552:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8094528
|
||||
|
||||
thumb_func_start sub_8094558
|
||||
sub_8094558:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0xCC
|
||||
adds r7, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r6, r2, 0
|
||||
bl sub_80073B8
|
||||
movs r5, 0
|
||||
str r5, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
ldr r4, _080945D0
|
||||
adds r1, r6, 0
|
||||
adds r1, 0x18
|
||||
adds r0, r4, 0
|
||||
bl sub_8090208
|
||||
ldr r0, _080945D4
|
||||
ldr r2, [r0]
|
||||
str r5, [sp]
|
||||
movs r0, 0x4
|
||||
movs r1, 0x10
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
movs r5, 0x1A
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
movs r2, 0xA
|
||||
bl sub_80922B4
|
||||
adds r4, 0x50
|
||||
adds r1, r6, 0
|
||||
adds r1, 0xA
|
||||
adds r0, r4, 0
|
||||
movs r2, 0xA
|
||||
bl sub_80922B4
|
||||
movs r1, 0x14
|
||||
ldrsh r0, [r6, r1]
|
||||
bl sub_8094528
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080945DC
|
||||
ldr r0, _080945D8
|
||||
ldr r0, [r0]
|
||||
add r2, sp, 0xCC
|
||||
add r1, sp, 0x4
|
||||
movs r3, 0
|
||||
bl xxx_format_string
|
||||
b _080945EA
|
||||
.align 2, 0
|
||||
_080945D0: .4byte gAvailablePokemonNames
|
||||
_080945D4: .4byte gUnknown_8113850
|
||||
_080945D8: .4byte gUnknown_8113868
|
||||
_080945DC:
|
||||
ldr r0, _0809465C
|
||||
ldr r0, [r0]
|
||||
add r2, sp, 0xCC
|
||||
add r1, sp, 0x4
|
||||
movs r3, 0
|
||||
bl xxx_format_string
|
||||
_080945EA:
|
||||
add r0, sp, 0x4
|
||||
bl sub_8008ED0
|
||||
movs r4, 0xB0
|
||||
subs r0, r4, r0
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
movs r1, 0
|
||||
mov r8, r1
|
||||
str r1, [sp]
|
||||
adds r1, r5, 0
|
||||
add r2, sp, 0x4
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0xA
|
||||
movs r1, 0x14
|
||||
ldrsh r0, [r6, r1]
|
||||
add r1, sp, 0x4
|
||||
bl sub_80944BC
|
||||
add r0, sp, 0x4
|
||||
bl sub_8008ED0
|
||||
subs r4, r0
|
||||
lsrs r0, r4, 31
|
||||
adds r4, r0
|
||||
asrs r0, r4, 1
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
adds r1, r5, 0
|
||||
add r2, sp, 0x4
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0x10
|
||||
ldr r1, _08094660
|
||||
ldr r0, [r6, 0x20]
|
||||
str r0, [r1]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2A
|
||||
ldrb r0, [r0]
|
||||
str r0, [r1, 0x4]
|
||||
cmp r0, 0x63
|
||||
ble _08094668
|
||||
ldr r0, _08094664
|
||||
ldr r2, [r0]
|
||||
mov r0, r8
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _0809467A
|
||||
.align 2, 0
|
||||
_0809465C: .4byte gUnknown_8113870
|
||||
_08094660: .4byte gUnknown_202DE30
|
||||
_08094664: .4byte gUnknown_81138C0
|
||||
_08094668:
|
||||
ldr r0, _080946CC
|
||||
ldr r2, [r0]
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_0809467A:
|
||||
adds r5, 0xA
|
||||
ldr r4, _080946D0
|
||||
movs r1, 0x24
|
||||
ldrsh r0, [r6, r1]
|
||||
str r0, [r4]
|
||||
ldr r0, _080946D4
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0xA
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x26
|
||||
ldrb r2, [r0]
|
||||
str r2, [r4]
|
||||
adds r0, 0x2
|
||||
ldrb r0, [r0]
|
||||
str r0, [r4, 0x4]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2B
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _080946DC
|
||||
adds r0, r1, 0
|
||||
adds r0, r2, r0
|
||||
str r0, [r4]
|
||||
ldr r0, _080946D8
|
||||
ldr r2, [r0]
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _080946EC
|
||||
.align 2, 0
|
||||
_080946CC: .4byte gUnknown_8113898
|
||||
_080946D0: .4byte gUnknown_202DE30
|
||||
_080946D4: .4byte gUnknown_81138D0
|
||||
_080946D8: .4byte gUnknown_8113950
|
||||
_080946DC:
|
||||
ldr r0, _08094714
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_080946EC:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2D
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _08094720
|
||||
ldr r2, _08094718
|
||||
ldr r0, [r2, 0x4]
|
||||
adds r0, r1
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, _0809471C
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _08094730
|
||||
.align 2, 0
|
||||
_08094714: .4byte gUnknown_81138E4
|
||||
_08094718: .4byte gUnknown_202DE30
|
||||
_0809471C: .4byte gUnknown_8113974
|
||||
_08094720:
|
||||
ldr r0, _08094768
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_08094730:
|
||||
adds r5, 0xA
|
||||
ldr r2, _0809476C
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x27
|
||||
ldrb r3, [r0]
|
||||
str r3, [r2]
|
||||
adds r0, 0x2
|
||||
ldrb r0, [r0]
|
||||
str r0, [r2, 0x4]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2C
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _08094774
|
||||
adds r0, r1, 0
|
||||
adds r0, r3, r0
|
||||
str r0, [r2]
|
||||
ldr r0, _08094770
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _08094784
|
||||
.align 2, 0
|
||||
_08094768: .4byte gUnknown_8113900
|
||||
_0809476C: .4byte gUnknown_202DE30
|
||||
_08094770: .4byte gUnknown_8113990
|
||||
_08094774:
|
||||
ldr r0, _080947AC
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_08094784:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2E
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _080947B8
|
||||
ldr r2, _080947B0
|
||||
ldr r0, [r2, 0x4]
|
||||
adds r0, r1
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, _080947B4
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _080947C8
|
||||
.align 2, 0
|
||||
_080947AC: .4byte gUnknown_8113918
|
||||
_080947B0: .4byte gUnknown_202DE30
|
||||
_080947B4: .4byte gUnknown_81139B4
|
||||
_080947B8:
|
||||
ldr r0, _080947E4
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_080947C8:
|
||||
adds r5, 0x10
|
||||
adds r2, r6, 0
|
||||
adds r2, 0x1C
|
||||
ldrb r1, [r6, 0x1C]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080947EC
|
||||
ldr r0, _080947E8
|
||||
adds r1, r2, 0
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
b _080947F6
|
||||
.align 2, 0
|
||||
_080947E4: .4byte gUnknown_8113934
|
||||
_080947E8: .4byte gUnknown_202DE58
|
||||
_080947EC:
|
||||
ldr r0, _0809481C
|
||||
ldr r1, _08094820
|
||||
ldr r1, [r1]
|
||||
bl strcpy
|
||||
_080947F6:
|
||||
ldr r0, _08094824
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r0, r7, 0
|
||||
bl sub_80073E0
|
||||
add sp, 0xCC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809481C: .4byte gUnknown_202DE58
|
||||
_08094820: .4byte gUnknown_81139B8
|
||||
_08094824: .4byte gUnknown_81139CC
|
||||
thumb_func_end sub_8094558
|
||||
|
||||
.align 2,0
|
||||
@@ -1,391 +0,0 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8027CA0
|
||||
sub_8027CA0:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_801EF38
|
||||
cmp r0, 0x4
|
||||
bhi _08027CFA
|
||||
lsls r0, 2
|
||||
ldr r1, _08027CB8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08027CB8: .4byte _08027CBC
|
||||
.align 2, 0
|
||||
_08027CBC:
|
||||
.4byte _08027CFA
|
||||
.4byte _08027CFA
|
||||
.4byte _08027CF0
|
||||
.4byte _08027CD0
|
||||
.4byte _08027CD0
|
||||
_08027CD0:
|
||||
bl sub_801F194
|
||||
ldr r1, _08027CEC
|
||||
ldr r1, [r1]
|
||||
str r0, [r1, 0x20]
|
||||
lsls r0, 3
|
||||
adds r0, r1, r0
|
||||
ldrh r0, [r0, 0x2A]
|
||||
strh r0, [r1, 0x24]
|
||||
movs r0, 0x10
|
||||
bl SetFriendAreaActionMenuState
|
||||
b _08027CFA
|
||||
.align 2, 0
|
||||
_08027CEC: .4byte gUnknown_203B2BC
|
||||
_08027CF0:
|
||||
bl sub_801F214
|
||||
movs r0, 0x2
|
||||
bl SetFriendAreaActionMenuState
|
||||
_08027CFA:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8027CA0
|
||||
|
||||
thumb_func_start sub_8027D00
|
||||
sub_8027D00:
|
||||
push {lr}
|
||||
bl sub_801F890
|
||||
cmp r0, 0x1
|
||||
bls _08027D18
|
||||
cmp r0, 0x3
|
||||
bhi _08027D18
|
||||
bl sub_801F8D0
|
||||
movs r0, 0xF
|
||||
bl SetFriendAreaActionMenuState
|
||||
_08027D18:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8027D00
|
||||
|
||||
thumb_func_start sub_8027D1C
|
||||
sub_8027D1C:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
mov r0, sp
|
||||
bl sub_80144A4
|
||||
cmp r0, 0
|
||||
bne _08027D34
|
||||
ldr r0, _08027D3C
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x4]
|
||||
bl SetFriendAreaActionMenuState
|
||||
_08027D34:
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08027D3C: .4byte gUnknown_203B2BC
|
||||
thumb_func_end sub_8027D1C
|
||||
|
||||
thumb_func_start sub_8027D40
|
||||
sub_8027D40:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x14
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
bl sub_8008C54
|
||||
adds r0, r6, 0
|
||||
bl sub_80073B8
|
||||
add r4, sp, 0x10
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl HeldItemToSlot
|
||||
movs r5, 0
|
||||
str r5, [sp, 0x4]
|
||||
add r0, sp, 0x4
|
||||
strb r5, [r0, 0x4]
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x8]
|
||||
strb r0, [r4]
|
||||
ldr r0, _08027D94
|
||||
adds r1, r4, 0
|
||||
add r2, sp, 0x4
|
||||
bl sub_8090E14
|
||||
ldr r2, _08027D98
|
||||
str r5, [sp]
|
||||
movs r0, 0x4
|
||||
movs r1, 0x3
|
||||
adds r3, r6, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r0, r6, 0
|
||||
bl sub_80073E0
|
||||
add sp, 0x14
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08027D94: .4byte gUnknown_202DE58
|
||||
_08027D98: .4byte gUnknown_80DD958
|
||||
thumb_func_end sub_8027D40
|
||||
|
||||
thumb_func_start sub_8027D9C
|
||||
sub_8027D9C:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldrb r0, [r1, 0x2]
|
||||
cmp r0, 0
|
||||
bne _08027DC0
|
||||
movs r2, 0
|
||||
ldrb r0, [r1, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _08027DB0
|
||||
movs r2, 0x1
|
||||
_08027DB0:
|
||||
cmp r2, 0
|
||||
beq _08027DC4
|
||||
movs r0, 0x8
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08027DC4
|
||||
_08027DC0:
|
||||
movs r0, 0
|
||||
b _08027DC6
|
||||
_08027DC4:
|
||||
movs r0, 0x1
|
||||
_08027DC6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8027D9C
|
||||
|
||||
thumb_func_start sub_8027DCC
|
||||
sub_8027DCC:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl sub_808D3BC
|
||||
cmp r0, r4
|
||||
beq _08027E0E
|
||||
bl sub_808D3F8
|
||||
cmp r0, r4
|
||||
beq _08027E0E
|
||||
ldrb r0, [r4, 0x2]
|
||||
cmp r0, 0
|
||||
bne _08027E0E
|
||||
movs r1, 0
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0x41
|
||||
bne _08027DF0
|
||||
movs r1, 0x1
|
||||
_08027DF0:
|
||||
cmp r1, 0
|
||||
beq _08027E00
|
||||
movs r0, 0x8
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08027E0E
|
||||
_08027E00:
|
||||
adds r0, r4, 0
|
||||
bl sub_8027E18
|
||||
cmp r0, 0x3
|
||||
beq _08027E0E
|
||||
movs r0, 0x1
|
||||
b _08027E10
|
||||
_08027E0E:
|
||||
movs r0, 0
|
||||
_08027E10:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8027DCC
|
||||
|
||||
thumb_func_start sub_8027E18
|
||||
sub_8027E18:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
adds r0, 0x28
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08027E28
|
||||
movs r0, 0
|
||||
b _08027E46
|
||||
_08027E28:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
bgt _08027E34
|
||||
movs r0, 0x1
|
||||
b _08027E46
|
||||
_08027E34:
|
||||
adds r0, r4, 0
|
||||
bl sub_8027E4C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08027E44
|
||||
movs r0, 0x3
|
||||
b _08027E46
|
||||
_08027E44:
|
||||
movs r0, 0x2
|
||||
_08027E46:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8027E18
|
||||
|
||||
thumb_func_start sub_8027E4C
|
||||
sub_8027E4C:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r4, r5, 0
|
||||
adds r4, 0x28
|
||||
ldrb r0, [r4]
|
||||
bl IsNotMoneyOrUsedTMItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08027E88
|
||||
ldrb r0, [r4]
|
||||
bl IsThrowableItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08027E94
|
||||
ldr r0, _08027E8C
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r1, [r1]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x29
|
||||
ldrb r0, [r0]
|
||||
adds r1, r0
|
||||
ldr r0, _08027E90
|
||||
cmp r1, r0
|
||||
ble _08027EA8
|
||||
_08027E88:
|
||||
movs r0, 0
|
||||
b _08027EAA
|
||||
.align 2, 0
|
||||
_08027E8C: .4byte gTeamInventory_203B460
|
||||
_08027E90: .4byte 0x000003e7
|
||||
_08027E94:
|
||||
ldr r0, _08027EB0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r1, [r1]
|
||||
ldr r0, _08027EB4
|
||||
cmp r1, r0
|
||||
bhi _08027E88
|
||||
_08027EA8:
|
||||
movs r0, 0x1
|
||||
_08027EAA:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08027EB0: .4byte gTeamInventory_203B460
|
||||
_08027EB4: .4byte 0x000003e6
|
||||
thumb_func_end sub_8027E4C
|
||||
|
||||
thumb_func_start sub_8027EB8
|
||||
sub_8027EB8:
|
||||
push {r4,lr}
|
||||
ldr r4, _08027ED4
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x18]
|
||||
bl sub_8027E18
|
||||
cmp r0, 0x1
|
||||
beq _08027ED8
|
||||
cmp r0, 0x1
|
||||
bcc _08027F7C
|
||||
cmp r0, 0x2
|
||||
beq _08027F0C
|
||||
b _08027F7C
|
||||
.align 2, 0
|
||||
_08027ED4: .4byte gUnknown_203B2BC
|
||||
_08027ED8:
|
||||
ldr r0, _08027F08
|
||||
bl PlaySound
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x14
|
||||
bl sub_8091274
|
||||
bl FillInventoryGaps
|
||||
ldr r0, [r4]
|
||||
movs r1, 0
|
||||
strb r1, [r0, 0x14]
|
||||
ldr r0, [r4]
|
||||
strb r1, [r0, 0x15]
|
||||
ldr r1, [r4]
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r1, r2]
|
||||
adds r1, 0x14
|
||||
bl GivePokemonItem
|
||||
movs r0, 0x6
|
||||
bl SetFriendAreaActionMenuState
|
||||
b _08027F82
|
||||
.align 2, 0
|
||||
_08027F08: .4byte 0x0000014d
|
||||
_08027F0C:
|
||||
ldr r0, _08027F38
|
||||
bl PlaySound
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x14]
|
||||
bl IsThrowableItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08027F40
|
||||
ldr r0, _08027F3C
|
||||
ldr r1, [r0]
|
||||
ldr r2, [r4]
|
||||
ldrb r0, [r2, 0x14]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
ldrb r2, [r2, 0x15]
|
||||
adds r0, r2
|
||||
b _08027F52
|
||||
.align 2, 0
|
||||
_08027F38: .4byte 0x0000014d
|
||||
_08027F3C: .4byte gTeamInventory_203B460
|
||||
_08027F40:
|
||||
ldr r0, _08027F74
|
||||
ldr r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x14]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r0, 0x1
|
||||
_08027F52:
|
||||
strh r0, [r1]
|
||||
ldr r1, _08027F78
|
||||
ldr r0, [r1]
|
||||
movs r2, 0
|
||||
strb r2, [r0, 0x14]
|
||||
ldr r0, [r1]
|
||||
strb r2, [r0, 0x15]
|
||||
ldr r1, [r1]
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r1, r2]
|
||||
adds r1, 0x14
|
||||
bl GivePokemonItem
|
||||
movs r0, 0x7
|
||||
bl SetFriendAreaActionMenuState
|
||||
b _08027F82
|
||||
.align 2, 0
|
||||
_08027F74: .4byte gTeamInventory_203B460
|
||||
_08027F78: .4byte gUnknown_203B2BC
|
||||
_08027F7C:
|
||||
movs r0, 0x2
|
||||
bl SetFriendAreaActionMenuState
|
||||
_08027F82:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8027EB8
|
||||
|
||||
|
||||
.align 2,0
|
||||
@@ -3915,7 +3915,7 @@ _08020D38:
|
||||
bne _08020D34
|
||||
ldrh r1, [r3, 0x1E]
|
||||
adds r0, r2, 0
|
||||
bl sub_8092AD4
|
||||
bl InitZeroedPPPokemonMove
|
||||
_08020D52:
|
||||
cmp r5, 0x3
|
||||
ble _08020D5E
|
||||
|
||||
@@ -356,653 +356,4 @@ _08018582:
|
||||
bx r0
|
||||
thumb_func_end sub_80184D4
|
||||
|
||||
thumb_func_start sub_8018588
|
||||
sub_8018588:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
ldr r4, _080185C4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080185B4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _080185B4
|
||||
ldr r0, [r4]
|
||||
str r1, [r0, 0x14]
|
||||
_080185B4:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x2
|
||||
beq _080185CE
|
||||
cmp r0, 0x2
|
||||
bgt _080185C8
|
||||
cmp r0, 0x1
|
||||
beq _08018610
|
||||
b _08018616
|
||||
.align 2, 0
|
||||
_080185C4: .4byte gUnknown_203B20C
|
||||
_080185C8:
|
||||
cmp r0, 0x3
|
||||
beq _080185EA
|
||||
b _08018616
|
||||
_080185CE:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
beq _080185F6
|
||||
movs r0, 0
|
||||
bl sub_801CF50
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080185F6
|
||||
movs r0, 0x4
|
||||
bl sub_8017F10
|
||||
b _08018616
|
||||
_080185EA:
|
||||
movs r0, 0x1
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08018608
|
||||
_080185F6:
|
||||
ldr r0, _08018604
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x70
|
||||
movs r1, 0x1
|
||||
bl sub_8012EA4
|
||||
b _08018616
|
||||
.align 2, 0
|
||||
_08018604: .4byte gUnknown_203B20C
|
||||
_08018608:
|
||||
movs r0, 0xA
|
||||
bl sub_8017F10
|
||||
b _08018616
|
||||
_08018610:
|
||||
movs r0, 0x3
|
||||
bl sub_8017F10
|
||||
_08018616:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8018588
|
||||
|
||||
thumb_func_start sub_8018620
|
||||
sub_8018620:
|
||||
push {r4-r7,lr}
|
||||
movs r0, 0x1
|
||||
bl sub_801A6E8
|
||||
cmp r0, 0x3
|
||||
beq _0801863C
|
||||
cmp r0, 0x3
|
||||
bhi _08018636
|
||||
cmp r0, 0x2
|
||||
beq _080186E8
|
||||
b _080186F2
|
||||
_08018636:
|
||||
cmp r0, 0x4
|
||||
beq _080186C0
|
||||
b _080186F2
|
||||
_0801863C:
|
||||
bl sub_801AEA8
|
||||
cmp r0, 0
|
||||
beq _08018698
|
||||
movs r5, 0
|
||||
ldr r6, _0801868C
|
||||
movs r7, 0
|
||||
_0801864A:
|
||||
adds r0, r5, 0
|
||||
bl sub_801AED0
|
||||
cmp r0, 0
|
||||
beq _0801866A
|
||||
lsls r4, r5, 2
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
bl MoveToStorage
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
strb r7, [r0, 0x2]
|
||||
ldr r0, [r6]
|
||||
adds r0, r4
|
||||
strb r7, [r0]
|
||||
_0801866A:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _0801864A
|
||||
bl FillInventoryGaps
|
||||
bl sub_801AE84
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
bne _08018690
|
||||
bl sub_801A928
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
b _080186F2
|
||||
.align 2, 0
|
||||
_0801868C: .4byte gTeamInventory_203B460
|
||||
_08018690:
|
||||
movs r0, 0x5
|
||||
bl sub_8017F10
|
||||
b _080186F2
|
||||
_08018698:
|
||||
bl sub_801A8AC
|
||||
ldr r1, _080186B8
|
||||
ldr r2, [r1]
|
||||
str r0, [r2, 0xC]
|
||||
ldr r1, _080186BC
|
||||
ldr r1, [r1]
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x8]
|
||||
movs r0, 0x6
|
||||
bl sub_8017F10
|
||||
b _080186F2
|
||||
.align 2, 0
|
||||
_080186B8: .4byte gUnknown_203B20C
|
||||
_080186BC: .4byte gTeamInventory_203B460
|
||||
_080186C0:
|
||||
bl sub_801A8AC
|
||||
ldr r1, _080186E0
|
||||
ldr r2, [r1]
|
||||
str r0, [r2, 0xC]
|
||||
ldr r1, _080186E4
|
||||
ldr r1, [r1]
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0x8]
|
||||
movs r0, 0x7
|
||||
bl sub_8017F10
|
||||
b _080186F2
|
||||
.align 2, 0
|
||||
_080186E0: .4byte gUnknown_203B20C
|
||||
_080186E4: .4byte gTeamInventory_203B460
|
||||
_080186E8:
|
||||
bl sub_801A928
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
_080186F2:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8018620
|
||||
|
||||
thumb_func_start sub_80186F8
|
||||
sub_80186F8:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0x1
|
||||
bl sub_801CA08
|
||||
cmp r0, 0x2
|
||||
bne _08018708
|
||||
b _08018838
|
||||
_08018708:
|
||||
cmp r0, 0x2
|
||||
bhi _08018714
|
||||
cmp r0, 0x1
|
||||
bne _08018712
|
||||
b _08018844
|
||||
_08018712:
|
||||
b _0801884A
|
||||
_08018714:
|
||||
cmp r0, 0x3
|
||||
beq _0801871E
|
||||
cmp r0, 0x4
|
||||
beq _0801880C
|
||||
b _0801884A
|
||||
_0801871E:
|
||||
bl sub_801CFB8
|
||||
cmp r0, 0
|
||||
beq _080187E0
|
||||
movs r6, 0
|
||||
mov r5, sp
|
||||
ldr r7, _0801876C
|
||||
_0801872C:
|
||||
lsls r0, r6, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_801CFE0
|
||||
cmp r0, 0
|
||||
beq _080187B2
|
||||
ldr r1, _08018770
|
||||
ldr r0, [sp]
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
str r0, [sp]
|
||||
ldrb r0, [r5]
|
||||
bl IsThrowableItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08018786
|
||||
ldr r2, _08018774
|
||||
ldr r1, [r2]
|
||||
ldrb r0, [r5]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrh r1, [r1]
|
||||
cmp r1, 0x63
|
||||
bls _08018778
|
||||
ldr r0, [sp]
|
||||
ands r0, r7
|
||||
movs r1, 0xC6
|
||||
lsls r1, 7
|
||||
b _08018780
|
||||
.align 2, 0
|
||||
_0801876C: .4byte 0xffff00ff
|
||||
_08018770: .4byte 0xffffff00
|
||||
_08018774: .4byte gTeamInventory_203B460
|
||||
_08018778:
|
||||
lsls r1, 24
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp]
|
||||
ands r0, r7
|
||||
_08018780:
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
b _08018794
|
||||
_08018786:
|
||||
ldr r0, [sp]
|
||||
ands r0, r7
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
ldr r2, _080187DC
|
||||
_08018794:
|
||||
ldr r2, [r2]
|
||||
ldrb r0, [r5]
|
||||
lsls r0, 1
|
||||
adds r2, 0x50
|
||||
adds r2, r0
|
||||
ldr r0, [sp]
|
||||
lsrs r0, 8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldrh r1, [r2]
|
||||
subs r1, r0
|
||||
strh r1, [r2]
|
||||
mov r0, sp
|
||||
bl sub_8091274
|
||||
_080187B2:
|
||||
adds r6, 0x1
|
||||
cmp r6, 0xEF
|
||||
ble _0801872C
|
||||
bl FillInventoryGaps
|
||||
bl sub_801CF94
|
||||
movs r0, 0x1
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08018838
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
bgt _08018838
|
||||
movs r0, 0xB
|
||||
bl sub_8017F10
|
||||
b _0801884A
|
||||
.align 2, 0
|
||||
_080187DC: .4byte gTeamInventory_203B460
|
||||
_080187E0:
|
||||
bl sub_801CB24
|
||||
ldr r4, _08018808
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x10]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
ldrb r1, [r1, 0x10]
|
||||
movs r2, 0
|
||||
bl xxx_init_itemslot_8090A8C
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x9]
|
||||
movs r0, 0xD
|
||||
bl sub_8017F10
|
||||
b _0801884A
|
||||
.align 2, 0
|
||||
_08018808: .4byte gUnknown_203B20C
|
||||
_0801880C:
|
||||
bl sub_801CB24
|
||||
ldr r4, _08018834
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0x10]
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
ldrb r1, [r1, 0x10]
|
||||
movs r2, 0
|
||||
bl xxx_init_itemslot_8090A8C
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1, 0x9]
|
||||
movs r0, 0xE
|
||||
bl sub_8017F10
|
||||
b _0801884A
|
||||
.align 2, 0
|
||||
_08018834: .4byte gUnknown_203B20C
|
||||
_08018838:
|
||||
bl sub_801CBB8
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
b _0801884A
|
||||
_08018844:
|
||||
movs r0, 0
|
||||
bl sub_801AD34
|
||||
_0801884A:
|
||||
add sp, 0x4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80186F8
|
||||
|
||||
thumb_func_start sub_8018854
|
||||
sub_8018854:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
bl sub_801CA08
|
||||
ldr r4, _080188E0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
bl sub_8012FD8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xC0
|
||||
bl sub_8013BBC
|
||||
cmp r0, 0x1
|
||||
beq _080188F8
|
||||
cmp r0, 0x1
|
||||
bcc _080188FC
|
||||
cmp r0, 0x2
|
||||
beq _080188F0
|
||||
cmp r0, 0x3
|
||||
bne _080188FC
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xC0
|
||||
ldr r0, [r0]
|
||||
strb r0, [r1, 0x9]
|
||||
ldr r0, _080188E4
|
||||
ldr r1, [r0]
|
||||
ldr r3, [r4]
|
||||
ldrb r0, [r3, 0xA]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrb r2, [r3, 0x9]
|
||||
ldrh r0, [r1]
|
||||
subs r0, r2
|
||||
strh r0, [r1]
|
||||
ldrb r2, [r3, 0xA]
|
||||
ldr r1, _080188E8
|
||||
ldr r0, [sp]
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
str r0, [sp]
|
||||
ldrb r1, [r3, 0x9]
|
||||
lsls r1, 8
|
||||
ldr r2, _080188EC
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
mov r0, sp
|
||||
bl sub_8091274
|
||||
movs r0, 0x1
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080188D2
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _080188F0
|
||||
_080188D2:
|
||||
bl sub_801CBB8
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
b _080188FC
|
||||
.align 2, 0
|
||||
_080188E0: .4byte gUnknown_203B20C
|
||||
_080188E4: .4byte gTeamInventory_203B460
|
||||
_080188E8: .4byte 0xffffff00
|
||||
_080188EC: .4byte 0xffff00ff
|
||||
_080188F0:
|
||||
movs r0, 0xB
|
||||
bl sub_8017F10
|
||||
b _080188FC
|
||||
_080188F8:
|
||||
bl sub_8018280
|
||||
_080188FC:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8018854
|
||||
|
||||
thumb_func_start sub_8018904
|
||||
sub_8018904:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_801A6E8
|
||||
ldr r4, _08018944
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08018934
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _08018934
|
||||
ldr r0, [r4]
|
||||
str r1, [r0, 0x18]
|
||||
_08018934:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x2
|
||||
beq _0801894E
|
||||
cmp r0, 0x2
|
||||
bgt _08018948
|
||||
cmp r0, 0x1
|
||||
beq _080189BA
|
||||
b _080189C0
|
||||
.align 2, 0
|
||||
_08018944: .4byte gUnknown_203B20C
|
||||
_08018948:
|
||||
cmp r0, 0x4
|
||||
beq _080189AC
|
||||
b _080189C0
|
||||
_0801894E:
|
||||
ldr r4, _08018978
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0xA]
|
||||
bl IsNotMoneyOrUsedTMItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0801896C
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0xC]
|
||||
bl sub_801ADA0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0801897C
|
||||
_0801896C:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
movs r1, 0x1
|
||||
bl sub_8012EA4
|
||||
b _080189C0
|
||||
.align 2, 0
|
||||
_08018978: .4byte gUnknown_203B20C
|
||||
_0801897C:
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x8
|
||||
bl MoveToStorage
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0xC]
|
||||
bl ShiftItemsDownFrom
|
||||
bl FillInventoryGaps
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0
|
||||
bne _080189A4
|
||||
bl sub_801A928
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
b _080189C0
|
||||
_080189A4:
|
||||
movs r0, 0x5
|
||||
bl sub_8017F10
|
||||
b _080189C0
|
||||
_080189AC:
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
movs r0, 0x7
|
||||
bl sub_8017F10
|
||||
b _080189C0
|
||||
_080189BA:
|
||||
movs r0, 0x5
|
||||
bl sub_8017F10
|
||||
_080189C0:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8018904
|
||||
|
||||
thumb_func_start sub_80189C8
|
||||
sub_80189C8:
|
||||
push {r4,lr}
|
||||
sub sp, 0x8
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_801CA08
|
||||
ldr r4, _08018A08
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080189F8
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x70
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
ldr r1, [sp]
|
||||
cmp r1, 0x1
|
||||
beq _080189F8
|
||||
ldr r0, [r4]
|
||||
str r1, [r0, 0x1C]
|
||||
_080189F8:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x3
|
||||
beq _08018A12
|
||||
cmp r0, 0x3
|
||||
bgt _08018A0C
|
||||
cmp r0, 0x1
|
||||
beq _08018AB8
|
||||
b _08018ABE
|
||||
.align 2, 0
|
||||
_08018A08: .4byte gUnknown_203B20C
|
||||
_08018A0C:
|
||||
cmp r0, 0x4
|
||||
beq _08018AB0
|
||||
b _08018ABE
|
||||
_08018A12:
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _08018A2C
|
||||
ldr r0, _08018A28
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x70
|
||||
movs r1, 0x1
|
||||
bl sub_8012EA4
|
||||
b _08018ABE
|
||||
.align 2, 0
|
||||
_08018A28: .4byte gUnknown_203B20C
|
||||
_08018A2C:
|
||||
ldr r4, _08018A44
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0xA]
|
||||
bl IsThrowableItem
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08018A48
|
||||
movs r0, 0xC
|
||||
bl sub_8017F10
|
||||
b _08018ABE
|
||||
.align 2, 0
|
||||
_08018A44: .4byte gUnknown_203B20C
|
||||
_08018A48:
|
||||
ldr r0, _08018A9C
|
||||
ldr r1, [r0]
|
||||
ldr r3, [r4]
|
||||
ldrb r0, [r3, 0xA]
|
||||
lsls r0, 1
|
||||
adds r1, 0x50
|
||||
adds r1, r0
|
||||
ldrb r2, [r3, 0x9]
|
||||
ldrh r0, [r1]
|
||||
subs r0, r2
|
||||
strh r0, [r1]
|
||||
ldrb r2, [r3, 0xA]
|
||||
ldr r1, _08018AA0
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
str r0, [sp, 0x4]
|
||||
ldrb r1, [r3, 0x9]
|
||||
lsls r1, 8
|
||||
ldr r2, _08018AA4
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
add r0, sp, 0x4
|
||||
bl sub_8091274
|
||||
movs r0, 0x1
|
||||
bl sub_801CF14
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08018A90
|
||||
bl GetNumberOfFilledInventorySlots
|
||||
cmp r0, 0x13
|
||||
ble _08018AA8
|
||||
_08018A90:
|
||||
bl sub_801CBB8
|
||||
movs r0, 0x1
|
||||
bl sub_8017F10
|
||||
b _08018ABE
|
||||
.align 2, 0
|
||||
_08018A9C: .4byte gTeamInventory_203B460
|
||||
_08018AA0: .4byte 0xffffff00
|
||||
_08018AA4: .4byte 0xffff00ff
|
||||
_08018AA8:
|
||||
movs r0, 0xB
|
||||
bl sub_8017F10
|
||||
b _08018ABE
|
||||
_08018AB0:
|
||||
movs r0, 0xE
|
||||
bl sub_8017F10
|
||||
b _08018ABE
|
||||
_08018AB8:
|
||||
movs r0, 0xB
|
||||
bl sub_8017F10
|
||||
_08018ABE:
|
||||
add sp, 0x8
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80189C8
|
||||
|
||||
.align 2,0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -258,7 +258,7 @@ _0808D06E:
|
||||
beq _0808D07E
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
bl sub_8092AD4
|
||||
bl InitZeroedPPPokemonMove
|
||||
b _0808D080
|
||||
_0808D07E:
|
||||
strb r0, [r4]
|
||||
@@ -415,7 +415,7 @@ _0808D19E:
|
||||
cmp r1, 0
|
||||
beq _0808D1B4
|
||||
adds r0, r4, 0
|
||||
bl sub_8092AD4
|
||||
bl InitZeroedPPPokemonMove
|
||||
b _0808D1B6
|
||||
_0808D1B4:
|
||||
strb r1, [r4]
|
||||
|
||||
@@ -2678,8 +2678,8 @@ gUnknown_80DAA44:
|
||||
.string "true power.\0"
|
||||
.align 2, 0
|
||||
|
||||
.global gUnknown_80DAA98
|
||||
gUnknown_80DAA98: @ 80DAA98 (Help Menu?)
|
||||
.global gGameHints
|
||||
gGameHints: @ 80DAA98 (Help Menu?)
|
||||
.4byte gUnknown_80DAF54
|
||||
.4byte gUnknown_80DAEE0
|
||||
.4byte gUnknown_80DAECC
|
||||
@@ -2770,6 +2770,7 @@ gUnknown_80DAF54:
|
||||
.align 2, 0
|
||||
|
||||
.string "pksdir0\0"
|
||||
|
||||
.global gUnknown_80DAF70
|
||||
gUnknown_80DAF70: @ 80DAF70
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,17 +14,15 @@ enum MoveFlags
|
||||
struct MoveData
|
||||
{
|
||||
u8 *namePointer;
|
||||
/* 0x4 */ u8 power;
|
||||
u8 fill5;
|
||||
/* 0x4 */ s16 power;
|
||||
u8 type;
|
||||
u8 fill7;
|
||||
// Determines the range of moves.
|
||||
/* 0x8 */ u16 targetingFlags;
|
||||
/* 0xA */ u16 aiTargetingFlags; // The AI consider certain moves to have different range than they actually do.
|
||||
/* 0x8 */ u16 targetingFlags[2]; // 0 for player and 1 for AI
|
||||
// The AI consider certain moves to have different range than they actually do.
|
||||
/* 0xC */ u8 maxPP;
|
||||
/* 0xD */ u8 weight;
|
||||
/* 0xE */ u8 accuracy1;
|
||||
/* 0xF */ u8 accuracy2;
|
||||
/* 0xE */ u8 accuracy[2];
|
||||
// Used by the AI to determine how often to use Spikes.
|
||||
// Values exist for all other moves, though they seem to be unused.
|
||||
/* 0x10 */ u8 useChance;
|
||||
@@ -36,7 +34,7 @@ struct MoveData
|
||||
/* 0x16 */ bool8 affectedByMuzzled; // If true, this move can't be used with the Muzzled status.
|
||||
/* 0x17 */ bool8 cannotHitFrozen; // Used by Status Checker to determine if a move can be used on a frozen target.
|
||||
/* 0x18 */ bool8 dealsDirectDamage;
|
||||
u8 unk19;
|
||||
u8 rangeType;
|
||||
u8 *descriptionPointer;
|
||||
u8 *useText; // The text displayed when this move is used.
|
||||
};
|
||||
|
||||
@@ -10,13 +10,12 @@ struct unkStruct_203B2BC
|
||||
u16 unkA;
|
||||
u32 itemIndex;
|
||||
struct HeldItem itemToGive;
|
||||
struct ItemSlot unk14;
|
||||
struct HeldItem unk14;
|
||||
struct PokemonStruct *unk18;
|
||||
u32 unk1C;
|
||||
u32 unk20;
|
||||
u32 unk24;
|
||||
u32 unk28;
|
||||
u8 fill2C[0x68 - 0x2C];
|
||||
u16 unk24;
|
||||
struct PokemonMove unk28[8];
|
||||
u32 unk68;
|
||||
u32 unk6C;
|
||||
u32 unk70;
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
#ifndef GUARD_GULPIN_SHOP_H
|
||||
#define GUARD_GULPIN_SHOP_H
|
||||
|
||||
struct unkStruct_Gulpin
|
||||
{
|
||||
u8 fill0[0x22];
|
||||
u16 unk22;
|
||||
};
|
||||
|
||||
struct unkStruct_203B26C
|
||||
{
|
||||
// size: 0x18C
|
||||
@@ -15,7 +9,7 @@ struct unkStruct_203B26C
|
||||
u32 unk8;
|
||||
s16 speciesNum; // species of chosen Pokemon
|
||||
u8 unkE;
|
||||
struct unkStruct_Gulpin * unk10;
|
||||
struct PokemonMove * unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u16 unk1C;
|
||||
|
||||
@@ -66,8 +66,16 @@ enum ItemFlag
|
||||
void LoadItemParameters(void);
|
||||
struct TeamInventory *GetMoneyItemsInfo(void);
|
||||
void InitializeMoneyItems(void);
|
||||
s32 GetNumberOfFilledInventorySlots(void);
|
||||
bool8 IsThrowableItem(u8 itemIndex);
|
||||
void xxx_init_itemslot_8090A8C(struct ItemSlot *param_1,u8 itemIndex,u8 param_3);
|
||||
void xxx_init_helditem_8090B08(struct HeldItem *param_1,u8 itemIndex);
|
||||
void HeldItemToSlot(struct ItemSlot *param_1, struct HeldItem *param_2);
|
||||
void SlotToHeldItem(struct HeldItem *held,struct ItemSlot *slot);
|
||||
u8 GetItemType(u8 index);
|
||||
s32 GetStackBuyValue(struct ItemSlot *param_1);
|
||||
s32 GetStackSellValue(struct ItemSlot *param_1);
|
||||
s32 GetStackBuyPrice(struct ItemSlot *param_1);
|
||||
s32 GetStackSellPrice(struct ItemSlot *param_1);
|
||||
s32 GetItemBuyPrice(u8 itemIndex);
|
||||
s32 GetItemSellPrice(u8 itemIndex);
|
||||
@@ -77,12 +85,8 @@ u8 GetItemCategory(u8 itemIndex);
|
||||
u32 GetItemUnkThrow(u8 itemIndex, u32 r1);
|
||||
u8 *GetItemDescription(u8 itemIndex);
|
||||
u32 GetItemAIFlags(u8 itemIndex, u32 r1);
|
||||
s32 GetNumberOfFilledInventorySlots(void);
|
||||
bool8 IsThrowableItem(u8 itemIndex);
|
||||
void xxx_init_itemslot_8090A8C(struct ItemSlot *param_1,u8 itemIndex,u8 param_3);
|
||||
void xxx_init_helditem_8090B08(struct HeldItem *param_1,u8 itemIndex);
|
||||
void HeldItemToSlot(struct ItemSlot *param_1, struct HeldItem *param_2);
|
||||
void sub_8090DC4(void* param_1,u8 itemIndex, struct unkStruct_8090F58* param_3);
|
||||
void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3);
|
||||
bool8 AddItemToInventory(const struct ItemSlot* slot);
|
||||
void ConvertMoneyItemToMoney();
|
||||
void AddToTeamMoney(s32 amount);
|
||||
@@ -97,8 +101,11 @@ s32 xxx_count_inv_unk230();
|
||||
u32 xxx_count_non_empty_inv_unk250_8091A48();
|
||||
void sub_8091BB4(u8);
|
||||
void sub_8090F58(void*, u8 *, struct ItemSlot *, struct unkStruct_8090F58*);
|
||||
void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58* a3);
|
||||
void SlotToHeldItem(struct HeldItem *held,struct ItemSlot *slot);
|
||||
void ShiftItemsDownFrom(s32 start);
|
||||
void MoveToStorage(struct ItemSlot* slot);
|
||||
void FillInventoryGaps();
|
||||
bool8 sub_8091274(struct HeldItem* slot);
|
||||
|
||||
|
||||
void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*);
|
||||
void SaveHeldItem(struct unkStruct_8094924*, struct HeldItem*);
|
||||
|
||||
@@ -39,4 +39,31 @@ struct unkStruct_203B208
|
||||
struct UnkTextStruct2 unkEC[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B20C
|
||||
{
|
||||
u32 state;
|
||||
u8 unk4[4];
|
||||
struct ItemSlot unk8;
|
||||
u32 unkC;
|
||||
u8 itemIndex;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
struct MenuItem unk20[8];
|
||||
u16 unk60[8];
|
||||
u32 unk70;
|
||||
u8 fill74[0xC0 - 0x74];
|
||||
u32 unkC0;
|
||||
u32 unkC4;
|
||||
u32 unkC8;
|
||||
u32 unkCC;
|
||||
u32 unkD0;
|
||||
u32 unkD4;
|
||||
struct UnkTextStruct2 *unkD8;
|
||||
u32 unkDC;
|
||||
u32 unkE0;
|
||||
u8 fillE4[0xF0 - 0xE4];
|
||||
struct UnkTextStruct2 unkF0[4];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -65,6 +65,13 @@ struct EvolveStage
|
||||
u8 unkHasNextStage;
|
||||
};
|
||||
|
||||
|
||||
struct unkStruct_8094184
|
||||
{
|
||||
struct PokemonMove moves[MAX_MON_MOVES];
|
||||
u8 unk20;
|
||||
};
|
||||
|
||||
struct PokemonStruct2
|
||||
{
|
||||
// size 0x68
|
||||
@@ -80,8 +87,7 @@ struct PokemonStruct2
|
||||
u16 unk12; // pokeHP
|
||||
struct Offense offense; // offense (other offset)
|
||||
u32 unk18; // unk1C
|
||||
struct PokemonMove moves[MAX_MON_MOVES];
|
||||
u8 fill3c[4];
|
||||
struct unkStruct_8094184 moves;
|
||||
/* 40 */ struct ItemSlot itemSlot; // heldItem
|
||||
u32 unk44; // some struct
|
||||
u32 unk48; // some struct (same type as 44)
|
||||
|
||||
@@ -111,6 +111,7 @@ SECTIONS {
|
||||
asm/code_801D760.o(.text);
|
||||
src/code_801DCC4.o(.text);
|
||||
asm/code_801DCC4.o(.text);
|
||||
src/hints_menu.o(.text);
|
||||
src/gulpin_shop.o(.text);
|
||||
asm/gulpin_shop.o(.text);
|
||||
src/gulpin_shop_1.o(.text);
|
||||
@@ -118,7 +119,6 @@ SECTIONS {
|
||||
src/friend_area_action_menu.o(.text);
|
||||
asm/friend_area_action_menu.o(.text);
|
||||
src/friend_area_action_menu_1.o(.text);
|
||||
asm/friend_area_action_menu_1.o(.text);
|
||||
src/wonder_mail.o(.text);
|
||||
src/thank_you_wonder_mail.o(.text);
|
||||
src/wonder_mail_2.o(.text);
|
||||
@@ -232,7 +232,10 @@ SECTIONS {
|
||||
src/friend_area.o(.text);
|
||||
asm/friend_area_1.o(.text);
|
||||
src/friend_area_1.o(.text);
|
||||
asm/code_8092334.o(.text);
|
||||
src/moves.o(.text);
|
||||
asm/moves_1.o(.text);
|
||||
src/moves_1.o(.text);
|
||||
asm/code_8094148.o(.text);
|
||||
src/code_8092334.o(.text);
|
||||
src/game_options.o(.text);
|
||||
asm/code_8094D28.o(.text);
|
||||
|
||||
@@ -26,7 +26,7 @@ extern u8 gUnknown_202E1C8[0x50];
|
||||
extern u8 gAvailablePokemonNames[0x50];
|
||||
extern u8 gUnknown_202E218[0x50];
|
||||
|
||||
extern void sub_8092AD4(struct PokemonMove*, u16);
|
||||
extern void InitZeroedPPPokemonMove(struct PokemonMove*, u16);
|
||||
extern void sub_809401C(struct PokemonMove *, struct PokemonMove *);
|
||||
extern bool8 IsHMItem(u8);
|
||||
extern void DisplayGulpinDialogueSprite(u32, u32, void *);
|
||||
@@ -195,7 +195,7 @@ void sub_801B200(void)
|
||||
pokeMove = &gUnknown_203B22C->moves[moveIndex];
|
||||
if((pokeMove->moveFlags & MOVE_FLAG_EXISTS) == 0)
|
||||
{
|
||||
sub_8092AD4(pokeMove, gUnknown_203B22C->moveID);
|
||||
InitZeroedPPPokemonMove(pokeMove, gUnknown_203B22C->moveID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ struct unkStruct_203B25C
|
||||
{
|
||||
// size: 0x11C
|
||||
u32 state;
|
||||
u32 unk4;
|
||||
u32 chosenHintIndex;
|
||||
struct UnkSaveStruct1 unk8;
|
||||
u32 unk18;
|
||||
const char *unk1C;
|
||||
@@ -31,17 +31,17 @@ extern void sub_801DED0();
|
||||
extern void sub_8012D60(const char **, struct MenuItem *, u32, u16 *, u32, u32);
|
||||
extern u32 sub_801E198(struct UnkSaveStruct1 *);
|
||||
extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32);
|
||||
extern void sub_801E658(u32);
|
||||
extern void CreateHintDisplayScreen(u32);
|
||||
extern void sub_801E3F0(u32);
|
||||
extern void sub_801E510(u32);
|
||||
extern void CreateHintSelectionScreen(u32);
|
||||
extern void CreateChangeSettingsConfirmMenu(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_801E474(u32);
|
||||
extern u32 sub_801E4F4(void);
|
||||
extern u32 GetChosenHintIndex(void);
|
||||
extern void sub_801E54C(void);
|
||||
extern u32 sub_801E6CC(void);
|
||||
extern void sub_801E724(void);
|
||||
extern u32 HandleHintDisplayScreenInput(void);
|
||||
extern void DestroyHintDisplayScreen(void);
|
||||
extern u32 sub_801E218(void);
|
||||
extern bool8 GameOptionsNotChange(struct UnkSaveStruct1 *);
|
||||
extern void sub_801E2C4(void);
|
||||
@@ -358,10 +358,10 @@ void sub_801DED0(void)
|
||||
sub_801E3F0(0);
|
||||
break;
|
||||
case 4:
|
||||
sub_801E510(1);
|
||||
CreateHintSelectionScreen(1);
|
||||
break;
|
||||
case 5:
|
||||
sub_801E658(gUnknown_203B25C->unk4);
|
||||
CreateHintDisplayScreen(gUnknown_203B25C->chosenHintIndex);
|
||||
break;
|
||||
case 6:
|
||||
// Load our current options?
|
||||
@@ -446,7 +446,7 @@ void sub_801E088(void)
|
||||
{
|
||||
case 3:
|
||||
case 4:
|
||||
gUnknown_203B25C->unk4 = sub_801E4F4();
|
||||
gUnknown_203B25C->chosenHintIndex = GetChosenHintIndex();
|
||||
sub_801DD6C(5);
|
||||
break;
|
||||
case 2:
|
||||
@@ -463,11 +463,11 @@ void sub_801E088(void)
|
||||
|
||||
void sub_801E0E0(void)
|
||||
{
|
||||
switch(sub_801E6CC())
|
||||
switch(HandleHintDisplayScreenInput())
|
||||
{
|
||||
case 3:
|
||||
case 2:
|
||||
sub_801E724();
|
||||
DestroyHintDisplayScreen();
|
||||
sub_801DD6C(4);
|
||||
break;
|
||||
case 0:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_entity.h"
|
||||
#include "constants/move.h"
|
||||
|
||||
extern struct DungeonGlobalData *gDungeonGlobalData;
|
||||
|
||||
@@ -31,7 +32,7 @@ extern void sub_806F370(struct DungeonEntity *r0, struct DungeonEntity *r1, u32,
|
||||
|
||||
extern u32 gUnknown_80FD018;
|
||||
extern s16 sub_8057600(void*, u32);
|
||||
extern u32 sub_8092B00(void*);
|
||||
extern u32 GetMoveType(void*);
|
||||
|
||||
bool32 sub_8057824(struct DungeonEntity *param_1, struct DungeonEntity *param_2)
|
||||
{
|
||||
@@ -100,7 +101,7 @@ bool32 sub_8057954(struct DungeonEntity *param_1, struct DungeonEntity *param_2,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool32 sub_8057974(struct DungeonEntity *param_1, struct DungeonEntity *param_2, void* param_3, u32 param_4)
|
||||
bool32 sub_8057974(struct DungeonEntity *param_1, struct DungeonEntity *param_2, struct PokemonMove *param_3, u32 param_4)
|
||||
{
|
||||
s32 newHP;
|
||||
u8 local_24;
|
||||
@@ -108,7 +109,7 @@ bool32 sub_8057974(struct DungeonEntity *param_1, struct DungeonEntity *param_2,
|
||||
newHP = param_2->entityData->HP / 2;
|
||||
local_24 = 0;
|
||||
if (newHP != 0) {
|
||||
sub_806F370(param_1,param_2,newHP,1,&local_24,sub_8092B00(param_3),sub_8057600(param_3,param_4),0,1,0);
|
||||
sub_806F370(param_1,param_2,newHP,1,&local_24,GetMoveType(param_3),sub_8057600(param_3,param_4),0,1,0);
|
||||
local_24 = local_24 == 0;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -21,13 +21,13 @@ extern const char gUnknown_80DD8D0[];
|
||||
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
|
||||
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
|
||||
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32 *, u32, u32);
|
||||
extern void sub_8027D40(u32, struct ItemSlot *);
|
||||
extern void sub_8027D40(u32, struct HeldItem *);
|
||||
extern void sub_8023868(u32, u32, u32, u32);
|
||||
extern void sub_8023B7C(u32);
|
||||
extern void sub_8023DA4();
|
||||
extern void sub_8024458(s16, u32);
|
||||
extern void sub_801BEEC(s16);
|
||||
extern void sub_8093560(u32, u32 *, u32 *);
|
||||
extern void sub_8093560(u32, struct PokemonMove *, u32 *);
|
||||
extern void sub_801F808(u32 *);
|
||||
extern void sub_8027794();
|
||||
extern void sub_801A5D8(u32, u32, u32, u32);
|
||||
@@ -35,8 +35,8 @@ extern void sub_801A8D0(u32);
|
||||
extern void sub_801A9E0();
|
||||
extern void sub_801F1B0(u32, u32);
|
||||
extern void sub_801B3C0(struct ItemSlot *);
|
||||
extern void sub_809401C(u32 *, struct PokemonMove *);
|
||||
extern void sub_801EE10(u32, s16, u32 *, u32, u32, u32);
|
||||
extern void sub_809401C(struct PokemonMove *, struct PokemonMove *);
|
||||
extern void sub_801EE10(u32, s16, struct PokemonMove *, u32, u32, u32);
|
||||
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void SetFriendAreaActionMenuState(u32);
|
||||
@@ -206,8 +206,8 @@ void sub_8027274(void)
|
||||
sub_801B3C0(&slot);
|
||||
break;
|
||||
case 0xe:
|
||||
sub_809401C(&gUnknown_203B2BC->unk28,gUnknown_203B2BC->unk18->moves);
|
||||
sub_801EE10(3,gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->unk28,0,0,0);
|
||||
sub_809401C(gUnknown_203B2BC->unk28,gUnknown_203B2BC->unk18->moves);
|
||||
sub_801EE10(3,gUnknown_203B2BC->targetPoke,gUnknown_203B2BC->unk28,0,0,0);
|
||||
break;
|
||||
case 0xf:
|
||||
sub_801F1B0(1,0);
|
||||
@@ -229,7 +229,7 @@ void sub_8027274(void)
|
||||
sub_8014248(gUnknown_80DD7FC,0,3,gUnknown_203B2BC->menuItems,0,4,0,0,0x101);
|
||||
break;
|
||||
case 0x10:
|
||||
sub_8093560(gUnknown_203B2BC->unk20,&gUnknown_203B2BC->unk28,&gUnknown_203B2BC->unk68);
|
||||
sub_8093560(gUnknown_203B2BC->unk20,gUnknown_203B2BC->unk28,&gUnknown_203B2BC->unk68);
|
||||
sub_801F808(&gUnknown_203B2BC->unk68);
|
||||
break;
|
||||
case 6:
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "menu.h"
|
||||
#include "item.h"
|
||||
#include "team_inventory.h"
|
||||
#include "pokemon.h"
|
||||
#include "friend_area_action_menu.h"
|
||||
|
||||
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
|
||||
@@ -11,17 +12,14 @@ extern struct TeamInventory *gTeamInventory_203B460;
|
||||
|
||||
u32 sub_801B410();
|
||||
void sub_801B450();
|
||||
u32 sub_801EF38(u8 r0);
|
||||
void sub_801F214();
|
||||
extern u32 sub_801EF38(u8 r0);
|
||||
extern void sub_801F214();
|
||||
|
||||
extern void SetFriendAreaActionMenuState(u32);
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void PlaySound(u32);
|
||||
extern void ShiftItemsDownFrom(u32);
|
||||
extern void FillInventoryGaps();
|
||||
extern void nullsub_104();
|
||||
extern void sub_8091274(struct ItemSlot *);
|
||||
extern void sub_801A928();
|
||||
extern void sub_8099690(u32);
|
||||
extern void GivePokemonItem(s16, struct HeldItem *);
|
||||
@@ -31,6 +29,21 @@ extern u32 sub_801A6E8(u32);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern void sub_8027EB8();
|
||||
extern void sub_808D31C(struct PokemonStruct *);
|
||||
u32 sub_8027E18(struct PokemonStruct *);
|
||||
bool8 IsNotMoneyOrUsedTMItem(u8 id);
|
||||
u8 sub_8027E4C(struct PokemonStruct *r0);
|
||||
extern u8 sub_80023E4(u32);
|
||||
extern struct PokemonStruct *sub_808D3F8(void);
|
||||
extern struct PokemonStruct *sub_808D3BC(void);
|
||||
extern u32 sub_801F890(void);
|
||||
extern void sub_801F8D0(void);
|
||||
extern u8 gUnknown_80DD958[];
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, ...);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern u32 sub_801F194(void);
|
||||
|
||||
void sub_8027AE4(void)
|
||||
{
|
||||
@@ -93,7 +106,7 @@ void sub_8027BD8(void)
|
||||
PlaySound(0x14d);
|
||||
ShiftItemsDownFrom(gUnknown_203B2BC->itemIndex);
|
||||
FillInventoryGaps();
|
||||
if (gUnknown_203B2BC->unk14.itemFlags != 0) {
|
||||
if (gUnknown_203B2BC->unk14.itemIndex != 0) {
|
||||
sub_8091274(&gUnknown_203B2BC->unk14);
|
||||
}
|
||||
GivePokemonItem(gUnknown_203B2BC->targetPoke,&gUnknown_203B2BC->itemToGive);
|
||||
@@ -124,3 +137,172 @@ void sub_8027C84()
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8027CA0(void)
|
||||
{
|
||||
switch(sub_801EF38(1))
|
||||
{
|
||||
case 3:
|
||||
case 4:
|
||||
gUnknown_203B2BC->unk20 = sub_801F194();
|
||||
gUnknown_203B2BC->unk24 = gUnknown_203B2BC->unk28[gUnknown_203B2BC->unk20].moveID;
|
||||
SetFriendAreaActionMenuState(0x10);
|
||||
break;
|
||||
case 2:
|
||||
sub_801F214();
|
||||
SetFriendAreaActionMenuState(0x2);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8027D00(void)
|
||||
{
|
||||
switch(sub_801F890())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801F8D0();
|
||||
SetFriendAreaActionMenuState(0xF);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8027D1C(void)
|
||||
{
|
||||
s32 temp;
|
||||
if(sub_80144A4(&temp) == 0)
|
||||
{
|
||||
SetFriendAreaActionMenuState(gUnknown_203B2BC->unk4);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8027D40(u32 r0, struct HeldItem *heldItem)
|
||||
{
|
||||
|
||||
struct ItemSlot slot;
|
||||
struct unkStruct_8090F58 a3;
|
||||
|
||||
sub_8008C54(r0);
|
||||
sub_80073B8(r0);
|
||||
HeldItemToSlot(&slot, heldItem);
|
||||
a3.unk0 = 0;
|
||||
a3.unk4 = 0;
|
||||
a3.unk8 = 1;
|
||||
slot.itemFlags = 1;
|
||||
sub_8090E14(gUnknown_202DE58, &slot, &a3);
|
||||
xxx_format_and_draw(4, 3, gUnknown_80DD958, r0, 0);
|
||||
sub_80073E0(r0);
|
||||
}
|
||||
|
||||
u32 sub_8027D9C(struct PokemonStruct *r0)
|
||||
{
|
||||
u32 var1;
|
||||
if(r0->unk2 == 0)
|
||||
{
|
||||
var1 = 0;
|
||||
if(r0->unk4.unk4 == 0x41)
|
||||
var1 = 1;
|
||||
if(var1 != 0)
|
||||
{
|
||||
if(sub_80023E4(8) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_8027DCC(struct PokemonStruct *r0)
|
||||
{
|
||||
u32 var1;
|
||||
if(sub_808D3BC() != r0)
|
||||
if(sub_808D3F8() != r0)
|
||||
if(r0->unk2 == 0)
|
||||
{
|
||||
var1 = 0;
|
||||
if(r0->unk4.unk4 == 0x41)
|
||||
var1 = 1;
|
||||
if(var1 != 0)
|
||||
{
|
||||
if(sub_80023E4(8) != 0)
|
||||
goto check;
|
||||
}
|
||||
else
|
||||
{
|
||||
check:
|
||||
if(sub_8027E18(r0) != 3)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 sub_8027E18(struct PokemonStruct *r0)
|
||||
{
|
||||
if(r0->heldItem.itemIndex == 0)
|
||||
return 0;
|
||||
else if(GetNumberOfFilledInventorySlots() < INVENTORY_SIZE)
|
||||
return 1;
|
||||
else if(sub_8027E4C(r0))
|
||||
return 2;
|
||||
else
|
||||
return 3;
|
||||
}
|
||||
|
||||
u8 sub_8027E4C(struct PokemonStruct *r0)
|
||||
{
|
||||
if(!IsNotMoneyOrUsedTMItem(r0->heldItem.itemIndex))
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
if(IsThrowableItem(r0->heldItem.itemIndex))
|
||||
{
|
||||
if(gTeamInventory_203B460->teamStorage[r0->heldItem.itemIndex] + r0->heldItem.numItems > 0x3e7)
|
||||
return 0;
|
||||
}
|
||||
else if(gTeamInventory_203B460->teamStorage[r0->heldItem.itemIndex] > 0x3e6)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void sub_8027EB8(void)
|
||||
{
|
||||
switch(sub_8027E18(gUnknown_203B2BC->unk18))
|
||||
{
|
||||
case 1:
|
||||
PlaySound(0x14d);
|
||||
sub_8091274(&gUnknown_203B2BC->unk14);
|
||||
FillInventoryGaps();
|
||||
gUnknown_203B2BC->unk14.itemIndex = 0;
|
||||
gUnknown_203B2BC->unk14.numItems = 0;
|
||||
GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->unk14);
|
||||
SetFriendAreaActionMenuState(6);
|
||||
break;
|
||||
case 2:
|
||||
PlaySound(0x14d);
|
||||
if(IsThrowableItem(gUnknown_203B2BC->unk14.itemIndex))
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->unk14.itemIndex] += gUnknown_203B2BC->unk14.numItems;
|
||||
else
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B2BC->unk14.itemIndex] += 1;
|
||||
gUnknown_203B2BC->unk14.itemIndex = 0;
|
||||
gUnknown_203B2BC->unk14.numItems = 0;
|
||||
GivePokemonItem(gUnknown_203B2BC->targetPoke, &gUnknown_203B2BC->unk14);
|
||||
SetFriendAreaActionMenuState(7);
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
SetFriendAreaActionMenuState(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ extern void sub_801EA28();
|
||||
extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
|
||||
extern void sub_801EBC4();
|
||||
|
||||
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct unkStruct_Gulpin *param_3)
|
||||
u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct PokemonMove *param_3)
|
||||
{
|
||||
struct OpenedFile *faceFile;
|
||||
s32 species_32;
|
||||
@@ -32,7 +32,7 @@ u32 DisplayGulpinDialogueSprite(s32 param_1,s16 pokeSpecies,struct unkStruct_Gul
|
||||
gUnknown_203B26C->unk0 = param_1;
|
||||
gUnknown_203B26C->speciesNum = species_32;
|
||||
gUnknown_203B26C->unk10 = param_3;
|
||||
gUnknown_203B26C->unk1C = param_3->unk22;
|
||||
gUnknown_203B26C->unk1C = param_3[4].moveID;
|
||||
|
||||
if (param_1 == 0) {
|
||||
gUnknown_203B26C->unk128 = &gUnknown_203B26C->faceFile;
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
extern struct unkStruct_203B26C *gUnknown_203B26C;
|
||||
extern void UpdateGulpinShopState(u32);
|
||||
extern void sub_8093CF8(struct unkStruct_Gulpin *, u32);
|
||||
extern void sub_8093CF8(struct PokemonMove *, u32);
|
||||
extern void sub_801F214(void);
|
||||
extern s32 sub_80144A4(s32 *);
|
||||
extern u32 sub_801F890(void);
|
||||
extern void sub_801F8D0(void);
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u8 sub_80934B0(u32, struct unkStruct_Gulpin *);
|
||||
extern u8 sub_80934B0(u32, struct PokemonMove *);
|
||||
extern void PlaySound(u32);
|
||||
extern void sub_801EF38(u32);
|
||||
|
||||
|
||||
285
src/hints_menu.c
Normal file
285
src/hints_menu.c
Normal file
@@ -0,0 +1,285 @@
|
||||
#include "global.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
|
||||
#define MAX_HINTS 5
|
||||
|
||||
struct Hints
|
||||
{
|
||||
u8 *heading;
|
||||
u8 *body;
|
||||
};
|
||||
|
||||
struct unkStruct_203B268
|
||||
{
|
||||
// size: 0xA0
|
||||
u32 unk0;
|
||||
u8 fill4[0x1E - 0x4];
|
||||
s16 helpPageIndex;
|
||||
u16 unk20;
|
||||
u8 fill22[0x34 - 0x22];
|
||||
u32 unk34;
|
||||
struct UnkTextStruct2 *unk38;
|
||||
struct UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
};
|
||||
|
||||
struct unkStruct_203B264
|
||||
{
|
||||
// size: 0x9C
|
||||
u32 unk0;
|
||||
u8 fill4[0x18 - 0x4];
|
||||
s16 unk18;
|
||||
s16 unk1A;
|
||||
s16 unk1C;
|
||||
s16 unk1E;
|
||||
u16 unk20;
|
||||
u8 fill22[0x34 - 0x22];
|
||||
u32 unk34;
|
||||
struct UnkTextStruct2 *unk38;
|
||||
struct UnkTextStruct2 unk3C[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B264 *gUnknown_203B264;
|
||||
|
||||
extern struct unkStruct_203B268 *gUnknown_203B268;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80DC0A0;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC0BC;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC0E4;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC0FC;
|
||||
extern struct Hints gGameHints[MAX_HINTS];
|
||||
extern u8 gUnknown_80DC0D4[MAX_HINTS];
|
||||
|
||||
extern void sub_801E714(void);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern bool8 sub_8013938(void *);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern void sub_801E714(void);
|
||||
extern void sub_801E76C(void);
|
||||
extern void DisplayChosenHint(void);
|
||||
extern void xxx_call_draw_string(s32, u32, u8 *, u32, u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
void DrawHintSelectionMenu(void);
|
||||
void sub_801E594(void);
|
||||
void sub_8013984(void *);
|
||||
void AddMenuCursorSprite(void *);
|
||||
extern u8 sub_80138B8(void *, u32);
|
||||
extern void sub_8013660(void *);
|
||||
extern void sub_8012D08(struct UnkTextStruct2 *, u32);
|
||||
|
||||
u32 sub_801E3F0(u32 r0)
|
||||
{
|
||||
if(gUnknown_203B264 == NULL)
|
||||
gUnknown_203B264 = MemoryAlloc(sizeof(struct unkStruct_203B264), 8);
|
||||
gUnknown_203B264->unk34 = r0;
|
||||
gUnknown_203B264->unk38 = &gUnknown_203B264->unk3C[r0];
|
||||
sub_8006518(gUnknown_203B264->unk3C);
|
||||
gUnknown_203B264->unk3C[gUnknown_203B264->unk34] = gUnknown_80DC0BC;
|
||||
sub_8012D08(gUnknown_203B264->unk38, 0xA);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B264->unk3C, 1, 1);
|
||||
sub_8013818(gUnknown_203B264, 0x5, 0xA, r0);
|
||||
sub_801E594();
|
||||
DrawHintSelectionMenu();
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801E474(u8 r0)
|
||||
{
|
||||
if(r0 == 0)
|
||||
{
|
||||
sub_8013660(gUnknown_203B264);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(gUnknown_203B264))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
case 4:
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if(sub_80138B8(gUnknown_203B264, 1))
|
||||
{
|
||||
sub_801E594();
|
||||
DrawHintSelectionMenu();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s32 GetChosenHintIndex(void)
|
||||
{
|
||||
return (gUnknown_203B264->unk1E * gUnknown_203B264->unk1C) + gUnknown_203B264->unk18;
|
||||
}
|
||||
|
||||
void CreateHintSelectionScreen(u32 r0)
|
||||
{
|
||||
u8 bool8_r0;
|
||||
bool8_r0 = r0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B264->unk3C, 0, 0);
|
||||
sub_8013984(gUnknown_203B264);
|
||||
sub_801E594();
|
||||
DrawHintSelectionMenu();
|
||||
if(bool8_r0)
|
||||
AddMenuCursorSprite(gUnknown_203B264);
|
||||
}
|
||||
|
||||
void sub_801E54C(void)
|
||||
{
|
||||
if(gUnknown_203B264 != NULL)
|
||||
{
|
||||
gUnknown_203B264->unk3C[gUnknown_203B264->unk34] = gUnknown_80DC0A0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B264->unk3C, 1, 1);
|
||||
MemoryFree(gUnknown_203B264);
|
||||
gUnknown_203B264 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_801E594(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801E5E4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801E5E4: .4byte gUnknown_203B264");
|
||||
}
|
||||
|
||||
void DrawHintSelectionMenu(void)
|
||||
{
|
||||
s32 hintIndex;
|
||||
s32 y;
|
||||
|
||||
sub_8008C54(gUnknown_203B264->unk34);
|
||||
sub_80073B8(gUnknown_203B264->unk34);
|
||||
xxx_call_draw_string(16, 0, gUnknown_80DC0D4, gUnknown_203B264->unk34, 0);
|
||||
for(hintIndex = 0; hintIndex < MAX_HINTS; hintIndex++)
|
||||
{
|
||||
y = sub_8013800(gUnknown_203B264, hintIndex);
|
||||
xxx_call_draw_string(10, y, gGameHints[hintIndex].heading, gUnknown_203B264->unk34, 0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B264->unk34);
|
||||
}
|
||||
|
||||
u32 CreateHintDisplayScreen(u32 index)
|
||||
{
|
||||
gUnknown_203B268 = MemoryAlloc(sizeof(struct unkStruct_203B268), 8);
|
||||
gUnknown_203B268->unk34 = 0;
|
||||
gUnknown_203B268->unk38 = gUnknown_203B268->unk3C;
|
||||
sub_8006518(gUnknown_203B268->unk3C);
|
||||
gUnknown_203B268->unk3C[gUnknown_203B268->unk34] = gUnknown_80DC0FC;
|
||||
gUnknown_203B268->unk38->unk14 = gUnknown_203B268->unk9C;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B268->unk3C, 1, 1);
|
||||
sub_8013818(gUnknown_203B268, 5, 1, gUnknown_203B268->unk34);
|
||||
gUnknown_203B268->helpPageIndex = index;
|
||||
sub_801E714();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 HandleHintDisplayScreenInput(void)
|
||||
{
|
||||
switch(GetKeyPress(gUnknown_203B268))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if(sub_8013938(gUnknown_203B268)){
|
||||
sub_801E714();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801E714(void)
|
||||
{
|
||||
sub_801E76C();
|
||||
DisplayChosenHint();
|
||||
}
|
||||
|
||||
void DestroyHintDisplayScreen(void)
|
||||
{
|
||||
if(gUnknown_203B268 != NULL)
|
||||
{
|
||||
gUnknown_203B268->unk3C[gUnknown_203B268->unk34] = gUnknown_80DC0E4;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B268->unk3C, 1, 1);
|
||||
MemoryFree(gUnknown_203B268);
|
||||
gUnknown_203B268 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801E76C(void)
|
||||
{
|
||||
gUnknown_203B268->unk9C[0] = gUnknown_203B268->unk20;
|
||||
gUnknown_203B268->unk9C[1] = gUnknown_203B268->helpPageIndex;
|
||||
gUnknown_203B268->unk9C[2] = 0xF;
|
||||
gUnknown_203B268->unk9C[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B268->unk3C, 1, 1);
|
||||
}
|
||||
|
||||
void DisplayChosenHint(void)
|
||||
{
|
||||
sub_80073B8(gUnknown_203B268->unk34);
|
||||
xxx_call_draw_string((gUnknown_203B268->helpPageIndex << 3) + 0x10, 0, gGameHints[gUnknown_203B268->helpPageIndex].heading, gUnknown_203B268->unk34, 0);
|
||||
xxx_call_draw_string(0xA, 0x14, gGameHints[gUnknown_203B268->helpPageIndex].body, gUnknown_203B268->unk34, 0);
|
||||
sub_80073E0(gUnknown_203B268->unk34);
|
||||
}
|
||||
18
src/items.c
18
src/items.c
@@ -37,11 +37,11 @@ extern void ExpandPlaceholdersBuffer(u8 *, const u8 *, ...);
|
||||
extern s32 sub_8090FEC(s32 a1, u8* a2, u8 a3);
|
||||
extern void sub_80073B8(u32);
|
||||
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
|
||||
extern void sub_8092A88(void*, u16); // first arg is some struct
|
||||
extern void InitPokemonMove(void*, u16); // first arg is some struct
|
||||
extern void sub_80078A4(u32, u32, u32, u32, u32);
|
||||
extern u32 sub_8092B00(void*);
|
||||
extern u32 GetMoveType(void*);
|
||||
extern u8* GetUnformattedTypeString(s16);
|
||||
extern u32 sub_8092BF4(void*);
|
||||
extern u32 GetMoveMaxPP(void*);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void xxx_format_and_draw(u32, u32, u8 *, u32, u32);
|
||||
extern s32 sub_8091E94(s32 a1, s32 a2, s32 a3);
|
||||
@@ -565,11 +565,11 @@ s32 GetItemPossessionCount(u8 itemIndex)
|
||||
void ShiftItemsDownFrom(s32 start)
|
||||
{
|
||||
s32 i, j;
|
||||
for (i = start, j = start + 1; i < 19; i++, j++) {
|
||||
for (i = start, j = start + 1; i < INVENTORY_SIZE - 1; i++, j++) {
|
||||
gTeamInventory_203B460->teamItems[i] = gTeamInventory_203B460->teamItems[j];
|
||||
}
|
||||
gTeamInventory_203B460->teamItems[19].itemIndex = 0;
|
||||
gTeamInventory_203B460->teamItems[19].itemFlags = 0;
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].itemIndex = 0;
|
||||
gTeamInventory_203B460->teamItems[INVENTORY_SIZE - 1].itemFlags = 0;
|
||||
}
|
||||
|
||||
void ClearItemSlotAt(u32 index)
|
||||
@@ -703,13 +703,13 @@ u32 sub_80913E0(struct ItemSlot* slot, u32 a2, struct subStruct_203B240 ** a3)
|
||||
u8* typestring;
|
||||
u32 result;
|
||||
|
||||
sub_8092A88(buffer8, move);
|
||||
InitPokemonMove(buffer8, move);
|
||||
sub_80078A4(a2, 4, 82, 200, 7);
|
||||
xxx_format_and_draw(4, 84, gPtrTypeText, a2, 0);
|
||||
moves_data = sub_8092B00(buffer8);
|
||||
moves_data = GetMoveType(buffer8);
|
||||
typestring = GetUnformattedTypeString(moves_data);
|
||||
xxx_format_and_draw(64, 84, typestring, a2, 0);
|
||||
result = sub_8092BF4(buffer8);
|
||||
result = GetMoveMaxPP(buffer8);
|
||||
gUnknown_202DE30 = result;
|
||||
xxx_format_and_draw(128, 84, gPtrPPD0Text, a2, 0);
|
||||
}
|
||||
|
||||
@@ -9,31 +9,6 @@
|
||||
|
||||
extern struct unkStruct_203B208 *gUnknown_203B208;
|
||||
|
||||
struct unkStruct_203B20C
|
||||
{
|
||||
u32 state;
|
||||
u8 unk4[4];
|
||||
struct ItemSlot unk8;
|
||||
u8 fillC[0x14 - 0xC];
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
struct MenuItem unk20[8];
|
||||
u16 unk60[8];
|
||||
u32 unk70;
|
||||
u8 fill74[0xC0 - 0x74];
|
||||
u32 unkC0;
|
||||
u32 unkC4;
|
||||
u32 unkC8;
|
||||
u32 unkCC;
|
||||
u32 unkD0;
|
||||
u32 unkD4;
|
||||
struct UnkTextStruct2 *unkD8;
|
||||
u32 unkDC;
|
||||
u32 unkE0;
|
||||
u8 fillE4[0xF0 - 0xE4];
|
||||
struct UnkTextStruct2 unkF0[4];
|
||||
};
|
||||
extern struct unkStruct_203B20C *gUnknown_203B20C;
|
||||
|
||||
extern void sub_8017F10(u32);
|
||||
|
||||
@@ -1,9 +1,349 @@
|
||||
#include "global.h"
|
||||
#include "kangaskhan_storage.h"
|
||||
#include "team_inventory.h"
|
||||
|
||||
extern struct unkStruct_203B20C *gUnknown_203B20C;
|
||||
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern void sub_8017F10(u32);
|
||||
|
||||
extern u8 sub_801CF14(u32);
|
||||
|
||||
struct HeldItem_Alt {
|
||||
union tempHeld
|
||||
{
|
||||
struct HeldItem norm;
|
||||
u32 full_bits;
|
||||
} temp;
|
||||
};
|
||||
|
||||
extern u8 sub_8012FD8(u32 *r0);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern void sub_801CBB8(void);
|
||||
extern void sub_8017F10(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
|
||||
bool8 IsNotMoneyOrUsedTMItem(u8 id);
|
||||
extern u8 sub_801ADA0(s32);
|
||||
extern void sub_801A928(void);
|
||||
extern void sub_8099690(u32);
|
||||
extern u32 sub_801A6E8(u32);
|
||||
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern void sub_8018280(void);
|
||||
|
||||
extern void sub_801CF94(void);
|
||||
extern u8 sub_801CB24();
|
||||
extern u32 sub_801CFB8(void);
|
||||
extern void sub_801AD34(u32);
|
||||
extern u32 sub_801CFE0(u8);
|
||||
|
||||
extern u32 sub_801A8AC(void);
|
||||
extern u32 sub_801AEA8(void);
|
||||
extern u32 sub_801AED0(u32);
|
||||
extern void sub_801AE84(void);
|
||||
extern u8 sub_801CF50(u32);
|
||||
|
||||
|
||||
void sub_8018588(void)
|
||||
{
|
||||
s32 temp;
|
||||
temp = 0;
|
||||
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &temp);
|
||||
if(temp != 1) gUnknown_203B20C->unk14 = temp;
|
||||
}
|
||||
|
||||
switch(temp)
|
||||
{
|
||||
case 2:
|
||||
if((GetNumberOfFilledInventorySlots() != 0) && sub_801CF50(0) == 0)
|
||||
sub_8017F10(4);
|
||||
else
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);;
|
||||
break;
|
||||
case 3:
|
||||
if(sub_801CF14(1) != 0)
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else
|
||||
sub_8017F10(0xA);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018620(void)
|
||||
{
|
||||
s32 iVar6;
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801AEA8() != 0)
|
||||
{
|
||||
for(iVar6 = 0; iVar6 < INVENTORY_SIZE; iVar6++)
|
||||
{
|
||||
if(sub_801AED0(iVar6) != 0)
|
||||
{
|
||||
MoveToStorage(&gTeamInventory_203B460->teamItems[iVar6]);
|
||||
gTeamInventory_203B460->teamItems[iVar6].itemIndex = 0;
|
||||
gTeamInventory_203B460->teamItems[iVar6].itemFlags = 0;
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801AE84();
|
||||
if(GetNumberOfFilledInventorySlots() == 0)
|
||||
{
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8017F10(5);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B20C->unkC = sub_801A8AC();
|
||||
gUnknown_203B20C->unk8 = gTeamInventory_203B460->teamItems[gUnknown_203B20C->unkC];
|
||||
sub_8017F10(6);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B20C->unkC = sub_801A8AC();
|
||||
gUnknown_203B20C->unk8 = gTeamInventory_203B460->teamItems[gUnknown_203B20C->unkC];
|
||||
sub_8017F10(7);
|
||||
break;
|
||||
case 2:
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80186F8(void)
|
||||
{
|
||||
struct HeldItem_Alt item;
|
||||
u16 cast;
|
||||
s32 iVar6;
|
||||
u8 iVar6_32;
|
||||
|
||||
switch(sub_801CA08(1))
|
||||
{
|
||||
case 3:
|
||||
if(sub_801CFB8() != 0)
|
||||
{
|
||||
for(iVar6 = 0; iVar6 < NUMBER_OF_ITEM_IDS; iVar6++)
|
||||
{
|
||||
iVar6_32 = iVar6; // dumb cast needed to match
|
||||
if(sub_801CFE0(iVar6) != 0)
|
||||
{
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | iVar6_32;
|
||||
if(IsThrowableItem(item.temp.norm.itemIndex))
|
||||
if(gTeamInventory_203B460->teamStorage[item.temp.norm.itemIndex] > 0x63)
|
||||
{
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0xC6 << 7);
|
||||
}
|
||||
else
|
||||
{
|
||||
cast = gTeamInventory_203B460->teamStorage[item.temp.norm.itemIndex] << 8;
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | cast;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | (0x80 << 1);
|
||||
}
|
||||
gTeamInventory_203B460->teamStorage[item.temp.norm.itemIndex] -= item.temp.norm.numItems;
|
||||
sub_8091274((struct HeldItem *)&item);
|
||||
}
|
||||
}
|
||||
FillInventoryGaps();
|
||||
sub_801CF94();
|
||||
if((sub_801CF14(1) == 0) && (GetNumberOfFilledInventorySlots() < INVENTORY_SIZE))
|
||||
sub_8017F10(0xB);
|
||||
else
|
||||
{
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203B20C->itemIndex = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B20C->unk8, gUnknown_203B20C->itemIndex, 0);
|
||||
gUnknown_203B20C->unk8.numItems = 1;
|
||||
sub_8017F10(0xD);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B20C->itemIndex = sub_801CB24();
|
||||
xxx_init_itemslot_8090A8C(&gUnknown_203B20C->unk8, gUnknown_203B20C->itemIndex, 0);
|
||||
gUnknown_203B20C->unk8.numItems = 1;
|
||||
sub_8017F10(0xE);
|
||||
break;
|
||||
case 2:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
break;
|
||||
case 1:
|
||||
sub_801AD34(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018854(void)
|
||||
{
|
||||
struct HeldItem_Alt item;
|
||||
u32 itemsCast;
|
||||
u32 indexCast;
|
||||
|
||||
sub_801CA08(0);
|
||||
sub_8012FD8(&gUnknown_203B20C->unk70);
|
||||
|
||||
switch(sub_8013BBC(&gUnknown_203B20C->unkC0))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B20C->unk8.numItems = gUnknown_203B20C->unkC0;
|
||||
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B20C->unk8.itemIndex] -= gUnknown_203B20C->unk8.numItems;
|
||||
|
||||
indexCast = gUnknown_203B20C->unk8.itemIndex;
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | indexCast;
|
||||
|
||||
itemsCast = (gUnknown_203B20C->unk8.numItems << 8);
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast;
|
||||
|
||||
sub_8091274((struct HeldItem *)&item);
|
||||
if(sub_801CF14(1) == 0)
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
{
|
||||
error:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(0x1);
|
||||
}
|
||||
else
|
||||
sub_8017F10(0xB);
|
||||
else
|
||||
goto error;
|
||||
break;
|
||||
case 2:
|
||||
sub_8017F10(0xB);
|
||||
break;
|
||||
case 1:
|
||||
sub_8018280();
|
||||
break;
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018904(void)
|
||||
{
|
||||
s32 temp;
|
||||
|
||||
temp = 0;
|
||||
|
||||
sub_801A6E8(0);
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &temp);
|
||||
if(temp != 1) gUnknown_203B20C->unk18 = temp;
|
||||
}
|
||||
switch(temp)
|
||||
{
|
||||
case 2:
|
||||
if(IsNotMoneyOrUsedTMItem(gUnknown_203B20C->unk8.itemIndex))
|
||||
if(sub_801ADA0(gUnknown_203B20C->unkC) == 0)
|
||||
error:
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else
|
||||
{
|
||||
MoveToStorage(&gUnknown_203B20C->unk8);
|
||||
ShiftItemsDownFrom(gUnknown_203B20C->unkC);
|
||||
FillInventoryGaps();
|
||||
if(GetNumberOfFilledInventorySlots() == 0)
|
||||
{
|
||||
sub_801A928();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
sub_8017F10(5);
|
||||
}
|
||||
else
|
||||
goto error;
|
||||
break;
|
||||
case 4:
|
||||
sub_8099690(0);
|
||||
sub_8017F10(7);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80189C8(void)
|
||||
{
|
||||
struct HeldItem_Alt item;
|
||||
s32 temp;
|
||||
u32 itemsCast;
|
||||
u32 indexCast;
|
||||
|
||||
temp = 0;
|
||||
|
||||
sub_801CA08(0);
|
||||
if(sub_8012FD8(&gUnknown_203B20C->unk70) == 0)
|
||||
{
|
||||
sub_8013114(&gUnknown_203B20C->unk70, &temp);
|
||||
if(temp != 1) gUnknown_203B20C->unk1C = temp;
|
||||
}
|
||||
switch(temp)
|
||||
{
|
||||
case 3:
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
||||
else if(IsThrowableItem(gUnknown_203B20C->unk8.itemIndex))
|
||||
sub_8017F10(0xC);
|
||||
else
|
||||
{
|
||||
gTeamInventory_203B460->teamStorage[gUnknown_203B20C->unk8.itemIndex] -= gUnknown_203B20C->unk8.numItems;
|
||||
|
||||
indexCast = gUnknown_203B20C->unk8.itemIndex;
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffffff00) | indexCast;
|
||||
|
||||
itemsCast = (gUnknown_203B20C->unk8.numItems << 8);
|
||||
item.temp.full_bits = (item.temp.full_bits & 0xffff00ff) | itemsCast;
|
||||
|
||||
sub_8091274((struct HeldItem *)&item);
|
||||
if(sub_801CF14(1) == 0)
|
||||
if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
||||
{
|
||||
error:
|
||||
sub_801CBB8();
|
||||
sub_8017F10(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8017F10(0xB);
|
||||
}
|
||||
else
|
||||
goto error;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8017F10(0xE);
|
||||
break;
|
||||
case 1:
|
||||
sub_8017F10(0xB);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8018AC8(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
|
||||
@@ -62,7 +62,6 @@ extern u8 sub_8019FB0(void);
|
||||
extern u8 sub_80138B8(void *, u32);
|
||||
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern s32 GetStackBuyPrice(struct ItemSlot *);
|
||||
extern s32 GetKeyPress(void *);
|
||||
extern void sub_8013660(void *);
|
||||
|
||||
@@ -228,7 +227,7 @@ void sub_8019DAC(void)
|
||||
|
||||
gUnknown_203B210->unk14 = 0;
|
||||
gUnknown_203B210->unk18 = 0;
|
||||
for(iVar5 = 0; iVar5 < 0x14; iVar5++){
|
||||
for(iVar5 = 0; iVar5 < INVENTORY_SIZE; iVar5++){
|
||||
pbVar4 = &gTeamInventory_203B460->teamItems[iVar5];
|
||||
if (((pbVar4->itemFlags & ITEM_FLAG_EXISTS) != 0) && (CanSellItem(pbVar4->itemIndex))) {
|
||||
iVar3 = GetStackSellPrice(pbVar4);
|
||||
|
||||
336
src/moves.c
Normal file
336
src/moves.c
Normal file
@@ -0,0 +1,336 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "constants/move.h"
|
||||
#include "constants/move_id.h"
|
||||
|
||||
struct MoveDataFile
|
||||
{
|
||||
struct MoveData *moveData;
|
||||
u8 *unk4; // unsure of this struct's structure yet
|
||||
};
|
||||
|
||||
struct unkStruct_80928C0
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
};
|
||||
|
||||
extern struct unkStruct_80928C0 gUnknown_81098C4;
|
||||
extern struct FileArchive gSystemFileArchive;
|
||||
extern struct OpenedFile *gWazaParametersFile;
|
||||
extern struct MoveData *gMovesData;
|
||||
extern u8 *gMovesRelated_2038C6C;
|
||||
|
||||
extern u8 gUnknown_81098D0[];
|
||||
extern u8 gUnknown_81098DC[];
|
||||
extern u8 gUnknown_810990C[];
|
||||
extern u8 gUnknown_8109908[];
|
||||
extern u8 gUnknown_8109928[];
|
||||
extern u8 gUnknown_8109910[];
|
||||
extern u8 gUnknown_81098E0[];
|
||||
extern u8 gUnknown_81098EC[];
|
||||
extern u8 *gRangeNames[];
|
||||
extern u8 gUnknown_810992C[];
|
||||
|
||||
extern void sub_8093F10(struct PokemonMove *, struct PokemonMove *);
|
||||
extern void sub_80928C0(u8 *, struct PokemonMove *, struct unkStruct_80928C0 *);
|
||||
extern u32 GetMoveMaxPP(struct PokemonMove*);
|
||||
bool8 DoesMoveCharge(u16 move);
|
||||
extern void ExpandPlaceholdersBuffer(u8 *, u8 *, ...);
|
||||
|
||||
void LoadWazaParameters(void)
|
||||
{
|
||||
gWazaParametersFile = OpenFileAndGetFileDataPtr(gUnknown_81098D0, &gSystemFileArchive);
|
||||
|
||||
gMovesData = ((struct MoveDataFile *)(gWazaParametersFile->data))->moveData;
|
||||
gMovesRelated_2038C6C = ((struct MoveDataFile *)(gWazaParametersFile->data))->unk4;
|
||||
}
|
||||
|
||||
u8 sub_809287C(struct PokemonMove *move)
|
||||
{
|
||||
if((move->moveFlags & MOVE_FLAG_DISABLED) != 0)
|
||||
return 0x32;
|
||||
else if((move->sealed & 1) == 0)
|
||||
return 0x34;
|
||||
else
|
||||
return 0x32;
|
||||
}
|
||||
|
||||
void sub_80928A0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0 *r2)
|
||||
{
|
||||
struct PokemonMove stack;
|
||||
sub_8093F10(&stack, move);
|
||||
sub_80928C0(buffer, &stack, r2);
|
||||
}
|
||||
|
||||
void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0 *param_3)
|
||||
{
|
||||
u32 uVar2;
|
||||
u32 maxPP;
|
||||
u8 localBuffer[12];
|
||||
|
||||
uVar2 = sub_809287C(move);
|
||||
if (param_3 == NULL) {
|
||||
param_3 = &gUnknown_81098C4;
|
||||
}
|
||||
|
||||
if (move->powerBoost != 0)
|
||||
ExpandPlaceholdersBuffer(localBuffer,gUnknown_81098DC,move->powerBoost); // %+d
|
||||
else
|
||||
localBuffer[0] = '\0';
|
||||
|
||||
if (param_3->unk8 != 0) {
|
||||
uVar2 = 2;
|
||||
}
|
||||
if (param_3->unk9 != 0 && DoesMoveCharge(move->moveID)) {
|
||||
uVar2 = 2;
|
||||
}
|
||||
switch(param_3->unk0) {
|
||||
case 0:
|
||||
ExpandPlaceholdersBuffer
|
||||
(buffer,gUnknown_81098E0,uVar2,
|
||||
gMovesData[move->moveID].namePointer,localBuffer);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
maxPP = GetMoveMaxPP(move);
|
||||
ExpandPlaceholdersBuffer
|
||||
(buffer,gUnknown_81098EC,uVar2,move->moveFlags & MOVE_FLAG_SET ? gUnknown_8109908 : gUnknown_810990C,
|
||||
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
|
||||
move->pp,maxPP);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
maxPP = GetMoveMaxPP(move);
|
||||
ExpandPlaceholdersBuffer
|
||||
(buffer,gUnknown_8109910,uVar2,move->moveFlags & MOVE_FLAG_SET ? gUnknown_8109908 : gUnknown_810990C,
|
||||
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
|
||||
move->pp,maxPP);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
maxPP = GetMoveMaxPP(move);
|
||||
ExpandPlaceholdersBuffer
|
||||
(buffer,gUnknown_81098EC,uVar2,move->moveFlags & MOVE_FLAG_ENABLED ? gUnknown_8109928 : gUnknown_810990C,
|
||||
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
|
||||
move->pp,maxPP);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
maxPP = GetMoveMaxPP(move);
|
||||
ExpandPlaceholdersBuffer
|
||||
(buffer,gUnknown_8109910,uVar2, move->moveFlags & MOVE_FLAG_ENABLED ? gUnknown_8109928 : gUnknown_810990C,
|
||||
gMovesData[move->moveID].namePointer,localBuffer,param_3->unk4,
|
||||
move->pp,maxPP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void InitPokemonMove(struct PokemonMove *move, u16 moveID)
|
||||
{
|
||||
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
|
||||
move->sealed = FALSE;
|
||||
move->moveID = moveID;
|
||||
move->pp = GetMoveMaxPP(move);
|
||||
move->powerBoost = 0;
|
||||
}
|
||||
|
||||
void sub_8092AA8(struct PokemonMove *move, u16 moveID)
|
||||
{
|
||||
if(moveID == 0)
|
||||
move->moveFlags = 0;
|
||||
else
|
||||
{
|
||||
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
|
||||
move->sealed = FALSE;
|
||||
move->moveID = moveID;
|
||||
move->pp = GetMoveMaxPP(move);
|
||||
move->powerBoost = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void InitZeroedPPPokemonMove(struct PokemonMove *move, u16 moveID)
|
||||
{
|
||||
move->moveFlags = MOVE_FLAG_ENABLED | MOVE_FLAG_EXISTS;
|
||||
move->moveID = moveID;
|
||||
move->pp = 0;
|
||||
}
|
||||
|
||||
s16 GetMoveTargetingFlags(struct PokemonMove *move, u32 r1)
|
||||
{
|
||||
return gMovesData[move->moveID].targetingFlags[r1];
|
||||
}
|
||||
|
||||
u8 GetMoveType(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].type;
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_8092B18(s16 species)
|
||||
{
|
||||
asm_unified("\tpush {lr}\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"\tadds r2, r1, 0\n"
|
||||
"\tldr r0, _08092B40\n"
|
||||
"\tcmp r1, r0\n"
|
||||
"\tbeq _08092B48\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbeq _08092B48\n"
|
||||
"\tmovs r0, 0xD2\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r2, r0\n"
|
||||
"\tbeq _08092B48\n"
|
||||
"\tldr r0, _08092B44\n"
|
||||
"\tldr r1, [r0]\n"
|
||||
"\tlsls r0, r2, 3\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tb _08092B4A\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092B40: .4byte 0x000001a5\n"
|
||||
"_08092B44: .4byte gMovesRelated_2038C6C\n"
|
||||
"_08092B48:\n"
|
||||
"\tldr r0, _08092B50\n"
|
||||
"_08092B4A:\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092B50: .4byte gUnknown_810992B");
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_8092B54(s16 species)
|
||||
{
|
||||
asm_unified("\tpush {lr}\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r1, r0, 16\n"
|
||||
"\tadds r2, r1, 0\n"
|
||||
"\tldr r0, _08092B7C\n"
|
||||
"\tcmp r1, r0\n"
|
||||
"\tbeq _08092B84\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbeq _08092B84\n"
|
||||
"\tmovs r0, 0xD2\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tcmp r2, r0\n"
|
||||
"\tbeq _08092B84\n"
|
||||
"\tldr r0, _08092B80\n"
|
||||
"\tldr r1, [r0]\n"
|
||||
"\tlsls r0, r2, 3\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r0, [r0, 0x4]\n"
|
||||
"\tb _08092B86\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092B7C: .4byte 0x000001a5\n"
|
||||
"_08092B80: .4byte gMovesRelated_2038C6C\n"
|
||||
"_08092B84:\n"
|
||||
"\tldr r0, _08092B8C\n"
|
||||
"_08092B86:\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08092B8C: .4byte gUnknown_810992B");
|
||||
}
|
||||
|
||||
u8 GetMoveWeight(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].weight;
|
||||
}
|
||||
|
||||
u8 GetMoveHitCount(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].hitCount;
|
||||
}
|
||||
|
||||
s16 GetMovePower(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].power;
|
||||
}
|
||||
|
||||
u8 GetMoveAccuracy(struct PokemonMove *move, u32 r1)
|
||||
{
|
||||
return gMovesData[move->moveID].accuracy[r1];
|
||||
}
|
||||
|
||||
u32 GetMoveMaxPP(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].maxPP;
|
||||
}
|
||||
|
||||
u8 GetMoveUnk12(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].unk12;
|
||||
}
|
||||
|
||||
u8 GetMoveCriticalHitChance(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].criticalHitChance;
|
||||
}
|
||||
|
||||
u8 GetMoveCannotHitFrozen(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].cannotHitFrozen;
|
||||
}
|
||||
|
||||
u8 GetMoveDealsDirectDamage(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].dealsDirectDamage;
|
||||
}
|
||||
|
||||
u32 GetMoveRangeType(struct PokemonMove *move)
|
||||
{
|
||||
return gMovesData[move->moveID].rangeType;
|
||||
}
|
||||
|
||||
void sub_8092C84(u8 *buffer, u16 moveID)
|
||||
{
|
||||
struct PokemonMove stack;
|
||||
InitPokemonMove(&stack, moveID);
|
||||
sub_80928C0(buffer, &stack, NULL);
|
||||
}
|
||||
|
||||
u8 *GetMoveUseText(u16 moveID)
|
||||
{
|
||||
return gMovesData[moveID].useText;
|
||||
}
|
||||
|
||||
u8 GetMoveAffectedByMagicCoat(u16 moveID)
|
||||
{
|
||||
return gMovesData[moveID].affectedByMagicCoat;
|
||||
}
|
||||
|
||||
u8 GetMoveTargetsUser(u16 moveID)
|
||||
{
|
||||
return gMovesData[moveID].targetsUser;
|
||||
}
|
||||
|
||||
u8 GetMoveAffectedByMuzzled(u16 moveID)
|
||||
{
|
||||
return gMovesData[moveID].affectedByMuzzled;
|
||||
}
|
||||
|
||||
bool8 IsBlockedBySoundproof(struct PokemonMove *move)
|
||||
{
|
||||
if(move->moveID == MOVE_GROWL) return TRUE;
|
||||
if(move->moveID == MOVE_ROAR) return TRUE;
|
||||
if(move->moveID == MOVE_METAL_SOUND) return TRUE;
|
||||
if(move->moveID == MOVE_SING) return TRUE;
|
||||
if(move->moveID == MOVE_GRASSWHISTLE) return TRUE;
|
||||
if(move->moveID == MOVE_SUPERSONIC) return TRUE;
|
||||
if(move->moveID == MOVE_PERISH_SONG) return TRUE;
|
||||
if(move->moveID == MOVE_SCREECH) return TRUE;
|
||||
if(move->moveID == MOVE_HYPER_VOICE) return TRUE;
|
||||
if(move->moveID == MOVE_SNORE) return TRUE;
|
||||
if(move->moveID == MOVE_HEAL_BELL) return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8092D54(u8 *buffer, struct PokemonMove *move)
|
||||
{
|
||||
ExpandPlaceholdersBuffer(buffer, gUnknown_810992C, gRangeNames[GetMoveRangeType(move)]);
|
||||
}
|
||||
100
src/moves_1.c
Normal file
100
src/moves_1.c
Normal file
@@ -0,0 +1,100 @@
|
||||
#include "global.h"
|
||||
#include "code_8092334.h"
|
||||
#include "pokemon.h"
|
||||
#include "constants/move_id.h"
|
||||
|
||||
void SavePokemonMove(struct unkStruct_8094924 *r0, struct PokemonMove *move)
|
||||
{
|
||||
SaveIntegerBits(r0, &move->moveFlags, 4);
|
||||
SaveIntegerBits(r0, &move->moveID, 9);
|
||||
SaveIntegerBits(r0, &move->pp, 7);
|
||||
}
|
||||
|
||||
void RestorePokemonMove(struct unkStruct_8094924 *r0, struct PokemonMove *move)
|
||||
{
|
||||
RestoreIntegerBits(r0, &move->moveFlags, 4);
|
||||
RestoreIntegerBits(r0, &move->moveID, 9);
|
||||
RestoreIntegerBits(r0, &move->pp, 7);
|
||||
}
|
||||
|
||||
void SavePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet)
|
||||
{
|
||||
s32 iVar4;
|
||||
for(iVar4 = 0; iVar4 < MAX_MON_MOVES; iVar4++)
|
||||
{
|
||||
SavePokemonMove(r0, &moveSet[iVar4]);
|
||||
}
|
||||
}
|
||||
|
||||
void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet)
|
||||
{
|
||||
s32 iVar4;
|
||||
for(iVar4 = 0; iVar4 < MAX_MON_MOVES; iVar4++)
|
||||
{
|
||||
RestorePokemonMove(r0, &moveSet[iVar4]);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8094148(struct unkStruct_8094924 *r0, struct PokemonMove *move)
|
||||
{
|
||||
SaveIntegerBits(r0, &move->moveFlags, 4);
|
||||
SaveIntegerBits(r0, &move->sealed, 1);
|
||||
SaveIntegerBits(r0, &move->moveID, 9);
|
||||
SaveIntegerBits(r0, &move->pp, 7);
|
||||
SaveIntegerBits(r0, &move->powerBoost, 7);
|
||||
}
|
||||
|
||||
void sub_8094184(struct unkStruct_8094924 *r0, struct unkStruct_8094184 *r1)
|
||||
{
|
||||
s32 r4;
|
||||
|
||||
for(r4 = 0; r4 < MAX_MON_MOVES; r4++)
|
||||
{
|
||||
sub_8094148(r0, &r1->moves[r4]);
|
||||
}
|
||||
SaveIntegerBits(r0, &r1->unk20, 8);
|
||||
}
|
||||
|
||||
void sub_80941B0(struct unkStruct_8094924 *r0, struct PokemonMove *move)
|
||||
{
|
||||
memset(move, 0, sizeof(struct PokemonMove));
|
||||
RestoreIntegerBits(r0, &move->moveFlags, 4);
|
||||
RestoreIntegerBits(r0, &move->sealed, 1);
|
||||
RestoreIntegerBits(r0, &move->moveID, 9);
|
||||
RestoreIntegerBits(r0, &move->pp, 7);
|
||||
RestoreIntegerBits(r0, &move->powerBoost, 7);
|
||||
}
|
||||
|
||||
void sub_80941FC(struct unkStruct_8094924 *r0, struct unkStruct_8094184 *r1)
|
||||
{
|
||||
s32 iVar4;
|
||||
for(iVar4 = 0; iVar4 < MAX_MON_MOVES; iVar4++)
|
||||
{
|
||||
sub_80941B0(r0, &r1->moves[iVar4]);
|
||||
}
|
||||
r1->unk20 = 0;
|
||||
RestoreIntegerBits(r0, &r1->unk20, 8);
|
||||
}
|
||||
|
||||
bool8 DoesMoveCharge(u16 move)
|
||||
{
|
||||
if(move == MOVE_SOLARBEAM)
|
||||
return TRUE;
|
||||
if(move == MOVE_SKY_ATTACK)
|
||||
return TRUE;
|
||||
if(move == MOVE_RAZOR_WIND)
|
||||
return TRUE;
|
||||
if(move == MOVE_FOCUS_PUNCH)
|
||||
return TRUE;
|
||||
if(move == MOVE_SKULL_BASH)
|
||||
return TRUE;
|
||||
if(move == MOVE_FLY)
|
||||
return TRUE;
|
||||
if(move == MOVE_BOUNCE)
|
||||
return TRUE;
|
||||
if(move == MOVE_DIVE)
|
||||
return TRUE;
|
||||
if(move == MOVE_DIG)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -38,7 +38,7 @@ extern void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct*, struct
|
||||
extern u8* sub_8092B18(s16);
|
||||
extern u8* sub_808E07C(u8* a1, u16* a2);
|
||||
extern u8* sub_8092B54(s32);
|
||||
extern void sub_8092AD4(struct PokemonMove*, u16);
|
||||
extern void InitZeroedPPPokemonMove(struct PokemonMove*, u16);
|
||||
extern u32 sub_8097DF0(char *, struct subStruct_203B240 **);
|
||||
|
||||
struct unkStruct_8107654 {
|
||||
@@ -570,7 +570,7 @@ void xxx_pokemon2_to_pokemonstruct_index_808DF2C(s32 a1, struct PokemonStruct2*
|
||||
xxx_pokemon2_to_pokemonstruct_808DF44(&a1[gRecruitedPokemonRef->pokemon], a2);
|
||||
}
|
||||
|
||||
extern void sub_8093FA8(struct PokemonMove*, struct PokemonMove*);
|
||||
extern void sub_8093FA8(struct PokemonMove*, struct unkStruct_8094184*);
|
||||
|
||||
|
||||
void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct* pokemon, struct PokemonStruct2* a2)
|
||||
@@ -593,7 +593,7 @@ void xxx_pokemon2_to_pokemonstruct_808DF44(struct PokemonStruct* pokemon, struct
|
||||
}
|
||||
|
||||
pokemon->unk1C = a2->unk18;
|
||||
sub_8093FA8(pokemon->moves, a2->moves);
|
||||
sub_8093FA8(pokemon->moves, &a2->moves);
|
||||
|
||||
for (i = 0; i < POKEMON_NAME_LENGTH; i++) {
|
||||
pokemon->name[i] = a2->name[i];
|
||||
@@ -910,7 +910,7 @@ void sub_808E490(struct PokemonMove* a1, s16 species)
|
||||
i = 0;
|
||||
if (i < count) {
|
||||
while (i < count) {
|
||||
sub_8092AD4(&a1[i], buffer[i]);
|
||||
InitZeroedPPPokemonMove(&a1[i], buffer[i]);
|
||||
i++;
|
||||
}
|
||||
i = count;
|
||||
|
||||
@@ -500,7 +500,7 @@ string generate_move_data_text(Json data) {
|
||||
<< read_json_bool(data_entry["affectedByMuzzled"])
|
||||
<< read_json_bool(data_entry["cannotHitFrozen"])
|
||||
<< read_json_bool(data_entry["dealsDirectDamage"])
|
||||
<< read_json_int(data_entry["unk19"], 1)
|
||||
<< read_json_int(data_entry["rangeType"], 1)
|
||||
<< "\n.2byte 0"
|
||||
<< read_json_string(data_entry["descriptionPointer"], 4)
|
||||
<< read_json_string(data_entry["useText"], 4);
|
||||
|
||||
Reference in New Issue
Block a user