diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-11-02 16:37:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-02 16:37:00 -0700 |
commit | e29e61a4a1de2dff8ac4b7d0469794ba9ddf48f8 (patch) | |
tree | aa9bf96f0d1d91f06220e670b660f5fcf829b945 | |
parent | f99f00b180561afeeb4b9c9918135c2db607fd52 (diff) | |
parent | 3a1db3dfac99d017b592afa4e7e3fc7325e060cc (diff) |
Merge pull request #68 from SethBarberee/sese_work
Moves and some friend_area_action_menu
42 files changed, 2601 insertions, 3874 deletions
diff --git a/asm/code_801DCC4.s b/asm/code_801DCC4.s index ed678b6..52212b1 100644 --- a/asm/code_801DCC4.s +++ b/asm/code_801DCC4.s @@ -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 diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 52a4ab0..11aae2e 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -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 diff --git a/asm/code_80450F8.s b/asm/code_80450F8.s index 70bbadf..3040a44 100644 --- a/asm/code_80450F8.s +++ b/asm/code_80450F8.s @@ -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 diff --git a/asm/code_8048480.s b/asm/code_8048480.s index f7665b0..79a323d 100644 --- a/asm/code_8048480.s +++ b/asm/code_8048480.s @@ -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 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 2352de4..0bbdd13 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -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
\ No newline at end of file + .align 2, 0 diff --git a/asm/code_8057144.s b/asm/code_8057144.s index ce48efa..09ba149 100644 --- a/asm/code_8057144.s +++ b/asm/code_8057144.s @@ -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: diff --git a/asm/code_8057824.s b/asm/code_8057824.s index a14ab18..554a536 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -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 diff --git a/asm/code_807001C.s b/asm/code_807001C.s index 5d56aeb..5d900ee 100644 --- a/asm/code_807001C.s +++ b/asm/code_807001C.s @@ -1558,4 +1558,4 @@ _08070B68: bx r1 thumb_func_end sub_8070B48 - .align 2, 0
\ No newline at end of file + .align 2, 0 diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s index e93f114..7eeb1e9 100644 --- a/asm/code_80718D8.s +++ b/asm/code_80718D8.s @@ -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 diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s index c7f9c58..d872a55 100644 --- a/asm/code_8075BA4.s +++ b/asm/code_8075BA4.s @@ -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 diff --git a/asm/code_8090208.s b/asm/code_8090208.s index 05fb931..463cffa 100644 --- a/asm/code_8090208.s +++ b/asm/code_8090208.s @@ -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 diff --git a/asm/code_8094148.s b/asm/code_8094148.s new file mode 100644 index 0000000..66feab4 --- /dev/null +++ b/asm/code_8094148.s @@ -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 diff --git a/asm/friend_area_action_menu_1.s b/asm/friend_area_action_menu_1.s deleted file mode 100644 index 2724a25..0000000 --- a/asm/friend_area_action_menu_1.s +++ /dev/null @@ -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 diff --git a/asm/friend_list_menu.s b/asm/friend_list_menu.s index 2fe7701..3db3dd9 100644 --- a/asm/friend_list_menu.s +++ b/asm/friend_list_menu.s @@ -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 diff --git a/asm/kangaskhan_storage_2.s b/asm/kangaskhan_storage_2.s index 13f1b92..ec64f19 100644 --- a/asm/kangaskhan_storage_2.s +++ b/asm/kangaskhan_storage_2.s @@ -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 diff --git a/asm/code_8092334.s b/asm/moves_1.s index 86d7d03..c9f1ce8 100644 --- a/asm/code_8092334.s +++ b/asm/moves_1.s @@ -5,747 +5,6 @@ .text - thumb_func_start LoadWazaParameters -LoadWazaParameters: - push {lr} - ldr r0, _08092868 - ldr r1, _0809286C - bl OpenFileAndGetFileDataPtr - ldr r1, _08092870 - str r0, [r1] - ldr r1, _08092874 - ldr r2, [r0, 0x4] - ldr r0, [r2] - str r0, [r1] - ldr r1, _08092878 - ldr r0, [r2, 0x4] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08092868: .4byte gUnknown_81098D0 -_0809286C: .4byte gSystemFileArchive -_08092870: .4byte gWazaParametersFile -_08092874: .4byte gMovesData -_08092878: .4byte gMovesRelated_2038C6C - thumb_func_end LoadWazaParameters - - thumb_func_start sub_809287C -sub_809287C: - push {lr} - adds r2, r0, 0 - ldrb r1, [r2] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08092894 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08092898 -_08092894: - movs r0, 0x32 - b _0809289A -_08092898: - movs r0, 0x34 -_0809289A: - pop {r1} - bx r1 - thumb_func_end sub_809287C - - thumb_func_start sub_80928A0 -sub_80928A0: - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r2, 0 - mov r0, sp - bl sub_8093F10 - adds r0, r4, 0 - mov r1, sp - adds r2, r5, 0 - bl sub_80928C0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80928A0 - - thumb_func_start sub_80928C0 -sub_80928C0: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - adds r7, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r0, r4, 0 - bl sub_809287C - lsls r0, 24 - lsrs r6, r0, 24 - cmp r5, 0 - bne _080928DE - ldr r5, _080928F0 -_080928DE: - ldrb r1, [r4, 0x5] - cmp r1, 0 - beq _080928F8 - ldr r1, _080928F4 - ldrb r2, [r4, 0x5] - add r0, sp, 0x14 - bl ExpandPlaceholdersBuffer - b _080928FC - .align 2, 0 -_080928F0: .4byte gUnknown_81098C4 -_080928F4: .4byte gUnknown_81098DC -_080928F8: - add r0, sp, 0x14 - strb r1, [r0] -_080928FC: - ldrb r0, [r5, 0x8] - cmp r0, 0 - beq _08092904 - movs r6, 0x2 -_08092904: - ldrb r0, [r5, 0x9] - cmp r0, 0 - beq _08092918 - ldrh r0, [r4, 0x2] - bl sub_809422C - lsls r0, 24 - cmp r0, 0 - beq _08092918 - movs r6, 0x2 -_08092918: - ldr r0, [r5] - cmp r0, 0x4 - bls _08092920 - b _08092A6A -_08092920: - lsls r0, 2 - ldr r1, _0809292C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809292C: .4byte _08092930 - .align 2, 0 -_08092930: - .4byte _08092944 - .4byte _0809296C - .4byte _08092998 - .4byte _080929C4 - .4byte _08092A20 -_08092944: - ldr r1, _08092964 - ldrh r2, [r4, 0x2] - ldr r0, _08092968 - ldr r3, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldr r3, [r0] - add r0, sp, 0x14 - str r0, [sp] - adds r0, r7, 0 - adds r2, r6, 0 - bl ExpandPlaceholdersBuffer - b _08092A6A - .align 2, 0 -_08092964: .4byte gUnknown_81098E0 -_08092968: .4byte gMovesData -_0809296C: - adds r0, r4, 0 - bl sub_8092BF4 - adds r3, r0, 0 - ldr r1, _0809298C - mov r8, r1 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - ldr r1, _08092990 - mov r12, r1 - cmp r0, 0 - beq _080929E2 - ldr r0, _08092994 - b _080929E0 - .align 2, 0 -_0809298C: .4byte gUnknown_81098EC -_08092990: .4byte gUnknown_810990C -_08092994: .4byte gUnknown_8109908 -_08092998: - adds r0, r4, 0 - bl sub_8092BF4 - adds r3, r0, 0 - ldr r0, _080929B8 - mov r8, r0 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - ldr r1, _080929BC - mov r12, r1 - cmp r0, 0 - beq _080929E2 - ldr r0, _080929C0 - b _080929E0 - .align 2, 0 -_080929B8: .4byte gUnknown_8109910 -_080929BC: .4byte gUnknown_810990C -_080929C0: .4byte gUnknown_8109908 -_080929C4: - adds r0, r4, 0 - bl sub_8092BF4 - adds r3, r0, 0 - ldr r0, _08092A10 - mov r8, r0 - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - ldr r1, _08092A14 - mov r12, r1 - cmp r0, 0 - beq _080929E2 - ldr r0, _08092A18 -_080929E0: - mov r12, r0 -_080929E2: - ldrh r1, [r4, 0x2] - ldr r0, _08092A1C - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [sp] - add r1, sp, 0x14 - str r1, [sp, 0x4] - ldr r0, [r5, 0x4] - str r0, [sp, 0x8] - ldrb r0, [r4, 0x4] - str r0, [sp, 0xC] - str r3, [sp, 0x10] - adds r0, r7, 0 - mov r1, r8 - adds r2, r6, 0 - mov r3, r12 - bl ExpandPlaceholdersBuffer - b _08092A6A - .align 2, 0 -_08092A10: .4byte gUnknown_81098EC -_08092A14: .4byte gUnknown_810990C -_08092A18: .4byte gUnknown_8109928 -_08092A1C: .4byte gMovesData -_08092A20: - adds r0, r4, 0 - bl sub_8092BF4 - adds r3, r0, 0 - ldr r0, _08092A78 - mov r8, r0 - ldrb r1, [r4] - movs r0, 0x4 - ands r0, r1 - ldr r1, _08092A7C - mov r12, r1 - cmp r0, 0 - beq _08092A3E - ldr r0, _08092A80 - mov r12, r0 -_08092A3E: - ldrh r1, [r4, 0x2] - ldr r0, _08092A84 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [sp] - add r1, sp, 0x14 - str r1, [sp, 0x4] - ldr r0, [r5, 0x4] - str r0, [sp, 0x8] - ldrb r0, [r4, 0x4] - str r0, [sp, 0xC] - str r3, [sp, 0x10] - adds r0, r7, 0 - mov r1, r8 - adds r2, r6, 0 - mov r3, r12 - bl ExpandPlaceholdersBuffer -_08092A6A: - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08092A78: .4byte gUnknown_8109910 -_08092A7C: .4byte gUnknown_810990C -_08092A80: .4byte gUnknown_8109928 -_08092A84: .4byte gMovesData - thumb_func_end sub_80928C0 - - thumb_func_start sub_8092A88 -sub_8092A88: - push {r4,r5,lr} - adds r4, r0, 0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r4] - strb r2, [r4, 0x1] - movs r5, 0 - strh r1, [r4, 0x2] - adds r0, r4, 0 - bl sub_8092BF4 - strb r0, [r4, 0x4] - strb r5, [r4, 0x5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8092A88 - - thumb_func_start sub_8092AA8 -sub_8092AA8: - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r2, r1, 16 - cmp r2, 0 - bne _08092AB8 - strb r2, [r5] - b _08092ACE -_08092AB8: - movs r1, 0 - movs r0, 0x5 - strb r0, [r5] - strb r1, [r5, 0x1] - movs r4, 0 - strh r2, [r5, 0x2] - adds r0, r5, 0 - bl sub_8092BF4 - strb r0, [r5, 0x4] - strb r4, [r5, 0x5] -_08092ACE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8092AA8 - - thumb_func_start sub_8092AD4 -sub_8092AD4: - movs r2, 0x5 - strb r2, [r0] - movs r2, 0 - strh r1, [r0, 0x2] - strb r2, [r0, 0x4] - bx lr - thumb_func_end sub_8092AD4 - - thumb_func_start sub_8092AE0 -sub_8092AE0: - ldrh r2, [r0, 0x2] - ldr r0, _08092AFC - ldr r3, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - lsls r1, 1 - adds r0, 0x8 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08092AFC: .4byte gMovesData - thumb_func_end sub_8092AE0 - - thumb_func_start sub_8092B00 -sub_8092B00: - ldrh r1, [r0, 0x2] - ldr r0, _08092B14 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - bx lr - .align 2, 0 -_08092B14: .4byte gMovesData - thumb_func_end sub_8092B00 - - thumb_func_start sub_8092B18 -sub_8092B18: - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - adds r2, r1, 0 - ldr r0, _08092B40 - cmp r1, r0 - beq _08092B48 - cmp r1, 0 - beq _08092B48 - movs r0, 0xD2 - lsls r0, 1 - cmp r2, r0 - beq _08092B48 - ldr r0, _08092B44 - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r1 - ldr r0, [r0] - b _08092B4A - .align 2, 0 -_08092B40: .4byte 0x000001a5 -_08092B44: .4byte gMovesRelated_2038C6C -_08092B48: - ldr r0, _08092B50 -_08092B4A: - pop {r1} - bx r1 - .align 2, 0 -_08092B50: .4byte gUnknown_810992B - thumb_func_end sub_8092B18 - - thumb_func_start sub_8092B54 -sub_8092B54: - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - adds r2, r1, 0 - ldr r0, _08092B7C - cmp r1, r0 - beq _08092B84 - cmp r1, 0 - beq _08092B84 - movs r0, 0xD2 - lsls r0, 1 - cmp r2, r0 - beq _08092B84 - ldr r0, _08092B80 - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r1 - ldr r0, [r0, 0x4] - b _08092B86 - .align 2, 0 -_08092B7C: .4byte 0x000001a5 -_08092B80: .4byte gMovesRelated_2038C6C -_08092B84: - ldr r0, _08092B8C -_08092B86: - pop {r1} - bx r1 - .align 2, 0 -_08092B8C: .4byte gUnknown_810992B - thumb_func_end sub_8092B54 - - thumb_func_start sub_8092B90 -sub_8092B90: - ldrh r1, [r0, 0x2] - ldr r0, _08092BA4 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0xD] - bx lr - .align 2, 0 -_08092BA4: .4byte gMovesData - thumb_func_end sub_8092B90 - - thumb_func_start sub_8092BA8 -sub_8092BA8: - ldrh r1, [r0, 0x2] - ldr r0, _08092BBC - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x11] - bx lr - .align 2, 0 -_08092BBC: .4byte gMovesData - thumb_func_end sub_8092BA8 - - thumb_func_start sub_8092BC0 -sub_8092BC0: - ldrh r1, [r0, 0x2] - ldr r0, _08092BD4 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08092BD4: .4byte gMovesData - thumb_func_end sub_8092BC0 - - thumb_func_start sub_8092BD8 -sub_8092BD8: - ldrh r2, [r0, 0x2] - ldr r0, _08092BF0 - ldr r3, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - adds r0, 0xE - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092BF0: .4byte gMovesData - thumb_func_end sub_8092BD8 - - thumb_func_start sub_8092BF4 -sub_8092BF4: - ldrh r1, [r0, 0x2] - ldr r0, _08092C08 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0xC] - bx lr - .align 2, 0 -_08092C08: .4byte gMovesData - thumb_func_end sub_8092BF4 - - thumb_func_start sub_8092C0C -sub_8092C0C: - ldrh r1, [r0, 0x2] - ldr r0, _08092C20 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x12] - bx lr - .align 2, 0 -_08092C20: .4byte gMovesData - thumb_func_end sub_8092C0C - - thumb_func_start sub_8092C24 -sub_8092C24: - ldrh r1, [r0, 0x2] - ldr r0, _08092C38 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x13] - bx lr - .align 2, 0 -_08092C38: .4byte gMovesData - thumb_func_end sub_8092C24 - - thumb_func_start sub_8092C3C -sub_8092C3C: - ldrh r1, [r0, 0x2] - ldr r0, _08092C50 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x17] - bx lr - .align 2, 0 -_08092C50: .4byte gMovesData - thumb_func_end sub_8092C3C - - thumb_func_start sub_8092C54 -sub_8092C54: - ldrh r1, [r0, 0x2] - ldr r0, _08092C68 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - bx lr - .align 2, 0 -_08092C68: .4byte gMovesData - thumb_func_end sub_8092C54 - - thumb_func_start sub_8092C6C -sub_8092C6C: - ldrh r1, [r0, 0x2] - ldr r0, _08092C80 - ldr r2, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x19] - bx lr - .align 2, 0 -_08092C80: .4byte gMovesData - thumb_func_end sub_8092C6C - - thumb_func_start sub_8092C84 -sub_8092C84: - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - bl sub_8092A88 - adds r0, r4, 0 - mov r1, sp - movs r2, 0 - bl sub_80928C0 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8092C84 - - thumb_func_start sub_8092CA8 -sub_8092CA8: - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08092CBC - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, [r1, 0x20] - bx lr - .align 2, 0 -_08092CBC: .4byte gMovesData - thumb_func_end sub_8092CA8 - - thumb_func_start sub_8092CC0 -sub_8092CC0: - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08092CD4 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x14] - bx lr - .align 2, 0 -_08092CD4: .4byte gMovesData - thumb_func_end sub_8092CC0 - - thumb_func_start sub_8092CD8 -sub_8092CD8: - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08092CEC - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x15] - bx lr - .align 2, 0 -_08092CEC: .4byte gMovesData - thumb_func_end sub_8092CD8 - - thumb_func_start sub_8092CF0 -sub_8092CF0: - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08092D04 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x16] - bx lr - .align 2, 0 -_08092D04: .4byte gMovesData - thumb_func_end sub_8092CF0 - - thumb_func_start sub_8092D08 -sub_8092D08: - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2] - cmp r1, 0xD9 - beq _08092D4C - movs r0, 0x8E - lsls r0, 1 - cmp r1, r0 - beq _08092D4C - cmp r1, 0x53 - beq _08092D4C - cmp r1, 0x22 - beq _08092D4C - cmp r1, 0x54 - beq _08092D4C - cmp r1, 0xAB - beq _08092D4C - ldr r0, _08092D48 - cmp r1, r0 - beq _08092D4C - cmp r1, 0x1B - beq _08092D4C - cmp r1, 0xF1 - beq _08092D4C - cmp r1, 0x19 - beq _08092D4C - ldrh r0, [r2, 0x2] - cmp r0, 0x1A - beq _08092D4C - movs r0, 0 - b _08092D4E - .align 2, 0 -_08092D48: .4byte 0x00000125 -_08092D4C: - movs r0, 0x1 -_08092D4E: - pop {r1} - bx r1 - thumb_func_end sub_8092D08 - - thumb_func_start sub_8092D54 -sub_8092D54: - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - ldr r5, _08092D78 - ldr r4, _08092D7C - bl sub_8092C6C - lsls r0, 2 - adds r0, r4 - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl ExpandPlaceholdersBuffer - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092D78: .4byte gUnknown_810992C -_08092D7C: .4byte gRangeNames - thumb_func_end sub_8092D54 - thumb_func_start sub_8092D80 sub_8092D80: push {r4,r5,lr} @@ -1704,7 +963,7 @@ sub_8093400: lsls r0, r4, 3 adds r0, r7, r0 ldrh r0, [r0, 0x2] - bl sub_809422C + bl DoesMoveCharge lsls r0, 24 cmp r0, 0 beq _08093428 @@ -1731,7 +990,7 @@ _08093434: cmp r0, 0 beq _08093460 ldrh r0, [r4, 0x2] - bl sub_809422C + bl DoesMoveCharge lsls r0, 24 cmp r0, 0 bne _08093460 @@ -3110,7 +2369,7 @@ sub_8093D9C: lsls r1, 16 lsrs r1, 16 mov r0, sp - bl sub_8092A88 + bl InitPokemonMove adds r0, r4, 0 mov r1, sp adds r2, r5, 0 @@ -3252,7 +2511,7 @@ sub_8093E90: adds r3, r5, 0 bl xxx_format_and_draw adds r0, r6, 0 - bl sub_8092B00 + bl GetMoveType lsls r0, 24 lsrs r0, 24 bl GetUnformattedTypeString @@ -3263,7 +2522,7 @@ sub_8093E90: adds r3, r5, 0 bl xxx_format_and_draw adds r0, r6, 0 - bl sub_8092BC0 + bl GetMovePower ldr r1, _08093F0C str r0, [r1] add sp, 0x4 @@ -3528,976 +2787,4 @@ _080940B0: bx r0 thumb_func_end sub_8094060 - thumb_func_start sub_80940B8 -sub_80940B8: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl SaveIntegerBits - adds r1, r5, 0x2 - adds r0, r4, 0 - movs r2, 0x9 - bl SaveIntegerBits - adds r5, 0x4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x7 - bl SaveIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80940B8 - - thumb_func_start sub_80940E0 -sub_80940E0: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x4 - bl RestoreIntegerBits - adds r1, r5, 0x2 - adds r0, r4, 0 - movs r2, 0x9 - bl RestoreIntegerBits - adds r5, 0x4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x7 - bl RestoreIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80940E0 - - thumb_func_start SavePokemonMoves -SavePokemonMoves: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - movs r5, 0x3 -_08094110: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80940B8 - adds r4, 0x8 - subs r5, 0x1 - cmp r5, 0 - bge _08094110 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SavePokemonMoves - - thumb_func_start RestorePokemonMoves -RestorePokemonMoves: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - movs r5, 0x3 -_08094130: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80940E0 - adds r4, 0x8 - subs r5, 0x1 - cmp r5, 0 - bge _08094130 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end RestorePokemonMoves - - thumb_func_start sub_8094148 -sub_8094148: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0x4 - bl SaveIntegerBits - adds r1, r4, 0x1 - adds r0, r5, 0 - movs r2, 0x1 - bl SaveIntegerBits - adds r1, r4, 0x2 - adds r0, r5, 0 - movs r2, 0x9 - bl SaveIntegerBits - adds r1, r4, 0x4 - adds r0, r5, 0 - movs r2, 0x7 - bl SaveIntegerBits - adds r4, 0x5 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl SaveIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8094148 - - thumb_func_start sub_8094184 -sub_8094184: - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - adds r4, r7, 0 - movs r5, 0x3 -_0809418E: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8094148 - adds r4, 0x8 - subs r5, 0x1 - cmp r5, 0 - bge _0809418E - adds r1, r7, 0 - adds r1, 0x20 - adds r0, r6, 0 - movs r2, 0x8 - bl SaveIntegerBits - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8094184 - - thumb_func_start sub_80941B0 -sub_80941B0: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x4 - bl RestoreIntegerBits - adds r1, r4, 0x1 - adds r0, r5, 0 - movs r2, 0x1 - bl RestoreIntegerBits - adds r1, r4, 0x2 - adds r0, r5, 0 - movs r2, 0x9 - bl RestoreIntegerBits - adds r1, r4, 0x4 - adds r0, r5, 0 - movs r2, 0x7 - bl RestoreIntegerBits - adds r4, 0x5 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7 - bl RestoreIntegerBits - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80941B0 - - thumb_func_start sub_80941FC -sub_80941FC: - push {r4-r7,lr} - adds r6, r0, 0 - adds r7, r1, 0 - adds r4, r7, 0 - movs r5, 0x3 -_08094206: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_80941B0 - adds r4, 0x8 - subs r5, 0x1 - cmp r5, 0 - bge _08094206 - adds r1, r7, 0 - adds r1, 0x20 - movs r0, 0 - strb r0, [r1] - adds r0, r6, 0 - movs r2, 0x8 - bl RestoreIntegerBits - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80941FC - - thumb_func_start sub_809422C -sub_809422C: - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - cmp r1, 0x97 - beq _08094260 - cmp r1, 0x64 - beq _08094260 - cmp r1, 0x3C - beq _08094260 - cmp r1, 0x4B - beq _08094260 - movs r0, 0xAE - lsls r0, 1 - cmp r1, r0 - beq _08094260 - cmp r1, 0x99 - beq _08094260 - cmp r1, 0xCD - beq _08094260 - cmp r1, 0x9C - beq _08094260 - cmp r2, 0x8 - beq _08094260 - movs r0, 0 - b _08094262 -_08094260: - movs r0, 0x1 -_08094262: - pop {r1} - bx r1 - thumb_func_end sub_809422C - - 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 @ Don't pad with nop + .align 2,0 diff --git a/asm/pokemon.s b/asm/pokemon.s index d5c7f42..bc82a47 100644 --- a/asm/pokemon.s +++ b/asm/pokemon.s @@ -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] diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index ad168f6..f451578 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -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 diff --git a/data/move/move_data.json b/data/move/move_data.json index e826d8f..ed3a8f5 100644 --- a/data/move/move_data.json +++ b/data/move/move_data.json @@ -13,7 +13,7 @@ "useChance": 0, "hitCount": 0, "cannotHitFrozen": false, - "unk19": 0, + "rangeType": 0, "descriptionPointer": "MoveDescriptionNone", "useText": "MoveDescriptionNone" }, @@ -34,7 +34,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerDefenseChance", "useText": "MoveUseTextUse" }, @@ -55,7 +55,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMultiHitUntilMiss", "useText": "MoveUseTextUse" }, @@ -76,7 +76,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionYawn", "useText": "MoveUseTextUse" }, @@ -97,7 +97,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionLovelyKiss", "useText": "MoveUseTextUse" }, @@ -116,7 +116,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNightmare", "useText": "MoveUseTextUse" }, @@ -136,7 +136,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 4, + "rangeType": 4, "descriptionPointer": "MoveDescriptionMorningSun", "useText": "MoveUseTextUse" }, @@ -155,7 +155,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionVitalThrow", "useText": "MoveUseTextUse" }, @@ -176,7 +176,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionDig", "useText": "MoveUseTextUse" }, @@ -197,7 +197,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 12, + "rangeType": 12, "descriptionPointer": "MoveDescriptionThrash", "useText": "MoveUseTextUse" }, @@ -217,7 +217,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionSweetScent", "useText": "MoveUseTextUse" }, @@ -237,7 +237,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCharm", "useText": "MoveUseTextUse" }, @@ -256,7 +256,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionRainDance", "useText": "MoveUseTextUse" }, @@ -276,7 +276,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConfuseRay", "useText": "MoveUseTextUse" }, @@ -295,7 +295,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionHail", "useText": "MoveUseTextUse" }, @@ -315,7 +315,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": false, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionHealTeamStatus", "useText": "MoveUseTextUse" }, @@ -336,7 +336,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionLowerSpeedChanceDistance", "useText": "MoveUseTextUse" }, @@ -355,7 +355,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionEncore", "useText": "MoveUseTextUse" }, @@ -376,7 +376,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionCut", "useText": "MoveUseTextUse" }, @@ -395,7 +395,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionRage", "useText": "MoveUseTextUse" }, @@ -416,7 +416,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSuperFang", "useText": "MoveUseTextUse" }, @@ -435,7 +435,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPainSplit", "useText": "MoveUseTextUse" }, @@ -455,7 +455,7 @@ "criticalHitChance": 12, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTorment", "useText": "MoveUseTextUse" }, @@ -475,7 +475,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionStringShot", "useText": "MoveUseTextUse" }, @@ -495,7 +495,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSwagger", "useText": "MoveUseTextUse" }, @@ -517,7 +517,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionSnore", "useText": "MoveUseTextUse" }, @@ -537,7 +537,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": false, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionHealTeamStatus", "useText": "MoveUseTextUse" }, @@ -558,7 +558,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionScreech", "useText": "MoveUseTextUse" }, @@ -579,7 +579,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -599,7 +599,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 25, + "rangeType": 25, "descriptionPointer": "MoveDescriptionRockSmash", "useText": "MoveUseTextUse" }, @@ -620,7 +620,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionRockSlide", "useText": "MoveUseTextUse" }, @@ -641,7 +641,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionWeatherBall", "useText": "MoveUseTextUse" }, @@ -662,7 +662,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionWhirlpool", "useText": "MoveUseTextUse" }, @@ -683,7 +683,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFakeTears", "useText": "MoveUseTextUse" }, @@ -704,7 +704,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionSing", "useText": "MoveUseTextUse" }, @@ -723,7 +723,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSpite", "useText": "MoveUseTextUse" }, @@ -744,7 +744,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -764,7 +764,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionSmokescreen", "useText": "MoveUseTextUse" }, @@ -783,7 +783,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionCounter", "useText": "MoveUseTextUse" }, @@ -804,7 +804,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -823,7 +823,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionMirrorMove", "useText": "MoveUseTextUse" }, @@ -844,7 +844,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionOverheat", "useText": "MoveUseTextUse" }, @@ -865,7 +865,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionAuroraBeam", "useText": "MoveUseTextUse" }, @@ -884,7 +884,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionMemento", "useText": "MoveUseTextUse" }, @@ -906,7 +906,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionOctazooka", "useText": "MoveUseTextUse" }, @@ -927,7 +927,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFlatter", "useText": "MoveUseTextUse" }, @@ -948,7 +948,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -968,7 +968,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionWillOWisp", "useText": "MoveUseTextUse" }, @@ -988,7 +988,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionReturn", "useText": "MoveUseTextUse" }, @@ -1007,7 +1007,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionGrudge", "useText": "MoveUseTextUse" }, @@ -1026,7 +1026,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionStrength", "useText": "MoveUseTextUse" }, @@ -1045,7 +1045,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionCounter", "useText": "MoveUseTextUse" }, @@ -1066,7 +1066,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionBurnChance", "useText": "MoveUseTextUse" }, @@ -1087,7 +1087,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionFlamethrower", "useText": "MoveUseTextUse" }, @@ -1106,7 +1106,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionOdorSleuth", "useText": "MoveUseTextUse" }, @@ -1126,7 +1126,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostAttack", "useText": "MoveUseTextUse" }, @@ -1146,7 +1146,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostEvasion", "useText": "MoveUseTextUse" }, @@ -1167,7 +1167,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionGust", "useText": "MoveUseTextUse" }, @@ -1187,7 +1187,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefense", "useText": "MoveUseTextUse" }, @@ -1206,7 +1206,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyze", "useText": "MoveUseTextUse" }, @@ -1227,7 +1227,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 28, + "rangeType": 28, "descriptionPointer": "MoveDescriptionRazorWind", "useText": "MoveUseTextUse" }, @@ -1246,7 +1246,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBide", "useText": "MoveUseTextUse" }, @@ -1268,7 +1268,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerSpecialDefenseChance", "useText": "MoveUseTextUse" }, @@ -1290,7 +1290,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -1311,7 +1311,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionThunder", "useText": "MoveUseTextUse" }, @@ -1332,7 +1332,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyzeChance", "useText": "MoveUseTextUse" }, @@ -1352,7 +1352,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionEndeavor", "useText": "MoveUseTextUse" }, @@ -1373,7 +1373,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFacade", "useText": "MoveUseTextUse" }, @@ -1394,7 +1394,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -1415,7 +1415,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConstriction", "useText": "MoveUseTextUse" }, @@ -1435,7 +1435,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefense", "useText": "MoveUseTextUse" }, @@ -1456,7 +1456,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConstrict", "useText": "MoveUseTextUse" }, @@ -1477,7 +1477,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionBrickBreak", "useText": "MoveUseTextUse" }, @@ -1498,7 +1498,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamageLowerSpeed", "useText": "MoveUseTextUse" }, @@ -1518,7 +1518,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionFocusEnergy", "useText": "MoveUseTextUse" }, @@ -1539,7 +1539,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionFocusPunch", "useText": "MoveUseTextUse" }, @@ -1560,7 +1560,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDrain", "useText": "MoveUseTextUse" }, @@ -1581,7 +1581,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionReversal", "useText": "MoveUseTextUse" }, @@ -1602,7 +1602,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSmellingsalt", "useText": "MoveUseTextUse" }, @@ -1622,7 +1622,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionSpore", "useText": "MoveUseTextUse" }, @@ -1644,7 +1644,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDrain", "useText": "MoveUseTextUse" }, @@ -1665,7 +1665,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -1686,7 +1686,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionSilverWind", "useText": "MoveUseTextUse" }, @@ -1706,7 +1706,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMetalSound", "useText": "MoveUseTextUse" }, @@ -1727,7 +1727,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionSleep", "useText": "MoveUseTextUse" }, @@ -1747,7 +1747,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTickle", "useText": "MoveUseTextUse" }, @@ -1767,7 +1767,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionLegHolder", "useText": "MoveUseTextUse" }, @@ -1788,7 +1788,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -1807,7 +1807,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 17, + "rangeType": 17, "descriptionPointer": "MoveDescriptionHaze", "useText": "MoveUseTextUse" }, @@ -1827,7 +1827,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLegHolder", "useText": "MoveUseTextUse" }, @@ -1848,7 +1848,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -1869,7 +1869,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionOutrage", "useText": "MoveUseTextUse" }, @@ -1890,7 +1890,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowKick", "useText": "MoveUseTextUse" }, @@ -1911,7 +1911,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionAncientpower", "useText": "MoveUseTextUse" }, @@ -1931,7 +1931,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 21, + "rangeType": 21, "descriptionPointer": "MoveDescriptionSynthesis", "useText": "MoveUseTextUse" }, @@ -1951,7 +1951,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionAgility", "useText": "MoveUseTextUse" }, @@ -1972,7 +1972,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionRapidSpin", "useText": "MoveUseTextUse" }, @@ -1993,7 +1993,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionIcyWind", "useText": "MoveUseTextUse" }, @@ -2012,7 +2012,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionMindReader", "useText": "MoveUseTextUse" }, @@ -2032,7 +2032,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionCosmicPower", "useText": "MoveUseTextUse" }, @@ -2053,7 +2053,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 28, + "rangeType": 28, "descriptionPointer": "MoveDescriptionSkyAttack", "useText": "MoveUseTextUse" }, @@ -2074,7 +2074,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionFreezeChanceRoom", "useText": "MoveUseTextUse" }, @@ -2093,7 +2093,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionFollowMe", "useText": "MoveUseTextUse" }, @@ -2114,7 +2114,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionMeteorMash", "useText": "MoveUseTextUse" }, @@ -2133,7 +2133,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionEndure", "useText": "MoveUseTextUse" }, @@ -2154,7 +2154,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHitUntilMiss", "useText": "MoveUseTextUse" }, @@ -2174,7 +2174,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerSpeed", "useText": "MoveUseTextUse" }, @@ -2195,7 +2195,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionConfuseChanceDistance", "useText": "MoveUseTextUse" }, @@ -2215,7 +2215,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionPsywave", "useText": "MoveUseTextUse" }, @@ -2236,7 +2236,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerSpecialDefenseChance", "useText": "MoveUseTextUse" }, @@ -2257,7 +2257,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPsychoBoost", "useText": "MoveUseTextUse" }, @@ -2277,7 +2277,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionSleep", "useText": "MoveUseTextUse" }, @@ -2297,7 +2297,7 @@ "criticalHitChance": 12, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionUproar", "useText": "MoveUseTextUse" }, @@ -2318,7 +2318,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionWaterSpout", "useText": "MoveUseTextUse" }, @@ -2339,7 +2339,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionConfuseChanceDistance", "useText": "MoveUseTextUse" }, @@ -2358,7 +2358,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 30, + "rangeType": 30, "descriptionPointer": "MoveDescriptionPsychUp", "useText": "MoveUseTextUse" }, @@ -2379,7 +2379,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionRecoil", "useText": "MoveUseTextUse" }, @@ -2399,7 +2399,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionRecover", "useText": "MoveUseTextUse" }, @@ -2420,7 +2420,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 18, + "rangeType": 18, "descriptionPointer": "MoveDescriptionEarthquake", "useText": "MoveUseTextUse" }, @@ -2440,7 +2440,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNaturePower", "useText": "MoveUseTextUse" }, @@ -2462,7 +2462,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyzeChance", "useText": "MoveUseTextUse" }, @@ -2483,7 +2483,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFlail", "useText": "MoveUseTextUse" }, @@ -2503,7 +2503,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerDefense", "useText": "MoveUseTextUse" }, @@ -2523,7 +2523,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 26, + "rangeType": 26, "descriptionPointer": "MoveDescriptionSelfdestruct", "useText": "MoveUseTextUse" }, @@ -2543,7 +2543,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionStunSpore", "useText": "MoveUseTextUse" }, @@ -2564,7 +2564,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConstriction", "useText": "MoveUseTextUse" }, @@ -2585,7 +2585,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNeverMiss", "useText": "MoveUseTextUse" }, @@ -2606,7 +2606,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionShadowBall", "useText": "MoveUseTextUse" }, @@ -2626,7 +2626,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionCharge", "useText": "MoveUseTextUse" }, @@ -2647,7 +2647,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionThunderbolt", "useText": "MoveUseTextUse" }, @@ -2667,7 +2667,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionMist", "useText": "MoveUseTextUse" }, @@ -2687,7 +2687,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFissure", "useText": "MoveUseTextUse" }, @@ -2708,7 +2708,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 13, + "rangeType": 13, "descriptionPointer": "MoveDescriptionTwoTilesAhead", "useText": "MoveUseTextUse" }, @@ -2729,7 +2729,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionExtrasensory", "useText": "MoveUseTextUse" }, @@ -2749,7 +2749,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionSafeguard", "useText": "MoveUseTextUse" }, @@ -2771,7 +2771,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDrain", "useText": "MoveUseTextUse" }, @@ -2792,7 +2792,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSkyUppercut", "useText": "MoveUseTextUse" }, @@ -2811,7 +2811,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSkillSwap", "useText": "MoveUseTextUse" }, @@ -2830,7 +2830,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSketch", "useText": "MoveUseTextUse" }, @@ -2851,7 +2851,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -2872,7 +2872,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionRecoil", "useText": "MoveUseTextUse" }, @@ -2891,7 +2891,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionSandstorm", "useText": "MoveUseTextUse" }, @@ -2911,7 +2911,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionLowerAccuracy", "useText": "MoveUseTextUse" }, @@ -2932,7 +2932,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConstriction", "useText": "MoveUseTextUse" }, @@ -2953,7 +2953,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyzeChance", "useText": "MoveUseTextUse" }, @@ -2974,7 +2974,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNeverMiss", "useText": "MoveUseTextUse" }, @@ -2993,7 +2993,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerAccuracy", "useText": "MoveUseTextUse" }, @@ -3014,7 +3014,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPoisonChance", "useText": "MoveUseTextUse" }, @@ -3034,7 +3034,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionGrowth", "useText": "MoveUseTextUse" }, @@ -3055,7 +3055,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSacredFire", "useText": "MoveUseTextUse" }, @@ -3075,7 +3075,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSheerCold", "useText": "MoveUseTextUse" }, @@ -3096,7 +3096,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 28, + "rangeType": 28, "descriptionPointer": "MoveDescriptionSolarbeam", "useText": "MoveUseTextUse" }, @@ -3116,7 +3116,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionSonicboom", "useText": "MoveUseTextUse" }, @@ -3137,7 +3137,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionFly", "useText": "MoveUseTextUse" }, @@ -3158,7 +3158,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3178,7 +3178,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 27, + "rangeType": 27, "descriptionPointer": "MoveDescriptionExplosion", "useText": "MoveUseTextUse" }, @@ -3199,7 +3199,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionDive", "useText": "MoveUseTextUse" }, @@ -3220,7 +3220,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionBurnChance", "useText": "MoveUseTextUse" }, @@ -3241,7 +3241,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3262,7 +3262,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMuddyWater", "useText": "MoveUseTextUse" }, @@ -3283,7 +3283,7 @@ "targetsUser": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionStockpile", "useText": "MoveUseTextUse" }, @@ -3304,7 +3304,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3325,7 +3325,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTwister", "useText": "MoveUseTextUse" }, @@ -3346,7 +3346,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionMultiHitDistance", "useText": "MoveUseTextUse" }, @@ -3367,7 +3367,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionTwineedle", "useText": "MoveUseTextUse" }, @@ -3387,7 +3387,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionSoftboiled", "useText": "MoveUseTextUse" }, @@ -3408,7 +3408,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3429,7 +3429,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNeverMiss", "useText": "MoveUseTextUse" }, @@ -3450,7 +3450,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -3470,7 +3470,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostEvasion", "useText": "MoveUseTextUse" }, @@ -3490,7 +3490,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSeismicToss", "useText": "MoveUseTextUse" }, @@ -3511,7 +3511,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionConfuse", "useText": "MoveUseTextUse" }, @@ -3530,7 +3530,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTaunt", "useText": "MoveUseTextUse" }, @@ -3550,7 +3550,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 5, + "rangeType": 5, "descriptionPointer": "MoveDescriptionMoonlight", "useText": "MoveUseTextUse" }, @@ -3571,7 +3571,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3592,7 +3592,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -3613,7 +3613,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3633,7 +3633,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionOneHit", "useText": "MoveUseTextUse" }, @@ -3654,7 +3654,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3675,7 +3675,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNeverMiss", "useText": "MoveUseTextUse" }, @@ -3696,7 +3696,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -3716,7 +3716,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionSwordsDance", "useText": "MoveUseTextUse" }, @@ -3737,7 +3737,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -3756,7 +3756,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionConversion", "useText": "MoveUseTextUse" }, @@ -3775,7 +3775,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionConversion2", "useText": "MoveUseTextUse" }, @@ -3794,7 +3794,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 22, + "rangeType": 22, "descriptionPointer": "MoveDescriptionHelpingHand", "useText": "MoveUseTextUse" }, @@ -3814,7 +3814,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefenseTwo", "useText": "MoveUseTextUse" }, @@ -3833,7 +3833,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionTeleport", "useText": "MoveUseTextUse" }, @@ -3854,7 +3854,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyzeChance", "useText": "MoveUseTextUse" }, @@ -3875,7 +3875,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionShockWave", "useText": "MoveUseTextUse" }, @@ -3896,7 +3896,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 13, + "rangeType": 13, "descriptionPointer": "MoveDescriptionTwoTilesAhead", "useText": "MoveUseTextUse" }, @@ -3917,7 +3917,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConfuse", "useText": "MoveUseTextUse" }, @@ -3937,7 +3937,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyze", "useText": "MoveUseTextUse" }, @@ -3958,7 +3958,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionZapCannon", "useText": "MoveUseTextUse" }, @@ -3978,7 +3978,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionBlock", "useText": "MoveUseTextUse" }, @@ -3999,7 +3999,7 @@ "targetsUser": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostAttack", "useText": "MoveUseTextUse" }, @@ -4019,7 +4019,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPoison", "useText": "MoveUseTextUse" }, @@ -4039,7 +4039,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionToxic", "useText": "MoveUseTextUse" }, @@ -4060,7 +4060,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPoisonFang", "useText": "MoveUseTextUse" }, @@ -4080,7 +4080,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPoison", "useText": "MoveUseTextUse" }, @@ -4101,7 +4101,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionPoisonChance", "useText": "MoveUseTextUse" }, @@ -4122,7 +4122,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionMultiHitDistance", "useText": "MoveUseTextUse" }, @@ -4142,7 +4142,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefenseTwo", "useText": "MoveUseTextUse" }, @@ -4163,7 +4163,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTakeDown", "useText": "MoveUseTextUse" }, @@ -4184,7 +4184,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionJumpKick", "useText": "MoveUseTextUse" }, @@ -4205,7 +4205,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionBounce", "useText": "MoveUseTextUse" }, @@ -4226,7 +4226,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionJumpKick", "useText": "MoveUseTextUse" }, @@ -4247,7 +4247,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionTriAttack", "useText": "MoveUseTextUse" }, @@ -4268,7 +4268,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -4287,7 +4287,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTrick", "useText": "MoveUseTextUse" }, @@ -4308,7 +4308,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionTripleKick", "useText": "MoveUseTextUse" }, @@ -4329,7 +4329,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -4348,7 +4348,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionMudSport", "useText": "MoveUseTextUse" }, @@ -4369,7 +4369,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMudSlap", "useText": "MoveUseTextUse" }, @@ -4390,7 +4390,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionThief", "useText": "MoveUseTextUse" }, @@ -4410,7 +4410,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionAmnesia", "useText": "MoveUseTextUse" }, @@ -4430,7 +4430,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionNightShade", "useText": "MoveUseTextUse" }, @@ -4451,7 +4451,7 @@ "affectedByMagicCoat": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionGrowl", "useText": "MoveUseTextUse" }, @@ -4471,7 +4471,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionRecover", "useText": "MoveUseTextUse" }, @@ -4492,7 +4492,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSurf", "useText": "MoveUseTextUse" }, @@ -4511,7 +4511,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionRolePlay", "useText": "MoveUseTextUse" }, @@ -4532,7 +4532,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -4553,7 +4553,7 @@ "criticalHitChance": 3, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHitTwice", "useText": "MoveUseTextUse" }, @@ -4572,7 +4572,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionSunnyDay", "useText": "MoveUseTextUse" }, @@ -4592,7 +4592,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerDefense", "useText": "MoveUseTextUse" }, @@ -4611,7 +4611,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionWish", "useText": "MoveUseTextUse" }, @@ -4632,7 +4632,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 13, + "rangeType": 13, "descriptionPointer": "MoveDescriptionFakeOut", "useText": "MoveUseTextUse" }, @@ -4652,7 +4652,7 @@ "criticalHitChance": 12, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionSleepTalk", "useText": "MoveUseTextUse" }, @@ -4673,7 +4673,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPayDay", "useText": "MoveUseTextUse" }, @@ -4694,7 +4694,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionAssist", "useText": "MoveUseTextAssist" }, @@ -4715,7 +4715,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionHeatWave", "useText": "MoveUseTextUse" }, @@ -4735,7 +4735,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionSleepPowder", "useText": "MoveUseTextUse" }, @@ -4755,7 +4755,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionRest", "useText": "MoveUseTextUse" }, @@ -4775,7 +4775,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionIngrain", "useText": "MoveUseTextUse" }, @@ -4796,7 +4796,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConfuseChance", "useText": "MoveUseTextUse" }, @@ -4817,7 +4817,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyzeChance", "useText": "MoveUseTextUse" }, @@ -4838,7 +4838,7 @@ "targetsUser": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 21, + "rangeType": 21, "descriptionPointer": "MoveDescriptionSwallow", "useText": "MoveUseTextUse" }, @@ -4857,7 +4857,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionCurse", "useText": "MoveUseTextUse" }, @@ -4878,7 +4878,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionFrenzyPlant", "useText": "MoveUseTextUse" }, @@ -4899,7 +4899,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionHydroCannon", "useText": "MoveUseTextUse" }, @@ -4920,7 +4920,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionHydroPump", "useText": "MoveUseTextUse" }, @@ -4942,7 +4942,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -4963,7 +4963,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionHyperBeam", "useText": "MoveUseTextUse" }, @@ -4984,7 +4984,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSuperpower", "useText": "MoveUseTextUse" }, @@ -5005,7 +5005,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSteelWing", "useText": "MoveUseTextUse" }, @@ -5027,7 +5027,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSpitUp", "useText": "MoveUseTextUse" }, @@ -5048,7 +5048,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDynamicpunch", "useText": "MoveUseTextUse" }, @@ -5068,7 +5068,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionOneHit", "useText": "MoveUseTextUse" }, @@ -5089,7 +5089,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -5108,7 +5108,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionKnockOff", "useText": "MoveUseTextUse" }, @@ -5129,7 +5129,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -5150,7 +5150,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionHighCriticalDistance", "useText": "MoveUseTextUse" }, @@ -5169,7 +5169,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 17, + "rangeType": 17, "descriptionPointer": "MoveDescriptionBatonPass", "useText": "MoveUseTextUse" }, @@ -5190,7 +5190,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPetalDance", "useText": "MoveUseTextUse" }, @@ -5209,7 +5209,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionSplash", "useText": "MoveUseTextUse" }, @@ -5230,7 +5230,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionLowerSpeedChanceDistance", "useText": "MoveUseTextUse" }, @@ -5249,7 +5249,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionFixedDamage", "useText": "MoveUseTextUse" }, @@ -5269,7 +5269,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBellyDrum", "useText": "MoveUseTextUse" }, @@ -5289,7 +5289,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefenseTwo", "useText": "MoveUseTextUse" }, @@ -5309,7 +5309,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionLightScreen", "useText": "MoveUseTextUse" }, @@ -5330,7 +5330,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -5352,7 +5352,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -5373,7 +5373,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionBurnChance", "useText": "MoveUseTextUse" }, @@ -5394,7 +5394,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionSecretPower", "useText": "MoveUseTextUse" }, @@ -5415,7 +5415,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionConfuseChance", "useText": "MoveUseTextUse" }, @@ -5435,7 +5435,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBulkUp", "useText": "MoveUseTextUse" }, @@ -5454,7 +5454,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionImprison", "useText": "MoveUseTextUse" }, @@ -5474,7 +5474,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFeatherdance", "useText": "MoveUseTextUse" }, @@ -5493,7 +5493,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionWhirlwind", "useText": "MoveUseTextUse" }, @@ -5512,7 +5512,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 4, + "rangeType": 4, "descriptionPointer": "MoveDescriptionBeatUp", "useText": "MoveUseTextUse" }, @@ -5533,7 +5533,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionFreezeChanceRoom", "useText": "MoveUseTextUse" }, @@ -5554,7 +5554,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -5576,7 +5576,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 2, + "rangeType": 2, "descriptionPointer": "MoveDescriptionBlastBurn", "useText": "MoveUseTextUse" }, @@ -5596,7 +5596,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerAccuracy", "useText": "MoveUseTextUse" }, @@ -5615,7 +5615,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionTeeterDance", "useText": "MoveUseTextUse" }, @@ -5636,7 +5636,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerDefenseChance", "useText": "MoveUseTextUse" }, @@ -5657,7 +5657,7 @@ "criticalHitChance": 50, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionBlazeKick", "useText": "MoveUseTextUse" }, @@ -5677,7 +5677,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionPresent", "useText": "MoveUseTextUse" }, @@ -5698,7 +5698,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionEruption", "useText": "MoveUseTextUse" }, @@ -5719,7 +5719,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionSludge", "useText": "MoveUseTextUse" }, @@ -5740,7 +5740,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionSludgeBomb", "useText": "MoveUseTextUse" }, @@ -5760,7 +5760,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionParalyze", "useText": "MoveUseTextUse" }, @@ -5779,7 +5779,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionTransform", "useText": "MoveUseTextUse" }, @@ -5800,7 +5800,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionPoisonTail", "useText": "MoveUseTextUse" }, @@ -5820,7 +5820,7 @@ "criticalHitChance": 12, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionWhirlwind", "useText": "MoveUseTextUse" }, @@ -5841,7 +5841,7 @@ "criticalHitChance": 2, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -5861,7 +5861,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionCamouflage", "useText": "MoveUseTextUse" }, @@ -5882,7 +5882,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionThief", "useText": "MoveUseTextUse" }, @@ -5902,7 +5902,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionTailGlow", "useText": "MoveUseTextUse" }, @@ -5923,7 +5923,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -5944,7 +5944,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionBonemerang", "useText": "MoveUseTextUse" }, @@ -5965,7 +5965,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFireSpin", "useText": "MoveUseTextUse" }, @@ -5986,7 +5986,7 @@ "criticalHitChance": 12, "cannotHitFrozen": false, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionBurnChance", "useText": "MoveUseTextUse" }, @@ -6006,7 +6006,7 @@ "criticalHitChance": 12, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 7, + "rangeType": 7, "descriptionPointer": "MoveDescriptionPerishSong", "useText": "MoveUseTextUse" }, @@ -6025,7 +6025,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionWrap", "useText": "MoveUseTextUse" }, @@ -6044,7 +6044,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 24, + "rangeType": 24, "descriptionPointer": "MoveDescriptionSpikes", "useText": "MoveUseTextUse" }, @@ -6064,7 +6064,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 18, + "rangeType": 18, "descriptionPointer": "MoveDescriptionMagnitude", "useText": "MoveUseTextUse" }, @@ -6085,7 +6085,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNeverMiss", "useText": "MoveUseTextUse" }, @@ -6104,7 +6104,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionMagicCoat", "useText": "MoveUseTextUse" }, @@ -6125,7 +6125,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDamageLowerSpeed", "useText": "MoveUseTextUse" }, @@ -6146,7 +6146,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 13, + "rangeType": 13, "descriptionPointer": "MoveDescriptionTwoTilesAhead", "useText": "MoveUseTextUse" }, @@ -6165,7 +6165,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionProtect", "useText": "MoveUseTextUse" }, @@ -6185,7 +6185,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostDefense", "useText": "MoveUseTextUse" }, @@ -6206,7 +6206,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionCringe", "useText": "MoveUseTextUse" }, @@ -6226,7 +6226,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 30, + "rangeType": 30, "descriptionPointer": "MoveDescriptionSubstitute", "useText": "MoveUseTextUse" }, @@ -6245,7 +6245,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionProtect", "useText": "MoveUseTextUse" }, @@ -6266,7 +6266,7 @@ "criticalHitChance": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionMultiHitDistance", "useText": "MoveUseTextUse" }, @@ -6285,7 +6285,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionWaterSport", "useText": "MoveUseTextUse" }, @@ -6306,7 +6306,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -6327,7 +6327,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMistBall", "useText": "MoveUseTextUse" }, @@ -6348,7 +6348,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionWaterPulse", "useText": "MoveUseTextUse" }, @@ -6369,7 +6369,7 @@ "criticalHitChance": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -6390,7 +6390,7 @@ "criticalHitChance": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -6409,7 +6409,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDestinyBond", "useText": "MoveUseTextUse" }, @@ -6429,7 +6429,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFalseSwipe", "useText": "MoveUseTextUse" }, @@ -6448,7 +6448,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionForesight", "useText": "MoveUseTextUse" }, @@ -6467,7 +6467,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionMirrorCoat", "useText": "MoveUseTextUse" }, @@ -6486,7 +6486,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionFixedDamage", "useText": "MoveUseTextUse" }, @@ -6507,7 +6507,7 @@ "targetsUser": true, "affectedByMuzzled": true, "cannotHitFrozen": true, - "unk19": 5, + "rangeType": 5, "descriptionPointer": "MoveDescriptionMilkDrink", "useText": "MoveUseTextUse" }, @@ -6527,7 +6527,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionCalmMind", "useText": "MoveUseTextUse" }, @@ -6548,7 +6548,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDrain", "useText": "MoveUseTextUse" }, @@ -6569,7 +6569,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -6590,7 +6590,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -6611,7 +6611,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -6632,7 +6632,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHiddenPower", "useText": "MoveUseTextUse" }, @@ -6653,7 +6653,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMetalClaw", "useText": "MoveUseTextUse" }, @@ -6673,7 +6673,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionAttract", "useText": "MoveUseTextUse" }, @@ -6692,7 +6692,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMimic", "useText": "MoveUseTextUse" }, @@ -6712,7 +6712,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFrustration", "useText": "MoveUseTextUse" }, @@ -6732,7 +6732,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionLeechSeed", "useText": "MoveUseTextUse" }, @@ -6752,7 +6752,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionMetronome", "useText": "MoveUseTextUse" }, @@ -6774,7 +6774,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionDreamEater", "useText": "MoveUseTextUse" }, @@ -6795,7 +6795,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionAcid", "useText": "MoveUseTextUse" }, @@ -6815,7 +6815,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBoostAttack", "useText": "MoveUseTextUse" }, @@ -6834,7 +6834,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionSnatch", "useText": "MoveUseTextUse" }, @@ -6855,7 +6855,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerSpecialDefenseChance", "useText": "MoveUseTextUse" }, @@ -6876,7 +6876,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHighCritical", "useText": "MoveUseTextUse" }, @@ -6895,7 +6895,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 23, + "rangeType": 23, "descriptionPointer": "MoveDescriptionRecycle", "useText": "MoveUseTextUse" }, @@ -6915,7 +6915,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionReflect", "useText": "MoveUseTextUse" }, @@ -6935,7 +6935,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": false, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionRefresh", "useText": "MoveUseTextUse" }, @@ -6954,7 +6954,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionBide", "useText": "MoveUseTextUse" }, @@ -6974,7 +6974,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionDragonRage", "useText": "MoveUseTextUse" }, @@ -6996,7 +6996,7 @@ "affectedByMuzzled": true, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionDragonbreath", "useText": "MoveUseTextUse" }, @@ -7016,7 +7016,7 @@ "criticalHitChance": 12, "targetsUser": true, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionDragonDance", "useText": "MoveUseTextUse" }, @@ -7037,7 +7037,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionFreezeChanceRoom", "useText": "MoveUseTextUse" }, @@ -7058,7 +7058,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionIceBeam", "useText": "MoveUseTextUse" }, @@ -7079,7 +7079,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionHitTwice", "useText": "MoveUseTextUse" }, @@ -7100,7 +7100,7 @@ "criticalHitChance": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -7121,7 +7121,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 20, + "rangeType": 20, "descriptionPointer": "MoveDescriptionSkullBash", "useText": "MoveUseTextUse" }, @@ -7140,7 +7140,7 @@ "hitCount": 1, "criticalHitChance": 12, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionLockOn", "useText": "MoveUseTextUse" }, @@ -7161,7 +7161,7 @@ "criticalHitChance": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionMultiHit", "useText": "MoveUseTextUse" }, @@ -7181,7 +7181,7 @@ "criticalHitChance": 12, "affectedByMagicCoat": true, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionLowerSpeed", "useText": "MoveUseTextUse" }, @@ -7201,7 +7201,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionStruggle", "useText": "MoveUseTextUse" }, @@ -7222,7 +7222,7 @@ "criticalHitChance": 50, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionHighCriticalDistance", "useText": "MoveUseTextUse" }, @@ -7243,7 +7243,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionVoltTackle", "useText": "MoveUseTextUse" }, @@ -7263,7 +7263,7 @@ "unk12": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextRegularAttack" }, @@ -7284,7 +7284,7 @@ "criticalHitChance": 6, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionIsWatching", "useText": "MoveUseTextUse" }, @@ -7305,7 +7305,7 @@ "criticalHitChance": 6, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextBide" }, @@ -7326,7 +7326,7 @@ "criticalHitChance": 6, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionPlaceholder", "useText": "MoveUseTextUse" }, @@ -7347,7 +7347,7 @@ "criticalHitChance": 6, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionPlaceholder", "useText": "MoveUseTextUse" }, @@ -7368,7 +7368,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 1, + "rangeType": 1, "descriptionPointer": "MoveDescriptionWideSlash", "useText": "MoveUseTextUse" }, @@ -7388,7 +7388,7 @@ "unk12": 99, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7409,7 +7409,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 9, + "rangeType": 9, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7427,7 +7427,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7446,7 +7446,7 @@ "hitCount": 1, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7464,7 +7464,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7485,7 +7485,7 @@ "criticalHitChance": 12, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 13, + "rangeType": 13, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7503,7 +7503,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7521,7 +7521,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 14, + "rangeType": 14, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7539,7 +7539,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7557,7 +7557,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7575,7 +7575,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7593,7 +7593,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 16, + "rangeType": 16, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7611,7 +7611,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7629,7 +7629,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7647,7 +7647,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7665,7 +7665,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7683,7 +7683,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7701,7 +7701,7 @@ "useChance": 20, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7719,7 +7719,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7737,7 +7737,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7755,7 +7755,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7773,7 +7773,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7791,7 +7791,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7809,7 +7809,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7827,7 +7827,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7845,7 +7845,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7863,7 +7863,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7881,7 +7881,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 29, + "rangeType": 29, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7899,7 +7899,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 29, + "rangeType": 29, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7917,7 +7917,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 4, + "rangeType": 4, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7935,7 +7935,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7955,7 +7955,7 @@ "unk12": 99, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7973,7 +7973,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 6, + "rangeType": 6, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -7991,7 +7991,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionVacuumCut", "useText": "MoveUseTextUse" }, @@ -8009,7 +8009,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8029,7 +8029,7 @@ "unk12": 99, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8049,7 +8049,7 @@ "unk12": 99, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8067,7 +8067,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 15, + "rangeType": 15, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8085,7 +8085,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 29, + "rangeType": 29, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8103,7 +8103,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 29, + "rangeType": 29, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8121,7 +8121,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8139,7 +8139,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8157,7 +8157,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 3, + "rangeType": 3, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8175,7 +8175,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionPlaceholder", "useText": "MoveUseTextUse" }, @@ -8193,7 +8193,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionDamage", "useText": "MoveUseTextUse" }, @@ -8213,7 +8213,7 @@ "unk12": 99, "cannotHitFrozen": true, "dealsDirectDamage": true, - "unk19": 11, + "rangeType": 11, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8231,7 +8231,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8249,7 +8249,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 10, + "rangeType": 10, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8267,7 +8267,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8285,7 +8285,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" }, @@ -8303,7 +8303,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionPlaceholder", "useText": "MoveUseTextUse" }, @@ -8321,7 +8321,7 @@ "useChance": 75, "hitCount": 1, "cannotHitFrozen": true, - "unk19": 19, + "rangeType": 19, "descriptionPointer": "MoveDescriptionNull", "useText": "MoveUseTextUse" } diff --git a/include/constants/move.h b/include/constants/move.h index 1b23933..4e3396b 100644 --- a/include/constants/move.h +++ b/include/constants/move.h @@ -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. }; diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index 6a3f330..dfddc22 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -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; diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index 1d6f53d..cfc2238 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -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; diff --git a/include/item.h b/include/item.h index 5f921e4..e73bafd 100644 --- a/include/item.h +++ b/include/item.h @@ -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*); diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h index fcc9157..4a145bc 100644 --- a/include/kangaskhan_storage.h +++ b/include/kangaskhan_storage.h @@ -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 diff --git a/include/pokemon.h b/include/pokemon.h index 969c0f8..f24eb84 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -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) diff --git a/ld_script.txt b/ld_script.txt index da87473..d3c9af9 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -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); diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 9ab6fec..14b9e99 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -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; } } diff --git a/src/code_801DCC4.c b/src/code_801DCC4.c index a17b3b9..5a42567 100644 --- a/src/code_801DCC4.c +++ b/src/code_801DCC4.c @@ -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: diff --git a/src/code_8057824.c b/src/code_8057824.c index 9d0e673..7f02fd5 100644 --- a/src/code_8057824.c +++ b/src/code_8057824.c @@ -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 diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 3cd9c84..e6d09cd 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -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: diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 33cbded..6856d5f 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -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; + } +} + diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index d5ebc6b..8dfa0d9 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -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; diff --git a/src/gulpin_shop_1.c b/src/gulpin_shop_1.c index 2eadcfe..e9468a8 100644 --- a/src/gulpin_shop_1.c +++ b/src/gulpin_shop_1.c @@ -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); diff --git a/src/hints_menu.c b/src/hints_menu.c new file mode 100644 index 0000000..15c1936 --- /dev/null +++ b/src/hints_menu.c @@ -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); +} diff --git a/src/items.c b/src/items.c index 0d41510..86174b9 100644 --- a/src/items.c +++ b/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); } diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c index 007aea6..3c5099d 100644 --- a/src/kangaskhan_storage_2.c +++ b/src/kangaskhan_storage_2.c @@ -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); diff --git a/src/kangaskhan_storage_3.c b/src/kangaskhan_storage_3.c index e5382c3..f1ce8ce 100644 --- a/src/kangaskhan_storage_3.c +++ b/src/kangaskhan_storage_3.c @@ -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()) diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index 610fd4f..89cd19f 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -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); diff --git a/src/moves.c b/src/moves.c new file mode 100644 index 0000000..0f59f0b --- /dev/null +++ b/src/moves.c @@ -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)]); +} diff --git a/src/moves_1.c b/src/moves_1.c new file mode 100644 index 0000000..db84d41 --- /dev/null +++ b/src/moves_1.c @@ -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; +} diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 6429755..94387b2 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -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; diff --git a/tools/dungeonjson/dungeonjson.cpp b/tools/dungeonjson/dungeonjson.cpp index 5d73dfb..48ef147 100644 --- a/tools/dungeonjson/dungeonjson.cpp +++ b/tools/dungeonjson/dungeonjson.cpp @@ -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); |