diff options
107 files changed, 8295 insertions, 11695 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 9fb4de49..adf49127 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -366,7 +366,7 @@ SECTIONS { unk_0206ABC4.o (.text) unk_0206B16C.o (.text) unk_0206B688.o (.text) - unk_0206B8A4.o (.text) + party.o (.text) unk_0206BB28.o (.text) unk_0206BB5C.o (.text) unk_0206BF90.o (.text) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index dfb38bb4..261c41d5 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -246,7 +246,7 @@ Static arm9 Object unk_0206ABC4.o Object unk_0206B16C.o Object unk_0206B688.o - Object unk_0206B8A4.o + Object party.o Object unk_0206BB28.o Object unk_0206BB5C.o Object unk_0206BF90.o diff --git a/arm9/asm/unk_0206B8A4.s b/arm9/asm/party.s index 6938e252..de141e25 100644 --- a/arm9/asm/unk_0206B8A4.s +++ b/arm9/asm/party.s @@ -153,13 +153,13 @@ _0206B992: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0206B9AC -FUN_0206B9AC: ; 0x0206B9AC + thumb_func_start GetPartyCount +GetPartyCount: ; 0x0206B9AC ldr r0, [r0, #0x4] bx lr - thumb_func_start FUN_0206B9B0 -FUN_0206B9B0: ; 0x0206B9B0 + thumb_func_start GetPartyMonByIndex +GetPartyMonByIndex: ; 0x0206B9B0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 @@ -211,12 +211,12 @@ _0206BA00: add r0, r4, #0x0 mov r1, #0xab mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0xab mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData sub r2, r7, r0 mov r3, #0x1d _0206BA24: @@ -325,8 +325,8 @@ _0206BAD8: pop {r3-r4} bx lr - thumb_func_start FUN_0206BAE4 -FUN_0206BAE4: ; 0x0206BAE4 + thumb_func_start PartyHasMon +PartyHasMon: ; 0x0206BAE4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x4] @@ -340,7 +340,7 @@ _0206BAF6: add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 beq _0206BB0E ldr r0, [r6, #0x4] diff --git a/arm9/asm/pokemon.s b/arm9/asm/pokemon.s deleted file mode 100644 index 3bfbd197..00000000 --- a/arm9/asm/pokemon.s +++ /dev/null @@ -1,9049 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .include "constants/species.h" - - .extern gGameLanguage - .extern gGameVersion - - .section .rodata - - .global sItemOdds -sItemOdds: ; 0x020F7ECC - .short 0x002D, 0x005F - .short 0x0014, 0x0050 - - .global sFriendshipModTable -sFriendshipModTable: ; 0x020F7ED4 - .byte 5, 3, 2 - .byte 5, 3, 2 - .byte 1, 1, 0 - .byte 3, 2, 1 - .byte 1, 1, 0 - .byte 1, 1, 1 - .byte -1, -1, -1 - .byte -5, -5, -10 - .byte -5, -5, -10 - .byte 3, 2, 1 - - .global sLegendaryMonsList -sLegendaryMonsList: ; 0x020F7EF2 - .short SPECIES_MEWTWO - .short SPECIES_MEW - .short SPECIES_HO_OH - .short SPECIES_LUGIA - .short SPECIES_CELEBI - .short SPECIES_KYOGRE - .short SPECIES_GROUDON - .short SPECIES_RAYQUAZA - .short SPECIES_JIRACHI - .short SPECIES_DEOXYS - .short SPECIES_DIALGA - .short SPECIES_PALKIA - .short SPECIES_GIRATINA - .short SPECIES_PHIONE - .short SPECIES_MANAPHY - .short SPECIES_DARKRAI - .short SPECIES_SHAYMIN - .short SPECIES_ARCEUS - - .global UNK_020F7F16 -UNK_020F7F16: ; 0x020F7F16 - .byte 0, 0, 0, 0, 0 - .byte 1, 0, 0, 0, -1 - .byte 1, 0, -1, 0, 0 - .byte 1, -1, 0, 0, 0 - .byte 1, 0, 0, -1, 0 - .byte -1, 0, 0, 0, 1 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, -1, 0, 1 - .byte 0, -1, 0, 0, 1 - .byte 0, 0, 0, -1, 1 - .byte -1, 0, 1, 0, 0 - .byte 0, 0, 1, 0, -1 - .byte 0, 0, 0, 0, 0 - .byte 0, -1, 1, 0, 0 - .byte 0, 0, 1, -1, 0 - .byte -1, 1, 0, 0, 0 - .byte 0, 1, 0, 0, -1 - .byte 0, 1, -1, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 1, 0, -1, 0 - .byte -1, 0, 0, 1, 0 - .byte 0, 0, 0, 1, -1 - .byte 0, 0, -1, 1, 0 - .byte 0, -1, 0, 1, 0 - .byte 0, 0, 0, 0, 0 - - .global sNatureStatMods -sNatureStatMods: ; 0x020F7F93 - .byte 0, 0, 0, 0, 0 - .byte 1, -1, 0, 0, 0 - .byte 1, 0, -1, 0, 0 - .byte 1, 0, 0, -1, 0 - .byte 1, 0, 0, 0, -1 - .byte -1, 1, 0, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 1, -1, 0, 0 - .byte 0, 1, 0, -1, 0 - .byte 0, 1, 0, 0, -1 - .byte -1, 0, 1, 0, 0 - .byte 0, -1, 1, 0, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, 1, -1, 0 - .byte 0, 0, 1, 0, -1 - .byte -1, 0, 0, 1, 0 - .byte 0, -1, 0, 1, 0 - .byte 0, 0, -1, 1, 0 - .byte 0, 0, 0, 0, 0 - .byte 0, 0, 0, 1, -1 - .byte -1, 0, 0, 0, 1 - .byte 0, -1, 0, 0, 1 - .byte 0, 0, -1, 0, 1 - .byte 0, 0, 0, -1, 1 - .byte 0, 0, 0, 0, 0 - - .section .data - - .global __local_str_poketool_personal_pms_narc -__local_str_poketool_personal_pms_narc: ; 0x02105FC8 - .asciz "poketool/personal/pms.narc" - - .section .bss - - .global UNK_021C5AC0 -UNK_021C5AC0: ; 0x021C5AC0 - .space 0x194 - - .text - - thumb_func_start ZeroMonData -ZeroMonData: ; 0x02066978 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0xec - bl MIi_CpuClearFast - add r0, r4, #0x0 - ldrh r2, [r4, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - add r0, r4, #0x0 - ldr r2, [r4, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - pop {r4, pc} - - thumb_func_start WipeBoxMonDataAndEncrypt -WipeBoxMonDataAndEncrypt: ; 0x020669A0 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r4, #0x0 - mov r2, #0x88 - bl MIi_CpuClearFast - add r0, r4, #0x0 - ldrh r2, [r4, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - pop {r4, pc} - - thumb_func_start SizeOfStructPokemon -SizeOfStructPokemon: ; 0x020669BC - mov r0, #0xec - bx lr - - thumb_func_start AllocMonZeroed -AllocMonZeroed: ; 0x020669C0 - push {r4, lr} - mov r1, #0xec - bl AllocFromHeap - add r4, r0, #0x0 - bl ZeroMonData - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start TryDecryptMon -TryDecryptMon: ; 0x020669D4 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - mov r4, #0x0 - lsl r1, r0, #0x1f - lsr r1, r1, #0x1f - bne _02066A1A - lsl r0, r0, #0x1e - mov r4, #0x1 - lsr r0, r0, #0x1f - beq _020669EE - bl ErrorHandling -_020669EE: - ldrh r1, [r5, #0x4] - mov r0, #0x1 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strh r0, [r5, #0x4] - ldrh r1, [r5, #0x4] - mov r0, #0x2 - orr r0, r1 - strh r0, [r5, #0x4] - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonDecryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment -_02066A1A: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start TryEncryptMon -TryEncryptMon: ; 0x02066A20 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrh r2, [r5, #0x4] - mov r4, #0x0 - lsl r0, r2, #0x1f - lsr r0, r0, #0x1f - cmp r0, #0x1 - bne _02066A68 - cmp r1, #0x1 - bne _02066A68 - mov r0, #0x1 - bic r2, r0 - strh r2, [r5, #0x4] - ldrh r1, [r5, #0x4] - mov r0, #0x2 - mov r4, #0x1 - bic r1, r0 - strh r1, [r5, #0x4] - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_02066A68: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start TryDecryptBoxMon -TryDecryptBoxMon: ; 0x02066A6C - push {r4, lr} - add r2, r0, #0x0 - ldrh r1, [r2, #0x4] - mov r4, #0x0 - lsl r0, r1, #0x1e - lsr r0, r0, #0x1f - bne _02066A8E - mov r0, #0x2 - orr r0, r1 - strh r0, [r2, #0x4] - add r0, r2, #0x0 - ldrh r2, [r2, #0x6] - add r0, #0x8 - mov r1, #0x80 - mov r4, #0x1 - bl MonDecryptSegment -_02066A8E: - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start TryEncryptBoxMon -TryEncryptBoxMon: ; 0x02066A94 - push {r3-r5, lr} - add r5, r0, #0x0 - ldrh r2, [r5, #0x4] - mov r4, #0x0 - lsl r0, r2, #0x1e - lsr r0, r0, #0x1f - cmp r0, #0x1 - bne _02066AC8 - cmp r1, #0x1 - bne _02066AC8 - mov r0, #0x2 - bic r2, r0 - add r0, r5, #0x0 - strh r2, [r5, #0x4] - add r0, #0x8 - mov r1, #0x80 - mov r4, #0x1 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_02066AC8: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start CreateMon -CreateMon: ; 0x02066ACC - push {r0-r3} - push {r3-r6, lr} - sub sp, #0x2c - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r3, #0x0 - bl ZeroMonData - ldr r0, [sp, #0x50] - add r1, r4, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x54] - add r3, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [sp, #0x58] - str r0, [sp, #0x8] - ldr r0, [sp, #0x5c] - str r0, [sp, #0xc] - ldr r2, [sp, #0x48] - add r0, r5, #0x0 - bl CreateBoxMon - add r0, r5, #0x0 - add r0, #0x88 - mov r1, #0x64 - mov r2, #0x0 - bl MonEncryptSegment - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - add r0, r5, #0x0 - mov r1, #0xa0 - add r2, sp, #0x48 - bl SetMonDataEncrypted - mov r0, #0x0 - bl FUN_020256BC - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xa9 - add r2, r4, #0x0 - bl SetMonDataEncrypted - add r0, r4, #0x0 - bl FreeToHeap - mov r0, #0x0 - str r0, [sp, #0x10] - add r0, r5, #0x0 - mov r1, #0xa1 - add r2, sp, #0x10 - bl SetMonDataEncrypted - mov r0, #0x0 - add r1, sp, #0x14 - mov r2, #0x18 - bl MIi_CpuClearFast - add r0, r5, #0x0 - mov r1, #0xaa - add r2, sp, #0x14 - bl SetMonDataEncrypted - add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats - add sp, #0x2c - pop {r3-r6} - pop {r3} - add sp, #0x10 - bx r3 - - thumb_func_start CreateBoxMon -CreateBoxMon: ; 0x02066B64 - push {r0-r3} - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - bl WipeBoxMonDataAndEncrypt - add r0, r5, #0x0 - bl TryDecryptBoxMon - str r0, [sp, #0x0] - ldr r0, [sp, #0x30] - cmp r0, #0x0 - bne _02066B8E - bl rand_LC - add r4, r0, #0x0 - bl rand_LC - lsl r0, r0, #0x10 - orr r0, r4 - str r0, [sp, #0x34] -_02066B8E: - add r0, r5, #0x0 - mov r1, #0x0 - add r2, sp, #0x34 - bl SetBoxMonDataEncrypted - ldr r0, [sp, #0x38] - cmp r0, #0x2 - bne _02066BD6 - ldr r7, _02066D84 ; =0xFFFF0000 - add r6, r7, #0x0 -_02066BA2: - bl rand_LC - add r4, r0, #0x0 - bl rand_LC - ldr r1, [sp, #0x34] - lsl r0, r0, #0x10 - add r3, r4, #0x0 - orr r3, r0 - lsl r0, r1, #0x10 - lsr r2, r0, #0x10 - add r0, r1, #0x0 - and r0, r7 - lsr r1, r0, #0x10 - add r0, r3, #0x0 - str r3, [sp, #0x3c] - and r0, r6 - lsl r3, r3, #0x10 - lsr r0, r0, #0x10 - lsr r3, r3, #0x10 - eor r0, r3 - eor r0, r1 - eor r0, r2 - cmp r0, #0x8 - blo _02066BA2 - b _02066BDE -_02066BD6: - cmp r0, #0x1 - beq _02066BDE - mov r0, #0x0 - str r0, [sp, #0x3c] -_02066BDE: - add r0, r5, #0x0 - mov r1, #0x7 - add r2, sp, #0x3c - bl SetBoxMonDataEncrypted - ldr r2, _02066D88 ; =gGameLanguage - add r0, r5, #0x0 - mov r1, #0xc - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x5 - add r2, sp, #0x24 - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0xb2 - mov r2, #0x0 - bl SetBoxMonDataEncrypted - ldr r0, [sp, #0x24] - ldr r1, [sp, #0x28] - bl GetMonExpByLevel - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x8 - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted - ldr r0, [sp, #0x24] - mov r1, #0x14 - bl GetMonBaseStat - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x9 - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x9b - add r2, sp, #0x28 - bl SetBoxMonDataEncrypted - ldr r2, _02066D8C ; =gGameVersion - add r0, r5, #0x0 - mov r1, #0x79 - bl SetBoxMonDataEncrypted - mov r0, #0x4 - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x9a - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted - ldr r0, [sp, #0x2c] - cmp r0, #0x20 - bge _02066C94 - add r0, r5, #0x0 - mov r1, #0x46 - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x47 - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x48 - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x49 - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x4a - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x4b - add r2, sp, #0x2c - bl SetBoxMonDataEncrypted - b _02066D18 -_02066C94: - bl rand_LC - mov r1, #0x1f - str r0, [sp, #0x8] - and r0, r1 - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x46 - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - mov r0, #0x3e - ldr r1, [sp, #0x8] - lsl r0, r0, #0x4 - and r0, r1 - lsr r0, r0, #0x5 - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x47 - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - mov r0, #0x1f - ldr r1, [sp, #0x8] - lsl r0, r0, #0xa - and r0, r1 - lsr r0, r0, #0xa - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x48 - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - bl rand_LC - mov r1, #0x1f - str r0, [sp, #0x8] - and r0, r1 - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x49 - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - mov r0, #0x3e - ldr r1, [sp, #0x8] - lsl r0, r0, #0x4 - and r0, r1 - lsr r0, r0, #0x5 - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x4a - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - mov r0, #0x1f - ldr r1, [sp, #0x8] - lsl r0, r0, #0xa - and r0, r1 - lsr r0, r0, #0xa - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x4b - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted -_02066D18: - ldr r0, [sp, #0x24] - mov r1, #0x18 - bl GetMonBaseStat - str r0, [sp, #0x8] - ldr r0, [sp, #0x24] - mov r1, #0x19 - bl GetMonBaseStat - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02066D50 - ldr r1, [sp, #0x34] - mov r0, #0x1 - tst r0, r1 - beq _02066D44 - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - b _02066D5A -_02066D44: - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted - b _02066D5A -_02066D50: - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted -_02066D5A: - add r0, r5, #0x0 - bl GetBoxMonGenderEncrypted - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x6f - add r2, sp, #0x8 - bl SetBoxMonDataEncrypted - add r0, r5, #0x0 - bl InitBoxMonMoveset - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl TryEncryptBoxMon - add sp, #0xc - pop {r4-r7} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 -_02066D84: .word 0xFFFF0000 -_02066D88: .word gGameLanguage -_02066D8C: .word gGameVersion - - thumb_func_start CreateMonWithNature -CreateMonWithNature: ; 0x02066D90 - push {r3-r7, lr} - sub sp, #0x18 - str r2, [sp, #0x10] - str r3, [sp, #0x14] - ldr r4, [sp, #0x30] - add r6, r0, #0x0 - add r7, r1, #0x0 -_02066D9E: - bl rand_LC - add r5, r0, #0x0 - bl rand_LC - lsl r0, r0, #0x10 - orr r5, r0 - add r0, r5, #0x0 - bl GetNatureFromPersonality - cmp r4, r0 - bne _02066D9E - mov r0, #0x1 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - mov r0, #0x0 - str r0, [sp, #0x8] - str r0, [sp, #0xc] - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x14] - add r0, r6, #0x0 - add r1, r7, #0x0 - bl CreateMon - add sp, #0x18 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start CreateMonWithNatureGenderLetter -CreateMonWithNatureGenderLetter: ; 0x02066DD4 - push {r4-r7, lr} - sub sp, #0x24 - str r1, [sp, #0x14] - str r2, [sp, #0x18] - str r3, [sp, #0x1c] - str r0, [sp, #0x10] - add r0, sp, #0x28 - ldrb r0, [r0, #0x18] - ldr r6, [sp, #0x38] - ldr r7, [sp, #0x3c] - cmp r0, #0x0 - beq _02066E4C - cmp r0, #0x1d - bhs _02066E4C - sub r0, r0, #0x1 - str r0, [sp, #0x20] -_02066DF4: - bl rand_LC - add r4, r0, #0x0 - bl rand_LC - lsl r0, r0, #0x10 - orr r4, r0 - mov r3, #0x3 - lsl r3, r3, #0x10 - and r3, r4 - mov r0, #0x3 - add r2, r4, #0x0 - and r2, r0 - lsl r0, r0, #0x8 - and r0, r4 - lsr r1, r0, #0x6 - mov r0, #0x3 - lsl r0, r0, #0x18 - and r0, r4 - lsr r0, r0, #0x12 - lsr r3, r3, #0xc - orr r0, r3 - orr r0, r1 - orr r0, r2 - mov r1, #0x1c - bl _u32_div_f - lsl r0, r1, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0x0 - bl GetNatureFromPersonality - cmp r7, r0 - bne _02066DF4 - ldr r0, [sp, #0x14] - add r1, r4, #0x0 - bl GetGenderBySpeciesAndPersonality - cmp r6, r0 - bne _02066DF4 - ldr r0, [sp, #0x20] - cmp r5, r0 - bne _02066DF4 - b _02066E58 -_02066E4C: - ldr r0, [sp, #0x14] - add r1, r6, #0x0 - add r2, r7, #0x0 - bl FUN_02066E74 - add r4, r0, #0x0 -_02066E58: - mov r0, #0x1 - str r0, [sp, #0x0] - str r4, [sp, #0x4] - mov r0, #0x0 - str r0, [sp, #0x8] - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - bl CreateMon - add sp, #0x24 - pop {r4-r7, pc} - - thumb_func_start FUN_02066E74 -FUN_02066E74: ; 0x02066E74 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0x12 - add r4, r2, #0x0 - bl GetMonBaseStat - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - beq _02066EA0 - cmp r0, #0xfe - beq _02066EA0 - cmp r0, #0xff - beq _02066EA0 - cmp r5, #0x0 - bne _02066EA0 - mov r1, #0x19 - bl _s32_div_f - add r1, r0, #0x1 - mov r0, #0x19 - mul r0, r1 - add r4, r0, r4 -_02066EA0: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02066EA4 -FUN_02066EA4: ; 0x02066EA4 - push {r0-r3} - push {r4, lr} - sub sp, #0x10 - mov r3, #0x1 - str r3, [sp, #0x0] - ldr r3, [sp, #0x28] - add r4, r0, #0x0 - str r3, [sp, #0x4] - mov r3, #0x0 - str r3, [sp, #0x8] - str r3, [sp, #0xc] - bl CreateMon - add r0, r4, #0x0 - mov r1, #0xae - add r2, sp, #0x24 - bl SetMonDataEncrypted - add r0, r4, #0x0 - bl UpdateMonLevelAndRecalcStats - add sp, #0x10 - pop {r4} - pop {r3} - add sp, #0x10 - bx r3 - - thumb_func_start UpdateMonLevelAndRecalcStats -UpdateMonLevelAndRecalcStats: ; 0x02066ED8 - push {r3-r5, lr} - add r5, r0, #0x0 - bl TryDecryptMon - add r4, r0, #0x0 - add r0, r5, #0x0 - bl CalcMonLevelEncrypted - str r0, [sp, #0x0] - add r0, r5, #0x0 - mov r1, #0xa0 - add r2, sp, #0x0 - bl SetMonDataEncrypted - add r0, r5, #0x0 - bl CalcMonStatsMaybeEncrypted - add r0, r5, #0x0 - add r1, r4, #0x0 - bl TryEncryptMon - pop {r3-r5, pc} - - thumb_func_start CalcMonStatsMaybeEncrypted -CalcMonStatsMaybeEncrypted: ; 0x02066F04 - push {r3-r7, lr} - sub sp, #0x58 - add r5, r0, #0x0 - bl TryDecryptMon - str r0, [sp, #0x0] - add r0, r5, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xa3 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x2c] - add r0, r5, #0x0 - mov r1, #0xa2 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x54] - add r0, r5, #0x0 - mov r1, #0x46 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x30] - add r0, r5, #0x0 - mov r1, #0xd - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x34] - add r0, r5, #0x0 - mov r1, #0x47 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x28] - add r0, r5, #0x0 - mov r1, #0xe - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x14] - add r0, r5, #0x0 - mov r1, #0x48 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x24] - add r0, r5, #0x0 - mov r1, #0xf - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x10] - add r0, r5, #0x0 - mov r1, #0x49 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x20] - add r0, r5, #0x0 - mov r1, #0x10 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0xc] - add r0, r5, #0x0 - mov r1, #0x4a - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x1c] - add r0, r5, #0x0 - mov r1, #0x11 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x4b - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x18] - add r0, r5, #0x0 - mov r1, #0x12 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x38] - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - add r7, r0, #0x0 - mov r0, #0x0 - mov r1, #0x2c - bl AllocFromHeap - add r6, r0, #0x0 - ldr r1, [sp, #0x38] - add r0, r7, #0x0 - add r2, r6, #0x0 - bl LoadMonBaseStats_HandleAlternateForme - mov r0, #0x49 - lsl r0, r0, #0x2 - cmp r7, r0 - bne _02066FFC - mov r0, #0x1 - b _0206701E -_02066FFC: - ldr r0, [sp, #0x34] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0x34] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x0] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x30] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r4, r0 - add r0, #0xa -_0206701E: - str r0, [sp, #0x50] - add r0, r5, #0x0 - mov r1, #0xa3 - add r2, sp, #0x50 - bl SetMonDataEncrypted - ldr r0, [sp, #0x14] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0x14] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x1] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x28] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r0, #0x5 - str r0, [sp, #0x4c] - add r0, r5, #0x0 - bl GetMonNatureEncrypted - ldr r1, [sp, #0x4c] - mov r2, #0x1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl ApplyNatureModToStat - str r0, [sp, #0x4c] - add r0, r5, #0x0 - mov r1, #0xa4 - add r2, sp, #0x4c - bl SetMonDataEncrypted - ldr r0, [sp, #0x10] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0x10] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x2] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x24] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r0, #0x5 - str r0, [sp, #0x48] - add r0, r5, #0x0 - bl GetMonNatureEncrypted - ldr r1, [sp, #0x48] - mov r2, #0x2 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl ApplyNatureModToStat - str r0, [sp, #0x48] - add r0, r5, #0x0 - mov r1, #0xa5 - add r2, sp, #0x48 - bl SetMonDataEncrypted - ldr r0, [sp, #0xc] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0xc] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x3] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x20] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r0, #0x5 - str r0, [sp, #0x44] - add r0, r5, #0x0 - bl GetMonNatureEncrypted - ldr r1, [sp, #0x44] - mov r2, #0x3 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl ApplyNatureModToStat - str r0, [sp, #0x44] - add r0, r5, #0x0 - mov r1, #0xa6 - add r2, sp, #0x44 - bl SetMonDataEncrypted - ldr r0, [sp, #0x8] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0x8] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x4] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x1c] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r0, #0x5 - str r0, [sp, #0x40] - add r0, r5, #0x0 - bl GetMonNatureEncrypted - ldr r1, [sp, #0x40] - mov r2, #0x4 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl ApplyNatureModToStat - str r0, [sp, #0x40] - add r0, r5, #0x0 - mov r1, #0xa7 - add r2, sp, #0x40 - bl SetMonDataEncrypted - ldr r0, [sp, #0x4] - asr r0, r0, #0x1 - lsr r1, r0, #0x1e - ldr r0, [sp, #0x4] - add r1, r0, r1 - asr r0, r1, #0x2 - ldrb r1, [r6, #0x5] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x18] - add r1, r1, r2 - add r0, r0, r1 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - add r0, r0, #0x5 - str r0, [sp, #0x3c] - add r0, r5, #0x0 - bl GetMonNatureEncrypted - ldr r1, [sp, #0x3c] - mov r2, #0x5 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - bl ApplyNatureModToStat - str r0, [sp, #0x3c] - add r0, r5, #0x0 - mov r1, #0xa8 - add r2, sp, #0x3c - bl SetMonDataEncrypted - add r0, r6, #0x0 - bl FreeToHeap - ldr r1, [sp, #0x54] - cmp r1, #0x0 - bne _0206717C - ldr r0, [sp, #0x2c] - cmp r0, #0x0 - bne _020671A0 -_0206717C: - mov r0, #0x49 - lsl r0, r0, #0x2 - cmp r7, r0 - bne _0206718A - mov r0, #0x1 - str r0, [sp, #0x54] - b _020671A0 -_0206718A: - cmp r1, #0x0 - bne _02067194 - ldr r0, [sp, #0x50] - str r0, [sp, #0x54] - b _020671A0 -_02067194: - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x54] - sub r0, r1, r0 - add r0, r2, r0 - str r0, [sp, #0x54] -_020671A0: - ldr r0, [sp, #0x54] - cmp r0, #0x0 - beq _020671B0 - add r0, r5, #0x0 - mov r1, #0xa2 - add r2, sp, #0x54 - bl SetMonDataEncrypted -_020671B0: - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl TryEncryptMon - add sp, #0x58 - pop {r3-r7, pc} - - thumb_func_start GetMonDataEncrypted -GetMonDataEncrypted: ; 0x020671BC - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _02067204 - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonDecryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - ldrh r1, [r5, #0x6] - cmp r0, r1 - beq _02067204 - cmp r0, r1 - beq _020671FC - bl ErrorHandling -_020671FC: - ldrh r1, [r5, #0x4] - mov r0, #0x4 - orr r0, r1 - strh r0, [r5, #0x4] -_02067204: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl GetMonData - add r4, r0, #0x0 - ldrh r0, [r5, #0x4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _02067230 - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_02067230: - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start GetMonData -GetMonData: ; 0x02067234 - push {r3, lr} - add r3, r1, #0x0 - sub r3, #0x9f - cmp r3, #0xb - bhi _020672B6 - add r3, r3, r3 - add r3, pc - ldrh r3, [r3, #0x6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_0206724A: ; jump table (using 16-bit offset) - .short _02067262 - _0206724A - 2; case 0 - .short _02067268 - _0206724A - 2; case 1 - .short _0206726E - _0206724A - 2; case 2 - .short _02067274 - _0206724A - 2; case 3 - .short _0206727A - _0206724A - 2; case 4 - .short _02067280 - _0206724A - 2; case 5 - .short _02067286 - _0206724A - 2; case 6 - .short _0206728C - _0206724A - 2; case 7 - .short _02067292 - _0206724A - 2; case 8 - .short _02067298 - _0206724A - 2; case 9 - .short _0206729E - _0206724A - 2; case 10 - .short _020672AA - _0206724A - 2; case 11 -_02067262: - add r0, #0x88 - ldr r0, [r0, #0x0] - pop {r3, pc} -_02067268: - add r0, #0x8c - ldrb r0, [r0, #0x0] - pop {r3, pc} -_0206726E: - add r0, #0x8d - ldrb r0, [r0, #0x0] - pop {r3, pc} -_02067274: - add r0, #0x8e - ldrh r0, [r0, #0x0] - pop {r3, pc} -_0206727A: - add r0, #0x90 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_02067280: - add r0, #0x92 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_02067286: - add r0, #0x94 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_0206728C: - add r0, #0x96 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_02067292: - add r0, #0x98 - ldrh r0, [r0, #0x0] - pop {r3, pc} -_02067298: - add r0, #0x9a - ldrh r0, [r0, #0x0] - pop {r3, pc} -_0206729E: - add r0, #0x9c - add r1, r2, #0x0 - bl FUN_020256D0 - mov r0, #0x1 - pop {r3, pc} -_020672AA: - add r0, #0xd4 - add r1, r2, #0x0 - bl FUN_02029C74 - mov r0, #0x1 - pop {r3, pc} -_020672B6: - bl GetBoxMonData - pop {r3, pc} - - thumb_func_start GetBoxMonDataEncrypted -GetBoxMonDataEncrypted: ; 0x020672BC - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bne _020672F8 - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - ldrh r1, [r5, #0x6] - cmp r0, r1 - beq _020672F8 - cmp r0, r1 - beq _020672F0 - bl ErrorHandling -_020672F0: - ldrh r1, [r5, #0x4] - mov r0, #0x4 - orr r0, r1 - strh r0, [r5, #0x4] -_020672F8: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl GetBoxMonData - add r4, r0, #0x0 - ldrh r0, [r5, #0x4] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bne _02067318 - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_02067318: - add r0, r4, #0x0 - pop {r4-r6, pc} - - thumb_func_start GetBoxMonData -GetBoxMonData: ; 0x0206731C - push {r4-r7, lr} - sub sp, #0xc - str r1, [sp, #0x4] - add r1, r0, #0x0 - mov r4, #0x0 - str r2, [sp, #0x8] - ldr r1, [r1, #0x0] - str r0, [sp, #0x0] - add r2, r4, #0x0 - bl GetSubstruct - add r5, r0, #0x0 - - ldr r0, [sp, #0x0] - mov r2, #0x1 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r6, r0, #0x0 - - ldr r0, [sp, #0x0] - mov r2, #0x2 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r7, r0, #0x0 - - ldr r0, [sp, #0x0] - mov r2, #0x3 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r1, r0, #0x0 - - ldr r0, [sp, #0x4] - cmp r0, #0xb2 - bls _02067366 - b _020674D8 -_02067366: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02067372: ; jump table (using 16-bit offset) - .short _020674DC - _02067372 - 2; case 0 - .short _020674E2 - _02067372 - 2; case 1 - .short _020674EC - _02067372 - 2; case 2 - .short _020674F6 - _02067372 - 2; case 3 - .short _02067500 - _02067372 - 2; case 4 - .short _0206754C - _02067372 - 2; case 5 - .short _0206755E - _02067372 - 2; case 6 - .short _02067562 - _02067372 - 2; case 7 - .short _02067566 - _02067372 - 2; case 8 - .short _0206756A - _02067372 - 2; case 9 - .short _0206756E - _02067372 - 2; case 10 - .short _02067572 - _02067372 - 2; case 11 - .short _02067576 - _02067372 - 2; case 12 - .short _0206757A - _02067372 - 2; case 13 - .short _0206757E - _02067372 - 2; case 14 - .short _02067582 - _02067372 - 2; case 15 - .short _02067586 - _02067372 - 2; case 16 - .short _0206758A - _02067372 - 2; case 17 - .short _0206758E - _02067372 - 2; case 18 - .short _02067592 - _02067372 - 2; case 19 - .short _02067596 - _02067372 - 2; case 20 - .short _0206759A - _02067372 - 2; case 21 - .short _0206759E - _02067372 - 2; case 22 - .short _020675A2 - _02067372 - 2; case 23 - .short _020675A6 - _02067372 - 2; case 24 - .short _020675AA - _02067372 - 2; case 25 - .short _020675AA - _02067372 - 2; case 26 - .short _020675AA - _02067372 - 2; case 27 - .short _020675AA - _02067372 - 2; case 28 - .short _020675AA - _02067372 - 2; case 29 - .short _020675AA - _02067372 - 2; case 30 - .short _020675AA - _02067372 - 2; case 31 - .short _020675AA - _02067372 - 2; case 32 - .short _020675AA - _02067372 - 2; case 33 - .short _020675AA - _02067372 - 2; case 34 - .short _020675AA - _02067372 - 2; case 35 - .short _020675AA - _02067372 - 2; case 36 - .short _020675AA - _02067372 - 2; case 37 - .short _020675AA - _02067372 - 2; case 38 - .short _020675AA - _02067372 - 2; case 39 - .short _020675AA - _02067372 - 2; case 40 - .short _020675AA - _02067372 - 2; case 41 - .short _020675AA - _02067372 - 2; case 42 - .short _020675AA - _02067372 - 2; case 43 - .short _020675AA - _02067372 - 2; case 44 - .short _020675AA - _02067372 - 2; case 45 - .short _020675AA - _02067372 - 2; case 46 - .short _020675AA - _02067372 - 2; case 47 - .short _020675AA - _02067372 - 2; case 48 - .short _020675AA - _02067372 - 2; case 49 - .short _020675AA - _02067372 - 2; case 50 - .short _020675AA - _02067372 - 2; case 51 - .short _020675AA - _02067372 - 2; case 52 - .short _020675AA - _02067372 - 2; case 53 - .short _020675D0 - _02067372 - 2; case 54 - .short _020675D0 - _02067372 - 2; case 55 - .short _020675D0 - _02067372 - 2; case 56 - .short _020675D0 - _02067372 - 2; case 57 - .short _020675DC - _02067372 - 2; case 58 - .short _020675DC - _02067372 - 2; case 59 - .short _020675DC - _02067372 - 2; case 60 - .short _020675DC - _02067372 - 2; case 61 - .short _020675E8 - _02067372 - 2; case 62 - .short _020675E8 - _02067372 - 2; case 63 - .short _020675E8 - _02067372 - 2; case 64 - .short _020675E8 - _02067372 - 2; case 65 - .short _020675F4 - _02067372 - 2; case 66 - .short _020675F4 - _02067372 - 2; case 67 - .short _020675F4 - _02067372 - 2; case 68 - .short _020675F4 - _02067372 - 2; case 69 - .short _0206760C - _02067372 - 2; case 70 - .short _02067614 - _02067372 - 2; case 71 - .short _0206761C - _02067372 - 2; case 72 - .short _02067624 - _02067372 - 2; case 73 - .short _0206762C - _02067372 - 2; case 74 - .short _02067634 - _02067372 - 2; case 75 - .short _0206763C - _02067372 - 2; case 76 - .short _0206764E - _02067372 - 2; case 77 - .short _02067654 - _02067372 - 2; case 78 - .short _02067654 - _02067372 - 2; case 79 - .short _02067654 - _02067372 - 2; case 80 - .short _02067654 - _02067372 - 2; case 81 - .short _02067654 - _02067372 - 2; case 82 - .short _02067654 - _02067372 - 2; case 83 - .short _02067654 - _02067372 - 2; case 84 - .short _02067654 - _02067372 - 2; case 85 - .short _02067654 - _02067372 - 2; case 86 - .short _02067654 - _02067372 - 2; case 87 - .short _02067654 - _02067372 - 2; case 88 - .short _02067654 - _02067372 - 2; case 89 - .short _02067654 - _02067372 - 2; case 90 - .short _02067654 - _02067372 - 2; case 91 - .short _02067654 - _02067372 - 2; case 92 - .short _02067654 - _02067372 - 2; case 93 - .short _02067654 - _02067372 - 2; case 94 - .short _02067654 - _02067372 - 2; case 95 - .short _02067654 - _02067372 - 2; case 96 - .short _02067654 - _02067372 - 2; case 97 - .short _02067654 - _02067372 - 2; case 98 - .short _02067654 - _02067372 - 2; case 99 - .short _02067654 - _02067372 - 2; case 100 - .short _02067654 - _02067372 - 2; case 101 - .short _02067654 - _02067372 - 2; case 102 - .short _02067654 - _02067372 - 2; case 103 - .short _02067654 - _02067372 - 2; case 104 - .short _02067654 - _02067372 - 2; case 105 - .short _02067654 - _02067372 - 2; case 106 - .short _02067654 - _02067372 - 2; case 107 - .short _02067654 - _02067372 - 2; case 108 - .short _02067654 - _02067372 - 2; case 109 - .short _0206767C - _02067372 - 2; case 110 - .short _02067684 - _02067372 - 2; case 111 - .short _0206768C - _02067372 - 2; case 112 - .short _02067694 - _02067372 - 2; case 113 - .short _02067698 - _02067372 - 2; case 114 - .short _020674D8 - _02067372 - 2; case 115 - .short _0206769C - _02067372 - 2; case 116 - .short _020674D8 - _02067372 - 2; case 117 - .short _020676D0 - _02067372 - 2; case 118 - .short _020676CC - _02067372 - 2; case 119 - .short _020676FE - _02067372 - 2; case 120 - .short _02067702 - _02067372 - 2; case 121 - .short _02067706 - _02067372 - 2; case 122 - .short _02067706 - _02067372 - 2; case 123 - .short _02067706 - _02067372 - 2; case 124 - .short _02067706 - _02067372 - 2; case 125 - .short _02067706 - _02067372 - 2; case 126 - .short _02067706 - _02067372 - 2; case 127 - .short _02067706 - _02067372 - 2; case 128 - .short _02067706 - _02067372 - 2; case 129 - .short _02067706 - _02067372 - 2; case 130 - .short _02067706 - _02067372 - 2; case 131 - .short _02067706 - _02067372 - 2; case 132 - .short _02067706 - _02067372 - 2; case 133 - .short _02067706 - _02067372 - 2; case 134 - .short _02067706 - _02067372 - 2; case 135 - .short _02067706 - _02067372 - 2; case 136 - .short _02067706 - _02067372 - 2; case 137 - .short _02067706 - _02067372 - 2; case 138 - .short _02067706 - _02067372 - 2; case 139 - .short _02067706 - _02067372 - 2; case 140 - .short _02067706 - _02067372 - 2; case 141 - .short _02067706 - _02067372 - 2; case 142 - .short _0206772C - _02067372 - 2; case 143 - .short _02067746 - _02067372 - 2; case 144 - .short _0206774E - _02067372 - 2; case 145 - .short _02067752 - _02067372 - 2; case 146 - .short _02067756 - _02067372 - 2; case 147 - .short _0206775A - _02067372 - 2; case 148 - .short _0206775E - _02067372 - 2; case 149 - .short _02067762 - _02067372 - 2; case 150 - .short _02067766 - _02067372 - 2; case 151 - .short _0206776A - _02067372 - 2; case 152 - .short _0206776E - _02067372 - 2; case 153 - .short _02067772 - _02067372 - 2; case 154 - .short _02067776 - _02067372 - 2; case 155 - .short _0206777E - _02067372 - 2; case 156 - .short _02067786 - _02067372 - 2; case 157 - .short _0206778A - _02067372 - 2; case 158 - .short _020674D8 - _02067372 - 2; case 159 - .short _02067540 - _02067372 - 2; case 160 - .short _020674D8 - _02067372 - 2; case 161 - .short _020674D8 - _02067372 - 2; case 162 - .short _020674D8 - _02067372 - 2; case 163 - .short _020674D8 - _02067372 - 2; case 164 - .short _020674D8 - _02067372 - 2; case 165 - .short _020674D8 - _02067372 - 2; case 166 - .short _020674D8 - _02067372 - 2; case 167 - .short _020674D8 - _02067372 - 2; case 168 - .short _020674D8 - _02067372 - 2; case 169 - .short _020674D8 - _02067372 - 2; case 170 - .short _02067506 - _02067372 - 2; case 171 - .short _02067510 - _02067372 - 2; case 172 - .short _02067522 - _02067372 - 2; case 173 - .short _0206778E - _02067372 - 2; case 174 - .short _020677C0 - _02067372 - 2; case 175 - .short _020677D8 - _02067372 - 2; case 176 - .short _020677D8 - _02067372 - 2; case 177 - .short _02067810 - _02067372 - 2; case 178 -_020674D8: - mov r4, #0x0 - b _0206781A -_020674DC: - ldr r0, [sp, #0x0] - ldr r4, [r0, #0x0] - b _0206781A -_020674E2: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1f - lsr r4, r0, #0x1f - b _0206781A -_020674EC: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1e - lsr r4, r0, #0x1f - b _0206781A -_020674F6: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r4, r0, #0x1f - b _0206781A -_02067500: - ldr r0, [sp, #0x0] - ldrh r4, [r0, #0x6] - b _0206781A -_02067506: - ldrh r0, [r5, #0x0] - cmp r0, #0x0 - beq _0206753A - mov r4, #0x1 - b _0206781A -_02067510: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r4, r0, #0x1f - bne _0206753A - ldr r0, [r6, #0x10] - lsl r0, r0, #0x1 - lsr r4, r0, #0x1f - b _0206781A -_02067522: - ldrh r4, [r5, #0x0] - cmp r4, #0x0 - beq _0206753A - ldr r0, [r6, #0x10] - lsl r0, r0, #0x1 - lsr r0, r0, #0x1f - bne _0206753C - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - bne _0206753C -_0206753A: - b _0206781A -_0206753C: - ldr r4, _02067820 ; =SPECIES_EGG - b _0206781A -_02067540: - ldrh r0, [r5, #0x0] - ldr r1, [r5, #0x8] - bl CalcLevelBySpeciesAndExp - add r4, r0, #0x0 - b _0206781A -_0206754C: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - beq _0206755A - ldr r4, _02067820 ; =SPECIES_EGG - b _0206781A -_0206755A: - ldrh r4, [r5, #0x0] - b _0206781A -_0206755E: - ldrh r4, [r5, #0x2] - b _0206781A -_02067562: - ldr r4, [r5, #0x4] - b _0206781A -_02067566: - ldr r4, [r5, #0x8] - b _0206781A -_0206756A: - ldrb r4, [r5, #0xc] - b _0206781A -_0206756E: - ldrb r4, [r5, #0xd] - b _0206781A -_02067572: - ldrb r4, [r5, #0xe] - b _0206781A -_02067576: - ldrb r4, [r5, #0xf] - b _0206781A -_0206757A: - ldrb r4, [r5, #0x10] - b _0206781A -_0206757E: - ldrb r4, [r5, #0x11] - b _0206781A -_02067582: - ldrb r4, [r5, #0x12] - b _0206781A -_02067586: - ldrb r4, [r5, #0x13] - b _0206781A -_0206758A: - ldrb r4, [r5, #0x14] - b _0206781A -_0206758E: - ldrb r4, [r5, #0x15] - b _0206781A -_02067592: - ldrb r4, [r5, #0x16] - b _0206781A -_02067596: - ldrb r4, [r5, #0x17] - b _0206781A -_0206759A: - ldrb r4, [r5, #0x18] - b _0206781A -_0206759E: - ldrb r4, [r5, #0x19] - b _0206781A -_020675A2: - ldrb r4, [r5, #0x1a] - b _0206781A -_020675A6: - ldrb r4, [r5, #0x1b] - b _0206781A -_020675AA: - ldr r2, [sp, #0x4] - mov r0, #0x1 - sub r2, #0x19 - add r1, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - ldr r2, [r5, #0x1c] - add r3, r4, #0x0 - and r3, r1 - and r2, r0 - mov r1, #0x0 - mov r0, #0x0 - eor r1, r3 - eor r0, r2 - orr r0, r1 - beq _02067676 - mov r4, #0x1 - b _0206781A -_020675D0: - ldr r0, [sp, #0x4] - sub r0, #0x36 - str r0, [sp, #0x4] - lsl r0, r0, #0x1 - ldrh r4, [r6, r0] - b _0206781A -_020675DC: - ldr r0, [sp, #0x4] - sub r0, #0x3a - str r0, [sp, #0x4] - add r0, r6, r0 - ldrb r4, [r0, #0x8] - b _0206781A -_020675E8: - ldr r0, [sp, #0x4] - sub r0, #0x3e - str r0, [sp, #0x4] - add r0, r6, r0 - ldrb r4, [r0, #0xc] - b _0206781A -_020675F4: - ldr r0, [sp, #0x4] - sub r0, #0x42 - str r0, [sp, #0x4] - ldr r1, [sp, #0x4] - lsl r0, r0, #0x1 - add r1, r6, r1 - ldrh r0, [r6, r0] - ldrb r1, [r1, #0xc] - bl FUN_0206AB30 - add r4, r0, #0x0 - b _0206781A -_0206760C: - ldr r0, [r6, #0x10] - lsl r0, r0, #0x1b - lsr r4, r0, #0x1b - b _0206781A -_02067614: - ldr r0, [r6, #0x10] - lsl r0, r0, #0x16 - lsr r4, r0, #0x1b - b _0206781A -_0206761C: - ldr r0, [r6, #0x10] - lsl r0, r0, #0x11 - lsr r4, r0, #0x1b - b _0206781A -_02067624: - ldr r0, [r6, #0x10] - lsl r0, r0, #0xc - lsr r4, r0, #0x1b - b _0206781A -_0206762C: - ldr r0, [r6, #0x10] - lsl r0, r0, #0x7 - lsr r4, r0, #0x1b - b _0206781A -_02067634: - ldr r0, [r6, #0x10] - lsl r0, r0, #0x2 - lsr r4, r0, #0x1b - b _0206781A -_0206763C: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r4, r0, #0x1f - bne _02067676 - ldr r0, [r6, #0x10] - lsl r0, r0, #0x1 - lsr r4, r0, #0x1f - b _0206781A -_0206764E: - ldr r0, [r6, #0x10] - lsr r4, r0, #0x1f - b _0206781A -_02067654: - ldr r2, [sp, #0x4] - mov r0, #0x1 - sub r2, #0x4e - add r1, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - ldr r2, [r6, #0x14] - add r3, r4, #0x0 - and r3, r1 - and r2, r0 - mov r1, #0x0 - mov r0, #0x0 - eor r1, r3 - eor r0, r2 - orr r0, r1 - bne _02067678 -_02067676: - b _0206781A -_02067678: - mov r4, #0x1 - b _0206781A -_0206767C: - ldrb r0, [r6, #0x18] - lsl r0, r0, #0x1f - lsr r4, r0, #0x1f - b _0206781A -_02067684: - ldrb r0, [r6, #0x18] - lsl r0, r0, #0x1d - lsr r4, r0, #0x1e - b _0206781A -_0206768C: - ldrb r0, [r6, #0x18] - lsl r0, r0, #0x18 - lsr r4, r0, #0x1b - b _0206781A -_02067694: - ldrb r4, [r6, #0x19] - b _0206781A -_02067698: - ldrh r4, [r6, #0x1a] - b _0206781A -_0206769C: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - beq _020676B2 - ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG - ldr r2, [sp, #0x8] - add r1, r4, #0x0 - bl GetSpeciesName - b _0206781A -_020676B2: - ldr r1, [sp, #0x8] -_020676B4: - ldrh r0, [r7, #0x0] - add r4, r4, #0x1 - add r7, r7, #0x2 - strh r0, [r1, #0x0] - add r1, r1, #0x2 - cmp r4, #0xa - blo _020676B4 - ldr r2, _02067828 ; =0x0000FFFF - ldr r0, [sp, #0x8] - lsl r1, r4, #0x1 - strh r2, [r0, r1] - b _0206781A -_020676CC: - ldr r0, [r6, #0x10] - lsr r4, r0, #0x1f -_020676D0: - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1f - beq _020676F4 - ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG - mov r1, #0x0 - bl FUN_0200AA50 - add r5, r0, #0x0 - ldr r0, [sp, #0x8] - add r1, r5, #0x0 - bl FUN_02021A74 - add r0, r5, #0x0 - bl FUN_02021A20 - b _0206781A -_020676F4: - ldr r0, [sp, #0x8] - add r1, r7, #0x0 - bl FUN_02021E28 - b _0206781A -_020676FE: - ldrb r4, [r7, #0x16] - b _0206781A -_02067702: - ldrb r4, [r7, #0x17] - b _0206781A -_02067706: - ldr r2, [sp, #0x4] - mov r0, #0x1 - sub r2, #0x7a - add r1, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - ldr r3, [r7, #0x18] - ldr r2, [r7, #0x1c] - and r3, r0 - and r2, r1 - mov r1, #0x0 - mov r0, #0x0 - eor r1, r2 - eor r0, r3 - orr r0, r1 - beq _0206781A - mov r4, #0x1 - b _0206781A -_0206772C: - ldr r2, [sp, #0x8] -_0206772E: - ldrh r0, [r1, #0x0] - add r4, r4, #0x1 - add r1, r1, #0x2 - strh r0, [r2, #0x0] - add r2, r2, #0x2 - cmp r4, #0x7 - blo _0206772E - ldr r2, _02067828 ; =0x0000FFFF - ldr r0, [sp, #0x8] - lsl r1, r4, #0x1 - strh r2, [r0, r1] - b _0206781A -_02067746: - ldr r0, [sp, #0x8] - bl FUN_02021E28 - b _0206781A -_0206774E: - ldrb r4, [r1, #0x10] - b _0206781A -_02067752: - ldrb r4, [r1, #0x11] - b _0206781A -_02067756: - ldrb r4, [r1, #0x12] - b _0206781A -_0206775A: - ldrb r4, [r1, #0x13] - b _0206781A -_0206775E: - ldrb r4, [r1, #0x14] - b _0206781A -_02067762: - ldrb r4, [r1, #0x15] - b _0206781A -_02067766: - ldrh r4, [r1, #0x16] - b _0206781A -_0206776A: - ldrh r4, [r1, #0x18] - b _0206781A -_0206776E: - ldrb r4, [r1, #0x1a] - b _0206781A -_02067772: - ldrb r4, [r1, #0x1b] - b _0206781A -_02067776: - ldrb r0, [r1, #0x1c] - lsl r0, r0, #0x19 - lsr r4, r0, #0x19 - b _0206781A -_0206777E: - ldrb r0, [r1, #0x1c] - lsl r0, r0, #0x18 - lsr r4, r0, #0x1f - b _0206781A -_02067786: - ldrb r4, [r1, #0x1d] - b _0206781A -_0206778A: - ldrh r4, [r1, #0x1e] - b _0206781A -_0206778E: - ldr r4, [r6, #0x10] - lsl r0, r4, #0x2 - lsr r0, r0, #0x1b - lsl r5, r0, #0x19 - lsl r0, r4, #0x7 - lsr r0, r0, #0x1b - lsl r3, r0, #0x14 - lsl r0, r4, #0xc - lsr r0, r0, #0x1b - lsl r2, r0, #0xf - lsl r0, r4, #0x11 - lsr r0, r0, #0x1b - lsl r1, r0, #0xa - lsl r0, r4, #0x1b - lsl r4, r4, #0x16 - lsr r4, r4, #0x1b - lsr r0, r0, #0x1b - lsl r4, r4, #0x5 - orr r0, r4 - orr r0, r1 - orr r0, r2 - orr r0, r3 - add r4, r5, #0x0 - orr r4, r0 - b _0206781A -_020677C0: - ldrh r0, [r5, #0x0] - cmp r0, #0x1d - beq _020677CA - cmp r0, #0x20 - bne _020677D4 -_020677CA: - ldr r0, [r6, #0x10] - lsr r0, r0, #0x1f - bne _020677D4 - mov r4, #0x0 - b _0206781A -_020677D4: - mov r4, #0x1 - b _0206781A -_020677D8: - ldrh r0, [r5, #0x0] - ldr r1, _0206782C ; =SPECIES_ARCEUS - cmp r0, r1 - bne _020677FC - ldrb r1, [r5, #0xd] - cmp r1, #0x79 - bne _020677FC - ldrh r0, [r5, #0x2] - mov r1, #0x1 - add r2, r4, #0x0 - bl FUN_0206E7B8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl GetArceusTypeByPlate - add r4, r0, #0x0 - b _0206781A -_020677FC: - ldrb r1, [r6, #0x18] - ldr r2, [sp, #0x4] - lsl r1, r1, #0x18 - sub r2, #0xaa - lsr r1, r1, #0x1b - str r2, [sp, #0x4] - bl GetMonBaseStat_HandleFormeConversion - add r4, r0, #0x0 - b _0206781A -_02067810: - ldrh r0, [r5, #0x0] - ldr r2, [sp, #0x8] - add r1, r4, #0x0 - bl GetSpeciesName -_0206781A: - add r0, r4, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02067820: .word SPECIES_EGG -_02067824: .word SPECIES_MANAPHY_EGG -_02067828: .word 0x0000FFFF -_0206782C: .word SPECIES_ARCEUS - - thumb_func_start SetMonDataEncrypted -SetMonDataEncrypted: ; 0x02067830 - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _02067886 - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonDecryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - ldrh r1, [r5, #0x6] - cmp r0, r1 - beq _02067886 - cmp r0, r1 - beq _02067870 - bl ErrorHandling -_02067870: - ldrh r1, [r5, #0x4] - mov r0, #0x4 - orr r0, r1 - strh r0, [r5, #0x4] - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - pop {r4-r6, pc} -_02067886: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl SetMonData - ldrh r0, [r5, #0x4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _020678BC - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_020678BC: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start SetMonData -SetMonData: ; 0x020678C0 - push {r3, lr} - add r3, r0, #0x0 - add r0, r1, #0x0 - sub r0, #0x9f - cmp r0, #0xb - bhi _02067958 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020678D8: ; jump table (using 16-bit offset) - .short _020678F0 - _020678D8 - 2; case 0 - .short _020678F8 - _020678D8 - 2; case 1 - .short _02067900 - _020678D8 - 2; case 2 - .short _02067908 - _020678D8 - 2; case 3 - .short _02067910 - _020678D8 - 2; case 4 - .short _02067918 - _020678D8 - 2; case 5 - .short _02067920 - _020678D8 - 2; case 6 - .short _02067928 - _020678D8 - 2; case 7 - .short _02067930 - _020678D8 - 2; case 8 - .short _02067938 - _020678D8 - 2; case 9 - .short _02067940 - _020678D8 - 2; case 10 - .short _0206794C - _020678D8 - 2; case 11 -_020678F0: - ldr r0, [r2, #0x0] - add r3, #0x88 - str r0, [r3, #0x0] - pop {r3, pc} -_020678F8: - ldrb r0, [r2, #0x0] - add r3, #0x8c - strb r0, [r3, #0x0] - pop {r3, pc} -_02067900: - ldrb r0, [r2, #0x0] - add r3, #0x8d - strb r0, [r3, #0x0] - pop {r3, pc} -_02067908: - ldrh r0, [r2, #0x0] - add r3, #0x8e - strh r0, [r3, #0x0] - pop {r3, pc} -_02067910: - ldrh r0, [r2, #0x0] - add r3, #0x90 - strh r0, [r3, #0x0] - pop {r3, pc} -_02067918: - ldrh r0, [r2, #0x0] - add r3, #0x92 - strh r0, [r3, #0x0] - pop {r3, pc} -_02067920: - ldrh r0, [r2, #0x0] - add r3, #0x94 - strh r0, [r3, #0x0] - pop {r3, pc} -_02067928: - ldrh r0, [r2, #0x0] - add r3, #0x96 - strh r0, [r3, #0x0] - pop {r3, pc} -_02067930: - ldrh r0, [r2, #0x0] - add r3, #0x98 - strh r0, [r3, #0x0] - pop {r3, pc} -_02067938: - ldrh r0, [r2, #0x0] - add r3, #0x9a - strh r0, [r3, #0x0] - pop {r3, pc} -_02067940: - add r3, #0x9c - add r0, r2, #0x0 - add r1, r3, #0x0 - bl FUN_020256D0 - pop {r3, pc} -_0206794C: - add r3, #0xd4 - add r0, r2, #0x0 - add r1, r3, #0x0 - bl FUN_02029C74 - pop {r3, pc} -_02067958: - add r0, r3, #0x0 - bl SetBoxMonData - pop {r3, pc} - - thumb_func_start SetBoxMonDataEncrypted -SetBoxMonDataEncrypted: ; 0x02067960 - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bne _020679AA - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - ldrh r1, [r5, #0x6] - cmp r0, r1 - beq _020679AA - cmp r0, r1 - beq _02067994 - bl ErrorHandling -_02067994: - ldrh r1, [r5, #0x4] - mov r0, #0x4 - orr r0, r1 - strh r0, [r5, #0x4] - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - pop {r4-r6, pc} -_020679AA: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl SetBoxMonData - ldrh r0, [r5, #0x4] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1f - bne _020679D4 - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_020679D4: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start SetBoxMonData -SetBoxMonData: ; 0x020679D8 - push {r4-r7, lr} - sub sp, #0x4c - str r1, [sp, #0x4] - add r1, r0, #0x0 - add r4, r2, #0x0 - ldr r1, [r1, #0x0] - str r0, [sp, #0x0] - mov r2, #0x0 - bl GetSubstruct - add r7, r0, #0x0 - ldr r0, [sp, #0x0] - mov r2, #0x1 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mov r2, #0x2 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r6, r0, #0x0 - ldr r0, [sp, #0x0] - mov r2, #0x3 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r1, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r0, #0xb2 - bls _02067A20 - b _02067FF6 -_02067A20: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02067A2C: ; jump table (using 16-bit offset) - .short _02067B92 - _02067A2C - 2; case 0 - .short _02067B9C - _02067A2C - 2; case 1 - .short _02067BBA - _02067A2C - 2; case 2 - .short _02067BD6 - _02067A2C - 2; case 3 - .short _02067BEE - _02067A2C - 2; case 4 - .short _02067BF8 - _02067A2C - 2; case 5 - .short _02067C00 - _02067A2C - 2; case 6 - .short _02067C08 - _02067A2C - 2; case 7 - .short _02067C10 - _02067A2C - 2; case 8 - .short _02067C18 - _02067A2C - 2; case 9 - .short _02067C20 - _02067A2C - 2; case 10 - .short _02067C28 - _02067A2C - 2; case 11 - .short _02067C30 - _02067A2C - 2; case 12 - .short _02067C38 - _02067A2C - 2; case 13 - .short _02067C40 - _02067A2C - 2; case 14 - .short _02067C48 - _02067A2C - 2; case 15 - .short _02067C50 - _02067A2C - 2; case 16 - .short _02067C58 - _02067A2C - 2; case 17 - .short _02067C60 - _02067A2C - 2; case 18 - .short _02067C68 - _02067A2C - 2; case 19 - .short _02067C70 - _02067A2C - 2; case 20 - .short _02067C78 - _02067A2C - 2; case 21 - .short _02067C80 - _02067A2C - 2; case 22 - .short _02067C88 - _02067A2C - 2; case 23 - .short _02067C90 - _02067A2C - 2; case 24 - .short _02067C98 - _02067A2C - 2; case 25 - .short _02067C98 - _02067A2C - 2; case 26 - .short _02067C98 - _02067A2C - 2; case 27 - .short _02067C98 - _02067A2C - 2; case 28 - .short _02067C98 - _02067A2C - 2; case 29 - .short _02067C98 - _02067A2C - 2; case 30 - .short _02067C98 - _02067A2C - 2; case 31 - .short _02067C98 - _02067A2C - 2; case 32 - .short _02067C98 - _02067A2C - 2; case 33 - .short _02067C98 - _02067A2C - 2; case 34 - .short _02067C98 - _02067A2C - 2; case 35 - .short _02067C98 - _02067A2C - 2; case 36 - .short _02067C98 - _02067A2C - 2; case 37 - .short _02067C98 - _02067A2C - 2; case 38 - .short _02067C98 - _02067A2C - 2; case 39 - .short _02067C98 - _02067A2C - 2; case 40 - .short _02067C98 - _02067A2C - 2; case 41 - .short _02067C98 - _02067A2C - 2; case 42 - .short _02067C98 - _02067A2C - 2; case 43 - .short _02067C98 - _02067A2C - 2; case 44 - .short _02067C98 - _02067A2C - 2; case 45 - .short _02067C98 - _02067A2C - 2; case 46 - .short _02067C98 - _02067A2C - 2; case 47 - .short _02067C98 - _02067A2C - 2; case 48 - .short _02067C98 - _02067A2C - 2; case 49 - .short _02067C98 - _02067A2C - 2; case 50 - .short _02067C98 - _02067A2C - 2; case 51 - .short _02067C98 - _02067A2C - 2; case 52 - .short _02067C98 - _02067A2C - 2; case 53 - .short _02067CC6 - _02067A2C - 2; case 54 - .short _02067CC6 - _02067A2C - 2; case 55 - .short _02067CC6 - _02067A2C - 2; case 56 - .short _02067CC6 - _02067A2C - 2; case 57 - .short _02067CD6 - _02067A2C - 2; case 58 - .short _02067CD6 - _02067A2C - 2; case 59 - .short _02067CD6 - _02067A2C - 2; case 60 - .short _02067CD6 - _02067A2C - 2; case 61 - .short _02067CE6 - _02067A2C - 2; case 62 - .short _02067CE6 - _02067A2C - 2; case 63 - .short _02067CE6 - _02067A2C - 2; case 64 - .short _02067CE6 - _02067A2C - 2; case 65 - .short _02067FF6 - _02067A2C - 2; case 66 - .short _02067FF6 - _02067A2C - 2; case 67 - .short _02067FF6 - _02067A2C - 2; case 68 - .short _02067FF6 - _02067A2C - 2; case 69 - .short _02067CF6 - _02067A2C - 2; case 70 - .short _02067D0A - _02067A2C - 2; case 71 - .short _02067D1E - _02067A2C - 2; case 72 - .short _02067D32 - _02067A2C - 2; case 73 - .short _02067D46 - _02067A2C - 2; case 74 - .short _02067D5A - _02067A2C - 2; case 75 - .short _02067D6E - _02067A2C - 2; case 76 - .short _02067D82 - _02067A2C - 2; case 77 - .short _02067D94 - _02067A2C - 2; case 78 - .short _02067D94 - _02067A2C - 2; case 79 - .short _02067D94 - _02067A2C - 2; case 80 - .short _02067D94 - _02067A2C - 2; case 81 - .short _02067D94 - _02067A2C - 2; case 82 - .short _02067D94 - _02067A2C - 2; case 83 - .short _02067D94 - _02067A2C - 2; case 84 - .short _02067D94 - _02067A2C - 2; case 85 - .short _02067D94 - _02067A2C - 2; case 86 - .short _02067D94 - _02067A2C - 2; case 87 - .short _02067D94 - _02067A2C - 2; case 88 - .short _02067D94 - _02067A2C - 2; case 89 - .short _02067D94 - _02067A2C - 2; case 90 - .short _02067D94 - _02067A2C - 2; case 91 - .short _02067D94 - _02067A2C - 2; case 92 - .short _02067D94 - _02067A2C - 2; case 93 - .short _02067D94 - _02067A2C - 2; case 94 - .short _02067D94 - _02067A2C - 2; case 95 - .short _02067D94 - _02067A2C - 2; case 96 - .short _02067D94 - _02067A2C - 2; case 97 - .short _02067D94 - _02067A2C - 2; case 98 - .short _02067D94 - _02067A2C - 2; case 99 - .short _02067D94 - _02067A2C - 2; case 100 - .short _02067D94 - _02067A2C - 2; case 101 - .short _02067D94 - _02067A2C - 2; case 102 - .short _02067D94 - _02067A2C - 2; case 103 - .short _02067D94 - _02067A2C - 2; case 104 - .short _02067D94 - _02067A2C - 2; case 105 - .short _02067D94 - _02067A2C - 2; case 106 - .short _02067D94 - _02067A2C - 2; case 107 - .short _02067D94 - _02067A2C - 2; case 108 - .short _02067D94 - _02067A2C - 2; case 109 - .short _02067DC2 - _02067A2C - 2; case 110 - .short _02067DD6 - _02067A2C - 2; case 111 - .short _02067DEA - _02067A2C - 2; case 112 - .short _02067DFE - _02067A2C - 2; case 113 - .short _02067E06 - _02067A2C - 2; case 114 - .short _02067FF6 - _02067A2C - 2; case 115 - .short _02067E2C - _02067A2C - 2; case 116 - .short _02067E0E - _02067A2C - 2; case 117 - .short _02067E6C - _02067A2C - 2; case 118 - .short _02067E40 - _02067A2C - 2; case 119 - .short _02067E7A - _02067A2C - 2; case 120 - .short _02067E82 - _02067A2C - 2; case 121 - .short _02067E8A - _02067A2C - 2; case 122 - .short _02067E8A - _02067A2C - 2; case 123 - .short _02067E8A - _02067A2C - 2; case 124 - .short _02067E8A - _02067A2C - 2; case 125 - .short _02067E8A - _02067A2C - 2; case 126 - .short _02067E8A - _02067A2C - 2; case 127 - .short _02067E8A - _02067A2C - 2; case 128 - .short _02067E8A - _02067A2C - 2; case 129 - .short _02067E8A - _02067A2C - 2; case 130 - .short _02067E8A - _02067A2C - 2; case 131 - .short _02067E8A - _02067A2C - 2; case 132 - .short _02067E8A - _02067A2C - 2; case 133 - .short _02067E8A - _02067A2C - 2; case 134 - .short _02067E8A - _02067A2C - 2; case 135 - .short _02067E8A - _02067A2C - 2; case 136 - .short _02067E8A - _02067A2C - 2; case 137 - .short _02067E8A - _02067A2C - 2; case 138 - .short _02067E8A - _02067A2C - 2; case 139 - .short _02067E8A - _02067A2C - 2; case 140 - .short _02067E8A - _02067A2C - 2; case 141 - .short _02067E8A - _02067A2C - 2; case 142 - .short _02067ECE - _02067A2C - 2; case 143 - .short _02067EE2 - _02067A2C - 2; case 144 - .short _02067EEE - _02067A2C - 2; case 145 - .short _02067EF6 - _02067A2C - 2; case 146 - .short _02067EFE - _02067A2C - 2; case 147 - .short _02067F06 - _02067A2C - 2; case 148 - .short _02067F0E - _02067A2C - 2; case 149 - .short _02067F16 - _02067A2C - 2; case 150 - .short _02067F1E - _02067A2C - 2; case 151 - .short _02067F26 - _02067A2C - 2; case 152 - .short _02067F2E - _02067A2C - 2; case 153 - .short _02067F36 - _02067A2C - 2; case 154 - .short _02067F3E - _02067A2C - 2; case 155 - .short _02067F52 - _02067A2C - 2; case 156 - .short _02067F66 - _02067A2C - 2; case 157 - .short _02067F6E - _02067A2C - 2; case 158 - .short _02067FF6 - _02067A2C - 2; case 159 - .short _02067FF6 - _02067A2C - 2; case 160 - .short _02067FF6 - _02067A2C - 2; case 161 - .short _02067FF6 - _02067A2C - 2; case 162 - .short _02067FF6 - _02067A2C - 2; case 163 - .short _02067FF6 - _02067A2C - 2; case 164 - .short _02067FF6 - _02067A2C - 2; case 165 - .short _02067FF6 - _02067A2C - 2; case 166 - .short _02067FF6 - _02067A2C - 2; case 167 - .short _02067FF6 - _02067A2C - 2; case 168 - .short _02067FF6 - _02067A2C - 2; case 169 - .short _02067FF6 - _02067A2C - 2; case 170 - .short _02067FF6 - _02067A2C - 2; case 171 - .short _02067FF6 - _02067A2C - 2; case 172 - .short _02067FF6 - _02067A2C - 2; case 173 - .short _02067F76 - _02067A2C - 2; case 174 - .short _02067FF6 - _02067A2C - 2; case 175 - .short _02067FF6 - _02067A2C - 2; case 176 - .short _02067FF6 - _02067A2C - 2; case 177 - .short _02067FDE - _02067A2C - 2; case 178 -_02067B92: - ldr r0, [sp, #0x0] - ldr r1, [r4, #0x0] - add sp, #0x4c - str r1, [r0, #0x0] - pop {r4-r7, pc} -_02067B9C: - bl ErrorHandling - ldr r0, [sp, #0x0] - ldrb r1, [r4, #0x0] - ldrh r2, [r0, #0x4] - mov r0, #0x1 - bic r2, r0 - mov r0, #0x1 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, [sp, #0x0] - add sp, #0x4c - strh r1, [r0, #0x4] - pop {r4-r7, pc} -_02067BBA: - bl ErrorHandling - ldr r0, [sp, #0x0] - ldrh r1, [r0, #0x4] - mov r0, #0x2 - bic r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1e - orr r1, r0 - ldr r0, [sp, #0x0] - add sp, #0x4c - strh r1, [r0, #0x4] - pop {r4-r7, pc} -_02067BD6: - ldr r0, [sp, #0x0] - ldrh r1, [r0, #0x4] - mov r0, #0x4 - bic r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1d - orr r1, r0 - ldr r0, [sp, #0x0] - add sp, #0x4c - strh r1, [r0, #0x4] - pop {r4-r7, pc} -_02067BEE: - ldrh r1, [r4, #0x0] - ldr r0, [sp, #0x0] - add sp, #0x4c - strh r1, [r0, #0x6] - pop {r4-r7, pc} -_02067BF8: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r7, #0x0] - pop {r4-r7, pc} -_02067C00: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r7, #0x2] - pop {r4-r7, pc} -_02067C08: - ldr r0, [r4, #0x0] - add sp, #0x4c - str r0, [r7, #0x4] - pop {r4-r7, pc} -_02067C10: - ldr r0, [r4, #0x0] - add sp, #0x4c - str r0, [r7, #0x8] - pop {r4-r7, pc} -_02067C18: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0xc] - pop {r4-r7, pc} -_02067C20: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0xd] - pop {r4-r7, pc} -_02067C28: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0xe] - pop {r4-r7, pc} -_02067C30: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0xf] - pop {r4-r7, pc} -_02067C38: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x10] - pop {r4-r7, pc} -_02067C40: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x11] - pop {r4-r7, pc} -_02067C48: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x12] - pop {r4-r7, pc} -_02067C50: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x13] - pop {r4-r7, pc} -_02067C58: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x14] - pop {r4-r7, pc} -_02067C60: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x15] - pop {r4-r7, pc} -_02067C68: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x16] - pop {r4-r7, pc} -_02067C70: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x17] - pop {r4-r7, pc} -_02067C78: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x18] - pop {r4-r7, pc} -_02067C80: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x19] - pop {r4-r7, pc} -_02067C88: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x1a] - pop {r4-r7, pc} -_02067C90: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r7, #0x1b] - pop {r4-r7, pc} -_02067C98: - ldrb r4, [r4, #0x0] - ldr r2, [sp, #0x4] - mov r1, #0x0 - sub r2, #0x19 - add r0, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - cmp r4, #0x0 - beq _02067CB6 - ldr r1, [r7, #0x1c] - add sp, #0x4c - orr r0, r1 - str r0, [r7, #0x1c] - pop {r4-r7, pc} -_02067CB6: - mov r1, #0x0 - sub r1, r1, #0x1 - ldr r2, [r7, #0x1c] - eor r0, r1 - and r0, r2 - add sp, #0x4c - str r0, [r7, #0x1c] - pop {r4-r7, pc} -_02067CC6: - ldr r0, [sp, #0x4] - ldrh r1, [r4, #0x0] - sub r0, #0x36 - str r0, [sp, #0x4] - lsl r0, r0, #0x1 - add sp, #0x4c - strh r1, [r5, r0] - pop {r4-r7, pc} -_02067CD6: - ldr r0, [sp, #0x4] - ldrb r1, [r4, #0x0] - sub r0, #0x3a - str r0, [sp, #0x4] - add r0, r5, r0 - strb r1, [r0, #0x8] - add sp, #0x4c - pop {r4-r7, pc} -_02067CE6: - ldr r0, [sp, #0x4] - ldrb r1, [r4, #0x0] - sub r0, #0x3e - str r0, [sp, #0x4] - add r0, r5, r0 - strb r1, [r0, #0xc] - add sp, #0x4c - pop {r4-r7, pc} -_02067CF6: - ldr r2, [r5, #0x10] - mov r0, #0x1f - bic r2, r0 - ldrb r1, [r4, #0x0] - mov r0, #0x1f - add sp, #0x4c - and r0, r1 - orr r0, r2 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D0A: - ldr r1, [r5, #0x10] - ldr r0, _02067FFC ; =0xFFFFFC1F - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D1E: - ldr r1, [r5, #0x10] - ldr r0, _02068000 ; =0xFFFF83FF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x11 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D32: - ldr r1, [r5, #0x10] - ldr r0, _02068004 ; =0xFFF07FFF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0xc - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D46: - ldr r1, [r5, #0x10] - ldr r0, _02068008 ; =0xFE0FFFFF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x7 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D5A: - ldr r1, [r5, #0x10] - ldr r0, _0206800C ; =0xC1FFFFFF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x2 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D6E: - ldr r1, [r5, #0x10] - ldr r0, _02068010 ; =0xBFFFFFFF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D82: - ldr r1, [r5, #0x10] - ldr r0, _02068014 ; =0x7FFFFFFF - add sp, #0x4c - and r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1f - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067D94: - ldrb r4, [r4, #0x0] - ldr r2, [sp, #0x4] - mov r1, #0x0 - sub r2, #0x4e - add r0, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - cmp r4, #0x0 - beq _02067DB2 - ldr r1, [r5, #0x14] - add sp, #0x4c - orr r0, r1 - str r0, [r5, #0x14] - pop {r4-r7, pc} -_02067DB2: - mov r1, #0x0 - sub r1, r1, #0x1 - ldr r2, [r5, #0x14] - eor r0, r1 - and r0, r2 - add sp, #0x4c - str r0, [r5, #0x14] - pop {r4-r7, pc} -_02067DC2: - ldrb r2, [r5, #0x18] - ldrb r1, [r4, #0x0] - mov r0, #0x1 - bic r2, r0 - mov r0, #0x1 - and r0, r1 - orr r0, r2 - add sp, #0x4c - strb r0, [r5, #0x18] - pop {r4-r7, pc} -_02067DD6: - ldrb r1, [r5, #0x18] - mov r0, #0x6 - add sp, #0x4c - bic r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1d - orr r0, r1 - strb r0, [r5, #0x18] - pop {r4-r7, pc} -_02067DEA: - ldrb r1, [r5, #0x18] - mov r0, #0xf8 - add sp, #0x4c - bic r1, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x18 - orr r0, r1 - strb r0, [r5, #0x18] - pop {r4-r7, pc} -_02067DFE: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r5, #0x19] - pop {r4-r7, pc} -_02067E06: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r5, #0x1a] - pop {r4-r7, pc} -_02067E0E: - ldrh r0, [r7, #0x0] - mov r1, #0x0 - add r2, sp, #0x34 - bl GetSpeciesName - add r0, sp, #0x34 - add r1, r4, #0x0 - bl StringNotEqual - ldr r2, [r5, #0x10] - ldr r1, _02068014 ; =0x7FFFFFFF - lsl r0, r0, #0x1f - and r1, r2 - orr r0, r1 - str r0, [r5, #0x10] -_02067E2C: - mov r1, #0x0 -_02067E2E: - ldrh r0, [r4, #0x0] - add r1, r1, #0x1 - add r4, r4, #0x2 - strh r0, [r6, #0x0] - add r6, r6, #0x2 - cmp r1, #0xb - blo _02067E2E - add sp, #0x4c - pop {r4-r7, pc} -_02067E40: - ldrh r0, [r7, #0x0] - add r2, sp, #0x1c - mov r1, #0x0 - add r2, #0x2 - bl GetSpeciesName - add r0, r4, #0x0 - add r1, sp, #0x8 - mov r2, #0xb - bl FUN_02021EF0 - add r0, sp, #0x1c - add r0, #0x2 - add r1, sp, #0x8 - bl StringNotEqual - ldr r2, [r5, #0x10] - ldr r1, _02068014 ; =0x7FFFFFFF - lsl r0, r0, #0x1f - and r1, r2 - orr r0, r1 - str r0, [r5, #0x10] -_02067E6C: - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r2, #0xb - bl FUN_02021EF0 - add sp, #0x4c - pop {r4-r7, pc} -_02067E7A: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r6, #0x16] - pop {r4-r7, pc} -_02067E82: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r6, #0x17] - pop {r4-r7, pc} -_02067E8A: - ldrb r4, [r4, #0x0] - ldr r2, [sp, #0x4] - mov r1, #0x0 - sub r2, #0x7a - add r0, r4, #0x0 - str r2, [sp, #0x4] - bl _ll_shl - cmp r4, #0x0 - beq _02067EB2 - add r4, r6, #0x0 - add r4, #0x18 - ldr r3, [r6, #0x18] - ldr r2, [r4, #0x4] - orr r0, r3 - orr r1, r2 - str r0, [r6, #0x18] - add sp, #0x4c - str r1, [r4, #0x4] - pop {r4-r7, pc} -_02067EB2: - add r4, r6, #0x0 - mov r5, #0x0 - mvn r5, r5 - add r4, #0x18 - ldr r3, [r6, #0x18] - eor r0, r5 - ldr r2, [r4, #0x4] - eor r1, r5 - and r0, r3 - and r1, r2 - str r0, [r6, #0x18] - add sp, #0x4c - str r1, [r4, #0x4] - pop {r4-r7, pc} -_02067ECE: - mov r2, #0x0 -_02067ED0: - ldrh r0, [r4, #0x0] - add r2, r2, #0x1 - add r4, r4, #0x2 - strh r0, [r1, #0x0] - add r1, r1, #0x2 - cmp r2, #0x8 - blo _02067ED0 - add sp, #0x4c - pop {r4-r7, pc} -_02067EE2: - add r0, r4, #0x0 - mov r2, #0x8 - bl FUN_02021EF0 - add sp, #0x4c - pop {r4-r7, pc} -_02067EEE: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x10] - pop {r4-r7, pc} -_02067EF6: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x11] - pop {r4-r7, pc} -_02067EFE: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x12] - pop {r4-r7, pc} -_02067F06: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x13] - pop {r4-r7, pc} -_02067F0E: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x14] - pop {r4-r7, pc} -_02067F16: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x15] - pop {r4-r7, pc} -_02067F1E: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r1, #0x16] - pop {r4-r7, pc} -_02067F26: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r1, #0x18] - pop {r4-r7, pc} -_02067F2E: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x1a] - pop {r4-r7, pc} -_02067F36: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x1b] - pop {r4-r7, pc} -_02067F3E: - ldrb r3, [r1, #0x1c] - ldrb r2, [r4, #0x0] - mov r0, #0x7f - bic r3, r0 - mov r0, #0x7f - and r0, r2 - orr r0, r3 - strb r0, [r1, #0x1c] - add sp, #0x4c - pop {r4-r7, pc} -_02067F52: - ldrb r2, [r1, #0x1c] - mov r0, #0x80 - add sp, #0x4c - bic r2, r0 - ldrb r0, [r4, #0x0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x18 - orr r0, r2 - strb r0, [r1, #0x1c] - pop {r4-r7, pc} -_02067F66: - ldrb r0, [r4, #0x0] - add sp, #0x4c - strb r0, [r1, #0x1d] - pop {r4-r7, pc} -_02067F6E: - ldrh r0, [r4, #0x0] - add sp, #0x4c - strh r0, [r1, #0x1e] - pop {r4-r7, pc} -_02067F76: - ldr r2, [r5, #0x10] - mov r0, #0x1f - bic r2, r0 - ldr r1, [r4, #0x0] - mov r0, #0x1f - and r1, r0 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _02067FFC ; =0xFFFFFC1F - str r1, [r5, #0x10] - and r1, r0 - ldr r0, [r4, #0x0] - add sp, #0x4c - lsr r0, r0, #0x5 - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - orr r1, r0 - ldr r0, _02068000 ; =0xFFFF83FF - str r1, [r5, #0x10] - and r1, r0 - ldr r0, [r4, #0x0] - lsr r0, r0, #0xa - lsl r0, r0, #0x1b - lsr r0, r0, #0x11 - orr r1, r0 - ldr r0, _02068004 ; =0xFFF07FFF - str r1, [r5, #0x10] - and r1, r0 - ldr r0, [r4, #0x0] - lsr r0, r0, #0xf - lsl r0, r0, #0x1b - lsr r0, r0, #0xc - orr r1, r0 - ldr r0, _02068008 ; =0xFE0FFFFF - str r1, [r5, #0x10] - and r1, r0 - ldr r0, [r4, #0x0] - lsr r0, r0, #0x14 - lsl r0, r0, #0x1b - lsr r0, r0, #0x7 - orr r1, r0 - ldr r0, _0206800C ; =0xC1FFFFFF - str r1, [r5, #0x10] - and r1, r0 - ldr r0, [r4, #0x0] - lsr r0, r0, #0x19 - lsl r0, r0, #0x1b - lsr r0, r0, #0x2 - orr r0, r1 - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02067FDE: - ldrh r0, [r7, #0x0] - mov r1, #0x0 - bl FUN_0200AA50 - add r4, r0, #0x0 - add r1, r6, #0x0 - mov r2, #0xb - bl FUN_02021EF0 - add r0, r4, #0x0 - bl FUN_02021A20 -_02067FF6: - add sp, #0x4c - pop {r4-r7, pc} - nop -_02067FFC: .word 0xFFFFFC1F -_02068000: .word 0xFFFF83FF -_02068004: .word 0xFFF07FFF -_02068008: .word 0xFE0FFFFF -_0206800C: .word 0xC1FFFFFF -_02068010: .word 0xBFFFFFFF -_02068014: .word 0x7FFFFFFF - - thumb_func_start AddMonPartyStatEncrypted -AddMonPartyStatEncrypted: ; 0x02068018 - push {r4-r6, lr} - add r5, r0, #0x0 - ldrh r0, [r5, #0x4] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _02068066 - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonDecryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - ldrh r1, [r5, #0x6] - cmp r0, r1 - beq _02068066 - cmp r0, r1 - beq _02068058 - bl ErrorHandling -_02068058: - ldrh r2, [r5, #0x6] - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - pop {r4-r6, pc} -_02068066: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl AddMonPartyStat - ldrh r0, [r5, #0x4] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - bne _0206809C - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment -_0206809C: - pop {r4-r6, pc} - .balign 4 - - thumb_func_start AddMonPartyStat -AddMonPartyStat: ; 0x020680A0 - push {r3, lr} - add r3, r1, #0x0 - sub r3, #0x9f - cmp r3, #0xa - bhi _020680F8 - add r3, r3, r3 - add r3, pc - ldrh r3, [r3, #0x6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_020680B6: ; jump table (using 16-bit offset) - .short _020680F2 - _020680B6 - 2; case 0 - .short _020680F2 - _020680B6 - 2; case 1 - .short _020680F2 - _020680B6 - 2; case 2 - .short _020680CC - _020680B6 - 2; case 3 - .short _020680F2 - _020680B6 - 2; case 4 - .short _020680F2 - _020680B6 - 2; case 5 - .short _020680F2 - _020680B6 - 2; case 6 - .short _020680F2 - _020680B6 - 2; case 7 - .short _020680F2 - _020680B6 - 2; case 8 - .short _020680F2 - _020680B6 - 2; case 9 - .short _020680F2 - _020680B6 - 2; case 10 -_020680CC: - add r1, r0, #0x0 - add r1, #0x90 - ldrh r3, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x8e - ldrh r1, [r1, #0x0] - add r1, r1, r2 - cmp r1, r3 - ble _020680E4 - add r0, #0x8e - strh r3, [r0, #0x0] - pop {r3, pc} -_020680E4: - add r1, r0, #0x0 - add r1, #0x8e - ldrh r1, [r1, #0x0] - add r0, #0x8e - add r1, r1, r2 - strh r1, [r0, #0x0] - pop {r3, pc} -_020680F2: - bl ErrorHandling - pop {r3, pc} -_020680F8: - bl FUN_02068100 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02068100 -FUN_02068100: ; 0x02068100 - push {r4-r7, lr} - sub sp, #0xc - add r7, r1, #0x0 - add r1, r0, #0x0 - add r6, r2, #0x0 - ldr r1, [r1, #0x0] - str r0, [sp, #0x0] - mov r2, #0x0 - bl GetSubstruct - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - mov r2, #0x1 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mov r2, #0x2 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - ldr r0, [sp, #0x0] - mov r2, #0x3 - add r1, r0, #0x0 - ldr r1, [r1, #0x0] - bl GetSubstruct - cmp r7, #0xb2 - bls _02068142 - b _02068500 -_02068142: - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0206814E: ; jump table (using 16-bit offset) - .short _02068500 - _0206814E - 2; case 0 - .short _02068500 - _0206814E - 2; case 1 - .short _02068500 - _0206814E - 2; case 2 - .short _02068500 - _0206814E - 2; case 3 - .short _02068500 - _0206814E - 2; case 4 - .short _02068500 - _0206814E - 2; case 5 - .short _02068500 - _0206814E - 2; case 6 - .short _02068500 - _0206814E - 2; case 7 - .short _020682B4 - _0206814E - 2; case 8 - .short _020682D8 - _0206814E - 2; case 9 - .short _02068500 - _0206814E - 2; case 10 - .short _02068500 - _0206814E - 2; case 11 - .short _02068500 - _0206814E - 2; case 12 - .short _020682EE - _0206814E - 2; case 13 - .short _020682F8 - _0206814E - 2; case 14 - .short _02068302 - _0206814E - 2; case 15 - .short _0206830C - _0206814E - 2; case 16 - .short _02068316 - _0206814E - 2; case 17 - .short _02068320 - _0206814E - 2; case 18 - .short _0206832A - _0206814E - 2; case 19 - .short _02068340 - _0206814E - 2; case 20 - .short _02068356 - _0206814E - 2; case 21 - .short _0206836C - _0206814E - 2; case 22 - .short _02068382 - _0206814E - 2; case 23 - .short _02068398 - _0206814E - 2; case 24 - .short _02068500 - _0206814E - 2; case 25 - .short _02068500 - _0206814E - 2; case 26 - .short _02068500 - _0206814E - 2; case 27 - .short _02068500 - _0206814E - 2; case 28 - .short _02068500 - _0206814E - 2; case 29 - .short _02068500 - _0206814E - 2; case 30 - .short _02068500 - _0206814E - 2; case 31 - .short _02068500 - _0206814E - 2; case 32 - .short _02068500 - _0206814E - 2; case 33 - .short _02068500 - _0206814E - 2; case 34 - .short _02068500 - _0206814E - 2; case 35 - .short _02068500 - _0206814E - 2; case 36 - .short _02068500 - _0206814E - 2; case 37 - .short _02068500 - _0206814E - 2; case 38 - .short _02068500 - _0206814E - 2; case 39 - .short _02068500 - _0206814E - 2; case 40 - .short _02068500 - _0206814E - 2; case 41 - .short _02068500 - _0206814E - 2; case 42 - .short _02068500 - _0206814E - 2; case 43 - .short _02068500 - _0206814E - 2; case 44 - .short _02068500 - _0206814E - 2; case 45 - .short _02068500 - _0206814E - 2; case 46 - .short _02068500 - _0206814E - 2; case 47 - .short _02068500 - _0206814E - 2; case 48 - .short _02068500 - _0206814E - 2; case 49 - .short _02068500 - _0206814E - 2; case 50 - .short _02068500 - _0206814E - 2; case 51 - .short _02068500 - _0206814E - 2; case 52 - .short _02068500 - _0206814E - 2; case 53 - .short _02068500 - _0206814E - 2; case 54 - .short _02068500 - _0206814E - 2; case 55 - .short _02068500 - _0206814E - 2; case 56 - .short _02068500 - _0206814E - 2; case 57 - .short _020683AE - _0206814E - 2; case 58 - .short _020683AE - _0206814E - 2; case 59 - .short _020683AE - _0206814E - 2; case 60 - .short _020683AE - _0206814E - 2; case 61 - .short _020683EA - _0206814E - 2; case 62 - .short _020683EA - _0206814E - 2; case 63 - .short _020683EA - _0206814E - 2; case 64 - .short _020683EA - _0206814E - 2; case 65 - .short _02068504 - _0206814E - 2; case 66 - .short _02068504 - _0206814E - 2; case 67 - .short _02068504 - _0206814E - 2; case 68 - .short _02068504 - _0206814E - 2; case 69 - .short _02068404 - _0206814E - 2; case 70 - .short _0206842E - _0206814E - 2; case 71 - .short _02068458 - _0206814E - 2; case 72 - .short _02068482 - _0206814E - 2; case 73 - .short _020684AC - _0206814E - 2; case 74 - .short _020684D6 - _0206814E - 2; case 75 - .short _02068500 - _0206814E - 2; case 76 - .short _02068500 - _0206814E - 2; case 77 - .short _02068500 - _0206814E - 2; case 78 - .short _02068500 - _0206814E - 2; case 79 - .short _02068500 - _0206814E - 2; case 80 - .short _02068500 - _0206814E - 2; case 81 - .short _02068500 - _0206814E - 2; case 82 - .short _02068500 - _0206814E - 2; case 83 - .short _02068500 - _0206814E - 2; case 84 - .short _02068500 - _0206814E - 2; case 85 - .short _02068500 - _0206814E - 2; case 86 - .short _02068500 - _0206814E - 2; case 87 - .short _02068500 - _0206814E - 2; case 88 - .short _02068500 - _0206814E - 2; case 89 - .short _02068500 - _0206814E - 2; case 90 - .short _02068500 - _0206814E - 2; case 91 - .short _02068500 - _0206814E - 2; case 92 - .short _02068500 - _0206814E - 2; case 93 - .short _02068500 - _0206814E - 2; case 94 - .short _02068500 - _0206814E - 2; case 95 - .short _02068500 - _0206814E - 2; case 96 - .short _02068500 - _0206814E - 2; case 97 - .short _02068500 - _0206814E - 2; case 98 - .short _02068500 - _0206814E - 2; case 99 - .short _02068500 - _0206814E - 2; case 100 - .short _02068500 - _0206814E - 2; case 101 - .short _02068500 - _0206814E - 2; case 102 - .short _02068500 - _0206814E - 2; case 103 - .short _02068500 - _0206814E - 2; case 104 - .short _02068500 - _0206814E - 2; case 105 - .short _02068500 - _0206814E - 2; case 106 - .short _02068500 - _0206814E - 2; case 107 - .short _02068500 - _0206814E - 2; case 108 - .short _02068500 - _0206814E - 2; case 109 - .short _02068500 - _0206814E - 2; case 110 - .short _02068500 - _0206814E - 2; case 111 - .short _02068500 - _0206814E - 2; case 112 - .short _02068500 - _0206814E - 2; case 113 - .short _02068500 - _0206814E - 2; case 114 - .short _02068500 - _0206814E - 2; case 115 - .short _02068500 - _0206814E - 2; case 116 - .short _02068500 - _0206814E - 2; case 117 - .short _02068500 - _0206814E - 2; case 118 - .short _02068500 - _0206814E - 2; case 119 - .short _02068500 - _0206814E - 2; case 120 - .short _02068500 - _0206814E - 2; case 121 - .short _02068500 - _0206814E - 2; case 122 - .short _02068500 - _0206814E - 2; case 123 - .short _02068500 - _0206814E - 2; case 124 - .short _02068500 - _0206814E - 2; case 125 - .short _02068500 - _0206814E - 2; case 126 - .short _02068500 - _0206814E - 2; case 127 - .short _02068500 - _0206814E - 2; case 128 - .short _02068500 - _0206814E - 2; case 129 - .short _02068500 - _0206814E - 2; case 130 - .short _02068500 - _0206814E - 2; case 131 - .short _02068500 - _0206814E - 2; case 132 - .short _02068500 - _0206814E - 2; case 133 - .short _02068500 - _0206814E - 2; case 134 - .short _02068500 - _0206814E - 2; case 135 - .short _02068500 - _0206814E - 2; case 136 - .short _02068500 - _0206814E - 2; case 137 - .short _02068500 - _0206814E - 2; case 138 - .short _02068500 - _0206814E - 2; case 139 - .short _02068500 - _0206814E - 2; case 140 - .short _02068500 - _0206814E - 2; case 141 - .short _02068500 - _0206814E - 2; case 142 - .short _02068500 - _0206814E - 2; case 143 - .short _02068500 - _0206814E - 2; case 144 - .short _02068500 - _0206814E - 2; case 145 - .short _02068500 - _0206814E - 2; case 146 - .short _02068500 - _0206814E - 2; case 147 - .short _02068500 - _0206814E - 2; case 148 - .short _02068500 - _0206814E - 2; case 149 - .short _02068500 - _0206814E - 2; case 150 - .short _02068500 - _0206814E - 2; case 151 - .short _02068500 - _0206814E - 2; case 152 - .short _02068500 - _0206814E - 2; case 153 - .short _02068500 - _0206814E - 2; case 154 - .short _02068500 - _0206814E - 2; case 155 - .short _02068500 - _0206814E - 2; case 156 - .short _02068500 - _0206814E - 2; case 157 - .short _02068500 - _0206814E - 2; case 158 - .short _02068500 - _0206814E - 2; case 159 - .short _02068500 - _0206814E - 2; case 160 - .short _02068500 - _0206814E - 2; case 161 - .short _02068500 - _0206814E - 2; case 162 - .short _02068500 - _0206814E - 2; case 163 - .short _02068500 - _0206814E - 2; case 164 - .short _02068500 - _0206814E - 2; case 165 - .short _02068500 - _0206814E - 2; case 166 - .short _02068500 - _0206814E - 2; case 167 - .short _02068500 - _0206814E - 2; case 168 - .short _02068500 - _0206814E - 2; case 169 - .short _02068500 - _0206814E - 2; case 170 - .short _02068500 - _0206814E - 2; case 171 - .short _02068500 - _0206814E - 2; case 172 - .short _02068500 - _0206814E - 2; case 173 - .short _02068500 - _0206814E - 2; case 174 - .short _02068500 - _0206814E - 2; case 175 - .short _02068500 - _0206814E - 2; case 176 - .short _02068500 - _0206814E - 2; case 177 - .short _02068500 - _0206814E - 2; case 178 -_020682B4: - ldrh r0, [r4, #0x0] - mov r1, #0x64 - bl GetMonExpByLevel - ldr r1, [r4, #0x8] - add r1, r1, r6 - cmp r1, r0 - bls _020682D2 - ldrh r0, [r4, #0x0] - mov r1, #0x64 - bl GetMonExpByLevel - add sp, #0xc - str r0, [r4, #0x8] - pop {r4-r7, pc} -_020682D2: - add sp, #0xc - str r1, [r4, #0x8] - pop {r4-r7, pc} -_020682D8: - ldrb r0, [r4, #0xc] - add r0, r0, r6 - cmp r0, #0xff - ble _020682E8 - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0xc] - pop {r4-r7, pc} -_020682E8: - add sp, #0xc - strb r0, [r4, #0xc] - pop {r4-r7, pc} -_020682EE: - ldrb r0, [r4, #0x10] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x10] - pop {r4-r7, pc} -_020682F8: - ldrb r0, [r4, #0x11] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x11] - pop {r4-r7, pc} -_02068302: - ldrb r0, [r4, #0x12] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x12] - pop {r4-r7, pc} -_0206830C: - ldrb r0, [r4, #0x13] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x13] - pop {r4-r7, pc} -_02068316: - ldrb r0, [r4, #0x14] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x14] - pop {r4-r7, pc} -_02068320: - ldrb r0, [r4, #0x15] - add sp, #0xc - add r0, r0, r6 - strb r0, [r4, #0x15] - pop {r4-r7, pc} -_0206832A: - ldrb r0, [r4, #0x16] - add r0, r0, r6 - cmp r0, #0xff - ble _0206833A - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x16] - pop {r4-r7, pc} -_0206833A: - add sp, #0xc - strb r0, [r4, #0x16] - pop {r4-r7, pc} -_02068340: - ldrb r0, [r4, #0x17] - add r0, r0, r6 - cmp r0, #0xff - ble _02068350 - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x17] - pop {r4-r7, pc} -_02068350: - add sp, #0xc - strb r0, [r4, #0x17] - pop {r4-r7, pc} -_02068356: - ldrb r0, [r4, #0x18] - add r0, r0, r6 - cmp r0, #0xff - ble _02068366 - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x18] - pop {r4-r7, pc} -_02068366: - add sp, #0xc - strb r0, [r4, #0x18] - pop {r4-r7, pc} -_0206836C: - ldrb r0, [r4, #0x19] - add r0, r0, r6 - cmp r0, #0xff - ble _0206837C - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x19] - pop {r4-r7, pc} -_0206837C: - add sp, #0xc - strb r0, [r4, #0x19] - pop {r4-r7, pc} -_02068382: - ldrb r0, [r4, #0x1a] - add r0, r0, r6 - cmp r0, #0xff - ble _02068392 - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x1a] - pop {r4-r7, pc} -_02068392: - add sp, #0xc - strb r0, [r4, #0x1a] - pop {r4-r7, pc} -_02068398: - ldrb r0, [r4, #0x1b] - add r0, r0, r6 - cmp r0, #0xff - ble _020683A8 - mov r0, #0xff - add sp, #0xc - strb r0, [r4, #0x1b] - pop {r4-r7, pc} -_020683A8: - add sp, #0xc - strb r0, [r4, #0x1b] - pop {r4-r7, pc} -_020683AE: - add r0, r5, #0x0 - str r0, [sp, #0x4] - add r0, #0xc - str r0, [sp, #0x4] - sub r7, #0x3a - ldr r1, [sp, #0x4] - lsl r0, r7, #0x1 - str r0, [sp, #0x8] - add r4, r5, #0x0 - ldrh r0, [r5, r0] - ldrb r1, [r1, r7] - add r4, #0x8 - bl FUN_0206AB30 - ldrb r1, [r4, r7] - add r1, r6, r1 - cmp r1, r0 - ble _020683E4 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x4] - ldrh r0, [r5, r0] - ldrb r1, [r1, r7] - bl FUN_0206AB30 - add sp, #0xc - strb r0, [r4, r7] - pop {r4-r7, pc} -_020683E4: - add sp, #0xc - strb r1, [r4, r7] - pop {r4-r7, pc} -_020683EA: - add r5, #0xc - sub r7, #0x3e - ldrb r0, [r5, r7] - add r0, r6, r0 - cmp r0, #0x3 - ble _020683FE - mov r0, #0x3 - add sp, #0xc - strb r0, [r5, r7] - pop {r4-r7, pc} -_020683FE: - add sp, #0xc - strb r0, [r5, r7] - pop {r4-r7, pc} -_02068404: - ldr r1, [r5, #0x10] - lsl r0, r1, #0x1b - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - bls _0206841E - mov r0, #0x1f - bic r1, r0 - mov r0, #0x1f - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_0206841E: - mov r0, #0x1f - bic r1, r0 - mov r0, #0x1f - and r0, r2 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_0206842E: - ldr r1, [r5, #0x10] - lsl r0, r1, #0x16 - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - ldr r0, _02068508 ; =0xFFFFFC1F - bls _0206844A - and r1, r0 - mov r0, #0x3e - lsl r0, r0, #0x4 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_0206844A: - and r1, r0 - lsl r0, r2, #0x1b - lsr r0, r0, #0x16 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02068458: - ldr r1, [r5, #0x10] - lsl r0, r1, #0x11 - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - ldr r0, _0206850C ; =0xFFFF83FF - bls _02068474 - and r1, r0 - mov r0, #0x1f - lsl r0, r0, #0xa - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02068474: - and r1, r0 - lsl r0, r2, #0x1b - lsr r0, r0, #0x11 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02068482: - ldr r1, [r5, #0x10] - lsl r0, r1, #0xc - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - ldr r0, _02068510 ; =0xFFF07FFF - bls _0206849E - and r1, r0 - mov r0, #0x3e - lsl r0, r0, #0xe - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_0206849E: - and r1, r0 - lsl r0, r2, #0x1b - lsr r0, r0, #0xc - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_020684AC: - ldr r1, [r5, #0x10] - lsl r0, r1, #0x7 - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - ldr r0, _02068514 ; =0xFE0FFFFF - bls _020684C8 - and r1, r0 - mov r0, #0x1f - lsl r0, r0, #0x14 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_020684C8: - and r1, r0 - lsl r0, r2, #0x1b - lsr r0, r0, #0x7 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_020684D6: - ldr r1, [r5, #0x10] - lsl r0, r1, #0x2 - lsr r0, r0, #0x1b - add r2, r0, r6 - cmp r2, #0x1f - ldr r0, _02068518 ; =0xC1FFFFFF - bls _020684F2 - and r1, r0 - mov r0, #0x3e - lsl r0, r0, #0x18 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_020684F2: - and r1, r0 - lsl r0, r2, #0x1b - lsr r0, r0, #0x2 - orr r0, r1 - add sp, #0xc - str r0, [r5, #0x10] - pop {r4-r7, pc} -_02068500: - bl ErrorHandling -_02068504: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02068508: .word 0xFFFFFC1F -_0206850C: .word 0xFFFF83FF -_02068510: .word 0xFFF07FFF -_02068514: .word 0xFE0FFFFF -_02068518: .word 0xC1FFFFFF - - thumb_func_start AllocAndLoadMonPersonal -AllocAndLoadMonPersonal: ; 0x0206851C - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x2c - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl LoadMonPersonal - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start GetPersonalAttr -GetPersonalAttr: ; 0x02068538 - push {r4-r6, lr} - add r4, r0, #0x0 - add r6, r1, #0x0 - cmp r4, #0x0 - bne _02068546 - bl ErrorHandling -_02068546: - cmp r6, #0x20 - bhi _0206863A - add r0, r6, r6 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02068556: ; jump table (using 16-bit offset) - .short _02068598 - _02068556 - 2; case 0 - .short _0206859C - _02068556 - 2; case 1 - .short _020685A0 - _02068556 - 2; case 2 - .short _020685A4 - _02068556 - 2; case 3 - .short _020685A8 - _02068556 - 2; case 4 - .short _020685AC - _02068556 - 2; case 5 - .short _020685B0 - _02068556 - 2; case 6 - .short _020685B4 - _02068556 - 2; case 7 - .short _020685B8 - _02068556 - 2; case 8 - .short _020685BC - _02068556 - 2; case 9 - .short _020685C0 - _02068556 - 2; case 10 - .short _020685C8 - _02068556 - 2; case 11 - .short _020685D0 - _02068556 - 2; case 12 - .short _020685D8 - _02068556 - 2; case 13 - .short _020685E0 - _02068556 - 2; case 14 - .short _020685E8 - _02068556 - 2; case 15 - .short _020685F0 - _02068556 - 2; case 16 - .short _020685F4 - _02068556 - 2; case 17 - .short _020685F8 - _02068556 - 2; case 18 - .short _020685FC - _02068556 - 2; case 19 - .short _02068600 - _02068556 - 2; case 20 - .short _02068604 - _02068556 - 2; case 21 - .short _02068608 - _02068556 - 2; case 22 - .short _0206860C - _02068556 - 2; case 23 - .short _02068610 - _02068556 - 2; case 24 - .short _02068614 - _02068556 - 2; case 25 - .short _02068618 - _02068556 - 2; case 26 - .short _0206861C - _02068556 - 2; case 27 - .short _02068624 - _02068556 - 2; case 28 - .short _0206862C - _02068556 - 2; case 29 - .short _02068630 - _02068556 - 2; case 30 - .short _02068634 - _02068556 - 2; case 31 - .short _02068638 - _02068556 - 2; case 32 -_02068598: - ldrb r5, [r4, #0x0] - b _0206863A -_0206859C: - ldrb r5, [r4, #0x1] - b _0206863A -_020685A0: - ldrb r5, [r4, #0x2] - b _0206863A -_020685A4: - ldrb r5, [r4, #0x3] - b _0206863A -_020685A8: - ldrb r5, [r4, #0x4] - b _0206863A -_020685AC: - ldrb r5, [r4, #0x5] - b _0206863A -_020685B0: - ldrb r5, [r4, #0x6] - b _0206863A -_020685B4: - ldrb r5, [r4, #0x7] - b _0206863A -_020685B8: - ldrb r5, [r4, #0x8] - b _0206863A -_020685BC: - ldrb r5, [r4, #0x9] - b _0206863A -_020685C0: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x1e - lsr r5, r0, #0x1e - b _0206863A -_020685C8: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x1c - lsr r5, r0, #0x1e - b _0206863A -_020685D0: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x1a - lsr r5, r0, #0x1e - b _0206863A -_020685D8: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x18 - lsr r5, r0, #0x1e - b _0206863A -_020685E0: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x16 - lsr r5, r0, #0x1e - b _0206863A -_020685E8: - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x14 - lsr r5, r0, #0x1e - b _0206863A -_020685F0: - ldrh r5, [r4, #0xc] - b _0206863A -_020685F4: - ldrh r5, [r4, #0xe] - b _0206863A -_020685F8: - ldrb r5, [r4, #0x10] - b _0206863A -_020685FC: - ldrb r5, [r4, #0x11] - b _0206863A -_02068600: - ldrb r5, [r4, #0x12] - b _0206863A -_02068604: - ldrb r5, [r4, #0x13] - b _0206863A -_02068608: - ldrb r5, [r4, #0x14] - b _0206863A -_0206860C: - ldrb r5, [r4, #0x15] - b _0206863A -_02068610: - ldrb r5, [r4, #0x16] - b _0206863A -_02068614: - ldrb r5, [r4, #0x17] - b _0206863A -_02068618: - ldrb r5, [r4, #0x18] - b _0206863A -_0206861C: - ldrb r0, [r4, #0x19] - lsl r0, r0, #0x19 - lsr r5, r0, #0x19 - b _0206863A -_02068624: - ldrb r0, [r4, #0x19] - lsl r0, r0, #0x18 - lsr r5, r0, #0x1f - b _0206863A -_0206862C: - ldr r5, [r4, #0x1c] - b _0206863A -_02068630: - ldr r5, [r4, #0x20] - b _0206863A -_02068634: - ldr r5, [r4, #0x24] - b _0206863A -_02068638: - ldr r5, [r4, #0x28] -_0206863A: - add r0, r5, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FreeMonPersonal -FreeMonPersonal: ; 0x02068640 - push {r4, lr} - add r4, r0, #0x0 - bne _0206864A - bl ErrorHandling -_0206864A: - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start GetMonBaseStat_HandleFormeConversion -GetMonBaseStat_HandleFormeConversion: ; 0x02068654 - push {r3-r5, lr} - add r4, r2, #0x0 - bl ResolveMonForme - mov r1, #0x0 - bl AllocAndLoadMonPersonal - add r5, r0, #0x0 - add r1, r4, #0x0 - bl GetPersonalAttr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FreeMonPersonal - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start GetMonBaseStat -GetMonBaseStat: ; 0x02068678 - push {r3-r5, lr} - add r4, r1, #0x0 - mov r1, #0x0 - bl AllocAndLoadMonPersonal - add r5, r0, #0x0 - add r1, r4, #0x0 - bl GetPersonalAttr - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FreeMonPersonal - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02068698 -FUN_02068698: ; 0x02068698 - push {r3-r7, lr} - add r5, r0, #0x0 - bl TryDecryptMon - str r0, [sp, #0x0] - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r5, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl GetMonExpByLevel - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r7, #0x1 - bl GetMonExpByLevel - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - mov r2, #0x0 - bl GetMonDataEncrypted - add r7, r0, #0x0 - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl TryEncryptMon - sub r1, r7, r4 - mov r0, #0x64 - mul r0, r1 - sub r1, r6, r4 - bl _u32_div_f - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3-r7, pc} - - thumb_func_start CalcMonExpToNextLevelEncrypted -CalcMonExpToNextLevelEncrypted: ; 0x020686F8 - ldr r3, _020686FC ; =CalcBoxMonExpToNextLevelEncrypted - bx r3 - .balign 4 -_020686FC: .word CalcBoxMonExpToNextLevelEncrypted - - thumb_func_start CalcBoxMonExpToNextLevelEncrypted -CalcBoxMonExpToNextLevelEncrypted: ; 0x02068700 - push {r4-r6, lr} - mov r1, #0x5 - mov r2, #0x0 - add r4, r0, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r4, #0x0 - bl CalcBoxMonLevelEncrypted - add r0, r0, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0x0 - mov r1, #0x8 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - bl GetMonExpByLevel - sub r0, r0, r4 - pop {r4-r6, pc} - - thumb_func_start FUN_02068734 -FUN_02068734: ; 0x02068734 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - add r1, r0, #0x0 - add r0, r4, #0x0 - bl GetMonExpByLevel - pop {r3-r5, pc} - .balign 4 - - thumb_func_start GetMonExpByLevel -GetMonExpByLevel: ; 0x02068758 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0x15 - bl GetMonBaseStat - add r1, r4, #0x0 - bl GetExpByGrowthRateAndLevel - pop {r4, pc} - .balign 4 - - thumb_func_start LoadGrowthTable -LoadGrowthTable: ; 0x0206876C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r5, #0x8 - blt _0206877A - bl ErrorHandling -_0206877A: - add r0, r4, #0x0 - mov r1, #0x3 ; NARC_POKETOOL_PERSONAL_GROWTBL - add r2, r5, #0x0 - bl ReadWholeNarcMemberByIdPair - pop {r3-r5, pc} - .balign 4 - - thumb_func_start GetExpByGrowthRateAndLevel -GetExpByGrowthRateAndLevel: ; 0x02068788 - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - cmp r6, #0x8 - blt _02068796 - bl ErrorHandling -_02068796: - cmp r5, #0x65 - ble _0206879E - bl ErrorHandling -_0206879E: - mov r1, #0x65 - mov r0, #0x0 - lsl r1, r1, #0x2 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r4, #0x0 - bl LoadGrowthTable - lsl r0, r5, #0x2 - ldr r5, [r4, r0] - add r0, r4, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - pop {r4-r6, pc} - - thumb_func_start CalcMonLevelEncrypted -CalcMonLevelEncrypted: ; 0x020687C0 - ldr r3, _020687C4 ; =CalcBoxMonLevelEncrypted - bx r3 - .balign 4 -_020687C4: .word CalcBoxMonLevelEncrypted - - thumb_func_start CalcBoxMonLevelEncrypted -CalcBoxMonLevelEncrypted: ; 0x020687C8 - push {r3-r7, lr} - add r5, r0, #0x0 - bl TryDecryptBoxMon - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r7, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl TryEncryptBoxMon - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - add r1, r7, #0x0 - bl CalcLevelBySpeciesAndExp - pop {r3-r7, pc} - .balign 4 - - thumb_func_start CalcLevelBySpeciesAndExp -CalcLevelBySpeciesAndExp: ; 0x02068800 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - mov r1, #0x0 - bl AllocAndLoadMonPersonal - add r6, r0, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl CalcLevelBySpeciesAndExp_PreloadedPersonal - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FreeMonPersonal - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start CalcLevelBySpeciesAndExp_PreloadedPersonal -CalcLevelBySpeciesAndExp_PreloadedPersonal: ; 0x02068824 - push {r4, lr} - mov r1, #0x15 - add r4, r2, #0x0 - bl GetPersonalAttr - ldr r1, _0206884C ; =UNK_021C5AC0 - bl LoadGrowthTable - ldr r2, _02068850 ; =UNK_021C5AC0 + 4 - mov r1, #0x1 -_02068838: - ldr r0, [r2, #0x0] - cmp r0, r4 - bhi _02068846 - add r1, r1, #0x1 - add r2, r2, #0x4 - cmp r1, #0x65 - blt _02068838 -_02068846: - sub r0, r1, #0x1 - pop {r4, pc} - nop -_0206884C: .word UNK_021C5AC0 -_02068850: .word UNK_021C5AC0 + 4 - - thumb_func_start GetMonNatureEncrypted -GetMonNatureEncrypted: ; 0x02068854 - ldr r3, _02068858 ; =GetBoxMonNatureEncrypted - bx r3 - .balign 4 -_02068858: .word GetBoxMonNatureEncrypted - - thumb_func_start GetBoxMonNatureEncrypted -GetBoxMonNatureEncrypted: ; 0x0206885C - push {r4-r6, lr} - add r5, r0, #0x0 - bl TryDecryptBoxMon - mov r1, #0x0 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl TryEncryptBoxMon - add r0, r6, #0x0 - bl GetNatureFromPersonality - pop {r4-r6, pc} - .balign 4 - - thumb_func_start GetNatureFromPersonality -GetNatureFromPersonality: ; 0x02068884 - push {r3, lr} - mov r1, #0x19 - bl _u32_div_f - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - .balign 4 - - thumb_func_start ApplyNatureModToStat -ApplyNatureModToStat: ; 0x02068894 - push {r3, lr} - cmp r2, #0x1 - blo _0206889E - cmp r2, #0x5 - bls _020688A2 -_0206889E: - add r0, r1, #0x0 - pop {r3, pc} -_020688A2: - lsl r3, r0, #0x2 - add r3, r0, r3 - ldr r0, _020688E4 ; =sNatureStatMods - sub r2, r2, #0x1 - add r0, r0, r3 - ldrsb r2, [r2, r0] - mov r0, #0x0 - mvn r0, r0 - cmp r2, r0 - beq _020688CE - cmp r2, #0x1 - bne _020688E0 - mov r0, #110 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #100 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - b _020688E0 -_020688CE: - mov r0, #90 - mul r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #100 - bl _s32_div_f - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 -_020688E0: - add r0, r1, #0x0 - pop {r3, pc} - .balign 4 -_020688E4: .word sNatureStatMods - - thumb_func_start MonApplyFriendshipModEncrypted -MonApplyFriendshipModEncrypted: ; 0x020688E8 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r1, #0x0 - add r5, r0, #0x0 - str r2, [sp, #0x0] - cmp r6, #0x5 - bne _02068900 - bl rand_LC - mov r1, #0x1 - tst r0, r1 - bne _020689D4 -_02068900: - add r0, r5, #0x0 - mov r1, #0xad - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - beq _020689D4 - ldr r0, _020689D8 ; =SPECIES_EGG - cmp r1, r0 - beq _020689D4 - add r0, r5, #0x0 - mov r1, #0x6 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_0206E7B8 - lsl r0, r0, #0x18 - mov r4, #0x0 - lsr r7, r0, #0x18 - add r0, r5, #0x0 - mov r1, #0x9 - add r2, r4, #0x0 - bl GetMonDataEncrypted - add r1, sp, #0x4 - strh r0, [r1, #0x0] - add r0, r4, #0x0 - ldrsh r1, [r1, r0] - cmp r1, #0x64 - blt _0206894E - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_0206894E: - cmp r1, #0xc8 - blt _02068958 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_02068958: - lsl r0, r6, #0x1 - add r1, r6, r0 - ldr r0, _020689DC ; =sFriendshipModTable - add r0, r0, r1 - ldrsb r4, [r4, r0] - cmp r4, #0x0 - ble _0206897A - add r0, r5, #0x0 - mov r1, #0x9a - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0xb - bne _0206897A - add r0, r4, #0x1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_0206897A: - cmp r4, #0x0 - ble _02068994 - add r0, r5, #0x0 - mov r1, #0x97 - mov r2, #0x0 - bl GetMonDataEncrypted - ldr r1, [sp, #0x0] - cmp r1, r0 - bne _02068994 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_02068994: - cmp r4, #0x0 - ble _020689AA - cmp r7, #0x34 - bne _020689AA - mov r0, #0x96 - mul r0, r4 - mov r1, #0x64 - bl _s32_div_f - lsl r0, r0, #0x18 - asr r4, r0, #0x18 -_020689AA: - add r0, sp, #0x4 - mov r1, #0x0 - ldrsh r2, [r0, r1] - add r2, r2, r4 - strh r2, [r0, #0x0] - ldrsh r2, [r0, r1] - cmp r2, #0x0 - bge _020689BC - strh r1, [r0, #0x0] -_020689BC: - add r1, sp, #0x4 - mov r0, #0x0 - ldrsh r0, [r1, r0] - cmp r0, #0xff - ble _020689CA - mov r0, #0xff - strh r0, [r1, #0x0] -_020689CA: - add r0, r5, #0x0 - mov r1, #0x9 - add r2, sp, #0x4 - bl SetMonDataEncrypted -_020689D4: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020689D8: .word SPECIES_EGG -_020689DC: .word sFriendshipModTable - - thumb_func_start GetMonGenderEncrypted -GetMonGenderEncrypted: ; 0x020689E0 - ldr r3, _020689E4 ; =GetBoxMonGenderEncrypted - bx r3 - .balign 4 -_020689E4: .word GetBoxMonGenderEncrypted - - thumb_func_start GetBoxMonGenderEncrypted -GetBoxMonGenderEncrypted: ; 0x020689E8 - push {r3-r7, lr} - add r5, r0, #0x0 - bl TryDecryptBoxMon - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - mov r1, #0x0 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r7, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl TryEncryptBoxMon - add r0, r4, #0x0 - add r1, r7, #0x0 - bl GetGenderBySpeciesAndPersonality - pop {r3-r7, pc} - .balign 4 - - thumb_func_start GetGenderBySpeciesAndPersonality -GetGenderBySpeciesAndPersonality: ; 0x02068A20 - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - mov r1, #0x0 - bl AllocAndLoadMonPersonal - add r6, r0, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl GetGenderBySpeciesAndPersonality_PreloadedPersonal - add r4, r0, #0x0 - add r0, r6, #0x0 - bl FreeMonPersonal - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start GetGenderBySpeciesAndPersonality_PreloadedPersonal -GetGenderBySpeciesAndPersonality_PreloadedPersonal: ; 0x02068A44 - push {r4, lr} - mov r1, #0x12 - add r4, r2, #0x0 - bl GetPersonalAttr - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - beq _02068A5E - cmp r1, #0xfe - beq _02068A62 - cmp r1, #0xff - beq _02068A66 - b _02068A6A -_02068A5E: - mov r0, #0x0 - pop {r4, pc} -_02068A62: - mov r0, #0x1 - pop {r4, pc} -_02068A66: - mov r0, #0x2 - pop {r4, pc} -_02068A6A: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - cmp r1, r0 - bls _02068A76 - mov r0, #0x1 - b _02068A78 -_02068A76: - mov r0, #0x0 -_02068A78: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02068A80 -FUN_02068A80: ; 0x02068A80 - ldr r3, _02068A84 ; =FUN_02068A88 - bx r3 - .balign 4 -_02068A84: .word FUN_02068A88 - - thumb_func_start FUN_02068A88 -FUN_02068A88: ; 0x02068A88 - push {r3-r5, lr} - mov r1, #0x7 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetBoxMonDataEncrypted - mov r1, #0x0 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02068AAC - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02068AAC -FUN_02068AAC: ; 0x02068AAC - ldr r3, _02068AD4 ; =0xFFFF0000 - lsl r2, r1, #0x10 - and r1, r3 - and r3, r0 - lsl r0, r0, #0x10 - lsr r3, r3, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 - eor r0, r3 - lsr r2, r2, #0x10 - eor r0, r1 - eor r0, r2 - cmp r0, #0x8 - bhs _02068ACC - mov r0, #0x1 - b _02068ACE -_02068ACC: - mov r0, #0x0 -_02068ACE: - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4 -_02068AD4: .word 0xFFFF0000 - - thumb_func_start FUN_02068AD8 -FUN_02068AD8: ; 0x02068AD8 - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _02068B64 ; =0xFFFF0000 - and r0, r7 - lsr r1, r0, #0x10 - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - eor r0, r1 - lsr r7, r0, #0x3 - bl rand_LC - mov r1, #0x7 - and r0, r1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - bl rand_LC - mov r1, #0x7 - and r0, r1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - mov r4, #0x0 -_02068B04: - add r0, r4, #0x0 - bl MaskOfFlagNo - tst r0, r7 - beq _02068B34 - bl rand_LC - mov r1, #0x1 - tst r0, r1 - beq _02068B26 - add r0, r4, #0x3 - bl MaskOfFlagNo - orr r0, r6 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - b _02068B56 -_02068B26: - add r0, r4, #0x3 - bl MaskOfFlagNo - orr r0, r5 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - b _02068B56 -_02068B34: - bl rand_LC - mov r1, #0x1 - tst r0, r1 - beq _02068B56 - add r0, r4, #0x3 - bl MaskOfFlagNo - orr r0, r6 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r4, #0x3 - bl MaskOfFlagNo - orr r0, r5 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02068B56: - add r4, r4, #0x1 - cmp r4, #0xd - blt _02068B04 - lsl r0, r5, #0x10 - orr r0, r6 - pop {r3-r7, pc} - nop -_02068B64: .word 0xFFFF0000 - - thumb_func_start FUN_02068B68 -FUN_02068B68: ; 0x02068B68 - ldr r3, _02068B6C ; =FUN_02068B70 - bx r3 - .balign 4 -_02068B6C: .word FUN_02068B70 - - thumb_func_start FUN_02068B70 -FUN_02068B70: ; 0x02068B70 - push {r4-r7, lr} - sub sp, #0x1c - add r5, r1, #0x0 - str r0, [sp, #0xc] - add r0, r5, #0x0 - str r2, [sp, #0x10] - bl TryDecryptBoxMon - str r0, [sp, #0x18] - add r0, r5, #0x0 - mov r1, #0xad - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - bl GetBoxMonGenderEncrypted - str r0, [sp, #0x14] - add r0, r5, #0x0 - bl FUN_02068A88 - mov r1, #0x0 - add r7, r0, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r6, r0, #0x0 - ldr r0, _02068BF8 ; =SPECIES_EGG - cmp r4, r0 - bne _02068BCA - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - ldr r1, _02068BFC ; =0x000001EA - cmp r0, r1 - bne _02068BC6 - mov r0, #0x1 - b _02068BD8 -_02068BC6: - mov r0, #0x0 - b _02068BD8 -_02068BCA: - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 -_02068BD8: - str r7, [sp, #0x0] - str r0, [sp, #0x4] - str r6, [sp, #0x8] - ldr r0, [sp, #0xc] - ldr r2, [sp, #0x14] - ldr r3, [sp, #0x10] - add r1, r4, #0x0 - bl FUN_02068C00 - ldr r1, [sp, #0x18] - add r0, r5, #0x0 - bl TryEncryptBoxMon - add sp, #0x1c - pop {r4-r7, pc} - nop -_02068BF8: .word SPECIES_EGG -_02068BFC: .word 0x000001EA - - thumb_func_start FUN_02068C00 -FUN_02068C00: ; 0x02068C00 - push {r4-r7} - add r7, r2, #0x0 - add r5, r3, #0x0 - add r4, r0, #0x0 - add r0, r1, #0x0 - ldr r3, [sp, #0x10] - ldr r2, [sp, #0x14] - mov r1, #0x0 - strh r1, [r4, #0x6] - strb r1, [r4, #0x8] - str r1, [r4, #0xc] - ldr r1, _02068E0C ; =0x000001A5 - cmp r0, r1 - bgt _02068C68 - bge _02068D1E - add r6, r1, #0x0 - sub r6, #0x46 - cmp r0, r6 - bgt _02068C36 - sub r1, #0x46 - cmp r0, r1 - blt _02068C2E - b _02068D58 -_02068C2E: - cmp r0, #0xc9 - bne _02068C34 - b _02068D90 -_02068C34: - b _02068DD4 -_02068C36: - add r6, r1, #0x0 - sub r6, #0x23 - cmp r0, r6 - bgt _02068C48 - sub r1, #0x23 - cmp r0, r1 - bne _02068C46 - b _02068D76 -_02068C46: - b _02068DD4 -_02068C48: - add r6, r1, #0x0 - sub r6, #0x8 - cmp r0, r6 - bgt _02068C66 - add r6, r1, #0x0 - sub r6, #0x9 - cmp r0, r6 - blt _02068C66 - add r6, r1, #0x0 - sub r6, #0x9 - cmp r0, r6 - beq _02068CAA - sub r1, #0x8 - cmp r0, r1 - beq _02068CC8 -_02068C66: - b _02068DD4 -_02068C68: - add r6, r1, #0x0 - add r6, #0x48 - cmp r0, r6 - bgt _02068C8E - add r6, r1, #0x0 - add r6, #0x48 - cmp r0, r6 - bge _02068D3A - add r6, r1, #0x2 - cmp r0, r6 - bgt _02068C8C - add r6, r1, #0x1 - cmp r0, r6 - blt _02068C8C - beq _02068CE6 - add r1, r1, #0x2 - cmp r0, r1 - beq _02068D02 -_02068C8C: - b _02068DD4 -_02068C8E: - add r6, r1, #0x0 - add r6, #0x49 - cmp r0, r6 - bgt _02068CA0 - add r1, #0x49 - cmp r0, r1 - bne _02068C9E - b _02068DAC -_02068C9E: - b _02068DD4 -_02068CA0: - add r1, #0x4a - cmp r0, r1 - bne _02068CA8 - b _02068DC4 -_02068CA8: - b _02068DD4 -_02068CAA: - cmp r2, #0x2 - bls _02068CB0 - mov r2, #0x0 -_02068CB0: - mov r0, #0x75 - strh r0, [r4, #0x0] - lsr r0, r5, #0x1 - lsl r1, r2, #0x1 - add r0, #0x48 - add r0, r0, r1 - add r3, #0x92 - strh r0, [r4, #0x2] - add r0, r3, r1 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068CC8: - cmp r2, #0x2 - bls _02068CCE - mov r2, #0x0 -_02068CCE: - mov r0, #0x75 - strh r0, [r4, #0x0] - lsr r0, r5, #0x1 - lsl r1, r2, #0x1 - add r0, #0x4e - add r0, r0, r1 - add r3, #0x98 - strh r0, [r4, #0x2] - add r0, r3, r1 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068CE6: - cmp r2, #0x1 - bls _02068CEC - mov r2, #0x0 -_02068CEC: - mov r0, #0x75 - add r5, #0x54 - strh r0, [r4, #0x0] - add r0, r5, r2 - strh r0, [r4, #0x2] - add r3, #0x9e - lsl r0, r2, #0x1 - add r0, r3, r0 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D02: - cmp r2, #0x1 - bls _02068D08 - mov r2, #0x0 -_02068D08: - mov r0, #0x75 - add r5, #0x58 - strh r0, [r4, #0x0] - add r0, r5, r2 - strh r0, [r4, #0x2] - add r3, #0xa2 - lsl r0, r2, #0x1 - add r0, r3, r0 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D1E: - cmp r2, #0x1 - bls _02068D24 - mov r2, #0x0 -_02068D24: - mov r0, #0x75 - add r5, #0x5c - strh r0, [r4, #0x0] - add r0, r5, r2 - strh r0, [r4, #0x2] - lsl r0, r3, #0x1 - add r0, #0xa6 - add r0, r2, r0 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D3A: - cmp r2, #0x11 - bls _02068D40 - mov r2, #0x0 -_02068D40: - mov r0, #0x75 - strh r0, [r4, #0x0] - lsr r0, r5, #0x1 - lsl r1, r2, #0x1 - add r0, #0x60 - add r0, r0, r1 - add r3, #0xaa - strh r0, [r4, #0x2] - add r0, r3, r1 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D58: - cmp r2, #0x3 - bls _02068D5E - mov r2, #0x0 -_02068D5E: - mov r0, #0x75 - strh r0, [r4, #0x0] - lsl r0, r5, #0x1 - add r0, #0x40 - add r0, r2, r0 - strh r0, [r4, #0x2] - lsl r0, r3, #0x2 - add r0, #0x8a - add r0, r2, r0 - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D76: - cmp r2, #0x3 - bls _02068D7C - mov r2, #0x0 -_02068D7C: - mov r0, #0x75 - strh r0, [r4, #0x0] - lsr r1, r5, #0x1 - lsl r0, r2, #0x1 - add r0, r1, r0 - strh r0, [r4, #0x2] - add r3, #0x86 - strh r3, [r4, #0x4] - pop {r4-r7} - bx lr -_02068D90: - cmp r2, #0x1c - blo _02068D96 - mov r2, #0x0 -_02068D96: - mov r0, #0x75 - lsr r1, r5, #0x1 - strh r0, [r4, #0x0] - add r1, #0x8 - lsl r0, r2, #0x1 - add r0, r1, r0 - strh r0, [r4, #0x2] - add r3, #0x88 - strh r3, [r4, #0x4] - pop {r4-r7} - bx lr -_02068DAC: - cmp r2, #0x1 - bls _02068DB2 - mov r2, #0x0 -_02068DB2: - mov r0, #0x75 - strh r0, [r4, #0x0] - add r0, r2, #0x0 - add r0, #0x84 - strh r0, [r4, #0x2] - add r2, #0xce - strh r2, [r4, #0x4] - pop {r4-r7} - bx lr -_02068DC4: - mov r0, #0x75 - strh r0, [r4, #0x0] - mov r0, #0x84 - strh r0, [r4, #0x2] - mov r0, #0xce - strh r0, [r4, #0x4] - pop {r4-r7} - bx lr -_02068DD4: - mov r1, #0x4 - strh r1, [r4, #0x0] - cmp r7, #0x1 - beq _02068DE0 - mov r2, #0x1 - b _02068DE2 -_02068DE0: - mov r2, #0x0 -_02068DE2: - mov r1, #0x6 - mul r1, r0 - add r6, r5, r1 - add r2, r6, r2 - add r1, r1, #0x4 - strh r2, [r4, #0x2] - add r1, r3, r1 - strh r1, [r4, #0x4] - ldr r1, _02068E10 ; =0x00000147 - cmp r0, r1 - bne _02068E06 - cmp r5, #0x2 - bne _02068E06 - strh r1, [r4, #0x6] - mov r0, #0x0 - strb r0, [r4, #0x8] - ldr r0, [sp, #0x18] - str r0, [r4, #0xc] -_02068E06: - pop {r4-r7} - bx lr - nop -_02068E0C: .word 0x000001A5 -_02068E10: .word 0x00000147 - - thumb_func_start FUN_02068E14 -FUN_02068E14: ; 0x02068E14 - ldr r3, _02068E18 ; =FUN_02068E1C - bx r3 - .balign 4 -_02068E18: .word FUN_02068E1C - - thumb_func_start FUN_02068E1C -FUN_02068E1C: ; 0x02068E1C - push {r3-r7, lr} - sub sp, #0x8 - add r7, r1, #0x0 - mov r1, #0xad - mov r2, #0x0 - add r5, r0, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - bl GetBoxMonGenderEncrypted - mov r1, #0x0 - str r0, [sp, #0x4] - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r6, r0, #0x0 - ldr r0, _02068E80 ; =SPECIES_EGG - cmp r4, r0 - bne _02068E62 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - ldr r1, _02068E84 ; =0x000001EA - cmp r0, r1 - bne _02068E5E - mov r3, #0x1 - b _02068E70 -_02068E5E: - mov r3, #0x0 - b _02068E70 -_02068E62: - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 -_02068E70: - str r6, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r4, #0x0 - add r2, r7, #0x0 - bl FUN_02068E88 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02068E80: .word SPECIES_EGG -_02068E84: .word 0x000001EA - - thumb_func_start FUN_02068E88 -FUN_02068E88: ; 0x02068E88 - push {r3-r5, lr} - ldr r4, _02068FDC ; =0x000001A5 - cmp r0, r4 - bgt _02068ED6 - bge _02068F54 - add r5, r4, #0x0 - sub r5, #0x46 - cmp r0, r5 - bgt _02068EA6 - sub r4, #0x46 - cmp r0, r4 - bge _02068F74 - cmp r0, #0xc9 - beq _02068F94 - b _02068FB8 -_02068EA6: - add r5, r4, #0x0 - sub r5, #0x23 - cmp r0, r5 - bgt _02068EB6 - sub r4, #0x23 - cmp r0, r4 - beq _02068F84 - b _02068FB8 -_02068EB6: - add r5, r4, #0x0 - sub r5, #0x8 - cmp r0, r5 - bgt _02068FB8 - add r5, r4, #0x0 - sub r5, #0x9 - cmp r0, r5 - blt _02068FB8 - add r5, r4, #0x0 - sub r5, #0x9 - cmp r0, r5 - beq _02068F14 - sub r4, #0x8 - cmp r0, r4 - beq _02068F26 - b _02068FB8 -_02068ED6: - add r5, r4, #0x0 - add r5, #0x48 - cmp r0, r5 - bgt _02068EFC - add r5, r4, #0x0 - add r5, #0x48 - cmp r0, r5 - bge _02068F62 - add r5, r4, #0x2 - cmp r0, r5 - bgt _02068FB8 - add r5, r4, #0x1 - cmp r0, r5 - blt _02068FB8 - beq _02068F38 - add r4, r4, #0x2 - cmp r0, r4 - beq _02068F46 - b _02068FB8 -_02068EFC: - add r5, r4, #0x0 - add r5, #0x49 - cmp r0, r5 - bgt _02068F0C - add r4, #0x49 - cmp r0, r4 - beq _02068FA6 - b _02068FB8 -_02068F0C: - add r4, #0x4a - cmp r0, r4 - beq _02068FB2 - b _02068FB8 -_02068F14: - cmp r3, #0x2 - bls _02068F1A - mov r3, #0x0 -_02068F1A: - lsr r1, r2, #0x1 - add r1, #0x48 - lsl r0, r3, #0x1 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r1, r0 - b _02068FCA -_02068F26: - cmp r3, #0x2 - bls _02068F2C - mov r3, #0x0 -_02068F2C: - lsr r1, r2, #0x1 - add r1, #0x4e - lsl r0, r3, #0x1 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r1, r0 - b _02068FCA -_02068F38: - cmp r3, #0x1 - bls _02068F3E - mov r3, #0x0 -_02068F3E: - add r2, #0x54 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r2, r3 - b _02068FCA -_02068F46: - cmp r3, #0x1 - bls _02068F4C - mov r3, #0x0 -_02068F4C: - add r2, #0x58 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r2, r3 - b _02068FCA -_02068F54: - cmp r3, #0x1 - bls _02068F5A - mov r3, #0x0 -_02068F5A: - add r2, #0x5c - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r2, r3 - b _02068FCA -_02068F62: - cmp r3, #0x11 - bls _02068F68 - mov r3, #0x0 -_02068F68: - lsr r1, r2, #0x1 - add r1, #0x60 - lsl r0, r3, #0x1 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r1, r0 - b _02068FCA -_02068F74: - cmp r3, #0x3 - bls _02068F7A - mov r3, #0x0 -_02068F7A: - lsl r0, r2, #0x1 - add r0, #0x40 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r3, r0 - b _02068FCA -_02068F84: - cmp r3, #0x3 - bls _02068F8A - mov r3, #0x0 -_02068F8A: - lsr r1, r2, #0x1 - lsl r0, r3, #0x1 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r1, r0 - b _02068FCA -_02068F94: - cmp r3, #0x1c - blo _02068F9A - mov r3, #0x0 -_02068F9A: - lsr r1, r2, #0x1 - add r1, #0x8 - lsl r0, r3, #0x1 - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, r1, r0 - b _02068FCA -_02068FA6: - cmp r3, #0x1 - bls _02068FAC - mov r3, #0x0 -_02068FAC: - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - add r3, #0x84 - b _02068FCA -_02068FB2: - mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O - mov r3, #0x84 - b _02068FCA -_02068FB8: - mov r4, #0x5 ; NARC_POKETOOL_POKEGRA_HEIGHT - cmp r1, #0x1 - beq _02068FC2 - mov r1, #0x1 - b _02068FC4 -_02068FC2: - mov r1, #0x0 -_02068FC4: - lsl r0, r0, #0x2 - add r0, r2, r0 - add r3, r0, r1 -_02068FCA: - add r0, sp, #0x0 - add r1, r4, #0x0 - add r2, r3, #0x0 - bl ReadWholeNarcMemberByIdPair - add r0, sp, #0x0 - ldrb r0, [r0, #0x0] - pop {r3-r5, pc} - nop -_02068FDC: .word 0x000001A5 - - thumb_func_start FUN_02068FE0 -FUN_02068FE0: ; 0x02068FE0 - push {r4, lr} - add r4, r0, #0x0 - cmp r2, #0x2 - bne _02068FEE - mov r0, #0x3c - strh r0, [r4, #0x0] - b _02068FFC -_02068FEE: - mov r0, #0x6 - strh r0, [r4, #0x0] - add r0, r1, #0x0 - bl FUN_0206AA30 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 -_02068FFC: - lsl r0, r1, #0x1 - strh r0, [r4, #0x2] - add r0, r0, #0x1 - strh r0, [r4, #0x4] - mov r0, #0x0 - strh r0, [r4, #0x6] - strb r0, [r4, #0x8] - str r0, [r4, #0xc] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02069010 -FUN_02069010: ; 0x02069010 - push {r3-r5, lr} - sub sp, #0x20 - add r5, r1, #0x0 - mov r3, #0x1c - add r4, r0, #0x0 - str r3, [sp, #0x0] - add r0, sp, #0x4 - mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM - mov r2, #0x0 - mul r3, r5 - bl ReadFromNarcMemberByIdPair - add r0, sp, #0xc - add r1, r4, #0x0 - mov r2, #0x14 - bl MI_CpuCopy8 - add sp, #0x20 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02069038 -FUN_02069038: ; 0x02069038 - push {r3-r7, lr} - sub sp, #0x28 - add r4, r0, #0x0 - add r6, r2, #0x0 - add r5, r3, #0x0 - mov r3, #0x1c - add r0, sp, #0x8 - add r7, r1, #0x0 - str r3, [sp, #0x0] - add r0, #0x2 - mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM - mov r2, #0x0 - mul r3, r6 - bl ReadFromNarcMemberByIdPair - cmp r5, #0x2 - bne _0206906C - add r1, sp, #0x4 - mov r0, #0x6 - ldrsb r0, [r1, r0] - strh r0, [r1, #0x0] - ldrb r0, [r1, #0x7] - strh r0, [r1, #0x2] - ldr r0, [sp, #0x44] - strb r0, [r1, #0x4] - b _02069096 -_0206906C: - ldr r0, [sp, #0x40] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_02014C3C - add r5, r0, #0x0 - cmp r5, #0x3 - blt _02069080 - bl ErrorHandling -_02069080: - lsl r2, r5, #0x1 - add r0, sp, #0xc - ldrsb r1, [r0, r2] - add r0, sp, #0x4 - strh r1, [r0, #0x0] - add r1, sp, #0xc - add r1, #0x1 - ldrb r1, [r1, r2] - strh r1, [r0, #0x2] - ldr r1, [sp, #0x44] - strb r1, [r0, #0x4] -_02069096: - ldr r3, [sp, #0x48] - add r0, r4, #0x0 - lsl r3, r3, #0x18 - add r1, r7, #0x0 - add r2, sp, #0x4 - lsr r3, r3, #0x18 - bl FUN_02014C54 - add sp, #0x28 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020690AC -FUN_020690AC: ; 0x020690AC - mov r2, #0x3c - strh r2, [r0, #0x0] - lsl r1, r1, #0x1 - strh r1, [r0, #0x2] - add r1, r1, #0x1 - strh r1, [r0, #0x4] - mov r1, #0x0 - strh r1, [r0, #0x6] - strb r1, [r0, #0x8] - str r1, [r0, #0xc] - bx lr - .balign 4 - - thumb_func_start FUN_020690C4 -FUN_020690C4: ; 0x020690C4 - mov r0, #0xec - bx lr - - thumb_func_start FUN_020690C8 -FUN_020690C8: ; 0x020690C8 - mov r0, #0x88 - bx lr - - thumb_func_start FUN_020690CC -FUN_020690CC: ; 0x020690CC - ldr r3, _020690D0 ; =FUN_020690D4 - bx r3 - .balign 4 -_020690D0: .word FUN_020690D4 - - thumb_func_start FUN_020690D4 -FUN_020690D4: ; 0x020690D4 - push {r3, lr} - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - pop {r3, pc} - - thumb_func_start FUN_020690E4 -FUN_020690E4: ; 0x020690E4 - bx lr - .balign 4 - - thumb_func_start FUN_020690E8 -FUN_020690E8: ; 0x020690E8 - push {r3-r5, lr} - sub sp, #0x8 - mov r1, #0x5 - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 - add r0, r4, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - add r1, r0, #0x1 - add r0, sp, #0x0 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - mov r1, #0x8 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x15 - bl GetMonBaseStat - mov r1, #0x64 - add r5, r0, #0x0 - bl GetExpByGrowthRateAndLevel - ldr r1, [sp, #0x4] - cmp r1, r0 - bls _02069138 - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r1, #0x8 - add r2, sp, #0x4 - bl SetMonDataEncrypted -_02069138: - add r0, sp, #0x0 - ldrb r1, [r0, #0x0] - cmp r1, #0x64 - bls _02069146 - add sp, #0x8 - mov r0, #0x0 - pop {r3-r5, pc} -_02069146: - add r0, r5, #0x0 - bl GetExpByGrowthRateAndLevel - ldr r1, [sp, #0x4] - cmp r1, r0 - blo _02069162 - add r0, r4, #0x0 - mov r1, #0xa0 - add r2, sp, #0x0 - bl SetMonDataEncrypted - add sp, #0x8 - mov r0, #0x1 - pop {r3-r5, pc} -_02069162: - mov r0, #0x0 - add sp, #0x8 - pop {r3-r5, pc} - - thumb_func_start FUN_02069168 -FUN_02069168: ; 0x02069168 - push {r4-r7, lr} - sub sp, #0x44 - add r7, r1, #0x0 - str r0, [sp, #0x0] - mov r6, #0x0 - add r4, r2, #0x0 - add r0, r7, #0x0 - mov r1, #0x5 - add r2, r6, #0x0 - str r3, [sp, #0x4] - ldr r5, [sp, #0x58] - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x2c] - add r0, r7, #0x0 - mov r1, #0x6 - add r2, r6, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - add r1, r6, #0x0 - str r0, [sp, #0x28] - add r0, r7, #0x0 - add r2, r1, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x30] - add r0, r7, #0x0 - mov r1, #0x14 - add r2, r6, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x10] - ldr r1, _020694A0 ; =0xFFFF0000 - ldr r0, [sp, #0x30] - add r2, r6, #0x0 - and r0, r1 - lsr r0, r0, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x28] - mov r1, #0x1 - bl FUN_0206E7B8 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r0, [sp, #0x2c] - cmp r0, #0x40 - beq _020691E4 - cmp r1, #0x3f - bne _020691E4 - cmp r4, #0x3 - beq _020691E4 - add sp, #0x44 - add r0, r6, #0x0 - pop {r4-r7, pc} -_020691E4: - cmp r5, #0x0 - bne _020691EA - add r5, sp, #0x40 -_020691EA: - mov r0, #0x0 - mov r1, #0x2a - bl AllocFromHeap - str r0, [sp, #0x18] - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x18] - bl LoadMonEvolutionTable - cmp r4, #0x3 - bls _02069202 - b _0206954A -_02069202: - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0206920E: ; jump table (using 16-bit offset) - .short _02069216 - _0206920E - 2; case 0 - .short _02069486 - _0206920E - 2; case 1 - .short _020694BE - _0206920E - 2; case 2 - .short _020694BE - _0206920E - 2; case 3 -_02069216: - add r0, r7, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x14] - add r0, r7, #0x0 - mov r1, #0x9 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x20] - mov r0, #0x0 - str r0, [sp, #0x24] - ldr r0, [sp, #0x1c] - mov r1, #0xa - ldr r4, [sp, #0x18] - bl _s32_div_f - str r1, [sp, #0x8] -_02069246: - ldrh r0, [r4, #0x0] - cmp r0, #0x1a - bls _0206924E - b _02069472 -_0206924E: - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0206925A: ; jump table (using 16-bit offset) - .short _02069472 - _0206925A - 2; case 0 - .short _02069290 - _0206925A - 2; case 1 - .short _0206929E - _0206925A - 2; case 2 - .short _020692B4 - _0206925A - 2; case 3 - .short _020692CA - _0206925A - 2; case 4 - .short _02069472 - _0206925A - 2; case 5 - .short _02069472 - _0206925A - 2; case 6 - .short _02069472 - _0206925A - 2; case 7 - .short _020692DA - _0206925A - 2; case 8 - .short _02069306 - _0206925A - 2; case 9 - .short _02069332 - _0206925A - 2; case 10 - .short _0206935E - _0206925A - 2; case 11 - .short _02069376 - _0206925A - 2; case 12 - .short _0206938C - _0206925A - 2; case 13 - .short _0206939C - _0206925A - 2; case 14 - .short _020693A2 - _0206925A - 2; case 15 - .short _02069472 - _0206925A - 2; case 16 - .short _02069472 - _0206925A - 2; case 17 - .short _020693B2 - _0206925A - 2; case 18 - .short _020693CA - _0206925A - 2; case 19 - .short _020693E2 - _0206925A - 2; case 20 - .short _020693F6 - _0206925A - 2; case 21 - .short _0206940E - _0206925A - 2; case 22 - .short _0206942C - _0206925A - 2; case 23 - .short _0206944A - _0206925A - 2; case 24 - .short _02069458 - _0206925A - 2; case 25 - .short _02069466 - _0206925A - 2; case 26 -_02069290: - ldr r0, [sp, #0x20] - cmp r0, #0xdc - blo _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x1 - str r0, [r5, #0x0] - b _02069472 -_0206929E: - bl FUN_0201277C - cmp r0, #0x0 - bne _0206936C - ldr r0, [sp, #0x20] - cmp r0, #0xdc - blo _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x2 - str r0, [r5, #0x0] - b _02069472 -_020692B4: - bl FUN_0201277C - cmp r0, #0x1 - bne _0206936C - ldr r0, [sp, #0x20] - cmp r0, #0xdc - blo _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x3 - str r0, [r5, #0x0] - b _02069472 -_020692CA: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x4 - str r0, [r5, #0x0] - b _02069472 -_020692DA: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _0206936C - add r0, r7, #0x0 - mov r1, #0xa4 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x34] - add r0, r7, #0x0 - mov r1, #0xa5 - mov r2, #0x0 - bl GetMonDataEncrypted - ldr r1, [sp, #0x34] - cmp r1, r0 - bls _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x8 - str r0, [r5, #0x0] - b _02069472 -_02069306: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _0206936C - add r0, r7, #0x0 - mov r1, #0xa4 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x38] - add r0, r7, #0x0 - mov r1, #0xa5 - mov r2, #0x0 - bl GetMonDataEncrypted - ldr r1, [sp, #0x38] - cmp r1, r0 - bne _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0x9 - str r0, [r5, #0x0] - b _02069472 -_02069332: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _0206936C - add r0, r7, #0x0 - mov r1, #0xa4 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x3c] - add r0, r7, #0x0 - mov r1, #0xa5 - mov r2, #0x0 - bl GetMonDataEncrypted - ldr r1, [sp, #0x3c] - cmp r1, r0 - bhs _0206936C - ldrh r6, [r4, #0x4] - mov r0, #0xa - str r0, [r5, #0x0] - b _02069472 -_0206935E: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _0206936C - ldr r0, [sp, #0x8] - cmp r0, #0x5 - blt _0206936E -_0206936C: - b _02069472 -_0206936E: - ldrh r6, [r4, #0x4] - mov r0, #0xb - str r0, [r5, #0x0] - b _02069472 -_02069376: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _02069472 - ldr r0, [sp, #0x8] - cmp r0, #0x5 - blt _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0xc - str r0, [r5, #0x0] - b _02069472 -_0206938C: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0xd - str r0, [r5, #0x0] - b _02069472 -_0206939C: - mov r0, #0xe - str r0, [r5, #0x0] - b _02069472 -_020693A2: - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x10] - cmp r1, r0 - bgt _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0xf - str r0, [r5, #0x0] - b _02069472 -_020693B2: - bl FUN_0201277C - cmp r0, #0x0 - bne _02069472 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x28] - cmp r0, r1 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x12 - str r0, [r5, #0x0] - b _02069472 -_020693CA: - bl FUN_0201277C - cmp r0, #0x1 - bne _02069472 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x28] - cmp r0, r1 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x13 - str r0, [r5, #0x0] - b _02069472 -_020693E2: - ldrh r1, [r4, #0x2] - add r0, r7, #0x0 - bl FUN_02069A38 - cmp r0, #0x1 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x14 - str r0, [r5, #0x0] - b _02069472 -_020693F6: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02069472 - ldrh r1, [r4, #0x2] - bl FUN_0206BAE4 - cmp r0, #0x1 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x15 - str r0, [r5, #0x0] - b _02069472 -_0206940E: - add r0, r7, #0x0 - mov r1, #0x6f - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - bne _02069472 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x16 - str r0, [r5, #0x0] - b _02069472 -_0206942C: - add r0, r7, #0x0 - mov r1, #0x6f - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x1 - bne _02069472 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x14] - cmp r1, r0 - bgt _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x17 - str r0, [r5, #0x0] - b _02069472 -_0206944A: - ldr r1, [sp, #0x4] - cmp r1, r0 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x18 - str r0, [r5, #0x0] - b _02069472 -_02069458: - ldr r1, [sp, #0x4] - cmp r1, r0 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x19 - str r0, [r5, #0x0] - b _02069472 -_02069466: - ldr r1, [sp, #0x4] - cmp r1, r0 - bne _02069472 - ldrh r6, [r4, #0x4] - mov r0, #0x1a - str r0, [r5, #0x0] -_02069472: - cmp r6, #0x0 - bne _0206954A - ldr r0, [sp, #0x24] - add r4, r4, #0x6 - add r0, r0, #0x1 - str r0, [sp, #0x24] - cmp r0, #0x7 - bge _02069484 - b _02069246 -_02069484: - b _0206954A -_02069486: - ldr r3, [sp, #0x18] - mov r4, #0x0 - mov r7, #0x6 - mov r2, #0x5 -_0206948E: - ldrh r0, [r3, #0x0] - cmp r0, #0x5 - beq _0206949A - cmp r0, #0x6 - beq _020694A4 - b _020694B0 -_0206949A: - ldrh r6, [r3, #0x4] - str r2, [r5, #0x0] - b _020694B0 - .balign 4 -_020694A0: .word 0xFFFF0000 -_020694A4: - ldrh r1, [r3, #0x2] - ldr r0, [sp, #0x28] - cmp r0, r1 - bne _020694B0 - ldrh r6, [r3, #0x4] - str r7, [r5, #0x0] -_020694B0: - cmp r6, #0x0 - bne _0206954A - add r4, r4, #0x1 - add r3, r3, #0x6 - cmp r4, #0x7 - blt _0206948E - b _0206954A -_020694BE: - mov r0, #0x0 - ldr r4, [sp, #0x18] - str r0, [sp, #0xc] -_020694C4: - ldrh r2, [r4, #0x0] - cmp r2, #0x7 - bne _020694E4 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x4] - cmp r0, r1 - bne _020694E4 - ldr r0, [sp, #0xc] - mov r1, #0x6 - mul r1, r0 - ldr r0, [sp, #0x18] - add r0, r0, r1 - ldrh r6, [r0, #0x4] - mov r0, #0x0 - str r0, [r5, #0x0] - b _0206954A -_020694E4: - cmp r2, #0x10 - bne _02069510 - add r0, r7, #0x0 - mov r1, #0x6f - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - bne _02069510 - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x4] - cmp r0, r1 - bne _02069510 - ldr r0, [sp, #0xc] - mov r1, #0x6 - mul r1, r0 - ldr r0, [sp, #0x18] - add r0, r0, r1 - ldrh r6, [r0, #0x4] - mov r0, #0x0 - str r0, [r5, #0x0] - b _0206954A -_02069510: - ldrh r0, [r4, #0x0] - cmp r0, #0x11 - bne _0206953E - add r0, r7, #0x0 - mov r1, #0x6f - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x1 - bne _0206953E - ldrh r1, [r4, #0x2] - ldr r0, [sp, #0x4] - cmp r0, r1 - bne _0206953E - ldr r0, [sp, #0xc] - mov r1, #0x6 - mul r1, r0 - ldr r0, [sp, #0x18] - add r0, r0, r1 - ldrh r6, [r0, #0x4] - mov r0, #0x0 - str r0, [r5, #0x0] - b _0206954A -_0206953E: - ldr r0, [sp, #0xc] - add r4, r4, #0x6 - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, #0x7 - blt _020694C4 -_0206954A: - ldr r0, [sp, #0x18] - bl FreeToHeap - add r0, r6, #0x0 - add sp, #0x44 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start ReadFromPersonalPmsNarc -ReadFromPersonalPmsNarc: ; 0x02069558 - push {r3-r4, lr} - sub sp, #0x4c - add r4, r0, #0x0 - mov r1, #0x0 - add r0, sp, #0x0 - strh r1, [r0, #0x0] - ldr r0, _020695A0 ; =SPECIES_EGG - cmp r4, r0 - blo _0206956E - bl ErrorHandling -_0206956E: - add r0, sp, #0x4 - bl FS_InitFile - ldr r1, _020695A4 ; =__local_str_poketool_personal_pms_narc - add r0, sp, #0x4 - bl FS_OpenFile - add r0, sp, #0x4 - lsl r1, r4, #0x1 - mov r2, #0x0 - bl FS_SeekFile - add r0, sp, #0x4 - add r1, sp, #0x0 - mov r2, #0x2 - bl FS_ReadFile - add r0, sp, #0x4 - bl FS_CloseFile - add r0, sp, #0x0 - ldrh r0, [r0, #0x0] - add sp, #0x4c - pop {r3-r4, pc} - nop -_020695A0: .word SPECIES_EGG -_020695A4: .word __local_str_poketool_personal_pms_narc - - thumb_func_start GetEggSpecies -GetEggSpecies: ; 0x020695A8 - push {r3, lr} - cmp r0, #SPECIES_SUDOWOODO - bgt _020695CC - cmp r0, #SPECIES_MARILL - blt _020695BA - beq _020695EC - cmp r0, #SPECIES_SUDOWOODO - beq _020695EC - b _020695E8 -_020695BA: - cmp r0, #SPECIES_MR_MIME - bgt _020695C6 - bge _020695EC - cmp r0, #SPECIES_CHANSEY - beq _020695EC - b _020695E8 -_020695C6: - cmp r0, #SPECIES_SNORLAX - beq _020695EC - b _020695E8 -_020695CC: - cmp r0, #SPECIES_MANTINE - bgt _020695D8 - bge _020695EC - cmp r0, #SPECIES_WOBBUFFET - beq _020695EC - b _020695E8 -_020695D8: - ldr r1, _020695F0 ; =SPECIES_ROSELIA - cmp r0, r1 - bgt _020695E2 - beq _020695EC - b _020695E8 -_020695E2: - add r1, #SPECIES_CHIMECHO-SPECIES_ROSELIA - cmp r0, r1 - beq _020695EC -_020695E8: - bl ReadFromPersonalPmsNarc -_020695EC: - pop {r3, pc} - nop -_020695F0: .word SPECIES_ROSELIA - - thumb_func_start InitBoxMonMoveset -InitBoxMonMoveset: ; 0x020695F4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - mov r0, #0x0 - mov r1, #0x2c - bl AllocFromHeap - str r0, [sp, #0x0] - add r0, r5, #0x0 - bl TryDecryptBoxMon - str r0, [sp, #0x4] - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r7, r0, #0x0 - add r0, r5, #0x0 - bl CalcBoxMonLevelEncrypted - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r2, [sp, #0x0] - add r0, r4, #0x0 - add r1, r7, #0x0 - bl LoadWotbl_HandleAlternateForme - ldr r0, [sp, #0x0] - ldrh r1, [r0, #0x0] - ldr r0, _02069690 ; =0x0000FFFF - cmp r1, r0 - beq _0206967C - ldr r4, [sp, #0x0] - lsl r7, r6, #0x9 -_02069648: - ldrh r1, [r4, #0x0] - mov r0, #0xfe - lsl r0, r0, #0x8 - and r0, r1 - cmp r0, r7 - bgt _0206967C - ldr r0, _02069694 ; =0x000001FF - and r0, r1 - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020696A8 - ldr r1, _02069690 ; =0x0000FFFF - cmp r0, r1 - bne _02069672 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02069718 -_02069672: - add r4, r4, #0x2 - ldrh r1, [r4, #0x0] - ldr r0, _02069690 ; =0x0000FFFF - cmp r1, r0 - bne _02069648 -_0206967C: - ldr r0, [sp, #0x0] - bl FreeToHeap - ldr r1, [sp, #0x4] - add r0, r5, #0x0 - bl TryEncryptBoxMon - add sp, #0x8 - pop {r3-r7, pc} - nop -_02069690: .word 0x0000FFFF -_02069694: .word 0x000001FF - - thumb_func_start FUN_02069698 -FUN_02069698: ; 0x02069698 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_020690E4 - add r1, r4, #0x0 - bl FUN_020696A8 - pop {r4, pc} - - thumb_func_start FUN_020696A8 -FUN_020696A8: ; 0x020696A8 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r1, #0x0 - ldr r1, _02069700 ; =0x0000FFFF - add r6, r0, #0x0 - str r1, [sp, #0x4] - bl TryDecryptBoxMon - mov r4, #0x0 - str r0, [sp, #0x0] - add r7, r4, #0x0 -_020696BE: - add r1, r4, #0x0 - add r0, r6, #0x0 - add r1, #0x36 - add r2, r7, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bne _020696E0 - lsl r2, r4, #0x18 - add r0, r6, #0x0 - add r1, r5, #0x0 - lsr r2, r2, #0x18 - bl FUN_020697D4 - str r5, [sp, #0x4] - b _020696F0 -_020696E0: - cmp r0, r5 - bne _020696EA - ldr r0, _02069704 ; =0x0000FFFE - str r0, [sp, #0x4] - b _020696F0 -_020696EA: - add r4, r4, #0x1 - cmp r4, #0x4 - blt _020696BE -_020696F0: - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl TryEncryptBoxMon - ldr r0, [sp, #0x4] - add sp, #0x8 - pop {r3-r7, pc} - nop -_02069700: .word 0x0000FFFF -_02069704: .word 0x0000FFFE - - thumb_func_start FUN_02069708 -FUN_02069708: ; 0x02069708 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_020690E4 - add r1, r4, #0x0 - bl FUN_02069718 - pop {r4, pc} - - thumb_func_start FUN_02069718 -FUN_02069718: ; 0x02069718 - push {r3-r7, lr} - sub sp, #0x20 - add r5, r0, #0x0 - str r1, [sp, #0x0] - bl TryDecryptBoxMon - str r0, [sp, #0xc] - add r0, sp, #0x18 - mov r4, #0x0 - str r0, [sp, #0x4] - add r7, sp, #0x14 - add r6, sp, #0x10 -_02069730: - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x37 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - ldr r1, [sp, #0x4] - mov r2, #0x0 - strh r0, [r1, #0x0] - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3b - bl GetBoxMonDataEncrypted - add r1, r4, #0x0 - strb r0, [r7, #0x0] - add r0, r5, #0x0 - add r1, #0x3f - mov r2, #0x0 - bl GetBoxMonDataEncrypted - strb r0, [r6, #0x0] - ldr r0, [sp, #0x4] - add r4, r4, #0x1 - add r0, r0, #0x2 - str r0, [sp, #0x4] - add r7, r7, #0x1 - add r6, r6, #0x1 - cmp r4, #0x3 - blt _02069730 - ldr r0, [sp, #0x0] - add r1, sp, #0x10 - strh r0, [r1, #0xe] - ldr r0, [sp, #0x0] - mov r1, #0x5 - bl FUN_0206AB18 - add r1, sp, #0x10 - strb r0, [r1, #0x7] - mov r4, #0x0 - add r0, sp, #0x18 - strb r4, [r1, #0x3] - str r0, [sp, #0x8] - add r7, sp, #0x14 - add r6, sp, #0x10 -_0206978A: - add r1, r4, #0x0 - ldr r2, [sp, #0x8] - add r0, r5, #0x0 - add r1, #0x36 - bl SetBoxMonDataEncrypted - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - add r2, r7, #0x0 - bl SetBoxMonDataEncrypted - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3e - add r2, r6, #0x0 - bl SetBoxMonDataEncrypted - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r0, r0, #0x2 - str r0, [sp, #0x8] - add r7, r7, #0x1 - add r6, r6, #0x1 - cmp r4, #0x4 - blt _0206978A - ldr r1, [sp, #0xc] - add r0, r5, #0x0 - bl TryEncryptBoxMon - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020697CC -FUN_020697CC: ; 0x020697CC - ldr r3, _020697D0 ; =FUN_020697D4 - bx r3 - .balign 4 -_020697D0: .word FUN_020697D4 - - thumb_func_start FUN_020697D4 -FUN_020697D4: ; 0x020697D4 - push {r0-r3} - push {r3-r5, lr} - add r4, r2, #0x0 - add r1, r4, #0x0 - add r1, #0x36 - add r2, sp, #0x14 - add r5, r0, #0x0 - bl SetBoxMonDataEncrypted - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3e - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - add r0, sp, #0x10 - ldrh r0, [r0, #0x4] - bl FUN_0206AB30 - add r1, sp, #0x0 - strb r0, [r1, #0x0] - add r4, #0x3a - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, sp, #0x0 - bl SetBoxMonDataEncrypted - pop {r3-r5} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 - - thumb_func_start FUN_02069818 -FUN_02069818: ; 0x02069818 - push {r3-r7, lr} - sub sp, #0x10 - add r7, r0, #0x0 - add r5, r1, #0x0 - mov r0, #0x0 - mov r1, #0x2c - str r2, [sp, #0x0] - str r0, [sp, #0x8] - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r7, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - add r0, r7, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0xc] - add r0, r7, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r0, [sp, #0x4] - ldr r1, [sp, #0xc] - add r2, r4, #0x0 - bl LoadWotbl_HandleAlternateForme - ldr r0, [r5, #0x0] - lsl r0, r0, #0x1 - ldrh r2, [r4, r0] - ldr r0, _020698D8 ; =0x0000FFFF - cmp r2, r0 - bne _0206987A - add r0, r4, #0x0 - bl FreeToHeap - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_0206987A: - mov r0, #0xfe - lsl r0, r0, #0x8 - add r3, r2, #0x0 - and r3, r0 - lsl r6, r6, #0x9 - cmp r6, r3 - beq _020698AC - ldr r1, _020698D8 ; =0x0000FFFF -_0206988A: - ldr r2, [r5, #0x0] - add r2, r2, #0x1 - str r2, [r5, #0x0] - lsl r2, r2, #0x1 - ldrh r2, [r4, r2] - cmp r2, r1 - bne _020698A4 - add r0, r4, #0x0 - bl FreeToHeap - add sp, #0x10 - mov r0, #0x0 - pop {r3-r7, pc} -_020698A4: - add r3, r2, #0x0 - and r3, r0 - cmp r6, r3 - bne _0206988A -_020698AC: - cmp r6, r3 - bne _020698CC - ldr r0, _020698DC ; =0x000001FF - add r1, r2, #0x0 - and r1, r0 - ldr r0, [sp, #0x0] - strh r1, [r0, #0x0] - ldr r0, [r5, #0x0] - ldr r1, [sp, #0x0] - add r0, r0, #0x1 - str r0, [r5, #0x0] - ldrh r1, [r1, #0x0] - add r0, r7, #0x0 - bl FUN_02069698 - str r0, [sp, #0x8] -_020698CC: - add r0, r4, #0x0 - bl FreeToHeap - ldr r0, [sp, #0x8] - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_020698D8: .word 0x0000FFFF -_020698DC: .word 0x000001FF - - thumb_func_start FUN_020698E0 -FUN_020698E0: ; 0x020698E0 - ldr r3, _020698E4 ; =FUN_020698E8 - bx r3 - .balign 4 -_020698E4: .word FUN_020698E8 - - thumb_func_start FUN_020698E8 -FUN_020698E8: ; 0x020698E8 - push {r4-r6, lr} - sub sp, #0x8 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r1, #0x36 - mov r2, #0x0 - add r5, r0, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strh r0, [r1, #0x4] - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strb r0, [r1, #0x2] - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3e - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strb r0, [r1, #0x0] - add r1, r6, #0x0 - add r0, r5, #0x0 - add r1, #0x36 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strh r0, [r1, #0x6] - add r1, r6, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strb r0, [r1, #0x3] - add r1, r6, #0x0 - add r0, r5, #0x0 - add r1, #0x3e - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, sp, #0x0 - strb r0, [r1, #0x1] - add r1, r4, #0x0 - add r2, sp, #0x4 - add r0, r5, #0x0 - add r1, #0x36 - add r2, #0x2 - bl SetBoxMonDataEncrypted - add r1, r4, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - add r2, #0x3 - bl SetBoxMonDataEncrypted - add r4, #0x3e - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, #0x1 - bl SetBoxMonDataEncrypted - add r1, r6, #0x0 - add r0, r5, #0x0 - add r1, #0x36 - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - add r1, r6, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - add r2, #0x2 - bl SetBoxMonDataEncrypted - add r6, #0x3e - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, sp, #0x0 - bl SetBoxMonDataEncrypted - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020699A4 -FUN_020699A4: ; 0x020699A4 - push {r3-r7, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x3 - bhs _02069A0A - mov r7, #0x0 - add r6, sp, #0x0 -_020699B2: - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x37 - add r2, r7, #0x0 - bl GetMonDataEncrypted - add r1, r4, #0x0 - strh r0, [r6, #0x2] - add r0, r5, #0x0 - add r1, #0x3b - mov r2, #0x0 - bl GetMonDataEncrypted - add r1, r4, #0x0 - strb r0, [r6, #0x1] - add r0, r5, #0x0 - add r1, #0x3f - mov r2, #0x0 - bl GetMonDataEncrypted - add r1, r4, #0x0 - add r2, sp, #0x0 - strb r0, [r6, #0x0] - add r0, r5, #0x0 - add r1, #0x36 - add r2, #0x2 - bl SetMonDataEncrypted - add r1, r4, #0x0 - add r2, sp, #0x0 - add r0, r5, #0x0 - add r1, #0x3a - add r2, #0x1 - bl SetMonDataEncrypted - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x3e - add r2, sp, #0x0 - bl SetMonDataEncrypted - add r4, r4, #0x1 - cmp r4, #0x3 - blo _020699B2 -_02069A0A: - mov r1, #0x0 - add r0, sp, #0x0 - strh r1, [r0, #0x2] - strb r1, [r0, #0x1] - strb r1, [r0, #0x0] - add r2, sp, #0x0 - add r0, r5, #0x0 - mov r1, #0x39 - add r2, #0x2 - bl SetMonDataEncrypted - add r2, sp, #0x0 - add r0, r5, #0x0 - mov r1, #0x3d - add r2, #0x1 - bl SetMonDataEncrypted - add r0, r5, #0x0 - mov r1, #0x41 - add r2, sp, #0x0 - bl SetMonDataEncrypted - pop {r3-r7, pc} - - thumb_func_start FUN_02069A38 -FUN_02069A38: ; 0x02069A38 - push {r3-r7, lr} - mov r4, #0x0 - add r6, r0, #0x0 - add r5, r1, #0x0 - add r7, r4, #0x0 -_02069A42: - add r1, r4, #0x0 - add r0, r6, #0x0 - add r1, #0x36 - add r2, r7, #0x0 - bl GetMonDataEncrypted - cmp r5, r0 - beq _02069A58 - add r4, r4, #0x1 - cmp r4, #0x4 - blt _02069A42 -_02069A58: - cmp r4, #0x4 - beq _02069A60 - mov r0, #0x1 - pop {r3-r7, pc} -_02069A60: - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02069A64 -FUN_02069A64: ; 0x02069A64 - push {r4-r5, lr} - sub sp, #0x1c - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - add r3, r4, #0x0 - mov r2, #0x11 -_02069A74: - ldmia r5!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02069A74 - ldrh r1, [r4, #0x4] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1f - beq _02069A8E - mov r0, #0x1 - bic r1, r0 - mov r0, #0x1 - orr r0, r1 - strh r0, [r4, #0x4] -_02069A8E: - add r0, r4, #0x0 - mov r1, #0x9f - add r2, sp, #0x0 - bl SetMonDataEncrypted - add r0, r4, #0x0 - mov r1, #0xa2 - add r2, sp, #0x0 - bl SetMonDataEncrypted - add r0, r4, #0x0 - mov r1, #0xa3 - add r2, sp, #0x0 - bl SetMonDataEncrypted - mov r0, #0x0 - bl FUN_020256BC - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0xa9 - add r2, r5, #0x0 - bl SetMonDataEncrypted - add r0, r5, #0x0 - bl FreeToHeap - add r0, r4, #0x0 - mov r1, #0xa1 - add r2, sp, #0x0 - bl SetMonDataEncrypted - mov r0, #0x0 - add r1, sp, #0x4 - mov r2, #0x18 - bl MIi_CpuClearFast - add r0, r4, #0x0 - mov r1, #0xaa - add r2, sp, #0x4 - bl SetMonDataEncrypted - add r0, r4, #0x0 - bl UpdateMonLevelAndRecalcStats - add sp, #0x1c - pop {r4-r5, pc} - - thumb_func_start FUN_02069AEC -FUN_02069AEC: ; 0x02069AEC - push {r3-r7, lr} - str r0, [sp, #0x0] - bl FUN_0206B9AC - add r7, r0, #0x0 - mov r6, #0x1 - mov r5, #0x0 - cmp r7, #0x0 - ble _02069B3C -_02069AFE: - ldr r0, [sp, #0x0] - add r1, r5, #0x0 - bl FUN_0206B9B0 - mov r1, #0x5 - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069B36 - add r0, r4, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - bne _02069B36 - add r0, r4, #0x0 - mov r1, #0xa0 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, r6 - bls _02069B36 - add r6, r0, #0x0 -_02069B36: - add r5, r5, #0x1 - cmp r5, r7 - blt _02069AFE -_02069B3C: - add r0, r6, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02069B40 -FUN_02069B40: ; 0x02069B40 - push {r3, lr} - sub sp, #0x8 - add r3, r0, #0x0 - mov r0, #0x2 - str r0, [sp, #0x0] - add r0, sp, #0x4 - mov r1, #0x6d ; NARC_POKETOOL_POKEZUKAN - mov r2, #0x0 - lsl r3, r3, #0x1 - bl ReadFromNarcMemberByIdPair - add r0, sp, #0x4 - ldrh r0, [r0, #0x0] - add sp, #0x8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02069B60 -FUN_02069B60: ; 0x02069B60 - push {r3, lr} - sub sp, #0x8 - add r3, r0, #0x0 - mov r2, #0x0 - add r0, sp, #0x4 - strh r2, [r0, #0x0] - cmp r3, #0x97 - bhi _02069B7E - mov r0, #0x2 - str r0, [sp, #0x0] - add r0, sp, #0x4 - mov r1, #0x91 ; NARC_POKETOOL_SHINZUKAN - lsl r3, r3, #0x1 - bl ReadFromNarcMemberByIdPair -_02069B7E: - add r0, sp, #0x4 - ldrh r0, [r0, #0x0] - add sp, #0x8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02069B88 -FUN_02069B88: ; 0x02069B88 - push {r3-r4} - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r2, #0x1d -_02069B90: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02069B90 - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - pop {r3-r4} - bx lr - - thumb_func_start FUN_02069BA0 -FUN_02069BA0: ; 0x02069BA0 - push {r3-r4} - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r2, #0x11 -_02069BA8: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02069BA8 - pop {r3-r4} - bx lr - - thumb_func_start FUN_02069BB4 -FUN_02069BB4: ; 0x02069BB4 - push {r3-r4} - add r4, r0, #0x0 - add r3, r1, #0x0 - mov r2, #0x11 -_02069BBC: - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _02069BBC - pop {r3-r4} - bx lr - - thumb_func_start FUN_02069BC8 -FUN_02069BC8: ; 0x02069BC8 - ldr r3, _02069BCC ; =FUN_02069BD0 - bx r3 - .balign 4 -_02069BCC: .word FUN_02069BD0 - - thumb_func_start FUN_02069BD0 -FUN_02069BD0: ; 0x02069BD0 - push {r4, lr} - add r4, r1, #0x0 - mov r1, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r1, r4, #0x0 - bl FUN_02069BE4 - pop {r4, pc} - - thumb_func_start FUN_02069BE4 -FUN_02069BE4: ; 0x02069BE4 - push {r4, lr} - add r4, r1, #0x0 - bl GetNatureFromPersonality - lsl r1, r0, #0x2 - add r1, r0, r1 - ldr r0, _02069BF8 ; =UNK_020F7F16 - add r0, r0, r1 - ldrsb r0, [r4, r0] - pop {r4, pc} - .balign 4 -_02069BF8: .word UNK_020F7F16 - - thumb_func_start FUN_02069BFC -FUN_02069BFC: ; 0x02069BFC - push {r3-r7, lr} - add r4, r0, #0x0 - add r7, r1, #0x0 - mov r0, #0x0 - mov r1, #0x2c - add r5, r2, #0x0 - bl AllocFromHeap - add r6, r0, #0x0 - add r0, r4, #0x0 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl LoadWotbl_HandleAlternateForme - ldrh r1, [r6, #0x0] - ldr r0, _02069C44 ; =0x0000FFFF - mov r4, #0x0 - cmp r1, r0 - beq _02069C3A - ldr r1, _02069C48 ; =0x000001FF - ldr r2, _02069C44 ; =0x0000FFFF - add r0, r6, #0x0 -_02069C28: - ldrh r3, [r0, #0x0] - add r0, r0, #0x2 - add r4, r4, #0x1 - and r3, r1 - strh r3, [r5, #0x0] - ldrh r3, [r0, #0x0] - add r5, r5, #0x2 - cmp r3, r2 - bne _02069C28 -_02069C3A: - add r0, r6, #0x0 - bl FreeToHeap - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 -_02069C44: .word 0x0000FFFF -_02069C48: .word 0x000001FF - - thumb_func_start FUN_02069C4C -FUN_02069C4C: ; 0x02069C4C - push {r3-r7, lr} - add r5, r0, #0x0 - bl FUN_0206B9AC - add r6, r0, #0x0 - bl rand_LC - mov r1, #0x1 - lsl r1, r1, #0xe - cmp r0, r1 - beq _02069C70 - lsl r1, r1, #0x1 - cmp r0, r1 - beq _02069C70 - mov r1, #0x3 - lsl r1, r1, #0xe - cmp r0, r1 - bne _02069CF2 -_02069C70: - bl rand_LC - add r1, r6, #0x0 - bl _s32_div_f - add r0, r5, #0x0 - add r7, r1, #0x0 - bl FUN_0206B9B0 - mov r1, #0x5 - mov r2, #0x0 - add r4, r0, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069C70 - add r0, r4, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - bne _02069C70 - add r0, r7, #0x0 - bl MaskOfFlagNo - add r1, r0, #0x0 - lsl r1, r1, #0x18 - add r0, r5, #0x0 - lsr r1, r1, #0x18 - bl FUN_02069CF4 - cmp r0, #0x0 - bne _02069CF2 - add r5, sp, #0x0 - mov r6, #0x7 -_02069CB8: - bl rand_LC - strb r0, [r5, #0x0] - ldrb r2, [r5, #0x0] - add r1, r2, #0x0 - and r1, r6 - beq _02069CB8 - mov r0, #0xf0 - tst r0, r2 - beq _02069CD0 - add r0, sp, #0x0 - strb r1, [r0, #0x0] -_02069CD0: - add r1, sp, #0x0 - ldrb r2, [r1, #0x0] - lsl r0, r2, #0x4 - orr r0, r2 - strb r0, [r1, #0x0] - ldrb r2, [r1, #0x0] - mov r0, #0xf3 - and r0, r2 - strb r0, [r1, #0x0] - ldrb r0, [r1, #0x0] - add r2, sp, #0x0 - add r0, r0, #0x1 - strb r0, [r1, #0x0] - add r0, r4, #0x0 - mov r1, #0x99 - bl SetMonDataEncrypted -_02069CF2: - pop {r3-r7, pc} - - thumb_func_start FUN_02069CF4 -FUN_02069CF4: ; 0x02069CF4 - push {r3-r7, lr} - mov r6, #0x0 - add r5, r1, #0x0 - str r0, [sp, #0x0] - mov r4, #0x1 - add r7, r6, #0x0 - cmp r5, #0x0 - beq _02069D32 -_02069D04: - mov r0, #0x1 - tst r0, r5 - beq _02069D26 - ldr r0, [sp, #0x0] - add r1, r6, #0x0 - bl FUN_0206B9B0 - mov r1, #0x99 - mov r2, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069D26 - add r0, r7, #0x0 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -_02069D26: - lsl r0, r5, #0x17 - add r6, r6, #0x1 - lsl r4, r4, #0x1 - lsr r5, r0, #0x18 - bne _02069D04 - b _02069D4A -_02069D32: - add r1, r6, #0x0 - bl FUN_0206B9B0 - mov r1, #0x99 - add r2, r6, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069D4A - add r0, r7, #0x1 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 -_02069D4A: - add r0, r7, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02069D50 -FUN_02069D50: ; 0x02069D50 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - add r5, r1, #0x0 - bl FUN_0206B9AC - mov r6, #0x0 - str r0, [sp, #0x4] - cmp r0, #0x0 - ble _02069DC2 - add r4, sp, #0x8 -_02069D66: - ldr r0, [sp, #0x0] - add r1, r6, #0x0 - bl FUN_0206B9B0 - mov r1, #0x5 - mov r2, #0x0 - add r7, r0, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069DBA - add r0, r7, #0x0 - mov r1, #0x99 - mov r2, #0x0 - bl GetMonDataEncrypted - strb r0, [r4, #0x0] - ldrb r1, [r4, #0x0] - mov r0, #0xf - and r0, r1 - beq _02069DBA - cmp r0, r5 - blt _02069D98 - cmp r5, #0x4 - ble _02069DA2 -_02069D98: - ldrb r1, [r4, #0x0] - mov r0, #0xf0 - and r0, r1 - strb r0, [r4, #0x0] - b _02069DA6 -_02069DA2: - sub r0, r1, r5 - strb r0, [r4, #0x0] -_02069DA6: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _02069DB0 - mov r0, #0x10 - strb r0, [r4, #0x0] -_02069DB0: - add r0, r7, #0x0 - mov r1, #0x99 - add r2, sp, #0x8 - bl SetMonDataEncrypted -_02069DBA: - ldr r0, [sp, #0x4] - add r6, r6, #0x1 - cmp r6, r0 - blt _02069D66 -_02069DC2: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02069DC8 -FUN_02069DC8: ; 0x02069DC8 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl FUN_0206B9AC - add r7, r0, #0x0 - bl rand_LC - mov r1, #0x3 - bl _s32_div_f - cmp r1, #0x0 - bne _02069E70 - mov r4, #0x0 - cmp r7, #0x0 - ble _02069E70 - sub r0, r7, #0x1 - str r0, [sp, #0x0] -_02069DEC: - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0206B9B0 - mov r1, #0x5 - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonDataEncrypted - cmp r0, #0x0 - beq _02069E6A - add r0, r6, #0x0 - mov r1, #0x99 - mov r2, #0x0 - bl GetMonDataEncrypted - add r1, sp, #0x4 - strb r0, [r1, #0x0] - add r0, r1, #0x0 - ldrb r1, [r0, #0x0] - mov r0, #0xf - tst r0, r1 - beq _02069E6A - cmp r4, #0x0 - beq _02069E40 - add r0, r5, #0x0 - sub r1, r4, #0x1 - bl FUN_0206B9B0 - mov r1, #0x99 - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonDataEncrypted - mov r1, #0xf0 - tst r0, r1 - bne _02069E40 - add r0, r6, #0x0 - mov r1, #0x99 - add r2, sp, #0x4 - bl SetMonDataEncrypted -_02069E40: - ldr r0, [sp, #0x0] - cmp r4, r0 - bge _02069E6A - add r0, r5, #0x0 - add r1, r4, #0x1 - bl FUN_0206B9B0 - mov r1, #0x99 - mov r2, #0x0 - add r6, r0, #0x0 - bl GetMonDataEncrypted - mov r1, #0xf0 - tst r0, r1 - bne _02069E6A - add r0, r6, #0x0 - mov r1, #0x99 - add r2, sp, #0x4 - bl SetMonDataEncrypted - add r4, r4, #0x1 -_02069E6A: - add r4, r4, #0x1 - cmp r4, r7 - blt _02069DEC -_02069E70: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02069E74 -FUN_02069E74: ; 0x02069E74 - ldr r3, _02069E78 ; =FUN_02069E7C - bx r3 - .balign 4 -_02069E78: .word FUN_02069E7C - - thumb_func_start FUN_02069E7C -FUN_02069E7C: ; 0x02069E7C - push {r3, lr} - mov r1, #0x99 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - mov r1, #0xf - tst r0, r1 - beq _02069E90 - mov r0, #0x1 - pop {r3, pc} -_02069E90: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02069E94 -FUN_02069E94: ; 0x02069E94 - ldr r3, _02069E98 ; =FUN_02069E9C - bx r3 - .balign 4 -_02069E98: .word FUN_02069E9C - - thumb_func_start FUN_02069E9C -FUN_02069E9C: ; 0x02069E9C - push {r3, lr} - mov r1, #0x99 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0xf - tst r0, r1 - beq _02069EB4 - mov r0, #0x0 - pop {r3, pc} -_02069EB4: - mov r0, #0xf0 - tst r0, r1 - beq _02069EBE - mov r0, #0x1 - pop {r3, pc} -_02069EBE: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02069EC4 -FUN_02069EC4: ; 0x02069EC4 - ldr r3, _02069EC8 ; =FUN_02069ECC - bx r3 - .balign 4 -_02069EC8: .word FUN_02069ECC - - thumb_func_start FUN_02069ECC -FUN_02069ECC: ; 0x02069ECC - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0xa - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x6 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - ldr r1, _02069F20 ; =SPECIES_ARCEUS - cmp r4, r1 - bne _02069F1C - cmp r6, #0x79 - bne _02069F1C - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - mov r2, #0x0 - bl FUN_0206E7B8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl GetArceusTypeByPlate - str r0, [sp, #0x0] - add r0, r5, #0x0 - mov r1, #0x70 - add r2, sp, #0x0 - bl SetBoxMonDataEncrypted -_02069F1C: - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 -_02069F20: .word SPECIES_ARCEUS - - thumb_func_start GetArceusTypeByPlate -GetArceusTypeByPlate: ; 0x02069F24 - sub r0, #0x7d - cmp r0, #0xf - bhi _02069F96 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02069F36: ; jump table (using 16-bit offset) - .short _02069F56 - _02069F36 - 2; case 0 - .short _02069F5A - _02069F36 - 2; case 1 - .short _02069F5E - _02069F36 - 2; case 2 - .short _02069F62 - _02069F36 - 2; case 3 - .short _02069F66 - _02069F36 - 2; case 4 - .short _02069F6A - _02069F36 - 2; case 5 - .short _02069F6E - _02069F36 - 2; case 6 - .short _02069F72 - _02069F36 - 2; case 7 - .short _02069F76 - _02069F36 - 2; case 8 - .short _02069F7A - _02069F36 - 2; case 9 - .short _02069F7E - _02069F36 - 2; case 10 - .short _02069F82 - _02069F36 - 2; case 11 - .short _02069F86 - _02069F36 - 2; case 12 - .short _02069F8A - _02069F36 - 2; case 13 - .short _02069F8E - _02069F36 - 2; case 14 - .short _02069F92 - _02069F36 - 2; case 15 -_02069F56: - mov r0, #0xa - bx lr -_02069F5A: - mov r0, #0xb - bx lr -_02069F5E: - mov r0, #0xd - bx lr -_02069F62: - mov r0, #0xc - bx lr -_02069F66: - mov r0, #0xf - bx lr -_02069F6A: - mov r0, #0x1 - bx lr -_02069F6E: - mov r0, #0x3 - bx lr -_02069F72: - mov r0, #0x4 - bx lr -_02069F76: - mov r0, #0x2 - bx lr -_02069F7A: - mov r0, #0xe - bx lr -_02069F7E: - mov r0, #0x6 - bx lr -_02069F82: - mov r0, #0x5 - bx lr -_02069F86: - mov r0, #0x7 - bx lr -_02069F8A: - mov r0, #0x10 - bx lr -_02069F8E: - mov r0, #0x11 - bx lr -_02069F92: - mov r0, #0x8 - bx lr -_02069F96: - mov r0, #0x0 - bx lr - .balign 4 - - thumb_func_start LoadWotbl_HandleAlternateForme -LoadWotbl_HandleAlternateForme: ; 0x02069F9C - push {r4, lr} - add r4, r2, #0x0 - bl ResolveMonForme - add r2, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x21 ; NARC_POKETOOL_PERSONAL_WOTBL - bl ReadWholeNarcMemberByIdPair - pop {r4, pc} - - thumb_func_start FUN_02069FB0 -FUN_02069FB0: ; 0x02069FB0 - push {r3-r7, lr} - add r7, r0, #0x0 - ldr r0, _0206A010 ; =0x000001B9 - add r4, r2, #0x0 - add r5, r1, #0x0 - add r6, r3, #0x0 - cmp r4, r0 - bne _02069FFC - add r0, r5, #0x0 - bl FUN_02005F14 - cmp r0, #0x0 - bne _02069FE2 - mov r0, #0x1 - bl FUN_02005E80 - ldr r0, [sp, #0x20] - ldr r3, [sp, #0x18] - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020056AC - pop {r3-r7, pc} -_02069FE2: - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - beq _02069FEE - mov r0, #0x1 - bl FUN_02005E80 -_02069FEE: - ldr r2, [sp, #0x18] - add r0, r7, #0x0 - mov r1, #0x0 - add r3, r6, #0x0 - bl FUN_02005E90 - pop {r3-r7, pc} -_02069FFC: - ldr r0, [sp, #0x20] - ldr r3, [sp, #0x18] - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020056AC - pop {r3-r7, pc} - nop -_0206A010: .word 0x000001B9 - - thumb_func_start FUN_0206A014 -FUN_0206A014: ; 0x0206A014 - push {r3-r6, lr} - sub sp, #0xc - ldr r6, [sp, #0x20] - add r5, r0, #0x0 - str r6, [sp, #0x0] - ldr r6, [sp, #0x24] - add r4, r2, #0x0 - str r6, [sp, #0x4] - bl FUN_0206A054 - cmp r4, #0xe - bne _0206A050 - add r0, r5, #0x0 - mov r1, #0xa3 - mov r2, #0x0 - bl GetMonDataEncrypted - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0xa2 - add r2, sp, #0x8 - bl SetMonDataEncrypted - mov r0, #0x0 - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x9f - add r2, sp, #0x8 - bl SetMonDataEncrypted -_0206A050: - add sp, #0xc - pop {r3-r6, pc} - - thumb_func_start FUN_0206A054 -FUN_0206A054: ; 0x0206A054 - push {r0-r3} - push {r3-r4, lr} - sub sp, #0x4 - ldr r2, [sp, #0x24] - add r4, r0, #0x0 - str r2, [sp, #0x0] - mov r2, #0x0 - bl FUN_020808AC - ldr r2, _0206A090 ; =gGameVersion - add r0, r4, #0x0 - mov r1, #0x79 - bl SetBoxMonDataEncrypted - add r0, r4, #0x0 - mov r1, #0x9a - add r2, sp, #0x18 - bl SetBoxMonDataEncrypted - add r0, r4, #0x0 - mov r1, #0x9d - add r2, sp, #0x20 - bl SetBoxMonDataEncrypted - add sp, #0x4 - pop {r3-r4} - pop {r3} - add sp, #0x10 - bx r3 - nop -_0206A090: .word gGameVersion - - thumb_func_start FUN_0206A094 -FUN_0206A094: ; 0x0206A094 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - mov r0, #0x81 - add r7, r2, #0x0 - tst r0, r1 - bne _0206A12E - bl rand_LC - mov r1, #0x64 - bl _s32_div_f - add r4, r1, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r6, r0, #0x10 - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - mov r2, #0x10 - bl GetMonBaseStat_HandleFormeConversion - add r1, sp, #0x4 - strh r0, [r1, #0x2] - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - mov r2, #0x11 - bl GetMonBaseStat_HandleFormeConversion - add r1, sp, #0x4 - strh r0, [r1, #0x0] - ldrh r2, [r1, #0x2] - ldrh r0, [r1, #0x0] - cmp r2, r0 - bne _0206A104 - cmp r2, #0x0 - beq _0206A104 - add r2, sp, #0x4 - add r0, r5, #0x0 - mov r1, #0x6 - add r2, #0x2 - bl SetMonDataEncrypted - add sp, #0x8 - pop {r3-r7, pc} -_0206A104: - ldr r0, _0206A134 ; =sItemOdds - lsl r1, r7, #0x2 - ldrh r0, [r0, r1] - cmp r4, r0 - blo _0206A12E - ldr r0, _0206A138 ; =sItemOdds + 2 - ldrh r0, [r0, r1] - cmp r4, r0 - add r2, sp, #0x4 - bhs _0206A126 - add r0, r5, #0x0 - mov r1, #0x6 - add r2, #0x2 - bl SetMonDataEncrypted - add sp, #0x8 - pop {r3-r7, pc} -_0206A126: - add r0, r5, #0x0 - mov r1, #0x6 - bl SetMonDataEncrypted -_0206A12E: - add sp, #0x8 - pop {r3-r7, pc} - nop -_0206A134: .word sItemOdds -_0206A138: .word sItemOdds + 2 - - thumb_func_start FUN_0206A13C -FUN_0206A13C: ; 0x0206A13C - ldr r3, _0206A140 ; =FUN_0206A144 - bx r3 - .balign 4 -_0206A140: .word FUN_0206A144 - - thumb_func_start FUN_0206A144 -FUN_0206A144: ; 0x0206A144 - push {r4-r6, lr} - add r6, r1, #0x0 - mov r1, #0xad - mov r2, #0x0 - add r5, r0, #0x0 - bl GetBoxMonDataEncrypted - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, r0, #0x0 - add r0, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0206A16C - pop {r4-r6, pc} - - thumb_func_start FUN_0206A16C -FUN_0206A16C: ; 0x0206A16C - push {r4, lr} - ldr r3, _0206A1C0 ; =SPECIES_EGG - cmp r0, r3 - bne _0206A178 - mov r0, #0x0 - pop {r4, pc} -_0206A178: - cmp r2, #0x20 - bhs _0206A186 - mov r3, #0x1 - add r4, r3, #0x0 - lsl r4, r2 - mov r2, #0x1d - b _0206A1B0 -_0206A186: - cmp r2, #0x40 - bhs _0206A196 - mov r3, #0x1 - sub r2, #0x20 - add r4, r3, #0x0 - lsl r4, r2 - mov r2, #0x1e - b _0206A1B0 -_0206A196: - cmp r2, #0x60 - bhs _0206A1A6 - mov r3, #0x1 - sub r2, #0x40 - add r4, r3, #0x0 - lsl r4, r2 - mov r2, #0x1f - b _0206A1B0 -_0206A1A6: - mov r3, #0x1 - sub r2, #0x60 - add r4, r3, #0x0 - lsl r4, r2 - mov r2, #0x20 -_0206A1B0: - bl GetMonBaseStat_HandleFormeConversion - tst r0, r4 - beq _0206A1BC - mov r0, #0x1 - pop {r4, pc} -_0206A1BC: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_0206A1C0: .word SPECIES_EGG - - thumb_func_start FUN_0206A1C4 -FUN_0206A1C4: ; 0x0206A1C4 - ldr r3, _0206A1C8 ; =FUN_0206A1CC - bx r3 - .balign 4 -_0206A1C8: .word FUN_0206A1CC - - thumb_func_start FUN_0206A1CC -FUN_0206A1CC: ; 0x0206A1CC - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl TryDecryptBoxMon - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - mov r1, #0x0 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl GetBoxMonDataEncrypted - add r6, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x18 - bl GetMonBaseStat - str r0, [sp, #0x4] - add r0, r4, #0x0 - mov r1, #0x19 - bl GetMonBaseStat - str r0, [sp, #0x0] - cmp r0, #0x0 - beq _0206A226 - mov r0, #0x1 - tst r0, r6 - beq _0206A21A - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x0 - bl SetBoxMonDataEncrypted - b _0206A230 -_0206A21A: - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted - b _0206A230 -_0206A226: - add r0, r5, #0x0 - mov r1, #0xa - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted -_0206A230: - add r0, r5, #0x0 - add r1, r7, #0x0 - bl TryEncryptBoxMon - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_0206A23C -FUN_0206A23C: ; 0x0206A23C - push {r4-r7, lr} - sub sp, #0x1c - add r5, r0, #0x0 - mov r0, #0x0 - str r1, [sp, #0x0] - bl AllocMonZeroed - str r0, [sp, #0x4] - ldr r1, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02069B88 - ldr r0, [sp, #0x4] - ldr r1, [r5, #0x0] - mov r2, #0x0 - bl GetSubstruct - add r4, r0, #0x0 - ldr r0, [sp, #0x4] - ldr r1, [r5, #0x0] - mov r2, #0x1 - bl GetSubstruct - add r6, r0, #0x0 - ldr r0, [sp, #0x4] - ldr r1, [r5, #0x0] - mov r2, #0x2 - bl GetSubstruct - add r7, r0, #0x0 - ldr r0, [sp, #0x4] - ldr r1, [r5, #0x0] - mov r2, #0x3 - bl GetSubstruct - str r0, [sp, #0x8] - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - mov r2, #0x0 - bl GetSubstruct - str r0, [sp, #0xc] - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - mov r2, #0x1 - bl GetSubstruct - str r0, [sp, #0x10] - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - mov r2, #0x2 - bl GetSubstruct - str r0, [sp, #0x14] - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - mov r2, #0x3 - bl GetSubstruct - ldr r2, [sp, #0x4] - str r0, [sp, #0x18] - ldr r0, [sp, #0x4] - ldrh r2, [r2, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonDecryptSegment - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonDecryptSegment - ldr r0, [sp, #0x0] - str r0, [r5, #0x0] - ldr r2, [sp, #0xc] - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0xc] - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0xc] - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0xc] - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0xc] - ldr r2, [sp, #0x10] - ldmia r6!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x10] - ldmia r6!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x10] - ldmia r6!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x10] - ldmia r6!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x10] - ldr r2, [sp, #0x14] - ldmia r7!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x14] - ldmia r7!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x14] - ldmia r7!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x14] - ldmia r7!, {r0-r1} - stmia r2!, {r0-r1} - str r2, [sp, #0x14] - mov r0, #0x10 -_0206A32E: - ldr r1, [sp, #0x8] - ldrh r2, [r1, #0x0] - add r1, r1, #0x2 - str r1, [sp, #0x8] - ldr r1, [sp, #0x18] - strh r2, [r1, #0x0] - add r1, r1, #0x2 - str r1, [sp, #0x18] - sub r0, r0, #0x1 - bne _0206A32E - add r0, r5, #0x0 - add r0, #0x8 - mov r1, #0x80 - bl CalcMonChecksum - strh r0, [r5, #0x6] - add r0, r5, #0x0 - ldrh r2, [r5, #0x6] - add r0, #0x8 - mov r1, #0x80 - bl MonEncryptSegment - add r0, r5, #0x0 - ldr r2, [r5, #0x0] - add r0, #0x88 - mov r1, #0x64 - bl MonEncryptSegment - ldr r0, [sp, #0x4] - bl FreeToHeap - add sp, #0x1c - pop {r4-r7, pc} - - thumb_func_start LoadMonPersonal -LoadMonPersonal: ; 0x0206A370 - ldr r3, _0206A37C ; =ReadWholeNarcMemberByIdPair - add r2, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL - bx r3 - nop -_0206A37C: .word ReadWholeNarcMemberByIdPair - - thumb_func_start LoadMonBaseStats_HandleAlternateForme -LoadMonBaseStats_HandleAlternateForme: ; 0x0206A380 - push {r4, lr} - add r4, r2, #0x0 - bl ResolveMonForme - add r2, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL - bl ReadWholeNarcMemberByIdPair - pop {r4, pc} - - thumb_func_start LoadMonEvolutionTable -LoadMonEvolutionTable: ; 0x0206A394 - ldr r3, _0206A3A0 ; =ReadWholeNarcMemberByIdPair - add r2, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x22 ; NARC_POKETOOL_PERSONAL_EVO - bx r3 - nop -_0206A3A0: .word ReadWholeNarcMemberByIdPair - - thumb_func_start MonEncryptSegment -MonEncryptSegment: ; 0x0206A3A4 - push {r0-r3} - push {r3-r7, lr} - add r5, r0, #0x0 - mov r4, #0x0 - lsr r6, r1, #0x1 - beq _0206A3C6 - add r7, sp, #0x20 -_0206A3B2: - add r0, r7, #0x0 - bl MonEncryptionLCRNG - ldrh r1, [r5, #0x0] - add r4, r4, #0x1 - eor r0, r1 - strh r0, [r5, #0x0] - add r5, r5, #0x2 - cmp r4, r6 - blo _0206A3B2 -_0206A3C6: - pop {r3-r7} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 - - thumb_func_start MonDecryptSegment -MonDecryptSegment: ; 0x0206A3D0 - ldr r3, _0206A3D4 ; =MonEncryptSegment - bx r3 - .balign 4 -_0206A3D4: .word MonEncryptSegment - - thumb_func_start MonEncryptionLCRNG -MonEncryptionLCRNG: ; 0x0206A3D8 - ldr r2, [r0, #0x0] - ldr r1, _0206A3F0 ; =0x41C64E6D - add r3, r2, #0x0 - mul r3, r1 - ldr r1, _0206A3F4 ; =0x00006073 - add r1, r3, r1 - str r1, [r0, #0x0] - lsr r0, r1, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr - nop -_0206A3F0: .word 0x41C64E6D -_0206A3F4: .word 0x00006073 - - thumb_func_start CalcMonChecksum -CalcMonChecksum: ; 0x0206A3F8 - push {r3-r4} - mov r3, #0x0 - add r2, r3, #0x0 - lsr r4, r1, #0x1 - beq _0206A412 -_0206A402: - ldrh r1, [r0, #0x0] - add r2, r2, #0x1 - add r0, r0, #0x2 - add r1, r3, r1 - lsl r1, r1, #0x10 - lsr r3, r1, #0x10 - cmp r2, r4 - blo _0206A402 -_0206A412: - add r0, r3, #0x0 - pop {r3-r4} - bx lr - - thumb_func_start GetSubstruct -GetSubstruct: ; 0x0206A418 - push {r3, lr} - mov r3, #0x3e - lsl r3, r3, #0xc - and r3, r1 - lsr r3, r3, #0xd - cmp r3, #0x1f - bhi _0206A478 - add r3, r3, r3 - add r3, pc - ldrh r3, [r3, #0x6] - lsl r3, r3, #0x10 - asr r3, r3, #0x10 - add pc, r3 -_0206A432: ; jump table (using 16-bit offset) - .short _0206A472 - _0206A432 - 2; case 0 - .short _0206A4A4 - _0206A432 - 2; case 1 - .short _0206A4D4 - _0206A432 - 2; case 2 - .short _0206A504 - _0206A432 - 2; case 3 - .short _0206A534 - _0206A432 - 2; case 4 - .short _0206A564 - _0206A432 - 2; case 5 - .short _0206A594 - _0206A432 - 2; case 6 - .short _0206A5C6 - _0206A432 - 2; case 7 - .short _0206A5F6 - _0206A432 - 2; case 8 - .short _0206A626 - _0206A432 - 2; case 9 - .short _0206A656 - _0206A432 - 2; case 10 - .short _0206A686 - _0206A432 - 2; case 11 - .short _0206A6B6 - _0206A432 - 2; case 12 - .short _0206A6E8 - _0206A432 - 2; case 13 - .short _0206A718 - _0206A432 - 2; case 14 - .short _0206A748 - _0206A432 - 2; case 15 - .short _0206A778 - _0206A432 - 2; case 16 - .short _0206A7A8 - _0206A432 - 2; case 17 - .short _0206A7D8 - _0206A432 - 2; case 18 - .short _0206A80A - _0206A432 - 2; case 19 - .short _0206A83A - _0206A432 - 2; case 20 - .short _0206A86A - _0206A432 - 2; case 21 - .short _0206A89A - _0206A432 - 2; case 22 - .short _0206A8CA - _0206A432 - 2; case 23 - .short _0206A472 - _0206A432 - 2; case 24 - .short _0206A4A4 - _0206A432 - 2; case 25 - .short _0206A4D4 - _0206A432 - 2; case 26 - .short _0206A504 - _0206A432 - 2; case 27 - .short _0206A534 - _0206A432 - 2; case 28 - .short _0206A564 - _0206A432 - 2; case 29 - .short _0206A594 - _0206A432 - 2; case 30 - .short _0206A5C6 - _0206A432 - 2; case 31 -_0206A472: - add r0, #0x8 - cmp r2, #0x3 - bls _0206A47A -_0206A478: - b _0206A8F8 -_0206A47A: - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A486: ; jump table (using 16-bit offset) - .short _0206A48E - _0206A486 - 2; case 0 - .short _0206A492 - _0206A486 - 2; case 1 - .short _0206A498 - _0206A486 - 2; case 2 - .short _0206A49E - _0206A486 - 2; case 3 -_0206A48E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A492: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A498: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A49E: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A4A4: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A59A - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A4B6: ; jump table (using 16-bit offset) - .short _0206A4BE - _0206A4B6 - 2; case 0 - .short _0206A4C2 - _0206A4B6 - 2; case 1 - .short _0206A4C8 - _0206A4B6 - 2; case 2 - .short _0206A4CE - _0206A4B6 - 2; case 3 -_0206A4BE: - add r1, r0, #0x0 - b _0206A8F8 -_0206A4C2: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A4C8: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A4CE: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A4D4: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A59A - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A4E6: ; jump table (using 16-bit offset) - .short _0206A4EE - _0206A4E6 - 2; case 0 - .short _0206A4F2 - _0206A4E6 - 2; case 1 - .short _0206A4F8 - _0206A4E6 - 2; case 2 - .short _0206A4FE - _0206A4E6 - 2; case 3 -_0206A4EE: - add r1, r0, #0x0 - b _0206A8F8 -_0206A4F2: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A4F8: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A4FE: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A504: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A59A - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A516: ; jump table (using 16-bit offset) - .short _0206A51E - _0206A516 - 2; case 0 - .short _0206A522 - _0206A516 - 2; case 1 - .short _0206A528 - _0206A516 - 2; case 2 - .short _0206A52E - _0206A516 - 2; case 3 -_0206A51E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A522: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A528: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A52E: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A534: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A59A - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A546: ; jump table (using 16-bit offset) - .short _0206A54E - _0206A546 - 2; case 0 - .short _0206A552 - _0206A546 - 2; case 1 - .short _0206A558 - _0206A546 - 2; case 2 - .short _0206A55E - _0206A546 - 2; case 3 -_0206A54E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A552: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A558: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A55E: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A564: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A59A - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A576: ; jump table (using 16-bit offset) - .short _0206A57E - _0206A576 - 2; case 0 - .short _0206A582 - _0206A576 - 2; case 1 - .short _0206A588 - _0206A576 - 2; case 2 - .short _0206A58E - _0206A576 - 2; case 3 -_0206A57E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A582: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A588: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A58E: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A594: - add r0, #0x8 - cmp r2, #0x3 - bls _0206A59C -_0206A59A: - b _0206A8F8 -_0206A59C: - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A5A8: ; jump table (using 16-bit offset) - .short _0206A5B0 - _0206A5A8 - 2; case 0 - .short _0206A5B6 - _0206A5A8 - 2; case 1 - .short _0206A5BA - _0206A5A8 - 2; case 2 - .short _0206A5C0 - _0206A5A8 - 2; case 3 -_0206A5B0: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A5B6: - add r1, r0, #0x0 - b _0206A8F8 -_0206A5BA: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A5C0: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A5C6: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A6BC - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A5D8: ; jump table (using 16-bit offset) - .short _0206A5E0 - _0206A5D8 - 2; case 0 - .short _0206A5E6 - _0206A5D8 - 2; case 1 - .short _0206A5EA - _0206A5D8 - 2; case 2 - .short _0206A5F0 - _0206A5D8 - 2; case 3 -_0206A5E0: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A5E6: - add r1, r0, #0x0 - b _0206A8F8 -_0206A5EA: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A5F0: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A5F6: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A6BC - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A608: ; jump table (using 16-bit offset) - .short _0206A610 - _0206A608 - 2; case 0 - .short _0206A616 - _0206A608 - 2; case 1 - .short _0206A61A - _0206A608 - 2; case 2 - .short _0206A620 - _0206A608 - 2; case 3 -_0206A610: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A616: - add r1, r0, #0x0 - b _0206A8F8 -_0206A61A: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A620: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A626: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A6BC - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A638: ; jump table (using 16-bit offset) - .short _0206A640 - _0206A638 - 2; case 0 - .short _0206A646 - _0206A638 - 2; case 1 - .short _0206A64A - _0206A638 - 2; case 2 - .short _0206A650 - _0206A638 - 2; case 3 -_0206A640: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A646: - add r1, r0, #0x0 - b _0206A8F8 -_0206A64A: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A650: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A656: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A6BC - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A668: ; jump table (using 16-bit offset) - .short _0206A670 - _0206A668 - 2; case 0 - .short _0206A676 - _0206A668 - 2; case 1 - .short _0206A67A - _0206A668 - 2; case 2 - .short _0206A680 - _0206A668 - 2; case 3 -_0206A670: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A676: - add r1, r0, #0x0 - b _0206A8F8 -_0206A67A: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A680: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A686: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A6BC - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A698: ; jump table (using 16-bit offset) - .short _0206A6A0 - _0206A698 - 2; case 0 - .short _0206A6A6 - _0206A698 - 2; case 1 - .short _0206A6AA - _0206A698 - 2; case 2 - .short _0206A6B0 - _0206A698 - 2; case 3 -_0206A6A0: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A6A6: - add r1, r0, #0x0 - b _0206A8F8 -_0206A6AA: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A6B0: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A6B6: - add r0, #0x8 - cmp r2, #0x3 - bls _0206A6BE -_0206A6BC: - b _0206A8F8 -_0206A6BE: - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A6CA: ; jump table (using 16-bit offset) - .short _0206A6D2 - _0206A6CA - 2; case 0 - .short _0206A6D8 - _0206A6CA - 2; case 1 - .short _0206A6DE - _0206A6CA - 2; case 2 - .short _0206A6E2 - _0206A6CA - 2; case 3 -_0206A6D2: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A6D8: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A6DE: - add r1, r0, #0x0 - b _0206A8F8 -_0206A6E2: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A6E8: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A7DE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A6FA: ; jump table (using 16-bit offset) - .short _0206A702 - _0206A6FA - 2; case 0 - .short _0206A708 - _0206A6FA - 2; case 1 - .short _0206A70E - _0206A6FA - 2; case 2 - .short _0206A712 - _0206A6FA - 2; case 3 -_0206A702: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A708: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A70E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A712: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A718: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A7DE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A72A: ; jump table (using 16-bit offset) - .short _0206A732 - _0206A72A - 2; case 0 - .short _0206A738 - _0206A72A - 2; case 1 - .short _0206A73E - _0206A72A - 2; case 2 - .short _0206A742 - _0206A72A - 2; case 3 -_0206A732: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A738: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A73E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A742: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A748: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A7DE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A75A: ; jump table (using 16-bit offset) - .short _0206A762 - _0206A75A - 2; case 0 - .short _0206A768 - _0206A75A - 2; case 1 - .short _0206A76E - _0206A75A - 2; case 2 - .short _0206A772 - _0206A75A - 2; case 3 -_0206A762: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A768: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A76E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A772: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A778: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A7DE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A78A: ; jump table (using 16-bit offset) - .short _0206A792 - _0206A78A - 2; case 0 - .short _0206A798 - _0206A78A - 2; case 1 - .short _0206A79E - _0206A78A - 2; case 2 - .short _0206A7A2 - _0206A78A - 2; case 3 -_0206A792: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A798: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A79E: - add r1, r0, #0x0 - b _0206A8F8 -_0206A7A2: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A7A8: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A7DE - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A7BA: ; jump table (using 16-bit offset) - .short _0206A7C2 - _0206A7BA - 2; case 0 - .short _0206A7C8 - _0206A7BA - 2; case 1 - .short _0206A7CE - _0206A7BA - 2; case 2 - .short _0206A7D2 - _0206A7BA - 2; case 3 -_0206A7C2: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A7C8: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A7CE: - add r1, r0, #0x0 - b _0206A8F8 -_0206A7D2: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A7D8: - add r0, #0x8 - cmp r2, #0x3 - bls _0206A7E0 -_0206A7DE: - b _0206A8F8 -_0206A7E0: - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A7EC: ; jump table (using 16-bit offset) - .short _0206A7F4 - _0206A7EC - 2; case 0 - .short _0206A7FA - _0206A7EC - 2; case 1 - .short _0206A800 - _0206A7EC - 2; case 2 - .short _0206A806 - _0206A7EC - 2; case 3 -_0206A7F4: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A7FA: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A800: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A806: - add r1, r0, #0x0 - b _0206A8F8 -_0206A80A: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A8F8 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A81C: ; jump table (using 16-bit offset) - .short _0206A824 - _0206A81C - 2; case 0 - .short _0206A82A - _0206A81C - 2; case 1 - .short _0206A830 - _0206A81C - 2; case 2 - .short _0206A836 - _0206A81C - 2; case 3 -_0206A824: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A82A: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A830: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A836: - add r1, r0, #0x0 - b _0206A8F8 -_0206A83A: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A8F8 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A84C: ; jump table (using 16-bit offset) - .short _0206A854 - _0206A84C - 2; case 0 - .short _0206A85A - _0206A84C - 2; case 1 - .short _0206A860 - _0206A84C - 2; case 2 - .short _0206A866 - _0206A84C - 2; case 3 -_0206A854: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A85A: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A860: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A866: - add r1, r0, #0x0 - b _0206A8F8 -_0206A86A: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A8F8 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A87C: ; jump table (using 16-bit offset) - .short _0206A884 - _0206A87C - 2; case 0 - .short _0206A88A - _0206A87C - 2; case 1 - .short _0206A890 - _0206A87C - 2; case 2 - .short _0206A896 - _0206A87C - 2; case 3 -_0206A884: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A88A: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A890: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A896: - add r1, r0, #0x0 - b _0206A8F8 -_0206A89A: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A8F8 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A8AC: ; jump table (using 16-bit offset) - .short _0206A8B4 - _0206A8AC - 2; case 0 - .short _0206A8BA - _0206A8AC - 2; case 1 - .short _0206A8C0 - _0206A8AC - 2; case 2 - .short _0206A8C6 - _0206A8AC - 2; case 3 -_0206A8B4: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A8BA: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A8C0: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A8C6: - add r1, r0, #0x0 - b _0206A8F8 -_0206A8CA: - add r0, #0x8 - cmp r2, #0x3 - bhi _0206A8F8 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0206A8DC: ; jump table (using 16-bit offset) - .short _0206A8E4 - _0206A8DC - 2; case 0 - .short _0206A8EA - _0206A8DC - 2; case 1 - .short _0206A8F0 - _0206A8DC - 2; case 2 - .short _0206A8F6 - _0206A8DC - 2; case 3 -_0206A8E4: - add r1, r0, #0x0 - add r1, #0x60 - b _0206A8F8 -_0206A8EA: - add r1, r0, #0x0 - add r1, #0x40 - b _0206A8F8 -_0206A8F0: - add r1, r0, #0x0 - add r1, #0x20 - b _0206A8F8 -_0206A8F6: - add r1, r0, #0x0 -_0206A8F8: - add r0, r1, #0x0 - pop {r3, pc} - - thumb_func_start ResolveMonForme -ResolveMonForme: ; 0x0206A8FC - ldr r3, _0206A928 ; =SPECIES_DEOXYS - cmp r0, r3 - beq _0206A90C - add r2, r3, #0x0 - add r2, #SPECIES_WORMADAM-SPECIES_DEOXYS - cmp r0, r2 - beq _0206A91A - bx lr -_0206A90C: - cmp r1, #0x0 - beq _0206A926 - cmp r1, #0x3 - bgt _0206A926 - add r3, #SPECIES_DEOXYS_ATK-SPECIES_DEOXYS-1 - add r0, r1, r3 - bx lr -_0206A91A: - cmp r1, #0x0 - beq _0206A926 - cmp r1, #0x2 - bgt _0206A926 - add r3, #SPECIES_WORMADAM_SANDY-SPECIES_DEOXYS-1 - add r0, r1, r3 -_0206A926: - bx lr - .balign 4 -_0206A928: .word SPECIES_DEOXYS - - thumb_func_start MaskOfFlagNo -MaskOfFlagNo: ; 0x0206A92C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0x1 - cmp r5, #0x20 - blt _0206A93A - bl ErrorHandling -_0206A93A: - mov r0, #0x0 - cmp r5, #0x0 - ble _0206A948 -_0206A940: - add r0, r0, #0x1 - lsl r4, r4, #0x1 - cmp r0, r5 - blt _0206A940 -_0206A948: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start LowestFlagNo -LowestFlagNo: ; 0x0206A94C - mov r3, #0x1 - mov r2, #0x0 -_0206A950: - add r1, r0, #0x0 - tst r1, r3 - bne _0206A95E - add r2, r2, #0x1 - lsl r3, r3, #0x1 - cmp r2, #0x20 - blt _0206A950 -_0206A95E: - add r0, r2, #0x0 - bx lr - .balign 4 - - thumb_func_start IsPokemonLegendaryOrMythical -IsPokemonLegendaryOrMythical: ; 0x0206A964 - ldr r3, _0206A980 ; =sLegendaryMonsList - mov r2, #0x0 -_0206A968: - ldrh r1, [r3, #0x0] - cmp r0, r1 - bne _0206A972 - mov r0, #0x1 - bx lr -_0206A972: - add r2, r2, #0x1 - add r3, r3, #0x2 - cmp r2, #0x12 - blo _0206A968 - mov r0, #0x0 - bx lr - nop -_0206A980: .word sLegendaryMonsList - - thumb_func_start GetLegendaryMon -GetLegendaryMon: ; 0x0206A984 - cmp r0, #0x12 - blo _0206A98A - mov r0, #0x0 -_0206A98A: - lsl r1, r0, #0x1 - ldr r0, _0206A994 ; =sLegendaryMonsList - ldrh r0, [r0, r1] - bx lr - nop -_0206A994: .word sLegendaryMonsList - - thumb_func_start FUN_0206A998 -FUN_0206A998: ; 0x0206A998 - push {r3, lr} - mov r1, #0x5 - mov r2, #0x0 - bl GetMonDataEncrypted - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl IsPokemonLegendaryOrMythical - pop {r3, pc} - - thumb_func_start FUN_0206A9AC -FUN_0206A9AC: ; 0x0206A9AC - push {r3-r7, lr} - sub sp, #0x10 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r6, r2, #0x0 - bl FUN_020239BC - str r0, [sp, #0x0] - add r0, r5, #0x0 - mov r1, #0x7 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - str r0, [sp, #0x4] - add r0, r4, #0x0 - bl FUN_020239CC - str r0, [sp, #0x8] - add r0, r5, #0x0 - mov r1, #0x9c - mov r2, #0x0 - bl GetBoxMonDataEncrypted - str r0, [sp, #0xc] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_020239A0 - add r7, r0, #0x0 - mov r0, #0x8 - add r1, r6, #0x0 - bl FUN_020219F4 - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x90 - add r2, r6, #0x0 - mov r4, #0x0 - bl GetBoxMonDataEncrypted - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - cmp r1, r0 - bne _0206AA1C - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - cmp r1, r0 - bne _0206AA1C - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_02021CE0 - cmp r0, #0x0 - bne _0206AA1C - mov r4, #0x1 -_0206AA1C: - add r0, r6, #0x0 - bl FUN_02021A20 - add r0, r7, #0x0 - bl FUN_02021A20 - add r0, r4, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0206AA30 -FUN_0206AA30: ; 0x0206AA30 - push {r3, lr} - cmp r0, #0x3f - bgt _0206AA48 - bge _0206AA6C - cmp r0, #0x1 - bgt _0206AA74 - cmp r0, #0x0 - blt _0206AA74 - beq _0206AA82 - cmp r0, #0x1 - beq _0206AA82 - b _0206AA74 -_0206AA48: - cmp r0, #0x5a - bgt _0206AA50 - beq _0206AA70 - b _0206AA74 -_0206AA50: - add r1, r0, #0x0 - sub r1, #0x5b - cmp r1, #0x3 - bhi _0206AA74 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0206AA64: ; jump table (using 16-bit offset) - .short _0206AA70 - _0206AA64 - 2; case 0 - .short _0206AA70 - _0206AA64 - 2; case 1 - .short _0206AA70 - _0206AA64 - 2; case 2 - .short _0206AA70 - _0206AA64 - 2; case 3 -_0206AA6C: - mov r0, #0x2 - pop {r3, pc} -_0206AA70: - sub r0, #0x57 - pop {r3, pc} -_0206AA74: - bl FUN_0206AE00 - cmp r0, #0x1 - bne _0206AA80 - mov r0, #0x1 - pop {r3, pc} -_0206AA80: - mov r0, #0x0 -_0206AA82: - pop {r3, pc} - - thumb_func_start FUN_0206AA84 -FUN_0206AA84: ; 0x0206AA84 - push {r3-r4, lr} - sub sp, #0x1c - add r4, r0, #0x0 - mov r0, #0x0 - add r1, sp, #0x0 - strb r0, [r1, #0x0] - add r1, sp, #0x0 - add r1, #0x1 - mov r2, #0x18 - bl MIi_CpuClearFast - add r0, r4, #0x0 - mov r1, #0xa1 - add r2, sp, #0x0 - bl SetMonDataEncrypted - add r2, sp, #0x0 - add r0, r4, #0x0 - mov r1, #0xaa - add r2, #0x1 - bl SetMonDataEncrypted - add sp, #0x1c - pop {r3-r4, pc} - - thumb_func_start FUN_0206AAB4 -FUN_0206AAB4: ; 0x0206AAB4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl TryDecryptBoxMon - mov r4, #0x0 - str r0, [sp, #0x0] - add r7, r4, #0x0 - add r6, sp, #0x4 -_0206AAC6: - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x36 - add r2, r7, #0x0 - bl GetBoxMonDataEncrypted - cmp r0, #0x0 - beq _0206AAF0 - add r1, r4, #0x0 - add r0, r5, #0x0 - add r1, #0x42 - mov r2, #0x0 - bl GetBoxMonDataEncrypted - add r1, r4, #0x0 - strb r0, [r6, #0x0] - add r0, r5, #0x0 - add r1, #0x3a - add r2, sp, #0x4 - bl SetBoxMonDataEncrypted -_0206AAF0: - add r4, r4, #0x1 - cmp r4, #0x4 - blt _0206AAC6 - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl TryEncryptBoxMon - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index 275875f4..4a3c3f82 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -3953,7 +3953,7 @@ FUN_0203B8A0: ; 0x0203B8A0 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690CC strh r0, [r4, #0x0] mov r0, #0x0 @@ -4602,7 +4602,7 @@ FUN_0203BDB8: ; 0x0203BDB8 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -4635,7 +4635,7 @@ FUN_0203BDB8: ; 0x0203BDB8 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0x0 add r5, #0x80 lsl r1, r1, #0x10 @@ -5526,11 +5526,11 @@ FUN_0203C520: ; 0x0203C520 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x74 add r2, sp, #0xc add r7, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r0, r5, #0x0 bl ScriptReadHalfword add r1, r0, #0x0 @@ -5542,7 +5542,7 @@ FUN_0203C520: ; 0x0203C520 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 str r6, [sp, #0x0] add r0, sp, #0xc @@ -6063,7 +6063,7 @@ FUN_0203C990: ; 0x0203C990 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 @@ -10081,36 +10081,36 @@ FUN_0203E9CC: ; 0x0203E9CC ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 mov r1, #0xd mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r4, r6 add r2, r7, r1 ldr r1, [sp, #0x4] @@ -10193,10 +10193,10 @@ FUN_0203EAB0: ; 0x0203EAB0 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r5, #0x0 @@ -10679,7 +10679,7 @@ FUN_0203EE98: ; 0x0203EE98 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206BAE4 + bl PartyHasMon strh r0, [r4, #0x0] mov r0, #0x1 pop {r4-r6, pc} @@ -10703,7 +10703,7 @@ FUN_0203EED8: ; 0x0203EED8 ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0x0] - bl FUN_0206B9AC + bl GetPartyCount add r4, #0x80 add r6, r0, #0x0 ldr r0, [r4, #0x0] @@ -10716,20 +10716,20 @@ FUN_0203EED8: ; 0x0203EED8 _0203EF18: ldr r0, [sp, #0x0] add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0203EF54 ; =0x00000182 cmp r0, r1 bne _0203EF48 add r0, r4, #0x0 mov r1, #0x70 add r2, sp, #0x4 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02024AF0 @@ -10761,7 +10761,7 @@ FUN_0203EF58: ; 0x0203EF58 ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0xc] - bl FUN_0206B9AC + bl GetPartyCount add r2, sp, #0x18 mov r4, #0x0 ldr r3, _0203F008 ; =UNK_020F34FC @@ -10782,16 +10782,16 @@ FUN_0203EF58: ; 0x0203EF58 _0203EFA2: ldr r0, [sp, #0xc] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x10] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r3, r0, #0x0 mov r0, #0x67 ldr r1, [sp, #0x10] diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 43e29bb0..e97249d2 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -284,7 +284,7 @@ FUN_02042F10: ; 0x02042F10 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0x6 bge _02042F24 mov r0, #0x1 @@ -349,17 +349,17 @@ FUN_02042F6C: ; 0x02042F6C mov r1, #0x97 add r2, r7, #0x0 add r5, #0xf0 - bl GetMonDataEncrypted + bl GetMonData add r1, r7, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x7 add r2, r7, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 bl OS_GetTick bl rand_ALT @@ -371,7 +371,7 @@ FUN_02042F6C: ; 0x02042F6C cmp r0, #0x1 bne _02042FE6 add r0, r6, #0x0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0x0 beq _02042FE8 _02042FD0: @@ -380,7 +380,7 @@ _02042FD0: add r1, r0, #0x0 add r0, r6, #0x0 str r1, [sp, #0x34] - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0x0 bne _02042FD0 b _02042FE8 @@ -391,41 +391,41 @@ _02042FE8: add r0, r4, #0x0 bl FUN_0206A23C add r0, r4, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender str r0, [sp, #0x30] add r0, r4, #0x0 mov r1, #0x6f add r2, sp, #0x30 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0x0 mov r1, #0x4b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x4a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0x49 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x20] add r0, r4, #0x0 mov r1, #0x48 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x24] add r0, r4, #0x0 mov r1, #0x46 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x47 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r6, r0 ldr r0, [sp, #0x24] add r1, r0, r1 @@ -445,7 +445,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x46 add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 @@ -454,7 +454,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x47 add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 @@ -463,7 +463,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x48 add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData bl rand_LC add r6, r0, #0x0 mov r0, #0x1f @@ -472,7 +472,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x49 add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 @@ -481,7 +481,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x4a add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 @@ -490,7 +490,7 @@ _02042FE8: add r0, r4, #0x0 mov r1, #0x4b add r2, sp, #0x34 - bl SetMonDataEncrypted + bl SetMonData _020430DA: ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] @@ -499,7 +499,7 @@ _020430DA: add r0, r4, #0x0 mov r1, #0x2e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020430FC mov r0, #0x49 @@ -510,7 +510,7 @@ _020430FC: add r0, r4, #0x0 mov r1, #0x2f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02043114 mov r0, #0x4a @@ -521,7 +521,7 @@ _02043114: add r0, r4, #0x0 mov r1, #0x30 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0204312C mov r0, #0x4b @@ -532,7 +532,7 @@ _0204312C: add r0, r4, #0x0 mov r1, #0x31 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02043144 mov r0, #0x4c @@ -543,7 +543,7 @@ _02043144: add r0, r4, #0x0 mov r1, #0x32 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0204315C mov r0, #0x4d @@ -554,7 +554,7 @@ _0204315C: add r0, r4, #0x0 mov r1, #0x33 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02043174 mov r0, #0x4e @@ -565,7 +565,7 @@ _02043174: add r0, r4, #0x0 mov r1, #0x34 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0204318C mov r0, #0x4f @@ -576,7 +576,7 @@ _0204318C: add r0, r4, #0x0 mov r1, #0x67 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020431A4 mov r0, #0x19 @@ -587,7 +587,7 @@ _020431A4: add r0, r4, #0x0 mov r1, #0x68 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020431BC mov r0, #0x1a @@ -598,7 +598,7 @@ _020431BC: add r0, r4, #0x0 mov r1, #0x69 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020431D4 mov r0, #0x1b @@ -629,15 +629,15 @@ _020431D4: add r0, r7, #0x0 mov r1, #0x90 add r2, r5, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0x0 mov r1, #0x7 add r2, sp, #0x2c - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0x0 mov r1, #0x9c add r2, sp, #0x28 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 add r4, r7, #0x0 bl FUN_02021A20 @@ -653,7 +653,7 @@ _0204322C: mov r2, #0x4 bl FUN_0208089C add r0, r4, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206BB1C diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s index f52aaf69..bcd4dc70 100644 --- a/arm9/asm/scrcmd_18.s +++ b/arm9/asm/scrcmd_18.s @@ -91,17 +91,17 @@ FUN_0204434C: ; 0x0204434C ldr r0, [r5, #0xc] bl FUN_0206BB1C ldrh r1, [r6, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _020443A0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData b _020443A2 _020443A0: mov r0, #0x0 @@ -138,10 +138,10 @@ FUN_020443A8: ; 0x020443A8 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldrh r1, [r6, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r7, #0x0 @@ -187,7 +187,7 @@ FUN_02044414: ; 0x02044414 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r6, r0, #0x0 - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x6 @@ -289,12 +289,12 @@ FUN_020444F4: ; 0x020444F4 ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r2, #0x0 mov r1, #0x4c add r4, r0, #0x0 strh r2, [r6, #0x0] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044556 mov r0, #0x0 @@ -303,25 +303,25 @@ _02044556: add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 bne _02044592 _0204458E: @@ -358,7 +358,7 @@ FUN_02044598: ; 0x02044598 ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r1, _02044650 ; =0x00000006 @@ -371,35 +371,35 @@ _020445E4: ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204463E add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 bne _0204463E _02044638: @@ -444,7 +444,7 @@ FUN_02044658: ; 0x02044658 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_0204A32C strh r0, [r4, #0x0] mov r0, #0x0 @@ -474,7 +474,7 @@ FUN_0204469C: ; 0x0204469C str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] @@ -489,17 +489,17 @@ _020446EA: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204471A add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x0] cmp r0, r1 bhi _0204471A @@ -544,18 +544,18 @@ FUN_02044730: ; 0x02044730 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r2, #0x0 mov r1, #0x4c add r5, r0, #0x0 strh r2, [r4, #0x0] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044786 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x0] _02044786: mov r0, #0x0 @@ -585,7 +585,7 @@ FUN_0204478C: ; 0x0204478C add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r6, r0 @@ -597,11 +597,11 @@ _020447D2: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020447F2 mov r0, #0x0 @@ -609,7 +609,7 @@ _020447D2: pop {r4-r6, pc} _020447F2: add r0, r5, #0x0 - bl GetMonNatureEncrypted + bl GetMonNature strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} @@ -639,7 +639,7 @@ FUN_02044800: ; 0x02044800 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r1, _02044884 ; =0x000000FF @@ -651,15 +651,15 @@ _02044848: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044874 add r0, r4, #0x0 - bl GetMonNatureEncrypted + bl GetMonNature ldr r1, [sp, #0x0] cmp r1, r0 bne _02044874 @@ -704,10 +704,10 @@ FUN_0204488C: ; 0x0204488C ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} @@ -744,11 +744,11 @@ FUN_020448D4: ; 0x020448D4 ldr r0, [r6, #0xc] bl FUN_0206BB1C ldr r1, [sp, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x9 mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x4 strh r0, [r1, #0x0] cmp r4, #0x0 @@ -756,7 +756,7 @@ FUN_020448D4: ; 0x020448D4 add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 @@ -774,7 +774,7 @@ _0204495A: add r0, r5, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0xb bne _0204496E add r0, r4, #0x1 @@ -784,7 +784,7 @@ _0204496E: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 bne _02044982 add r0, r4, #0x1 @@ -804,7 +804,7 @@ _02044994: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x4 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} @@ -834,11 +834,11 @@ FUN_020449A4: ; 0x020449A4 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x9 mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x0 strh r0, [r1, #0x0] ldrh r0, [r1, #0x0] @@ -853,7 +853,7 @@ _020449FA: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} @@ -890,11 +890,11 @@ FUN_02044A0C: ; 0x02044A0C ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, #0x13 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -952,16 +952,16 @@ FUN_02044A94: ; 0x02044A94 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0x0 mov r1, #0xb0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0xb1 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r7, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -982,7 +982,7 @@ FUN_02044B00: ; 0x02044B00 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} @@ -1003,7 +1003,7 @@ FUN_02044B2C: ; 0x02044B2C str r0, [sp, #0x0] ldr r0, [r6, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0x0 add r7, r0, #0x0 add r4, r5, #0x0 @@ -1013,10 +1013,10 @@ _02044B5A: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044B74 add r4, r4, #0x1 @@ -1055,7 +1055,7 @@ FUN_02044B84: ; 0x02044B84 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0x0 add r4, r5, #0x0 str r0, [sp, #0x8] @@ -1068,17 +1068,17 @@ _02044BC8: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044BF8 add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044BF8 add r4, r4, #0x1 @@ -1114,7 +1114,7 @@ FUN_02044C0C: ; 0x02044C0C str r0, [sp, #0x4] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0x0 add r4, r5, #0x0 str r0, [sp, #0x8] @@ -1124,17 +1124,17 @@ _02044C44: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044C6E add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044C6E add r4, r4, #0x1 @@ -1168,7 +1168,7 @@ FUN_02044C88: ; 0x02044C88 str r0, [sp, #0x0] ldr r0, [r6, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0x0 add r7, r0, #0x0 add r4, r5, #0x0 @@ -1178,10 +1178,10 @@ _02044CB6: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044CD0 add r4, r4, #0x1 @@ -1211,7 +1211,7 @@ FUN_02044CE0: ; 0x02044CE0 str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r4, _02044D40 ; =0x00000000 @@ -1223,10 +1223,10 @@ _02044D12: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r7, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044D32 ldr r0, [sp, #0x0] @@ -1269,10 +1269,10 @@ FUN_02044D44: ; 0x02044D44 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x6f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} @@ -1301,11 +1301,11 @@ FUN_02044D8C: ; 0x02044D8C ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044DDA mov r0, #0x0 @@ -1316,7 +1316,7 @@ _02044DDA: add r0, r6, #0x0 mov r1, #0x36 add r2, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044DF0 add r0, r4, #0x1 @@ -1326,7 +1326,7 @@ _02044DF0: add r0, r6, #0x0 mov r1, #0x37 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044E04 add r0, r4, #0x1 @@ -1336,7 +1336,7 @@ _02044E04: add r0, r6, #0x0 mov r1, #0x38 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044E18 add r0, r4, #0x1 @@ -1346,7 +1346,7 @@ _02044E18: add r0, r6, #0x0 mov r1, #0x39 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02044E2C add r0, r4, #0x1 @@ -1382,7 +1382,7 @@ FUN_02044E34: ; 0x02044E34 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r4, #0x0 bl FUN_020699A4 mov r0, #0x0 @@ -1420,11 +1420,11 @@ FUN_02044E78: ; 0x02044E78 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -1454,10 +1454,10 @@ FUN_02044ED8: ; 0x02044ED8 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} @@ -1478,13 +1478,13 @@ FUN_02044F20: ; 0x02044F20 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r2, #0x0 add r1, sp, #0x0 strh r2, [r1, #0x0] mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 pop {r3-r5, pc} @@ -1512,7 +1512,7 @@ FUN_02044F58: ; 0x02044F58 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r5, _02044FE4 ; =0x00000000 @@ -1523,17 +1523,17 @@ _02044F9E: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02044FD4 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x0] @@ -1580,7 +1580,7 @@ FUN_02044FE8: ; 0x02044FE8 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 @@ -1593,7 +1593,7 @@ _0204502A: add r1, r0, #0x0 add r0, r6, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02045048 add r0, r5, #0x1 @@ -1628,7 +1628,7 @@ FUN_0204505C: ; 0x0204505C ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 add r4, #0x80 lsr r6, r0, #0x10 @@ -1649,11 +1649,11 @@ _0204509A: _020450A6: ldr r0, [sp, #0xc] add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _020450E8 add r0, r7, #0x0 @@ -1662,7 +1662,7 @@ _020450A6: add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020450DE ldr r0, [sp, #0x4] @@ -1725,7 +1725,7 @@ FUN_02045104: ; 0x02045104 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 @@ -1734,7 +1734,7 @@ FUN_02045104: ; 0x02045104 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} @@ -1768,7 +1768,7 @@ FUN_02045170: ; 0x02045170 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -1777,7 +1777,7 @@ FUN_02045170: ; 0x02045170 add r1, r0, #0x0 add r0, r5, #0x0 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} @@ -1800,7 +1800,7 @@ FUN_020451D0: ; 0x020451D0 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 add r4, #0x80 lsr r6, r0, #0x10 @@ -1817,17 +1817,17 @@ _0204520C: _02045212: add r0, r7, #0x0 add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02045242 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02045242 ldr r0, [sp, #0x0] diff --git a/arm9/asm/scrcmd_24.s b/arm9/asm/scrcmd_24.s index ed57d780..85f03ebe 100644 --- a/arm9/asm/scrcmd_24.s +++ b/arm9/asm/scrcmd_24.s @@ -102,7 +102,7 @@ FUN_02045E20: ; 0x02045E20 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x20 bl FUN_02088DF8 add r5, r0, #0x0 @@ -185,7 +185,7 @@ FUN_02045EE4: ; 0x02045EE4 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0x0 mov r1, #0x20 bl FUN_02088DF8 @@ -222,7 +222,7 @@ FUN_02045F24: ; 0x02045F24 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 mov r0, #0x20 mov r1, #0x4 diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s index 54c1e00c..959b85d1 100644 --- a/arm9/asm/scrcmd_3.s +++ b/arm9/asm/scrcmd_3.s @@ -119,7 +119,7 @@ FUN_0203FF10: ; 0x0203FF10 ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x4 diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s index 7310f545..078e899f 100644 --- a/arm9/asm/scrcmd_4.s +++ b/arm9/asm/scrcmd_4.s @@ -92,7 +92,7 @@ FUN_02040748: ; 0x02040748 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0x0 ldr r0, [r7, #0x0] add r1, r4, #0x0 @@ -315,7 +315,7 @@ FUN_0204091C: ; 0x0204091C ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0x0 ldr r0, [r7, #0x0] add r1, r4, #0x0 @@ -943,11 +943,11 @@ FUN_02040E4C: ; 0x02040E4C ldr r0, [r6, #0xc] bl FUN_0206BB1C ldr r1, [sp, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r7, #0x0] diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s index bb367973..bb5b7be6 100644 --- a/arm9/asm/scrcmd_5.s +++ b/arm9/asm/scrcmd_5.s @@ -75,7 +75,7 @@ FUN_020411C4: ; 0x020411C4 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, _0204133C ; =0x00000000 @@ -87,17 +87,17 @@ _0204123C: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204127C add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 @@ -132,19 +132,19 @@ _02041290: mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _020412E0 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _020412E0 add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s index f75ac5ce..8ea6313d 100644 --- a/arm9/asm/scrcmd_9.s +++ b/arm9/asm/scrcmd_9.s @@ -253,7 +253,7 @@ FUN_02042000: ; 0x02042000 bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] @@ -417,7 +417,7 @@ _02042170: bl FUN_020394F0 add r1, r0, #0x0 add r0, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x4 diff --git a/arm9/asm/unk_0200AA80.s b/arm9/asm/unk_0200AA80.s index 2da52f7f..42a4d3a4 100644 --- a/arm9/asm/unk_0200AA80.s +++ b/arm9/asm/unk_0200AA80.s @@ -285,7 +285,7 @@ FUN_0200AC60: ; 0x0200AC60 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r0, #0x0 ldr r2, [r5, #0xc] add r0, r4, #0x0 @@ -309,7 +309,7 @@ FUN_0200ACA4: ; 0x0200ACA4 add r0, r2, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -350,7 +350,7 @@ FUN_0200ACF8: ; 0x0200ACF8 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x76 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 @@ -367,7 +367,7 @@ FUN_0200AD18: ; 0x0200AD18 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x90 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index 4c1cb051..c8fec74e 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -2285,8 +2285,8 @@ _02012752: .balign 4 _02012778: .word UNK_020ED4B2 - thumb_func_start FUN_0201277C -FUN_0201277C: ; 0x0201277C + thumb_func_start IsNighttime +IsNighttime: ; 0x0201277C push {r3, lr} bl FUN_02012794 cmp r0, #0x3 diff --git a/arm9/asm/unk_02023C40.s b/arm9/asm/unk_02023C40.s index 30aa59a0..46a01c79 100644 --- a/arm9/asm/unk_02023C40.s +++ b/arm9/asm/unk_02023C40.s @@ -26,10 +26,10 @@ FUN_02023C48: ; 0x02023C48 lsl r2, r2, #0x4 bl memset add r0, r4, #0x0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData add r0, r4, #0x0 add r0, #0xec - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData mov r0, #0x76 mov r1, #0x0 lsl r0, r0, #0x2 @@ -120,13 +120,13 @@ FUN_02023CC8: ; 0x02023CC8 add r5, r0, #0x0 mov r1, #0xc mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r5, #0xec add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r4, r0 beq _02023CEA mov r0, #0x1 @@ -187,7 +187,7 @@ _02023D38: .word 0x0000FFFF FUN_02023D3C: ; 0x02023D3C push {r4, lr} add r4, r0, #0x0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData add r0, r4, #0x0 mov r1, #0x0 add r0, #0xe8 @@ -785,7 +785,7 @@ FUN_0202415C: ; 0x0202415C add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, _02024198 ; =0x00000182 @@ -884,7 +884,7 @@ _02024210: add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -897,7 +897,7 @@ _0202422E: add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -911,7 +911,7 @@ _0202424A: add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -925,7 +925,7 @@ _02024268: add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -1916,17 +1916,17 @@ FUN_0202498C: ; 0x0202498C add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 ldr r0, [sp, #0x0] - bl GetMonGenderEncrypted + bl GetMonGender add r6, r0, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024AE4 ; =0xBEEFCAFE @@ -2099,21 +2099,21 @@ FUN_02024AF0: ; 0x02024AF0 add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] mov r1, #0xc mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x4] ldr r0, [sp, #0x0] - bl GetMonGenderEncrypted + bl GetMonGender add r7, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C78 ; =0xBEEFCAFE diff --git a/arm9/asm/unk_02025658.s b/arm9/asm/unk_02025658.s index f5837edd..9cf2dfa2 100644 --- a/arm9/asm/unk_02025658.s +++ b/arm9/asm/unk_02025658.s @@ -6,8 +6,8 @@ .text - thumb_func_start FUN_02025658 -FUN_02025658: ; 0x02025658 + thumb_func_start InitSealsObject +InitSealsObject: ; 0x02025658 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x0 @@ -61,19 +61,19 @@ _020256B6: bx lr .balign 4 - thumb_func_start FUN_020256BC -FUN_020256BC: ; 0x020256BC + thumb_func_start CreateNewSealsObject +CreateNewSealsObject: ; 0x020256BC push {r4, lr} mov r1, #0x38 bl AllocFromHeapAtEnd add r4, r0, #0x0 - bl FUN_02025658 + bl InitSealsObject add r0, r4, #0x0 pop {r4, pc} .balign 4 - thumb_func_start FUN_020256D0 -FUN_020256D0: ; 0x020256D0 + thumb_func_start CopySealsObject +CopySealsObject: ; 0x020256D0 ldr r3, _020256D8 ; =MI_CpuCopy8 mov r2, #0x38 bx r3 @@ -88,7 +88,7 @@ FUN_020256DC: ; 0x020256DC add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 - bl FUN_02025658 + bl InitSealsObject add r0, r7, #0x0 strb r6, [r5, #0x7] bl FUN_0206BB1C @@ -109,30 +109,30 @@ FUN_020256DC: ; 0x020256DC str r0, [r5, #0x0] ldr r0, [sp, #0x0] mov r6, #0x0 - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 bge _020257AE add r5, #0x18 _0202572A: ldr r0, [sp, #0x0] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] add r0, r7, #0x0 bl FUN_0206B6C8 @@ -170,7 +170,7 @@ _0202572A: lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x0] - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 blt _0202572A _020257AE: @@ -299,7 +299,7 @@ FUN_0202584C: ; 0x0202584C mov r4, #0x0 _02025852: add r0, r5, #0x0 - bl FUN_02025658 + bl InitSealsObject add r4, r4, #0x1 add r5, #0x38 cmp r4, #0x14 @@ -326,7 +326,7 @@ FUN_02025878: ; 0x02025878 bl FUN_02025940 cmp r0, #0x0 beq _02025886 - bl FUN_02025658 + bl InitSealsObject _02025886: pop {r3, pc} @@ -338,7 +338,7 @@ FUN_02025888: ; 0x02025888 add r1, r0, #0x0 beq _0202589A add r0, r4, #0x0 - bl FUN_020256D0 + bl CopySealsObject _0202589A: pop {r4, pc} @@ -362,13 +362,13 @@ FUN_020258B0: ; 0x020258B0 bl FUN_02025940 add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_020256BC + bl CreateNewSealsObject add r5, r0, #0x0 cmp r4, #0x0 beq _020258CE add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_020256D0 + bl CopySealsObject _020258CE: add r0, r5, #0x0 pop {r3-r5, pc} @@ -382,11 +382,11 @@ FUN_020258D4: ; 0x020258D4 cmp r0, #0x0 bne _020258E8 add r0, r4, #0x0 - bl FUN_02025658 + bl InitSealsObject pop {r4, pc} _020258E8: add r1, r4, #0x0 - bl FUN_020256D0 + bl CopySealsObject pop {r4, pc} thumb_func_start FUN_020258F0 diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s index 98d65c78..ec6fd057 100644 --- a/arm9/asm/unk_02026CD0.s +++ b/arm9/asm/unk_02026CD0.s @@ -15,27 +15,27 @@ FUN_02026CD0: ; 0x02026CD0 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r5, #0x0 strh r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] @@ -2125,12 +2125,12 @@ _02027B9C: add r0, r4, #0x0 mov r1, #0x74 add r2, #0x12 - bl SetMonDataEncrypted + bl SetMonData add r5, #0x3b add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 - bl SetMonDataEncrypted + bl SetMonData add sp, #0x10 pop {r3-r5, pc} nop @@ -2300,12 +2300,12 @@ FUN_02027CB8: ; 0x02027CB8 add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa - bl SetMonDataEncrypted + bl SetMonData add r5, #0x33 add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 - bl SetMonDataEncrypted + bl SetMonData add sp, #0x10 pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_0202B034.s b/arm9/asm/unk_0202B034.s index a72a3829..2708bee6 100644 --- a/arm9/asm/unk_0202B034.s +++ b/arm9/asm/unk_0202B034.s @@ -58,7 +58,7 @@ _0202B07E: add r0, r0, r2 str r0, [sp, #0x14] ldr r0, [sp, #0x4] - bl FUN_0206B9AC + bl GetPartyCount str r0, [sp, #0x10] mov r0, #0xb mov r1, #0x0 @@ -77,67 +77,67 @@ _0202B07E: _0202B0BA: ldr r0, [sp, #0x4] add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0x0 - bl TryDecryptMon + bl AcquireMonLock str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0202B17E add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x2] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x0 strb r0, [r5, #0x3] add r0, r4, #0x0 add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x32] add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x34] add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x36] add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x38] cmp r6, #0x0 beq _0202B176 add r0, r4, #0x0 mov r1, #0x76 add r2, r6, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0xc @@ -146,7 +146,7 @@ _0202B0BA: add r0, r4, #0x0 mov r1, #0x90 add r2, r6, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0x22 @@ -162,7 +162,7 @@ _0202B17C: _0202B17E: ldr r1, [sp, #0xc] add r0, r4, #0x0 - bl TryEncryptMon + bl ReleaseMonLock ldr r0, [sp, #0x10] add r7, r7, #0x1 cmp r7, r0 diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s index edec1ae4..8e7a28c2 100644 --- a/arm9/asm/unk_0202BE98.s +++ b/arm9/asm/unk_0202BE98.s @@ -27,7 +27,7 @@ _0202BEB4: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0202BECC bl ErrorHandling @@ -57,7 +57,7 @@ _0202BEF0: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0202BF08 bl ErrorHandling @@ -205,7 +205,7 @@ _0202C00A: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0202C01A add r4, r4, #0x1 diff --git a/arm9/asm/unk_0202C144.s b/arm9/asm/unk_0202C144.s index 50c7240b..fdda34d3 100644 --- a/arm9/asm/unk_0202C144.s +++ b/arm9/asm/unk_0202C144.s @@ -11,7 +11,7 @@ FUN_0202C144: ; 0x0202C144 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0202C194 add r0, r5, #0x0 @@ -23,7 +23,7 @@ FUN_0202C144: ; 0x0202C144 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 lsl r2, r2, #0x10 add r0, r7, #0x0 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 74c41707..6cb0e026 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -1855,7 +1855,7 @@ _02035ECC: ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] ldr r0, [r7, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r7, #0x13] mov r0, #0x0 strh r0, [r7, #0x18] @@ -2050,7 +2050,7 @@ _020360AC: add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0xb @@ -2444,7 +2444,7 @@ _020363F6: add r5, r0, #0x0 ldr r0, [sp, #0x4] add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0xc] mov r0, #0x7f lsl r0, r0, #0x2 @@ -2457,7 +2457,7 @@ _020363F6: ldr r0, [sp, #0xc] mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02036474 add r0, r5, #0x0 @@ -3277,7 +3277,7 @@ _02036B0E: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0x0 ldr r0, [r5, #0x14] add r1, r6, #0x0 @@ -3547,7 +3547,7 @@ FUN_02036CEC: ; 0x02036CEC str r5, [r4, #0x1c] ldrb r1, [r7, #0x2] ldr r0, [r4, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 @@ -3648,7 +3648,7 @@ FUN_02036E08: ; 0x02036E08 bl FUN_0206BB1C ldrb r1, [r5, #0x0] str r0, [sp, #0x20] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x24] ldrb r0, [r5, #0x1] cmp r0, #0x0 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 1b513296..2e9774eb 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -732,7 +732,7 @@ FUN_02037C00: ; 0x02037C00 strb r0, [r4, #0x11] strb r6, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] @@ -789,7 +789,7 @@ FUN_02037C7C: ; 0x02037C7C mov r0, #0x0 strb r0, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] @@ -1231,7 +1231,7 @@ FUN_0203800C: ; 0x0203800C add r0, r5, #0x0 bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02027E24 @@ -1585,7 +1585,7 @@ _020382F6: ldr r0, [r4, #0x44] mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r3, r0, #0x0 add r0, sp, #0x30 str r0, [sp, #0x0] @@ -1594,7 +1594,7 @@ _020382F6: mov r0, #0x0 mov r2, #0x1 lsr r3, r3, #0x10 - bl FUN_02069168 + bl GetMonEvolution str r0, [sp, #0x20] cmp r0, #0x0 beq _02038380 @@ -1652,7 +1652,7 @@ _02038386: beq _020383C8 ldr r0, [r4, #0xc] ldr r1, [r4, #0x30] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, [r4, #0x44] bl FUN_02069B88 @@ -1906,11 +1906,11 @@ _02038590: ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r2, [r4, #0xc] mov r1, #0x75 add r2, #0x1c - bl SetMonDataEncrypted + bl SetMonData pop {r3-r5, pc} _020385A8: ldr r0, [r5, #0xc] @@ -1973,17 +1973,17 @@ _02038620: ldr r0, [r7, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x6f mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r4, #0xc] mov r2, #0x0 str r0, [r1, #0x10] add r0, r6, #0x0 mov r1, #0x70 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r4, #0xc] cmp r5, #0x0 str r0, [r1, #0x8] diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s index bbe445d7..8a0cf5cd 100644 --- a/arm9/asm/unk_0204653C.s +++ b/arm9/asm/unk_0204653C.s @@ -945,7 +945,7 @@ _02046CAA: ldr r0, [r5, #0x10] mov r1, #0x0 ldr r0, [r0, #0x8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02060FE0 @@ -1025,7 +1025,7 @@ _02046D5C: cmp r0, #0x12 bne _02046D8C add r0, r5, #0x0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0x6 bne _02046D8C mov r2, #0x0 @@ -1711,10 +1711,10 @@ _0204732A: bne _020473C8 ldr r0, [r1, #0x8] mov r1, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0x0 mov r0, #0x0 bl FUN_0206BB48 @@ -1758,10 +1758,10 @@ _02047390: bne _020473C8 ldr r0, [r1, #0x8] mov r1, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0x0 mov r0, #0x0 bl FUN_0206BB48 @@ -1827,7 +1827,7 @@ _02047400: blo _020474FC ldr r0, [r4, #0x8] mov r1, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023918 @@ -1835,12 +1835,12 @@ _02047400: add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x6f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r3, #0xb str r3, [sp, #0x0] @@ -1871,7 +1871,7 @@ _02047470: lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023918 @@ -1879,12 +1879,12 @@ _02047470: add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x6f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r3, #0xb str r3, [sp, #0x0] diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s index 8668643a..04d99ac3 100644 --- a/arm9/asm/unk_02047500.s +++ b/arm9/asm/unk_02047500.s @@ -242,7 +242,7 @@ FUN_02047668: ; 0x02047668 bl FUN_0204A1D8 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020476C8 ; =0x000001DF sub r0, r0, r1 cmp r0, #0xe diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 8944e0b3..e167517a 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -649,25 +649,25 @@ FUN_02047BC0: ; 0x02047BC0 bl AllocMonZeroed add r5, r0, #0x0 ldr r0, [sp, #0x14] - bl FUN_0206B9AC + bl GetPartyCount add r1, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0206B8CC ldr r0, [sp, #0x14] mov r4, #0x0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0x0 ble _02047C98 _02047C40: ldr r0, [sp, #0x14] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r5, #0x0 bl FUN_02069B88 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 beq _02047C82 cmp r7, #0x0 @@ -675,16 +675,16 @@ _02047C40: add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r7, #0x0 - bl GetMonExpByLevel + bl GetMonExpBySpeciesAndLevel str r0, [sp, #0x18] add r0, r5, #0x0 mov r1, #0x8 add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats _02047C82: add r0, r6, #0x0 add r1, r5, #0x0 @@ -692,7 +692,7 @@ _02047C82: bl FUN_020479FC ldr r0, [sp, #0x14] add r4, r4, #0x1 - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 blt _02047C40 _02047C98: @@ -856,7 +856,7 @@ _02047DEE: ldrb r1, [r7, r6] ldr r0, [sp, #0x4] sub r1, r1, #0x1 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, [sp, #0x8] bl FUN_02069B88 ldr r1, [sp, #0x8] diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s index 83324f37..10664314 100644 --- a/arm9/asm/unk_0204A01C.s +++ b/arm9/asm/unk_0204A01C.s @@ -9,7 +9,7 @@ FUN_0204A01C: ; 0x0204A01C mov r1, #0xa2 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204A030 mov r0, #0x0 @@ -18,7 +18,7 @@ _0204A030: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204A042 mov r0, #0x1 @@ -70,7 +70,7 @@ FUN_0204A048: ; 0x0204A048 add r2, sp, #0x1c str r0, [sp, #0x1c] add r0, r4, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x18] add r1, r4, #0x0 bl FUN_0206B900 @@ -130,7 +130,7 @@ FUN_0204A120: ; 0x0204A120 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex lsl r2, r5, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 @@ -143,7 +143,7 @@ FUN_0204A138: ; 0x0204A138 push {r3-r7, lr} str r0, [sp, #0x0] add r5, r1, #0x0 - bl FUN_0206B9AC + bl GetPartyCount add r7, r0, #0x0 mov r6, #0x0 cmp r7, #0x0 @@ -151,35 +151,35 @@ FUN_0204A138: ; 0x0204A138 _0204A14A: ldr r0, [sp, #0x0] add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204A19C add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 bne _0204A19C _0204A198: @@ -198,7 +198,7 @@ _0204A1A2: FUN_0204A1A8: ; 0x0204A1A8 push {r3-r7, lr} add r7, r0, #0x0 - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 @@ -207,7 +207,7 @@ FUN_0204A1A8: ; 0x0204A1A8 _0204A1BA: add r0, r7, #0x0 add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_0204A01C cmp r0, #0x0 beq _0204A1CC @@ -225,7 +225,7 @@ _0204A1D2: FUN_0204A1D8: ; 0x0204A1D8 push {r3-r7, lr} add r6, r0, #0x0 - bl FUN_0206B9AC + bl GetPartyCount add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x0 @@ -233,7 +233,7 @@ FUN_0204A1D8: ; 0x0204A1D8 _0204A1E8: add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r7, r0, #0x0 bl FUN_0204A01C cmp r0, #0x0 @@ -253,7 +253,7 @@ _0204A204: FUN_0204A20C: ; 0x0204A20C push {r3-r7, lr} add r6, r0, #0x0 - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r4, _0204A244 ; =0x00000000 @@ -261,11 +261,11 @@ FUN_0204A20C: ; 0x0204A20C _0204A21C: add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r7, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204A236 add r0, r7, #0x0 @@ -302,7 +302,7 @@ FUN_0204A25C: ; 0x0204A25C add r1, sp, #0x0 add r7, r0, #0x0 strb r2, [r1, #0x0] - bl FUN_0206B9AC + bl GetPartyCount add r6, r0, #0x0 mov r5, #0x0 cmp r6, #0x0 @@ -310,17 +310,17 @@ FUN_0204A25C: ; 0x0204A25C _0204A272: add r0, r7, #0x0 add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0204A292 add r0, r4, #0x0 mov r1, #0x19 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData _0204A292: add r5, r5, #0x1 cmp r5, r6 @@ -337,7 +337,7 @@ FUN_0204A29C: ; 0x0204A29C str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r7, #0x0 - bl FUN_0206B9AC + bl GetPartyCount add r4, r7, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 @@ -345,7 +345,7 @@ FUN_0204A29C: ; 0x0204A29C _0204A2B4: ldr r0, [sp, #0x0] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 bl FUN_0204A01C cmp r0, #0x0 @@ -353,14 +353,14 @@ _0204A2B4: add r0, r5, #0x0 mov r1, #0x9f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x88 tst r0, r1 beq _0204A308 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] cmp r0, #0x1 bls _0204A2EA @@ -370,7 +370,7 @@ _0204A2EA: add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0xc - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0xc] cmp r0, #0x1 bne _0204A306 @@ -378,7 +378,7 @@ _0204A2EA: add r0, r5, #0x0 mov r1, #0x7 add r6, r6, #0x1 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _0204A306: add r7, r7, #0x1 _0204A308: @@ -411,14 +411,14 @@ FUN_0204A32C: ; 0x0204A32C mov r1, #0x9f mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x88 tst r0, r1 beq _0204A362 add r0, r4, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _0204A362 mov r0, #0x0 @@ -426,7 +426,7 @@ FUN_0204A32C: ; 0x0204A32C add r0, r4, #0x0 mov r1, #0x9f add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add sp, #0x4 mov r0, #0x1 pop {r3-r4, pc} diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s index 0de63e29..f078e422 100644 --- a/arm9/asm/unk_0204AB0C.s +++ b/arm9/asm/unk_0204AB0C.s @@ -117,7 +117,7 @@ FUN_0204ABA8: ; 0x0204ABA8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0204ABBE add r0, r4, #0x0 @@ -334,7 +334,7 @@ _0204AD40: .word UNK_020F471A FUN_0204AD44: ; 0x0204AD44 push {r4, lr} add r4, r0, #0x0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0204AD58 add r0, r4, #0x0 diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s index 2d779ce3..56db4ed5 100644 --- a/arm9/asm/unk_0204B9EC.s +++ b/arm9/asm/unk_0204B9EC.s @@ -198,7 +198,7 @@ _0204BB3C: add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 strh r0, [r5, #0x0] @@ -220,12 +220,12 @@ _0204BB72: ldrb r0, [r7, #0x2] strh r0, [r5, #0x4] add r0, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x6] add r0, r4, #0x0 mov r1, #0xb1 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x7] add r6, r6, #0x1 add r5, #0x8 diff --git a/arm9/asm/unk_0204BE14.s b/arm9/asm/unk_0204BE14.s index afb3bc59..0e8be8cc 100644 --- a/arm9/asm/unk_0204BE14.s +++ b/arm9/asm/unk_0204BE14.s @@ -497,7 +497,7 @@ _0204C138: add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r5, r4 add r1, #0xb6 strh r0, [r1, #0x0] diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index cfaf8e37..d2267271 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -50,7 +50,7 @@ FUN_02050E48: ; 0x02050E48 ldr r0, [sp, #0x4] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] @@ -957,7 +957,7 @@ _020515BA: add r1, #0x84 ldrb r1, [r1, #0x0] ldr r0, [r4, #0x50] - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0x28] @@ -1482,7 +1482,7 @@ _02051A16: ldrb r1, [r1, #0x0] ldr r0, [sp, #0x0] sub r1, r1, #0x1 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r4, #0x0 add r2, r6, #0x0 bl MI_CpuCopy8 @@ -1720,7 +1720,7 @@ _02051BD6: mov r1, #0x5 add r0, r0, r6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0x0 ldr r0, [sp, #0x18] ldr r2, [r5, #0xc] diff --git a/arm9/asm/unk_02054C14.s b/arm9/asm/unk_02054C14.s index 46c1432a..1c47a7c6 100644 --- a/arm9/asm/unk_02054C14.s +++ b/arm9/asm/unk_02054C14.s @@ -289,7 +289,7 @@ FUN_02054DEC: ; 0x02054DEC push {r3-r7, lr} add r6, r0, #0x0 bl FUN_0206BB1C - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r4, _02054E2C ; =0x00000000 @@ -299,10 +299,10 @@ _02054E02: add r0, r6, #0x0 bl FUN_0206BB1C add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r7, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02054E1E add r0, r4, #0x0 @@ -326,7 +326,7 @@ FUN_02054E30: ; 0x02054E30 mov r7, #0x0 bl FUN_0206BB1C str r0, [sp, #0x0] - bl FUN_0206B9AC + bl GetPartyCount add r4, r0, #0x0 add r6, r7, #0x0 cmp r4, #0x0 @@ -335,10 +335,10 @@ FUN_02054E30: ; 0x02054E30 _02054E4A: ldr r0, [sp, #0x0] add r1, r6, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x0] add r6, r6, #0x1 add r5, r5, #0x2 diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s index 25427134..93afcc59 100644 --- a/arm9/asm/unk_0205EC84.s +++ b/arm9/asm/unk_0205EC84.s @@ -541,7 +541,7 @@ _0205F036: bl FUN_0205EC94 cmp r0, #0x1 bne _0205F054 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0205F050 mov r5, #0xfe @@ -566,7 +566,7 @@ _0205F06A: bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0205F080 ldr r5, _0205F128 ; =0x000003F5 @@ -579,7 +579,7 @@ _0205F084: bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0205F09A ldr r5, _0205F134 ; =0x000003FF @@ -592,7 +592,7 @@ _0205F09E: bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0205F0B4 ldr r5, _0205F140 ; =0x000003EE @@ -605,7 +605,7 @@ _0205F0B8: bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 - bl FUN_0201277C + bl IsNighttime cmp r0, #0x0 bne _0205F0CE ldr r5, _0205F140 ; =0x000003EE diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s index 21beb029..c06deaff 100644 --- a/arm9/asm/unk_0205FA2C.s +++ b/arm9/asm/unk_0205FA2C.s @@ -175,7 +175,7 @@ FUN_0205FB34: ; 0x0205FB34 ldrb r0, [r6, #0xd] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s index 53b84d9a..a49266bd 100644 --- a/arm9/asm/unk_020603B0.s +++ b/arm9/asm/unk_020603B0.s @@ -242,7 +242,7 @@ _020604D0: ldr r0, [sp, #0x1c] mov r1, #0xae mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 @@ -250,7 +250,7 @@ _020604D0: mov r1, #0x0 ldr r0, [sp, #0x1c] add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x3 @@ -258,7 +258,7 @@ _020604D0: ldr r0, [sp, #0x1c] mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 2910f716..1a57968f 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -323,7 +323,7 @@ FUN_02060E04: ; 0x02060E04 add r0, r6, #0x0 mov r1, #0x76 add r2, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0xb @@ -342,22 +342,22 @@ FUN_02060E34: ; 0x02060E34 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x6f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r6, #0x0] add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r7, #0x0] add r0, r5, #0x0 mov r1, #0x79 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x18] strb r0, [r1, #0x0] pop {r3-r7, pc} @@ -420,7 +420,7 @@ FUN_02060ECC: ; 0x02060ECC mov r1, #0x4d mov r2, #0x0 add r7, r3, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x0 @@ -432,7 +432,7 @@ FUN_02060ECC: ; 0x02060ECC add r0, r5, #0x0 mov r1, #0x76 add r2, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0x0 add r1, r7, #0x0 mov r2, #0xb @@ -479,7 +479,7 @@ FUN_02060F3C: ; 0x02060F3C mov r0, #0x0 strb r0, [r4, #0x1f] add r0, r5, #0x0 - bl GetMonNatureEncrypted + bl GetMonNature strb r0, [r4, #0x1e] add r0, r4, #0x6 str r0, [sp, #0x0] @@ -491,7 +491,7 @@ FUN_02060F3C: ; 0x02060F3C add r0, r5, #0x0 mov r1, #0x4d mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #0x7] add r2, r4, #0x7 add r4, #0x8 @@ -624,7 +624,7 @@ FUN_02061028: ; 0x02061028 add r0, r4, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x22] ldrh r0, [r5, #0x22] cmp r0, #0x0 diff --git a/arm9/asm/unk_0206439C.s b/arm9/asm/unk_0206439C.s index e9d72f9f..76ea9f7f 100644 --- a/arm9/asm/unk_0206439C.s +++ b/arm9/asm/unk_0206439C.s @@ -14,7 +14,7 @@ FUN_0206439C: ; 0x0206439C add r0, r6, #0x0 bl FUN_0206BB1C add r1, r5, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 2aea9e30..ec33a0a1 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1617,7 +1617,7 @@ FUN_02066070: ; 0x02066070 lsl r1, r1, #0x4 str r0, [r6, r1] add r0, r5, #0x0 - bl FUN_020256BC + bl CreateNewSealsObject add r7, r0, #0x0 add r0, r6, #0x0 str r0, [sp, #0x10] @@ -1810,7 +1810,7 @@ FUN_020661F8: ; 0x020661F8 bl FUN_020377AC bl FUN_0206BB1C add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0x0 mov r0, #0x6b lsl r0, r0, #0x2 diff --git a/arm9/asm/unk_0206ABC4.s b/arm9/asm/unk_0206ABC4.s index 776bd5c3..caab2e45 100644 --- a/arm9/asm/unk_0206ABC4.s +++ b/arm9/asm/unk_0206ABC4.s @@ -622,7 +622,7 @@ _0206B030: ldr r0, [sp, #0x40] mov r1, #0x6 add r2, r7, #0x6 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x34] ldr r1, [sp, #0x40] ldr r0, [r0, #0x4] @@ -709,7 +709,7 @@ _0206B0DA: ldr r0, [sp, #0x40] mov r1, #0x6 add r2, r2, #0x6 - bl SetMonDataEncrypted + bl SetMonData ldr r7, [sp, #0x3c] mov r6, #0x0 _0206B120: diff --git a/arm9/asm/unk_0206B16C.s b/arm9/asm/unk_0206B16C.s index b6ec1416..f454c441 100644 --- a/arm9/asm/unk_0206B16C.s +++ b/arm9/asm/unk_0206B16C.s @@ -28,7 +28,7 @@ _0206B188: add r5, r6, #0x0 _0206B18C: add r0, r5, #0x0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x1e @@ -149,7 +149,7 @@ _0206B270: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _0206B2A0 mov r0, #0x88 @@ -241,7 +241,7 @@ _0206B308: mov r0, #0x88 mul r0, r2 add r0, r1, r0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData bl FUN_02022830 pop {r3, pc} _0206B32A: @@ -274,7 +274,7 @@ _0206B350: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _0206B364 add sp, #0x8 @@ -327,7 +327,7 @@ _0206B3A2: add r0, r1, r0 mov r1, #0xab mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _0206B3C6 ldr r0, [sp, #0x0] @@ -371,7 +371,7 @@ _0206B3F6: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _0206B406 add r6, r6, #0x1 @@ -521,7 +521,7 @@ _0206B504: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _0206B514 add r4, r4, #0x1 @@ -560,13 +560,13 @@ _0206B548: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _0206B566 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _0206B566 add r4, r4, #0x1 @@ -635,7 +635,7 @@ _0206B5C4: add r0, r1, r0 ldr r2, [sp, #0x18] add r1, r7, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData bl FUN_02022830 pop {r3-r7, pc} .balign 4 diff --git a/arm9/asm/unk_0206B688.s b/arm9/asm/unk_0206B688.s index 2e4a392b..9b6e863e 100644 --- a/arm9/asm/unk_0206B688.s +++ b/arm9/asm/unk_0206B688.s @@ -46,17 +46,17 @@ UNK_020F8074: ; 0x020F8074 FUN_0206B688: ; 0x0206B688 push {r3-r7, lr} add r5, r0, #0x0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0206B754 @@ -67,7 +67,7 @@ FUN_0206B688: ; 0x0206B688 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock add r0, r4, #0x0 pop {r3-r7, pc} @@ -158,7 +158,7 @@ FUN_0206B754: ; 0x0206B754 mov r1, #0xad mov r2, #0x0 add r4, r0, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r2, _0206B7B8 ; =0x0000019D cmp r0, r2 bhi _0206B784 @@ -201,7 +201,7 @@ _0206B7A4: add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4, pc} @@ -289,7 +289,7 @@ _0206B838: .word UNK_020F8074 FUN_0206B83C: ; 0x0206B83C push {r3-r7, lr} add r5, r0, #0x0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0206B754 @@ -297,16 +297,16 @@ FUN_0206B83C: ; 0x0206B83C add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock ldr r2, [sp, #0x0] add r0, r7, #0x0 add r1, r6, #0x0 diff --git a/arm9/asm/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s index 70465dd6..afcace47 100644 --- a/arm9/asm/unk_0206BB5C.s +++ b/arm9/asm/unk_0206BB5C.s @@ -34,7 +34,7 @@ FUN_0206BB84: ; 0x0206BB84 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r4, #0x0 @@ -49,7 +49,7 @@ _0206BBA2: add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, r5 bls _0206BBBE mov r0, #0x0 @@ -58,7 +58,7 @@ _0206BBBE: add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0206BBD0 mov r0, #0x0 @@ -193,7 +193,7 @@ _0206BCBC: beq _0206BD0A ldr r0, [sp, #0x4] sub r1, r1, #0x1 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r2, [sp, #0x8] @@ -208,17 +208,17 @@ _0206BCE2: add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r7, #0x0] add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x10] @@ -407,7 +407,7 @@ FUN_0206BE48: ; 0x0206BE48 add r0, r1, #0x0 str r1, [sp, #0x10] str r2, [sp, #0x14] - bl FUN_0206B9AC + bl GetPartyCount str r0, [sp, #0x20] add r6, r0, #0x0 add r0, sp, #0x30 @@ -423,16 +423,16 @@ FUN_0206BE48: ; 0x0206BE48 _0206BE72: ldr r0, [sp, #0x10] add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x24] mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x0] ldr r0, [sp, #0x24] mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x0] ldr r0, [sp, #0xc] ldr r1, [sp, #0x24] diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 9265cbd9..81a90ae3 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -76,7 +76,7 @@ FUN_0206C700: ; 0x0206C700 mov r1, #0x5 mov r2, #0x0 str r0, [r4, #0x28] - bl GetMonDataEncrypted + bl GetMonData add r1, r4, #0x0 add r1, #0x60 strh r0, [r1, #0x0] @@ -1040,11 +1040,11 @@ _0206CF7E: ldr r0, [r4, #0x28] mov r1, #0x5 add r2, #0x62 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r4, #0x28] bl FUN_0206A1C4 ldr r0, [r4, #0x28] - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 @@ -1111,13 +1111,13 @@ _0206CFFA: ldr r0, [r4, #0x28] mov r1, #0x4d mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0206D05E ldr r0, [r4, #0x28] mov r1, #0xb2 mov r2, #0x0 - bl SetMonDataEncrypted + bl SetMonData _0206D05E: add r0, r4, #0x0 add r0, #0x64 @@ -1652,7 +1652,7 @@ _0206D4A6: ldr r0, [r4, #0x28] mov r2, #0x0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x1 @@ -1736,7 +1736,7 @@ _0206D560: ldr r0, [r4, #0x28] add r2, #0x66 add r1, #0x3e - bl SetMonDataEncrypted + bl SetMonData add r1, r4, #0x0 add r2, r4, #0x0 add r1, #0x6c @@ -2085,7 +2085,7 @@ _0206D854: cmp r0, #0x0 beq _0206D86C ldr r0, [r4, #0x24] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0x6 blt _0206D86E _0206D86C: @@ -2103,30 +2103,30 @@ _0206D86E: add r0, r5, #0x0 mov r1, #0x5 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x9a add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 mov r1, #0xb add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r1, #0x19 str r1, [sp, #0x4] add r6, sp, #0x0 _0206D8BA: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2138,7 +2138,7 @@ _0206D8BA: _0206D8D2: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2150,7 +2150,7 @@ _0206D8D2: _0206D8EA: add r0, r5, #0x0 add r2, r6, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] @@ -2159,28 +2159,28 @@ _0206D8EA: add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 mov r1, #0x4d add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r4, #0x5c] - bl FUN_020256BC + bl CreateNewSealsObject add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r6, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0x0 bl FreeToHeap add r0, r5, #0x0 mov r1, #0xa1 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 add r1, sp, #0x8 mov r2, #0x18 @@ -2188,11 +2188,11 @@ _0206D8EA: add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 bl FUN_0206A1C4 add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0206B900 @@ -2225,7 +2225,7 @@ _0206D9A0: ldr r0, [r4, #0x28] mov r1, #0x6 add r2, sp, #0x4 - bl SetMonDataEncrypted + bl SetMonData _0206D9AE: add sp, #0x20 pop {r4-r6, pc} @@ -2581,9 +2581,9 @@ FUN_0206DC80: ; 0x0206DC80 add r0, r5, #0x0 mov r1, #0x5 add r2, #0x62 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add r0, sp, #0x10 add r1, r5, #0x0 mov r2, #0x2 diff --git a/arm9/asm/unk_0206E5B4.s b/arm9/asm/unk_0206E5B4.s index e527bfb2..316ba0db 100644 --- a/arm9/asm/unk_0206E5B4.s +++ b/arm9/asm/unk_0206E5B4.s @@ -37,251 +37,471 @@ UNK_020F84EC: ; 0x020F84EC .global UNK_020F85B4 UNK_020F85B4: ; 0x020F85B4 - .byte 0x00, 0x00 - - .global UNK_020F85B6 -UNK_020F85B6: ; 0x020F85B6 - .byte 0xBB, 0x02 - - .global UNK_020F85B8 -UNK_020F85B8: ; 0x020F85B8 - .byte 0xBC, 0x02 - - .global UNK_020F85BA -UNK_020F85BA: ; 0x020F85BA - .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00 - .byte 0x02, 0x00, 0x03, 0x00, 0x06, 0x00, 0x07, 0x00, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x04, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0D, 0x00 - .byte 0x06, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x08, 0x00, 0x10, 0x00, 0x11, 0x00 - .byte 0x08, 0x00, 0x09, 0x00, 0x12, 0x00, 0x13, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x13, 0x00 - .byte 0x0A, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x16, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x17, 0x00, 0x16, 0x00 - .byte 0x0C, 0x00, 0x0D, 0x00, 0x97, 0x02, 0x98, 0x02, 0x00, 0x00, 0x0E, 0x00, 0x99, 0x02, 0x9A, 0x02 - .byte 0x00, 0x00, 0x0F, 0x00, 0x9B, 0x02, 0x9C, 0x02, 0x00, 0x00, 0x10, 0x00, 0x9D, 0x02, 0x9E, 0x02 - .byte 0x00, 0x00, 0x11, 0x00, 0x18, 0x00, 0x19, 0x00, 0x0D, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x1B, 0x00 - .byte 0x0E, 0x00, 0x13, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x1D, 0x00 - .byte 0x10, 0x00, 0x15, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x11, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x20, 0x00 - .byte 0x12, 0x00, 0x17, 0x00, 0x21, 0x00, 0x22, 0x00, 0x13, 0x00, 0x18, 0x00, 0x21, 0x00, 0x23, 0x00 - .byte 0x14, 0x00, 0x19, 0x00, 0x18, 0x00, 0x24, 0x00, 0x15, 0x00, 0x1A, 0x00, 0x18, 0x00, 0x25, 0x00 - .byte 0x16, 0x00, 0x1B, 0x00, 0x26, 0x00, 0x27, 0x00, 0x17, 0x00, 0x1C, 0x00, 0x28, 0x00, 0x2A, 0x00 - .byte 0x18, 0x00, 0x1D, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x19, 0x00, 0x1E, 0x00, 0x2B, 0x00, 0x2C, 0x00 - .byte 0x1A, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x1B, 0x00, 0x20, 0x00, 0x2F, 0x00, 0x30, 0x00 - .byte 0x1C, 0x00, 0x21, 0x00, 0x31, 0x00, 0x32, 0x00, 0x1D, 0x00, 0x22, 0x00, 0x33, 0x00, 0x34, 0x00 - .byte 0x1E, 0x00, 0x23, 0x00, 0x35, 0x00, 0x36, 0x00, 0x1F, 0x00, 0x24, 0x00, 0x33, 0x00, 0x37, 0x00 - .byte 0x20, 0x00, 0x25, 0x00, 0x38, 0x00, 0x39, 0x00, 0x21, 0x00, 0x26, 0x00, 0x3A, 0x00, 0x3B, 0x00 - .byte 0x22, 0x00, 0x27, 0x00, 0x3A, 0x00, 0x3C, 0x00, 0x23, 0x00, 0x28, 0x00, 0x3A, 0x00, 0x3D, 0x00 - .byte 0x24, 0x00, 0x29, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x3F, 0x00, 0x40, 0x00 - .byte 0x26, 0x00, 0x2B, 0x00, 0x47, 0x00, 0x48, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x49, 0x00, 0x4A, 0x00 - .byte 0x2D, 0x00, 0x2D, 0x00, 0x53, 0x00, 0x54, 0x00, 0x3F, 0x00, 0x2E, 0x00, 0x55, 0x00, 0x56, 0x00 - .byte 0x40, 0x00, 0x2F, 0x00, 0x55, 0x00, 0x57, 0x00, 0x41, 0x00, 0x30, 0x00, 0x55, 0x00, 0x58, 0x00 - .byte 0x42, 0x00, 0x31, 0x00, 0x55, 0x00, 0x59, 0x00, 0x43, 0x00, 0x32, 0x00, 0x5A, 0x00, 0x5B, 0x00 - .byte 0x44, 0x00, 0x33, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x45, 0x00, 0x34, 0x00, 0x55, 0x00, 0x5E, 0x00 - .byte 0x46, 0x00, 0x35, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x47, 0x00, 0x36, 0x00, 0xD2, 0x01, 0xD3, 0x01 - .byte 0x00, 0x00, 0x37, 0x00, 0x64, 0x00, 0x61, 0x00, 0x49, 0x00, 0x38, 0x00, 0x64, 0x00, 0x62, 0x00 - .byte 0x4A, 0x00, 0x39, 0x00, 0x64, 0x00, 0x63, 0x00, 0x4B, 0x00, 0x3A, 0x00, 0x64, 0x00, 0x65, 0x00 - .byte 0x4C, 0x00, 0x3B, 0x00, 0x64, 0x00, 0x66, 0x00, 0x4D, 0x00, 0x3C, 0x00, 0x64, 0x00, 0x67, 0x00 - .byte 0x4E, 0x00, 0x3D, 0x00, 0x64, 0x00, 0x68, 0x00, 0x4F, 0x00, 0x3E, 0x00, 0x64, 0x00, 0xD5, 0x01 - .byte 0x00, 0x00, 0x3F, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x50, 0x00, 0x40, 0x00, 0x6B, 0x00, 0x6C, 0x00 - .byte 0x51, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x27, 0x00, 0x42, 0x00, 0x41, 0x00, 0x43, 0x00 - .byte 0x28, 0x00, 0x43, 0x00, 0x41, 0x00, 0x44, 0x00, 0x29, 0x00, 0x44, 0x00, 0x41, 0x00, 0x45, 0x00 - .byte 0x2A, 0x00, 0x45, 0x00, 0x41, 0x00, 0x46, 0x00, 0x2B, 0x00, 0x46, 0x00, 0x33, 0x00, 0x4B, 0x00 - .byte 0x2E, 0x00, 0x47, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x2F, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x4F, 0x00 - .byte 0x30, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x50, 0x00, 0x31, 0x00, 0x4A, 0x00, 0x4E, 0x00, 0x51, 0x00 - .byte 0x32, 0x00, 0x4B, 0x00, 0x4E, 0x00, 0x52, 0x00, 0x33, 0x00, 0x4C, 0x00, 0x6D, 0x00, 0x6E, 0x00 - .byte 0x53, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x54, 0x00, 0x4E, 0x00, 0x70, 0x00, 0x71, 0x00 - .byte 0x55, 0x00, 0x4F, 0x00, 0x6D, 0x00, 0x72, 0x00, 0x56, 0x00, 0x50, 0x00, 0x73, 0x00, 0x74, 0x00 - .byte 0x5D, 0x00, 0x51, 0x00, 0x75, 0x00, 0x76, 0x00, 0x5E, 0x00, 0x52, 0x00, 0x77, 0x00, 0x78, 0x00 - .byte 0x5F, 0x00, 0x53, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x60, 0x00, 0x54, 0x00, 0x7B, 0x00, 0x7C, 0x00 - .byte 0x61, 0x00, 0x55, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x62, 0x00, 0x56, 0x00, 0x7F, 0x00, 0x81, 0x00 - .byte 0x67, 0x00, 0x57, 0x00, 0x80, 0x00, 0x81, 0x00, 0x68, 0x00, 0x58, 0x00, 0x82, 0x00, 0x83, 0x00 - .byte 0x6A, 0x00, 0x59, 0x00, 0x84, 0x00, 0x83, 0x00, 0x6B, 0x00, 0x5A, 0x00, 0x85, 0x00, 0x86, 0x00 - .byte 0x6C, 0x00, 0x5B, 0x00, 0x87, 0x00, 0x86, 0x00, 0x6D, 0x00, 0x5C, 0x00, 0x88, 0x00, 0x89, 0x00 - .byte 0x6E, 0x00, 0x5D, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x6F, 0x00, 0x5E, 0x00, 0xD6, 0x01, 0xD7, 0x01 - .byte 0x00, 0x00, 0x5F, 0x00, 0xD8, 0x01, 0xD9, 0x01, 0x00, 0x00, 0x60, 0x00, 0xDA, 0x01, 0xDB, 0x01 - .byte 0x00, 0x00, 0x61, 0x00, 0xDC, 0x01, 0xDD, 0x01, 0x00, 0x00, 0x62, 0x00, 0xDE, 0x01, 0xDF, 0x01 - .byte 0x00, 0x00, 0x63, 0x00, 0x88, 0x01, 0x89, 0x01, 0x1E, 0x01, 0x64, 0x00, 0x8A, 0x01, 0x89, 0x01 - .byte 0x1F, 0x01, 0x65, 0x00, 0xAF, 0x01, 0xB0, 0x01, 0x65, 0x01, 0x66, 0x00, 0xB1, 0x01, 0xB0, 0x01 - .byte 0x66, 0x01, 0x67, 0x00, 0xA9, 0x01, 0xAA, 0x01, 0x62, 0x01, 0x68, 0x00, 0x69, 0x02, 0x6A, 0x02 - .byte 0x00, 0x00, 0x69, 0x00, 0x67, 0x02, 0x68, 0x02, 0x00, 0x00, 0x6A, 0x00, 0x51, 0x01, 0x52, 0x01 - .byte 0x00, 0x00, 0x6B, 0x00, 0xE0, 0x01, 0xE1, 0x01, 0x00, 0x00, 0x6C, 0x00, 0xE2, 0x01, 0xE3, 0x01 - .byte 0x00, 0x00, 0x6D, 0x00, 0xE4, 0x01, 0xE5, 0x01, 0x00, 0x00, 0x6E, 0x00, 0xE6, 0x01, 0xE7, 0x01 - .byte 0x00, 0x00, 0x6F, 0x00, 0xE8, 0x01, 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02 - .byte 0x00, 0x00, 0x70, 0x00, 0x88, 0x02, 0x89, 0x02, 0x00, 0x00, 0x71, 0x00, 0x86, 0x02, 0x87, 0x02 - .byte 0x00, 0x00, 0x72, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x73, 0x00, 0x8E, 0x00, 0x8F, 0x00 - .byte 0x00, 0x00, 0x74, 0x00, 0x90, 0x00, 0x91, 0x00, 0x00, 0x00, 0x75, 0x00, 0x92, 0x00, 0x93, 0x00 - .byte 0x00, 0x00, 0x76, 0x00, 0x94, 0x00, 0x95, 0x00, 0x00, 0x00, 0x77, 0x00, 0x96, 0x00, 0x97, 0x00 - .byte 0x00, 0x00, 0x78, 0x00, 0x98, 0x00, 0x99, 0x00, 0x00, 0x00, 0x79, 0x00, 0x9A, 0x00, 0x9B, 0x00 - .byte 0x00, 0x00, 0x7A, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x9E, 0x00, 0x9F, 0x00 - .byte 0x00, 0x00, 0x7C, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x7D, 0x00, 0xA2, 0x00, 0xA3, 0x00 - .byte 0x00, 0x00, 0x7E, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0x85, 0x00, 0x7F, 0x00, 0xA6, 0x00, 0xA7, 0x00 - .byte 0x86, 0x00, 0x80, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0x87, 0x00, 0x81, 0x00, 0xAA, 0x00, 0xAB, 0x00 - .byte 0x88, 0x00, 0x82, 0x00, 0xAC, 0x00, 0xAD, 0x00, 0x89, 0x00, 0x83, 0x00, 0xAE, 0x00, 0xAF, 0x00 - .byte 0x8A, 0x00, 0x84, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0x8B, 0x00, 0x85, 0x00, 0xB2, 0x00, 0xB3, 0x00 - .byte 0x8C, 0x00, 0x86, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0x8D, 0x00, 0x87, 0x00, 0xB6, 0x00, 0xB7, 0x00 - .byte 0x8E, 0x00, 0x88, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0x8F, 0x00, 0x89, 0x00, 0xBA, 0x00, 0xBB, 0x00 - .byte 0x90, 0x00, 0x8A, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0x91, 0x00, 0x8B, 0x00, 0xBE, 0x00, 0xBF, 0x00 - .byte 0x92, 0x00, 0x8C, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0x93, 0x00, 0x8D, 0x00, 0xC2, 0x00, 0xC3, 0x00 - .byte 0x94, 0x00, 0x8E, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0x95, 0x00, 0x8F, 0x00, 0xC6, 0x00, 0xC7, 0x00 - .byte 0x96, 0x00, 0x90, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0x97, 0x00, 0x91, 0x00, 0xCA, 0x00, 0xCB, 0x00 - .byte 0x98, 0x00, 0x92, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0x99, 0x00, 0x93, 0x00, 0xCE, 0x00, 0xCF, 0x00 - .byte 0x9A, 0x00, 0x94, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0x9B, 0x00, 0x95, 0x00, 0xD2, 0x00, 0xD3, 0x00 - .byte 0x9C, 0x00, 0x96, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0x9D, 0x00, 0x97, 0x00, 0xD6, 0x00, 0xD7, 0x00 - .byte 0x9E, 0x00, 0x98, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0x9F, 0x00, 0x99, 0x00, 0xDA, 0x00, 0xDB, 0x00 - .byte 0xA0, 0x00, 0x9A, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xA1, 0x00, 0x9B, 0x00, 0xDE, 0x00, 0xDF, 0x00 - .byte 0xA2, 0x00, 0x9C, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xA3, 0x00, 0x9D, 0x00, 0xE2, 0x00, 0xE3, 0x00 - .byte 0xA4, 0x00, 0x9E, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xA5, 0x00, 0x9F, 0x00, 0xE6, 0x00, 0xE7, 0x00 - .byte 0xA6, 0x00, 0xA0, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xA7, 0x00, 0xA1, 0x00, 0x2A, 0x02, 0x2B, 0x02 - .byte 0x00, 0x00, 0xA2, 0x00, 0x2C, 0x02, 0x2D, 0x02, 0x00, 0x00, 0xA3, 0x00, 0x2E, 0x02, 0x2F, 0x02 - .byte 0x00, 0x00, 0xA4, 0x00, 0x30, 0x02, 0x31, 0x02, 0x00, 0x00, 0xA5, 0x00, 0x32, 0x02, 0x33, 0x02 - .byte 0x00, 0x00, 0xA6, 0x00, 0x34, 0x02, 0x35, 0x02, 0x00, 0x00, 0xA7, 0x00, 0x36, 0x02, 0x37, 0x02 - .byte 0x00, 0x00, 0xA8, 0x00, 0x38, 0x02, 0x39, 0x02, 0x00, 0x00, 0xA9, 0x00, 0x3A, 0x02, 0x3B, 0x02 - .byte 0x00, 0x00, 0xAA, 0x00, 0x3C, 0x02, 0x3D, 0x02, 0x00, 0x00, 0xAB, 0x00, 0x3E, 0x02, 0x3F, 0x02 - .byte 0x00, 0x00, 0xAC, 0x00, 0x40, 0x02, 0x41, 0x02, 0x00, 0x00, 0xAD, 0x00, 0x42, 0x02, 0x43, 0x02 - .byte 0x00, 0x00, 0xAE, 0x00, 0x44, 0x02, 0x45, 0x02, 0x00, 0x00, 0xAF, 0x00, 0x46, 0x02, 0x47, 0x02 - .byte 0x00, 0x00, 0xB0, 0x00, 0x48, 0x02, 0x49, 0x02, 0x00, 0x00, 0xB1, 0x00, 0x4A, 0x02, 0x4B, 0x02 - .byte 0x00, 0x00, 0xB2, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xA8, 0x00, 0xB3, 0x00, 0xEC, 0x00, 0xED, 0x00 - .byte 0xA9, 0x00, 0xB4, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xAA, 0x00, 0xB5, 0x00, 0xF0, 0x00, 0xF1, 0x00 - .byte 0xAB, 0x00, 0xB6, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xAC, 0x00, 0xB7, 0x00, 0xF4, 0x00, 0xF5, 0x00 - .byte 0xAD, 0x00, 0xB8, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xAE, 0x00, 0xB9, 0x00, 0xF8, 0x00, 0xF9, 0x00 - .byte 0xAF, 0x00, 0xBA, 0x00, 0x4C, 0x02, 0x4D, 0x02, 0x00, 0x00, 0xBB, 0x00, 0x4E, 0x02, 0x4F, 0x02 - .byte 0x00, 0x00, 0xBC, 0x00, 0x50, 0x02, 0x51, 0x02, 0x00, 0x00, 0xBD, 0x00, 0x52, 0x02, 0x53, 0x02 - .byte 0x00, 0x00, 0xBE, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xB3, 0x00, 0xBF, 0x00, 0xFC, 0x00, 0xFD, 0x00 - .byte 0xB4, 0x00, 0xC0, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0xB5, 0x00, 0xC1, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0xB6, 0x00, 0xC2, 0x00, 0x02, 0x01, 0x03, 0x01, 0xB7, 0x00, 0xC3, 0x00, 0x04, 0x01, 0x05, 0x01 - .byte 0xB8, 0x00, 0xC4, 0x00, 0xFC, 0x00, 0x06, 0x01, 0xB9, 0x00, 0xC5, 0x00, 0x07, 0x01, 0x08, 0x01 - .byte 0xBA, 0x00, 0xC6, 0x00, 0x09, 0x01, 0x0A, 0x01, 0xBB, 0x00, 0xC7, 0x00, 0x0B, 0x01, 0x0C, 0x01 - .byte 0xBC, 0x00, 0xC8, 0x00, 0x0D, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0xC9, 0x00, 0x0F, 0x01, 0x10, 0x01 - .byte 0xBE, 0x00, 0xCA, 0x00, 0x11, 0x01, 0x12, 0x01, 0xBF, 0x00, 0xCB, 0x00, 0x13, 0x01, 0x14, 0x01 - .byte 0xC0, 0x00, 0xCC, 0x00, 0x15, 0x01, 0x16, 0x01, 0xC1, 0x00, 0xCD, 0x00, 0x17, 0x01, 0x18, 0x01 - .byte 0xC2, 0x00, 0xCE, 0x00, 0x19, 0x01, 0x1A, 0x01, 0xC3, 0x00, 0xCF, 0x00, 0x1B, 0x01, 0x1C, 0x01 - .byte 0xC4, 0x00, 0xD0, 0x00, 0x1D, 0x01, 0x1E, 0x01, 0xC5, 0x00, 0xD1, 0x00, 0x1F, 0x01, 0x20, 0x01 - .byte 0xC6, 0x00, 0xD2, 0x00, 0x21, 0x01, 0x22, 0x01, 0xC7, 0x00, 0xD3, 0x00, 0x23, 0x01, 0x24, 0x01 - .byte 0xC8, 0x00, 0xD4, 0x00, 0x25, 0x01, 0x26, 0x01, 0xC9, 0x00, 0xD5, 0x00, 0x27, 0x01, 0x28, 0x01 - .byte 0xCA, 0x00, 0xD6, 0x00, 0x29, 0x01, 0x2A, 0x01, 0xCB, 0x00, 0xD7, 0x00, 0x2B, 0x01, 0x2C, 0x01 - .byte 0xCC, 0x00, 0xD8, 0x00, 0x2D, 0x01, 0x2E, 0x01, 0xCD, 0x00, 0xD9, 0x00, 0x2F, 0x01, 0x30, 0x01 - .byte 0xCE, 0x00, 0xDA, 0x00, 0x31, 0x01, 0x30, 0x01, 0xCF, 0x00, 0xDB, 0x00, 0x32, 0x01, 0x33, 0x01 - .byte 0xD0, 0x00, 0xDC, 0x00, 0x34, 0x01, 0x35, 0x01, 0xD1, 0x00, 0xDD, 0x00, 0x36, 0x01, 0x37, 0x01 - .byte 0xD2, 0x00, 0xDE, 0x00, 0x38, 0x01, 0x39, 0x01, 0xD3, 0x00, 0xDF, 0x00, 0x3A, 0x01, 0x3B, 0x01 - .byte 0xD4, 0x00, 0xE0, 0x00, 0x3C, 0x01, 0x3D, 0x01, 0xD5, 0x00, 0xE1, 0x00, 0x3E, 0x01, 0x3F, 0x01 - .byte 0xD6, 0x00, 0xE2, 0x00, 0x40, 0x01, 0x41, 0x01, 0xD7, 0x00, 0xE3, 0x00, 0x42, 0x01, 0x43, 0x01 - .byte 0xD8, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x45, 0x01, 0xD9, 0x00, 0xE5, 0x00, 0x46, 0x01, 0x47, 0x01 - .byte 0xDA, 0x00, 0xE6, 0x00, 0x48, 0x01, 0x4D, 0x00, 0xDB, 0x00, 0xE7, 0x00, 0x49, 0x01, 0x4A, 0x01 - .byte 0xDC, 0x00, 0xE8, 0x00, 0x4B, 0x01, 0x4C, 0x01, 0xDD, 0x00, 0xE9, 0x00, 0x4D, 0x01, 0x4E, 0x01 - .byte 0xDE, 0x00, 0xEA, 0x00, 0x4F, 0x01, 0x50, 0x01, 0xDF, 0x00, 0xEB, 0x00, 0x51, 0x01, 0x52, 0x01 - .byte 0xE0, 0x00, 0xEC, 0x00, 0x53, 0x01, 0x54, 0x01, 0xE1, 0x00, 0xED, 0x00, 0x55, 0x01, 0x56, 0x01 - .byte 0xFE, 0x00, 0xEE, 0x00, 0x55, 0x01, 0x57, 0x01, 0xFF, 0x00, 0xEF, 0x00, 0x55, 0x01, 0x58, 0x01 - .byte 0x00, 0x01, 0xF0, 0x00, 0x55, 0x01, 0x59, 0x01, 0x01, 0x01, 0xF1, 0x00, 0x55, 0x01, 0x5A, 0x01 - .byte 0x02, 0x01, 0xF2, 0x00, 0xEA, 0x01, 0xEB, 0x01, 0x00, 0x00, 0xF3, 0x00, 0xEC, 0x01, 0xED, 0x01 - .byte 0x00, 0x00, 0xF4, 0x00, 0xEE, 0x01, 0xEF, 0x01, 0x00, 0x00, 0xF5, 0x00, 0xF0, 0x01, 0xF1, 0x01 - .byte 0x00, 0x00, 0xF6, 0x00, 0x63, 0x02, 0x64, 0x02, 0x00, 0x00, 0xF7, 0x00, 0xF2, 0x01, 0xF3, 0x01 - .byte 0x00, 0x00, 0xF8, 0x00, 0xF4, 0x01, 0xF5, 0x01, 0x00, 0x00, 0xF9, 0x00, 0xF6, 0x01, 0xF7, 0x01 - .byte 0x00, 0x00, 0xFA, 0x00, 0xF8, 0x01, 0xF9, 0x01, 0x00, 0x00, 0xFB, 0x00, 0x4F, 0x01, 0x92, 0x02 - .byte 0x00, 0x00, 0xFC, 0x00, 0x93, 0x02, 0x94, 0x02, 0x00, 0x00, 0xFD, 0x00, 0xFA, 0x01, 0xFB, 0x01 - .byte 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x01, 0xFD, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x65, 0x02, 0x66, 0x02 - .byte 0x00, 0x00, 0x00, 0x01, 0x8A, 0x02, 0x8B, 0x02, 0x00, 0x00, 0x01, 0x01, 0x8E, 0x02, 0x8F, 0x02 - .byte 0x00, 0x00, 0x02, 0x01, 0xFE, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x03, 0x01, 0x7C, 0x02, 0x7D, 0x02 - .byte 0x00, 0x00, 0x04, 0x01, 0x7E, 0x02, 0x7F, 0x02, 0x00, 0x00, 0x05, 0x01, 0x80, 0x02, 0x81, 0x02 - .byte 0x00, 0x00, 0x06, 0x01, 0x82, 0x02, 0x83, 0x02, 0x00, 0x00, 0x07, 0x01, 0x8C, 0x02, 0x8D, 0x02 - .byte 0x00, 0x00, 0x08, 0x01, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x09, 0x01, 0x02, 0x02, 0x03, 0x02 - .byte 0x00, 0x00, 0x0A, 0x01, 0xAB, 0x02, 0xAC, 0x02, 0x00, 0x00, 0x0B, 0x01, 0xB3, 0x02, 0xB4, 0x02 - .byte 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x02, 0xB6, 0x02, 0x00, 0x00, 0x0D, 0x01, 0xAD, 0x02, 0xAE, 0x02 - .byte 0x00, 0x00, 0x0E, 0x01, 0xAF, 0x02, 0xB0, 0x02, 0x00, 0x00, 0x0F, 0x01, 0xB1, 0x02, 0xB2, 0x02 - .byte 0x00, 0x00, 0x10, 0x01, 0x04, 0x02, 0x05, 0x02, 0x00, 0x00, 0x11, 0x01, 0x06, 0x02, 0x07, 0x02 - .byte 0x00, 0x00, 0x12, 0x01, 0x08, 0x02, 0x09, 0x02, 0x00, 0x00, 0x13, 0x01, 0x6B, 0x02, 0x6C, 0x02 - .byte 0x00, 0x00, 0x14, 0x01, 0x6B, 0x02, 0x6D, 0x02, 0x00, 0x00, 0x15, 0x01, 0x6B, 0x02, 0x6E, 0x02 - .byte 0x00, 0x00, 0x16, 0x01, 0x6B, 0x02, 0x6F, 0x02, 0x00, 0x00, 0x17, 0x01, 0x6B, 0x02, 0x70, 0x02 - .byte 0x00, 0x00, 0x18, 0x01, 0x6B, 0x02, 0x71, 0x02, 0x00, 0x00, 0x19, 0x01, 0x6B, 0x02, 0x72, 0x02 - .byte 0x00, 0x00, 0x1A, 0x01, 0x6B, 0x02, 0x73, 0x02, 0x00, 0x00, 0x1B, 0x01, 0x6B, 0x02, 0x74, 0x02 - .byte 0x00, 0x00, 0x1C, 0x01, 0x6B, 0x02, 0x75, 0x02, 0x00, 0x00, 0x1D, 0x01, 0x6B, 0x02, 0x76, 0x02 - .byte 0x00, 0x00, 0x1E, 0x01, 0x6B, 0x02, 0x77, 0x02, 0x00, 0x00, 0x1F, 0x01, 0x6B, 0x02, 0x78, 0x02 - .byte 0x00, 0x00, 0x20, 0x01, 0x6B, 0x02, 0x79, 0x02, 0x00, 0x00, 0x21, 0x01, 0x6B, 0x02, 0x7A, 0x02 - .byte 0x00, 0x00, 0x22, 0x01, 0x6B, 0x02, 0x7B, 0x02, 0x00, 0x00, 0x23, 0x01, 0x0A, 0x02, 0x0B, 0x02 - .byte 0x00, 0x00, 0x24, 0x01, 0x0C, 0x02, 0x0D, 0x02, 0x00, 0x00, 0x25, 0x01, 0x0E, 0x02, 0x0F, 0x02 - .byte 0x00, 0x00, 0x26, 0x01, 0x10, 0x02, 0x11, 0x02, 0x00, 0x00, 0x27, 0x01, 0x12, 0x02, 0x13, 0x02 - .byte 0x00, 0x00, 0x28, 0x01, 0x14, 0x02, 0x15, 0x02, 0x00, 0x00, 0x29, 0x01, 0x16, 0x02, 0x17, 0x02 - .byte 0x00, 0x00, 0x2A, 0x01, 0xB7, 0x02, 0xB8, 0x02, 0x00, 0x00, 0x2B, 0x01, 0x18, 0x02, 0x19, 0x02 - .byte 0x00, 0x00, 0x2C, 0x01, 0x1A, 0x02, 0x1B, 0x02, 0x00, 0x00, 0x2D, 0x01, 0x1C, 0x02, 0x1D, 0x02 - .byte 0x00, 0x00, 0x2E, 0x01, 0x1E, 0x02, 0x1F, 0x02, 0x00, 0x00, 0x2F, 0x01, 0x20, 0x02, 0x21, 0x02 - .byte 0x00, 0x00, 0x30, 0x01, 0x22, 0x02, 0x23, 0x02, 0x00, 0x00, 0x31, 0x01, 0x8D, 0x01, 0x8E, 0x01 - .byte 0x21, 0x01, 0x32, 0x01, 0x8D, 0x01, 0x8F, 0x01, 0x22, 0x01, 0x33, 0x01, 0x8D, 0x01, 0x90, 0x01 - .byte 0x23, 0x01, 0x34, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x24, 0x01, 0x35, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x25, 0x01, 0x36, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x26, 0x01, 0x37, 0x01, 0x8D, 0x01, 0x94, 0x01 - .byte 0x27, 0x01, 0x38, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x28, 0x01, 0x39, 0x01, 0x8D, 0x01, 0x95, 0x01 - .byte 0x29, 0x01, 0x3A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x2A, 0x01, 0x3B, 0x01, 0x8D, 0x01, 0x96, 0x01 - .byte 0x2B, 0x01, 0x3C, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x2C, 0x01, 0x3D, 0x01, 0x8D, 0x01, 0x94, 0x01 - .byte 0x2D, 0x01, 0x3E, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x2F, 0x01, 0x40, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x30, 0x01, 0x41, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x31, 0x01, 0x42, 0x01, 0x8D, 0x01, 0x90, 0x01, 0x32, 0x01, 0x43, 0x01, 0x8D, 0x01, 0x95, 0x01 - .byte 0x33, 0x01, 0x44, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x34, 0x01, 0x45, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x35, 0x01, 0x46, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x36, 0x01, 0x47, 0x01, 0x8D, 0x01, 0x98, 0x01 - .byte 0x37, 0x01, 0x48, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x38, 0x01, 0x49, 0x01, 0x8D, 0x01, 0x99, 0x01 - .byte 0x39, 0x01, 0x4A, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3A, 0x01, 0x4B, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x3B, 0x01, 0x4C, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3C, 0x01, 0x4D, 0x01, 0x8D, 0x01, 0x91, 0x01 - .byte 0x3D, 0x01, 0x4E, 0x01, 0x8D, 0x01, 0x9B, 0x01, 0x3E, 0x01, 0x4F, 0x01, 0x8D, 0x01, 0x8E, 0x01 - .byte 0x3F, 0x01, 0x50, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x40, 0x01, 0x51, 0x01, 0x8D, 0x01, 0x91, 0x01 - .byte 0x41, 0x01, 0x52, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x42, 0x01, 0x53, 0x01, 0x8D, 0x01, 0x96, 0x01 - .byte 0x43, 0x01, 0x54, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x44, 0x01, 0x55, 0x01, 0x8D, 0x01, 0x9C, 0x01 - .byte 0x45, 0x01, 0x56, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x46, 0x01, 0x57, 0x01, 0x8D, 0x01, 0x9C, 0x01 - .byte 0x47, 0x01, 0x58, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x48, 0x01, 0x59, 0x01, 0x8D, 0x01, 0x97, 0x01 - .byte 0x49, 0x01, 0x5A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x4A, 0x01, 0x5B, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x4B, 0x01, 0x5C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x4C, 0x01, 0x5D, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x4D, 0x01, 0x5E, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x4E, 0x01, 0x5F, 0x01, 0x8D, 0x01, 0x98, 0x01 - .byte 0x4F, 0x01, 0x60, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x50, 0x01, 0x61, 0x01, 0x8D, 0x01, 0x97, 0x01 - .byte 0x51, 0x01, 0x62, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x52, 0x01, 0x63, 0x01, 0x8D, 0x01, 0x9D, 0x01 - .byte 0x00, 0x00, 0x64, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x8D, 0x01, 0x95, 0x01 - .byte 0x00, 0x00, 0x66, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x67, 0x01, 0x8D, 0x01, 0x90, 0x01 - .byte 0x00, 0x00, 0x68, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x69, 0x01, 0x8D, 0x01, 0x99, 0x01 - .byte 0x00, 0x00, 0x6A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x6B, 0x01, 0x8D, 0x01, 0x8F, 0x01 - .byte 0x00, 0x00, 0x6C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x6D, 0x01, 0x8D, 0x01, 0x96, 0x01 - .byte 0x00, 0x00, 0x6E, 0x01, 0x8D, 0x01, 0x62, 0x02, 0x00, 0x00, 0x6F, 0x01, 0x8D, 0x01, 0x97, 0x01 - .byte 0x00, 0x00, 0x70, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x71, 0x01, 0x8D, 0x01, 0x9B, 0x01 - .byte 0x00, 0x00, 0x72, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x73, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x00, 0x00, 0x74, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x75, 0x01, 0x8D, 0x01, 0x9C, 0x01 - .byte 0x00, 0x00, 0x76, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x77, 0x01, 0x8D, 0x01, 0x9C, 0x01 - .byte 0x00, 0x00, 0x78, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x00, 0x00, 0x79, 0x01, 0x8D, 0x01, 0x99, 0x01 - .byte 0x00, 0x00, 0x7A, 0x01, 0x8D, 0x01, 0x98, 0x01, 0x00, 0x00, 0x7B, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x00, 0x00, 0x7C, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x7D, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x00, 0x00, 0x7E, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x7F, 0x01, 0x8D, 0x01, 0x97, 0x01 - .byte 0x00, 0x00, 0x80, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x81, 0x01, 0x8D, 0x01, 0x62, 0x02 - .byte 0x00, 0x00, 0x82, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x83, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x00, 0x00, 0x84, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x00, 0x00, 0x85, 0x01, 0x8D, 0x01, 0x91, 0x01 - .byte 0x00, 0x00, 0x86, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x00, 0x00, 0x87, 0x01, 0x8D, 0x01, 0x92, 0x01 - .byte 0x00, 0x00, 0x88, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x00, 0x00, 0x89, 0x01, 0x8D, 0x01, 0x62, 0x02 - .byte 0x00, 0x00, 0x8A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x8D, 0x01, 0x98, 0x01 - .byte 0x00, 0x00, 0x8C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x00, 0x00, 0x8D, 0x01, 0x9E, 0x01, 0x92, 0x01 - .byte 0x53, 0x01, 0x8E, 0x01, 0x9E, 0x01, 0x9D, 0x01, 0x54, 0x01, 0x8F, 0x01, 0x9E, 0x01, 0x90, 0x01 - .byte 0x55, 0x01, 0x90, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x56, 0x01, 0x91, 0x01, 0x9E, 0x01, 0x90, 0x01 - .byte 0x57, 0x01, 0x92, 0x01, 0x9E, 0x01, 0x8E, 0x01, 0x58, 0x01, 0x93, 0x01, 0x9E, 0x01, 0x90, 0x01 - .byte 0x59, 0x01, 0x94, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x5A, 0x01, 0x95, 0x01, 0x24, 0x02, 0x25, 0x02 - .byte 0x00, 0x00, 0x96, 0x01, 0x26, 0x02, 0x27, 0x02, 0x00, 0x00, 0x97, 0x01, 0x28, 0x02, 0x29, 0x02 - .byte 0x00, 0x00, 0x98, 0x01, 0xB9, 0x02, 0xBA, 0x02, 0x00, 0x00, 0x99, 0x01, 0xA9, 0x02, 0xAA, 0x02 - .byte 0x00, 0x00, 0x9A, 0x01, 0x5E, 0x02, 0x5F, 0x02, 0x00, 0x00, 0x9B, 0x01, 0x9F, 0x02, 0xA0, 0x02 - .byte 0x00, 0x00, 0x9C, 0x01, 0xA3, 0x02, 0xA4, 0x02, 0x00, 0x00, 0x9D, 0x01, 0xA1, 0x02, 0xA2, 0x02 - .byte 0x00, 0x00, 0x9E, 0x01, 0x95, 0x02, 0x96, 0x02, 0x00, 0x00, 0x9F, 0x01, 0x84, 0x02, 0x85, 0x02 - .byte 0x00, 0x00, 0xA0, 0x01, 0x5C, 0x02, 0x5D, 0x02, 0x00, 0x00, 0xA1, 0x01, 0x90, 0x02, 0x91, 0x02 - .byte 0x00, 0x00, 0xA2, 0x01, 0xA7, 0x02, 0xA8, 0x02, 0x00, 0x00, 0xA3, 0x01, 0xB7, 0x01, 0xB8, 0x01 - .byte 0x69, 0x01, 0xA4, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0x6A, 0x01, 0xA5, 0x01, 0x5D, 0x01, 0x5E, 0x01 - .byte 0x04, 0x01, 0xA6, 0x01, 0x61, 0x01, 0x62, 0x01, 0x06, 0x01, 0xA7, 0x01, 0x63, 0x01, 0x64, 0x01 - .byte 0x07, 0x01, 0xA8, 0x01, 0x65, 0x01, 0x66, 0x01, 0x08, 0x01, 0xA9, 0x01, 0x6B, 0x01, 0x6C, 0x01 - .byte 0x00, 0x00, 0xAA, 0x01, 0x75, 0x01, 0x76, 0x01, 0x00, 0x00, 0xAB, 0x01, 0xB5, 0x01, 0xB6, 0x01 - .byte 0x68, 0x01, 0xAC, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0x00, 0x00, 0xAD, 0x01, 0x77, 0x01, 0x40, 0x00 - .byte 0x00, 0x00, 0xAE, 0x01, 0x5A, 0x02, 0x5B, 0x02, 0x00, 0x00, 0xAF, 0x01, 0x60, 0x02, 0x61, 0x02 - .byte 0x00, 0x00, 0xB0, 0x01, 0xA5, 0x02, 0xA6, 0x02, 0x00, 0x00, 0xB1, 0x01, 0x67, 0x01, 0x68, 0x01 - .byte 0x09, 0x01, 0xB2, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x0A, 0x01, 0xB3, 0x01, 0x54, 0x02, 0x55, 0x02 - .byte 0x00, 0x00, 0xB4, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0x5D, 0x01, 0xB5, 0x01, 0xA1, 0x01, 0xA2, 0x01 - .byte 0x00, 0x00, 0xB6, 0x01, 0xA3, 0x01, 0xA4, 0x01, 0x00, 0x00, 0xB7, 0x01, 0xA5, 0x01, 0xA6, 0x01 - .byte 0x00, 0x00, 0xB8, 0x01, 0x56, 0x02, 0x57, 0x02, 0x1D, 0x01, 0xB9, 0x01, 0x58, 0x02, 0x59, 0x02 - .byte 0x00, 0x00 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0001, 0x0002, 0x0003, 0x0001 + .short 0x0002, 0x0004, 0x0005, 0x0002 + .short 0x0003, 0x0006, 0x0007, 0x0003 + .short 0x0004, 0x0008, 0x0009, 0x0004 + .short 0x0005, 0x000A, 0x000B, 0x0005 + .short 0x0006, 0x000C, 0x000D, 0x0006 + .short 0x0007, 0x000E, 0x000F, 0x0007 + .short 0x0008, 0x0010, 0x0011, 0x0008 + .short 0x0009, 0x0012, 0x0013, 0x0009 + .short 0x000A, 0x0014, 0x0013, 0x000A + .short 0x000B, 0x0015, 0x0016, 0x000B + .short 0x000C, 0x0017, 0x0016, 0x000C + .short 0x000D, 0x0297, 0x0298, 0x0000 + .short 0x000E, 0x0299, 0x029A, 0x0000 + .short 0x000F, 0x029B, 0x029C, 0x0000 + .short 0x0010, 0x029D, 0x029E, 0x0000 + .short 0x0011, 0x0018, 0x0019, 0x000D + .short 0x0012, 0x001A, 0x001B, 0x000E + .short 0x0013, 0x001E, 0x001C, 0x000F + .short 0x0014, 0x001E, 0x001D, 0x0010 + .short 0x0015, 0x001E, 0x001F, 0x0011 + .short 0x0016, 0x001E, 0x0020, 0x0012 + .short 0x0017, 0x0021, 0x0022, 0x0013 + .short 0x0018, 0x0021, 0x0023, 0x0014 + .short 0x0019, 0x0018, 0x0024, 0x0015 + .short 0x001A, 0x0018, 0x0025, 0x0016 + .short 0x001B, 0x0026, 0x0027, 0x0017 + .short 0x001C, 0x0028, 0x002A, 0x0018 + .short 0x001D, 0x0029, 0x002A, 0x0019 + .short 0x001E, 0x002B, 0x002C, 0x001A + .short 0x001F, 0x002D, 0x002E, 0x001B + .short 0x0020, 0x002F, 0x0030, 0x001C + .short 0x0021, 0x0031, 0x0032, 0x001D + .short 0x0022, 0x0033, 0x0034, 0x001E + .short 0x0023, 0x0035, 0x0036, 0x001F + .short 0x0024, 0x0033, 0x0037, 0x0020 + .short 0x0025, 0x0038, 0x0039, 0x0021 + .short 0x0026, 0x003A, 0x003B, 0x0022 + .short 0x0027, 0x003A, 0x003C, 0x0023 + .short 0x0028, 0x003A, 0x003D, 0x0024 + .short 0x0029, 0x003A, 0x003E, 0x0025 + .short 0x002A, 0x003F, 0x0040, 0x0026 + .short 0x002B, 0x0047, 0x0048, 0x002C + .short 0x002C, 0x0049, 0x004A, 0x002D + .short 0x002D, 0x0053, 0x0054, 0x003F + .short 0x002E, 0x0055, 0x0056, 0x0040 + .short 0x002F, 0x0055, 0x0057, 0x0041 + .short 0x0030, 0x0055, 0x0058, 0x0042 + .short 0x0031, 0x0055, 0x0059, 0x0043 + .short 0x0032, 0x005A, 0x005B, 0x0044 + .short 0x0033, 0x005C, 0x005D, 0x0045 + .short 0x0034, 0x0055, 0x005E, 0x0046 + .short 0x0035, 0x005F, 0x0060, 0x0047 + .short 0x0036, 0x01D2, 0x01D3, 0x0000 + .short 0x0037, 0x0064, 0x0061, 0x0049 + .short 0x0038, 0x0064, 0x0062, 0x004A + .short 0x0039, 0x0064, 0x0063, 0x004B + .short 0x003A, 0x0064, 0x0065, 0x004C + .short 0x003B, 0x0064, 0x0066, 0x004D + .short 0x003C, 0x0064, 0x0067, 0x004E + .short 0x003D, 0x0064, 0x0068, 0x004F + .short 0x003E, 0x0064, 0x01D5, 0x0000 + .short 0x003F, 0x0069, 0x006A, 0x0050 + .short 0x0040, 0x006B, 0x006C, 0x0051 + .short 0x0041, 0x0041, 0x0042, 0x0027 + .short 0x0042, 0x0041, 0x0043, 0x0028 + .short 0x0043, 0x0041, 0x0044, 0x0029 + .short 0x0044, 0x0041, 0x0045, 0x002A + .short 0x0045, 0x0041, 0x0046, 0x002B + .short 0x0046, 0x0033, 0x004B, 0x002E + .short 0x0047, 0x004C, 0x004D, 0x002F + .short 0x0048, 0x004E, 0x004F, 0x0030 + .short 0x0049, 0x004E, 0x0050, 0x0031 + .short 0x004A, 0x004E, 0x0051, 0x0032 + .short 0x004B, 0x004E, 0x0052, 0x0033 + .short 0x004C, 0x006D, 0x006E, 0x0053 + .short 0x004D, 0x006D, 0x006F, 0x0054 + .short 0x004E, 0x0070, 0x0071, 0x0055 + .short 0x004F, 0x006D, 0x0072, 0x0056 + .short 0x0050, 0x0073, 0x0074, 0x005D + .short 0x0051, 0x0075, 0x0076, 0x005E + .short 0x0052, 0x0077, 0x0078, 0x005F + .short 0x0053, 0x0079, 0x007A, 0x0060 + .short 0x0054, 0x007B, 0x007C, 0x0061 + .short 0x0055, 0x007D, 0x007E, 0x0062 + .short 0x0056, 0x007F, 0x0081, 0x0067 + .short 0x0057, 0x0080, 0x0081, 0x0068 + .short 0x0058, 0x0082, 0x0083, 0x006A + .short 0x0059, 0x0084, 0x0083, 0x006B + .short 0x005A, 0x0085, 0x0086, 0x006C + .short 0x005B, 0x0087, 0x0086, 0x006D + .short 0x005C, 0x0088, 0x0089, 0x006E + .short 0x005D, 0x008A, 0x008B, 0x006F + .short 0x005E, 0x01D6, 0x01D7, 0x0000 + .short 0x005F, 0x01D8, 0x01D9, 0x0000 + .short 0x0060, 0x01DA, 0x01DB, 0x0000 + .short 0x0061, 0x01DC, 0x01DD, 0x0000 + .short 0x0062, 0x01DE, 0x01DF, 0x0000 + .short 0x0063, 0x0188, 0x0189, 0x011E + .short 0x0064, 0x018A, 0x0189, 0x011F + .short 0x0065, 0x01AF, 0x01B0, 0x0165 + .short 0x0066, 0x01B1, 0x01B0, 0x0166 + .short 0x0067, 0x01A9, 0x01AA, 0x0162 + .short 0x0068, 0x0269, 0x026A, 0x0000 + .short 0x0069, 0x0267, 0x0268, 0x0000 + .short 0x006A, 0x0151, 0x0152, 0x0000 + .short 0x006B, 0x01E0, 0x01E1, 0x0000 + .short 0x006C, 0x01E2, 0x01E3, 0x0000 + .short 0x006D, 0x01E4, 0x01E5, 0x0000 + .short 0x006E, 0x01E6, 0x01E7, 0x0000 + .short 0x006F, 0x01E8, 0x01E9, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0000, 0x02BB, 0x02BC, 0x0000 + .short 0x0070, 0x0288, 0x0289, 0x0000 + .short 0x0071, 0x0286, 0x0287, 0x0000 + .short 0x0072, 0x008C, 0x008D, 0x0000 + .short 0x0073, 0x008E, 0x008F, 0x0000 + .short 0x0074, 0x0090, 0x0091, 0x0000 + .short 0x0075, 0x0092, 0x0093, 0x0000 + .short 0x0076, 0x0094, 0x0095, 0x0000 + .short 0x0077, 0x0096, 0x0097, 0x0000 + .short 0x0078, 0x0098, 0x0099, 0x0000 + .short 0x0079, 0x009A, 0x009B, 0x0000 + .short 0x007A, 0x009C, 0x009D, 0x0000 + .short 0x007B, 0x009E, 0x009F, 0x0000 + .short 0x007C, 0x00A0, 0x00A1, 0x0000 + .short 0x007D, 0x00A2, 0x00A3, 0x0000 + .short 0x007E, 0x00A4, 0x00A5, 0x0085 + .short 0x007F, 0x00A6, 0x00A7, 0x0086 + .short 0x0080, 0x00A8, 0x00A9, 0x0087 + .short 0x0081, 0x00AA, 0x00AB, 0x0088 + .short 0x0082, 0x00AC, 0x00AD, 0x0089 + .short 0x0083, 0x00AE, 0x00AF, 0x008A + .short 0x0084, 0x00B0, 0x00B1, 0x008B + .short 0x0085, 0x00B2, 0x00B3, 0x008C + .short 0x0086, 0x00B4, 0x00B5, 0x008D + .short 0x0087, 0x00B6, 0x00B7, 0x008E + .short 0x0088, 0x00B8, 0x00B9, 0x008F + .short 0x0089, 0x00BA, 0x00BB, 0x0090 + .short 0x008A, 0x00BC, 0x00BD, 0x0091 + .short 0x008B, 0x00BE, 0x00BF, 0x0092 + .short 0x008C, 0x00C0, 0x00C1, 0x0093 + .short 0x008D, 0x00C2, 0x00C3, 0x0094 + .short 0x008E, 0x00C4, 0x00C5, 0x0095 + .short 0x008F, 0x00C6, 0x00C7, 0x0096 + .short 0x0090, 0x00C8, 0x00C9, 0x0097 + .short 0x0091, 0x00CA, 0x00CB, 0x0098 + .short 0x0092, 0x00CC, 0x00CD, 0x0099 + .short 0x0093, 0x00CE, 0x00CF, 0x009A + .short 0x0094, 0x00D0, 0x00D1, 0x009B + .short 0x0095, 0x00D2, 0x00D3, 0x009C + .short 0x0096, 0x00D4, 0x00D5, 0x009D + .short 0x0097, 0x00D6, 0x00D7, 0x009E + .short 0x0098, 0x00D8, 0x00D9, 0x009F + .short 0x0099, 0x00DA, 0x00DB, 0x00A0 + .short 0x009A, 0x00DC, 0x00DD, 0x00A1 + .short 0x009B, 0x00DE, 0x00DF, 0x00A2 + .short 0x009C, 0x00E0, 0x00E1, 0x00A3 + .short 0x009D, 0x00E2, 0x00E3, 0x00A4 + .short 0x009E, 0x00E4, 0x00E5, 0x00A5 + .short 0x009F, 0x00E6, 0x00E7, 0x00A6 + .short 0x00A0, 0x00E8, 0x00E9, 0x00A7 + .short 0x00A1, 0x022A, 0x022B, 0x0000 + .short 0x00A2, 0x022C, 0x022D, 0x0000 + .short 0x00A3, 0x022E, 0x022F, 0x0000 + .short 0x00A4, 0x0230, 0x0231, 0x0000 + .short 0x00A5, 0x0232, 0x0233, 0x0000 + .short 0x00A6, 0x0234, 0x0235, 0x0000 + .short 0x00A7, 0x0236, 0x0237, 0x0000 + .short 0x00A8, 0x0238, 0x0239, 0x0000 + .short 0x00A9, 0x023A, 0x023B, 0x0000 + .short 0x00AA, 0x023C, 0x023D, 0x0000 + .short 0x00AB, 0x023E, 0x023F, 0x0000 + .short 0x00AC, 0x0240, 0x0241, 0x0000 + .short 0x00AD, 0x0242, 0x0243, 0x0000 + .short 0x00AE, 0x0244, 0x0245, 0x0000 + .short 0x00AF, 0x0246, 0x0247, 0x0000 + .short 0x00B0, 0x0248, 0x0249, 0x0000 + .short 0x00B1, 0x024A, 0x024B, 0x0000 + .short 0x00B2, 0x00EA, 0x00EB, 0x00A8 + .short 0x00B3, 0x00EC, 0x00ED, 0x00A9 + .short 0x00B4, 0x00EE, 0x00EF, 0x00AA + .short 0x00B5, 0x00F0, 0x00F1, 0x00AB + .short 0x00B6, 0x00F2, 0x00F3, 0x00AC + .short 0x00B7, 0x00F4, 0x00F5, 0x00AD + .short 0x00B8, 0x00F6, 0x00F7, 0x00AE + .short 0x00B9, 0x00F8, 0x00F9, 0x00AF + .short 0x00BA, 0x024C, 0x024D, 0x0000 + .short 0x00BB, 0x024E, 0x024F, 0x0000 + .short 0x00BC, 0x0250, 0x0251, 0x0000 + .short 0x00BD, 0x0252, 0x0253, 0x0000 + .short 0x00BE, 0x00FA, 0x00FB, 0x00B3 + .short 0x00BF, 0x00FC, 0x00FD, 0x00B4 + .short 0x00C0, 0x00FE, 0x00FF, 0x00B5 + .short 0x00C1, 0x0100, 0x0101, 0x00B6 + .short 0x00C2, 0x0102, 0x0103, 0x00B7 + .short 0x00C3, 0x0104, 0x0105, 0x00B8 + .short 0x00C4, 0x00FC, 0x0106, 0x00B9 + .short 0x00C5, 0x0107, 0x0108, 0x00BA + .short 0x00C6, 0x0109, 0x010A, 0x00BB + .short 0x00C7, 0x010B, 0x010C, 0x00BC + .short 0x00C8, 0x010D, 0x010E, 0x00BD + .short 0x00C9, 0x010F, 0x0110, 0x00BE + .short 0x00CA, 0x0111, 0x0112, 0x00BF + .short 0x00CB, 0x0113, 0x0114, 0x00C0 + .short 0x00CC, 0x0115, 0x0116, 0x00C1 + .short 0x00CD, 0x0117, 0x0118, 0x00C2 + .short 0x00CE, 0x0119, 0x011A, 0x00C3 + .short 0x00CF, 0x011B, 0x011C, 0x00C4 + .short 0x00D0, 0x011D, 0x011E, 0x00C5 + .short 0x00D1, 0x011F, 0x0120, 0x00C6 + .short 0x00D2, 0x0121, 0x0122, 0x00C7 + .short 0x00D3, 0x0123, 0x0124, 0x00C8 + .short 0x00D4, 0x0125, 0x0126, 0x00C9 + .short 0x00D5, 0x0127, 0x0128, 0x00CA + .short 0x00D6, 0x0129, 0x012A, 0x00CB + .short 0x00D7, 0x012B, 0x012C, 0x00CC + .short 0x00D8, 0x012D, 0x012E, 0x00CD + .short 0x00D9, 0x012F, 0x0130, 0x00CE + .short 0x00DA, 0x0131, 0x0130, 0x00CF + .short 0x00DB, 0x0132, 0x0133, 0x00D0 + .short 0x00DC, 0x0134, 0x0135, 0x00D1 + .short 0x00DD, 0x0136, 0x0137, 0x00D2 + .short 0x00DE, 0x0138, 0x0139, 0x00D3 + .short 0x00DF, 0x013A, 0x013B, 0x00D4 + .short 0x00E0, 0x013C, 0x013D, 0x00D5 + .short 0x00E1, 0x013E, 0x013F, 0x00D6 + .short 0x00E2, 0x0140, 0x0141, 0x00D7 + .short 0x00E3, 0x0142, 0x0143, 0x00D8 + .short 0x00E4, 0x0144, 0x0145, 0x00D9 + .short 0x00E5, 0x0146, 0x0147, 0x00DA + .short 0x00E6, 0x0148, 0x004D, 0x00DB + .short 0x00E7, 0x0149, 0x014A, 0x00DC + .short 0x00E8, 0x014B, 0x014C, 0x00DD + .short 0x00E9, 0x014D, 0x014E, 0x00DE + .short 0x00EA, 0x014F, 0x0150, 0x00DF + .short 0x00EB, 0x0151, 0x0152, 0x00E0 + .short 0x00EC, 0x0153, 0x0154, 0x00E1 + .short 0x00ED, 0x0155, 0x0156, 0x00FE + .short 0x00EE, 0x0155, 0x0157, 0x00FF + .short 0x00EF, 0x0155, 0x0158, 0x0100 + .short 0x00F0, 0x0155, 0x0159, 0x0101 + .short 0x00F1, 0x0155, 0x015A, 0x0102 + .short 0x00F2, 0x01EA, 0x01EB, 0x0000 + .short 0x00F3, 0x01EC, 0x01ED, 0x0000 + .short 0x00F4, 0x01EE, 0x01EF, 0x0000 + .short 0x00F5, 0x01F0, 0x01F1, 0x0000 + .short 0x00F6, 0x0263, 0x0264, 0x0000 + .short 0x00F7, 0x01F2, 0x01F3, 0x0000 + .short 0x00F8, 0x01F4, 0x01F5, 0x0000 + .short 0x00F9, 0x01F6, 0x01F7, 0x0000 + .short 0x00FA, 0x01F8, 0x01F9, 0x0000 + .short 0x00FB, 0x014F, 0x0292, 0x0000 + .short 0x00FC, 0x0293, 0x0294, 0x0000 + .short 0x00FD, 0x01FA, 0x01FB, 0x0000 + .short 0x00FE, 0x01FC, 0x01FD, 0x0000 + .short 0x00FF, 0x0265, 0x0266, 0x0000 + .short 0x0100, 0x028A, 0x028B, 0x0000 + .short 0x0101, 0x028E, 0x028F, 0x0000 + .short 0x0102, 0x01FE, 0x01FF, 0x0000 + .short 0x0103, 0x027C, 0x027D, 0x0000 + .short 0x0104, 0x027E, 0x027F, 0x0000 + .short 0x0105, 0x0280, 0x0281, 0x0000 + .short 0x0106, 0x0282, 0x0283, 0x0000 + .short 0x0107, 0x028C, 0x028D, 0x0000 + .short 0x0108, 0x0200, 0x0201, 0x0000 + .short 0x0109, 0x0202, 0x0203, 0x0000 + .short 0x010A, 0x02AB, 0x02AC, 0x0000 + .short 0x010B, 0x02B3, 0x02B4, 0x0000 + .short 0x010C, 0x02B5, 0x02B6, 0x0000 + .short 0x010D, 0x02AD, 0x02AE, 0x0000 + .short 0x010E, 0x02AF, 0x02B0, 0x0000 + .short 0x010F, 0x02B1, 0x02B2, 0x0000 + .short 0x0110, 0x0204, 0x0205, 0x0000 + .short 0x0111, 0x0206, 0x0207, 0x0000 + .short 0x0112, 0x0208, 0x0209, 0x0000 + .short 0x0113, 0x026B, 0x026C, 0x0000 + .short 0x0114, 0x026B, 0x026D, 0x0000 + .short 0x0115, 0x026B, 0x026E, 0x0000 + .short 0x0116, 0x026B, 0x026F, 0x0000 + .short 0x0117, 0x026B, 0x0270, 0x0000 + .short 0x0118, 0x026B, 0x0271, 0x0000 + .short 0x0119, 0x026B, 0x0272, 0x0000 + .short 0x011A, 0x026B, 0x0273, 0x0000 + .short 0x011B, 0x026B, 0x0274, 0x0000 + .short 0x011C, 0x026B, 0x0275, 0x0000 + .short 0x011D, 0x026B, 0x0276, 0x0000 + .short 0x011E, 0x026B, 0x0277, 0x0000 + .short 0x011F, 0x026B, 0x0278, 0x0000 + .short 0x0120, 0x026B, 0x0279, 0x0000 + .short 0x0121, 0x026B, 0x027A, 0x0000 + .short 0x0122, 0x026B, 0x027B, 0x0000 + .short 0x0123, 0x020A, 0x020B, 0x0000 + .short 0x0124, 0x020C, 0x020D, 0x0000 + .short 0x0125, 0x020E, 0x020F, 0x0000 + .short 0x0126, 0x0210, 0x0211, 0x0000 + .short 0x0127, 0x0212, 0x0213, 0x0000 + .short 0x0128, 0x0214, 0x0215, 0x0000 + .short 0x0129, 0x0216, 0x0217, 0x0000 + .short 0x012A, 0x02B7, 0x02B8, 0x0000 + .short 0x012B, 0x0218, 0x0219, 0x0000 + .short 0x012C, 0x021A, 0x021B, 0x0000 + .short 0x012D, 0x021C, 0x021D, 0x0000 + .short 0x012E, 0x021E, 0x021F, 0x0000 + .short 0x012F, 0x0220, 0x0221, 0x0000 + .short 0x0130, 0x0222, 0x0223, 0x0000 + .short 0x0131, 0x018D, 0x018E, 0x0121 + .short 0x0132, 0x018D, 0x018F, 0x0122 + .short 0x0133, 0x018D, 0x0190, 0x0123 + .short 0x0134, 0x018D, 0x0191, 0x0124 + .short 0x0135, 0x018D, 0x0192, 0x0125 + .short 0x0136, 0x018D, 0x0193, 0x0126 + .short 0x0137, 0x018D, 0x0194, 0x0127 + .short 0x0138, 0x018D, 0x018E, 0x0128 + .short 0x0139, 0x018D, 0x0195, 0x0129 + .short 0x013A, 0x018D, 0x0192, 0x012A + .short 0x013B, 0x018D, 0x0196, 0x012B + .short 0x013C, 0x018D, 0x0197, 0x012C + .short 0x013D, 0x018D, 0x0194, 0x012D + .short 0x013E, 0x018D, 0x0194, 0x012E + .short 0x013F, 0x018D, 0x0192, 0x012F + .short 0x0140, 0x018D, 0x0191, 0x0130 + .short 0x0141, 0x018D, 0x0192, 0x0131 + .short 0x0142, 0x018D, 0x0190, 0x0132 + .short 0x0143, 0x018D, 0x0195, 0x0133 + .short 0x0144, 0x018D, 0x0192, 0x0134 + .short 0x0145, 0x018D, 0x0192, 0x0135 + .short 0x0146, 0x018D, 0x0195, 0x0136 + .short 0x0147, 0x018D, 0x0198, 0x0137 + .short 0x0148, 0x018D, 0x0199, 0x0138 + .short 0x0149, 0x018D, 0x0199, 0x0139 + .short 0x014A, 0x018D, 0x019A, 0x013A + .short 0x014B, 0x018D, 0x0192, 0x013B + .short 0x014C, 0x018D, 0x019A, 0x013C + .short 0x014D, 0x018D, 0x0191, 0x013D + .short 0x014E, 0x018D, 0x019B, 0x013E + .short 0x014F, 0x018D, 0x018E, 0x013F + .short 0x0150, 0x018D, 0x0192, 0x0140 + .short 0x0151, 0x018D, 0x0191, 0x0141 + .short 0x0152, 0x018D, 0x0199, 0x0142 + .short 0x0153, 0x018D, 0x0196, 0x0143 + .short 0x0154, 0x018D, 0x0193, 0x0144 + .short 0x0155, 0x018D, 0x019C, 0x0145 + .short 0x0156, 0x018D, 0x0196, 0x0146 + .short 0x0157, 0x018D, 0x019C, 0x0147 + .short 0x0158, 0x018D, 0x019D, 0x0148 + .short 0x0159, 0x018D, 0x0197, 0x0149 + .short 0x015A, 0x018D, 0x0192, 0x014A + .short 0x015B, 0x018D, 0x0192, 0x014B + .short 0x015C, 0x018D, 0x0191, 0x014C + .short 0x015D, 0x018D, 0x0192, 0x014D + .short 0x015E, 0x018D, 0x0197, 0x014E + .short 0x015F, 0x018D, 0x0198, 0x014F + .short 0x0160, 0x018D, 0x0191, 0x0150 + .short 0x0161, 0x018D, 0x0197, 0x0151 + .short 0x0162, 0x018D, 0x0196, 0x0152 + .short 0x0163, 0x018D, 0x019D, 0x0000 + .short 0x0164, 0x018D, 0x018E, 0x0000 + .short 0x0165, 0x018D, 0x0195, 0x0000 + .short 0x0166, 0x018D, 0x0192, 0x0000 + .short 0x0167, 0x018D, 0x0190, 0x0000 + .short 0x0168, 0x018D, 0x0197, 0x0000 + .short 0x0169, 0x018D, 0x0199, 0x0000 + .short 0x016A, 0x018D, 0x0192, 0x0000 + .short 0x016B, 0x018D, 0x018F, 0x0000 + .short 0x016C, 0x018D, 0x018E, 0x0000 + .short 0x016D, 0x018D, 0x0196, 0x0000 + .short 0x016E, 0x018D, 0x0262, 0x0000 + .short 0x016F, 0x018D, 0x0197, 0x0000 + .short 0x0170, 0x018D, 0x0192, 0x0000 + .short 0x0171, 0x018D, 0x019B, 0x0000 + .short 0x0172, 0x018D, 0x0197, 0x0000 + .short 0x0173, 0x018D, 0x0192, 0x0000 + .short 0x0174, 0x018D, 0x0192, 0x0000 + .short 0x0175, 0x018D, 0x019C, 0x0000 + .short 0x0176, 0x018D, 0x0192, 0x0000 + .short 0x0177, 0x018D, 0x019C, 0x0000 + .short 0x0178, 0x018D, 0x0194, 0x0000 + .short 0x0179, 0x018D, 0x0199, 0x0000 + .short 0x017A, 0x018D, 0x0198, 0x0000 + .short 0x017B, 0x018D, 0x0192, 0x0000 + .short 0x017C, 0x018D, 0x019C, 0x0000 + .short 0x017D, 0x018D, 0x0192, 0x0000 + .short 0x017E, 0x018D, 0x0192, 0x0000 + .short 0x017F, 0x018D, 0x0197, 0x0000 + .short 0x0180, 0x018D, 0x019C, 0x0000 + .short 0x0181, 0x018D, 0x0262, 0x0000 + .short 0x0182, 0x018D, 0x0192, 0x0000 + .short 0x0183, 0x018D, 0x0192, 0x0000 + .short 0x0184, 0x018D, 0x0193, 0x0000 + .short 0x0185, 0x018D, 0x0191, 0x0000 + .short 0x0186, 0x018D, 0x0195, 0x0000 + .short 0x0187, 0x018D, 0x0192, 0x0000 + .short 0x0188, 0x018D, 0x019D, 0x0000 + .short 0x0189, 0x018D, 0x0262, 0x0000 + .short 0x018A, 0x018D, 0x0192, 0x0000 + .short 0x018B, 0x018D, 0x0198, 0x0000 + .short 0x018C, 0x018D, 0x0191, 0x0000 + .short 0x018D, 0x019E, 0x0192, 0x0153 + .short 0x018E, 0x019E, 0x019D, 0x0154 + .short 0x018F, 0x019E, 0x0190, 0x0155 + .short 0x0190, 0x019E, 0x0192, 0x0156 + .short 0x0191, 0x019E, 0x0190, 0x0157 + .short 0x0192, 0x019E, 0x018E, 0x0158 + .short 0x0193, 0x019E, 0x0190, 0x0159 + .short 0x0194, 0x019E, 0x0192, 0x015A + .short 0x0195, 0x0224, 0x0225, 0x0000 + .short 0x0196, 0x0226, 0x0227, 0x0000 + .short 0x0197, 0x0228, 0x0229, 0x0000 + .short 0x0198, 0x02B9, 0x02BA, 0x0000 + .short 0x0199, 0x02A9, 0x02AA, 0x0000 + .short 0x019A, 0x025E, 0x025F, 0x0000 + .short 0x019B, 0x029F, 0x02A0, 0x0000 + .short 0x019C, 0x02A3, 0x02A4, 0x0000 + .short 0x019D, 0x02A1, 0x02A2, 0x0000 + .short 0x019E, 0x0295, 0x0296, 0x0000 + .short 0x019F, 0x0284, 0x0285, 0x0000 + .short 0x01A0, 0x025C, 0x025D, 0x0000 + .short 0x01A1, 0x0290, 0x0291, 0x0000 + .short 0x01A2, 0x02A7, 0x02A8, 0x0000 + .short 0x01A3, 0x01B7, 0x01B8, 0x0169 + .short 0x01A4, 0x01B9, 0x01BA, 0x016A + .short 0x01A5, 0x015D, 0x015E, 0x0104 + .short 0x01A6, 0x0161, 0x0162, 0x0106 + .short 0x01A7, 0x0163, 0x0164, 0x0107 + .short 0x01A8, 0x0165, 0x0166, 0x0108 + .short 0x01A9, 0x016B, 0x016C, 0x0000 + .short 0x01AA, 0x0175, 0x0176, 0x0000 + .short 0x01AB, 0x01B5, 0x01B6, 0x0168 + .short 0x01AC, 0x01AD, 0x01AE, 0x0000 + .short 0x01AD, 0x0177, 0x0040, 0x0000 + .short 0x01AE, 0x025A, 0x025B, 0x0000 + .short 0x01AF, 0x0260, 0x0261, 0x0000 + .short 0x01B0, 0x02A5, 0x02A6, 0x0000 + .short 0x01B1, 0x0167, 0x0168, 0x0109 + .short 0x01B2, 0x0169, 0x016A, 0x010A + .short 0x01B3, 0x0254, 0x0255, 0x0000 + .short 0x01B4, 0x019F, 0x01A0, 0x015D + .short 0x01B5, 0x01A1, 0x01A2, 0x0000 + .short 0x01B6, 0x01A3, 0x01A4, 0x0000 + .short 0x01B7, 0x01A5, 0x01A6, 0x0000 + .short 0x01B8, 0x0256, 0x0257, 0x011D + .short 0x01B9, 0x0258, 0x0259, 0x0000 .text @@ -401,7 +621,7 @@ _0206E672: bx lr _0206E67C: lsl r1, r0, #0x3 - ldr r0, _0206E6C8 ; =UNK_020F85B6 + ldr r0, _0206E6C8 ; =UNK_020F85B4 + 2 ldrh r0, [r0, r1] bx lr _0206E684: @@ -418,7 +638,7 @@ _0206E68E: bx lr _0206E698: lsl r1, r0, #0x3 - ldr r0, _0206E6D0 ; =UNK_020F85B8 + ldr r0, _0206E6D0 ; =UNK_020F85B4 + 4 ldrh r0, [r0, r1] bx lr _0206E6A0: @@ -428,7 +648,7 @@ _0206E6A0: cmp r0, r1 beq _0206E6B2 lsl r1, r0, #0x3 - ldr r0, _0206E6D4 ; =UNK_020F85BA + ldr r0, _0206E6D4 ; =UNK_020F85B4 + 6 ldrh r0, [r0, r1] bx lr _0206E6B2: @@ -439,10 +659,10 @@ _0206E6B8: .word 0x0000FFFF _0206E6BC: .word UNK_020F85B4 _0206E6C0: .word 0x000002BB _0206E6C4: .word 0x000002BD -_0206E6C8: .word UNK_020F85B6 +_0206E6C8: .word UNK_020F85B4 + 2 _0206E6CC: .word 0x000002BE -_0206E6D0: .word UNK_020F85B8 -_0206E6D4: .word UNK_020F85BA +_0206E6D0: .word UNK_020F85B4 + 4 +_0206E6D4: .word UNK_020F85B4 + 6 thumb_func_start FUN_0206E6D8 FUN_0206E6D8: ; 0x0206E6D8 @@ -507,14 +727,14 @@ _0206E72C: bl AllocAndReadWholeNarcMemberByIdPair pop {r3, pc} _0206E73A: - ldr r1, _0206E760 ; =UNK_020F85B6 + ldr r1, _0206E760 ; =UNK_020F85B4 + 2 lsl r3, r3, #0x3 ldrh r1, [r1, r3] mov r0, #0x10 bl AllocAndReadWholeNarcMemberByIdPair pop {r3, pc} _0206E748: - ldr r1, _0206E764 ; =UNK_020F85B8 + ldr r1, _0206E764 ; =UNK_020F85B4 + 4 lsl r3, r3, #0x3 ldrh r1, [r1, r3] mov r0, #0x10 @@ -525,8 +745,8 @@ _0206E756: pop {r3, pc} nop _0206E75C: .word UNK_020F85B4 -_0206E760: .word UNK_020F85B6 -_0206E764: .word UNK_020F85B8 +_0206E760: .word UNK_020F85B4 + 2 +_0206E764: .word UNK_020F85B4 + 4 thumb_func_start FUN_0206E768 FUN_0206E768: ; 0x0206E768 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 2a03ef5f..4534dc1b 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1666,7 +1666,7 @@ FUN_0207008C: ; 0x0207008C ldr r0, _020701DC ; =0x000005A4 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9AC + bl GetPartyCount ldr r1, [sp, #0x0] cmp r0, r1 bgt _020700BC @@ -1677,11 +1677,11 @@ _020700BC: ldr r0, _020701DC ; =0x000005A4 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] @@ -1705,42 +1705,42 @@ _020700DE: add r0, r7, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701E4 ; =0x00000706 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701E8 ; =0x00000708 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701EC ; =0x0000070A add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701F0 ; =0x0000070C add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa1 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701F4 ; =0x00000712 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x71 add r2, r5, r6 lsl r1, r1, #0x4 @@ -1748,14 +1748,14 @@ _020700DE: add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020701F8 ; =0x00000711 add r2, r5, r6 strb r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xaf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 ldr r0, _020701FC ; =0x0000070E bne _02070184 @@ -1775,7 +1775,7 @@ _0207018E: ldr r0, _020701FC ; =0x0000070E add r6, r5, r0 add r0, r7, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender lsl r0, r0, #0x1e ldrh r2, [r6, r4] ldr r1, _02070204 ; =0xFFFF9FFF @@ -1864,7 +1864,7 @@ _02070256: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207026C add r4, r4, #0x1 @@ -1925,106 +1925,106 @@ _020702BE: ; jump table (using 16-bit offset) _020702C8: mov r1, #0x7a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7d mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 b _020703B6 _020702F8: mov r1, #0x7e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x80 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x81 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 b _020703B6 _02070328: mov r1, #0x82 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x83 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x84 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x85 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 b _020703B6 _02070358: mov r1, #0x86 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x87 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x88 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x89 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 b _020703B6 _02070388: mov r1, #0x8a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8d mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r4, r0 _020703B6: add r0, r4, #0x0 @@ -2809,7 +2809,7 @@ FUN_020709FC: ; 0x020709FC add r6, r1, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, _02070A7C ; =0x00000B23 ldrb r2, [r5, r1] lsl r3, r2, #0x19 @@ -2839,7 +2839,7 @@ _02070A38: _02070A3A: mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02070A4E add r0, r4, #0x2 @@ -3755,7 +3755,7 @@ FUN_0207117C: ; 0x0207117C ldr r1, [sp, #0x0] ldr r0, [r0, #0x0] ldrb r1, [r1, r2] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x8] ldr r0, [sp, #0x4] mov r1, #0x1 @@ -3790,7 +3790,7 @@ _020711D0: ldr r0, [sp, #0x8] add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 beq _02071210 @@ -3996,7 +3996,7 @@ FUN_02071340: ; 0x02071340 cmp r0, #0x0 beq _0207136E ldr r0, [r2, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, _020713E0 ; =0x000005A4 ldr r2, _020713E4 ; =0x00000B34 @@ -5033,7 +5033,7 @@ _02071B34: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 ldr r0, _02071C3C ; =0x0000069C mov r1, #0x40 @@ -5244,12 +5244,12 @@ _02071D14: add r1, r6, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldrh r1, [r7, r4] add r2, sp, #0x0 str r1, [sp, #0x0] mov r1, #0xa2 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1 pop {r3-r7, pc} _02071D30: @@ -5426,7 +5426,7 @@ _02071E5A: ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 mov r2, #0x3 @@ -5436,7 +5436,7 @@ _02071E5A: str r0, [sp, #0x0] ldrh r3, [r3, #0x24] mov r0, #0x0 - bl FUN_02069168 + bl GetMonEvolution ldr r1, _02071F1C ; =0x000005A4 ldr r2, [r5, r1] strh r0, [r2, #0x38] @@ -5460,7 +5460,7 @@ _02071ECC: ldr r0, [r1, #0x0] ldr r1, _02071F20 ; =0x00000B25 ldrb r1, [r5, r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 ldr r2, [r5, r0] @@ -5526,7 +5526,7 @@ FUN_02071F58: ; 0x02071F58 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 mov r7, #0x89 add r0, r5, #0x0 @@ -5670,7 +5670,7 @@ FUN_02072080: ; 0x02072080 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _020720D8 ; =0x00000B25 @@ -5713,7 +5713,7 @@ FUN_020720E0: ; 0x020720E0 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x1c - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _02072138 ; =0x00000B25 @@ -5804,7 +5804,7 @@ _020721B0: ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r7, r0, #0x0 ldr r0, _020722A8 ; =0x000005A4 ldr r0, [r5, r0] @@ -5968,7 +5968,7 @@ FUN_0207230C: ; 0x0207230C ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r7, r0, #0x0 ldr r0, _02072410 ; =0x000005A4 ldr r0, [r5, r0] diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index 8c630d8e..062862b7 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -582,7 +582,7 @@ _0207297E: ldr r1, _020729CC ; =0x00000B25 ldr r0, [r2, #0x0] ldrb r1, [r5, r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 ldr r0, _020729D0 ; =0x0000069C mov r1, #0x25 @@ -1211,7 +1211,7 @@ _02072E98: add r1, r4, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 mov r0, #0x0 ldr r3, _02072EE0 ; =0x000005A4 @@ -1219,7 +1219,7 @@ _02072E98: ldr r3, [r5, r3] mov r2, #0x3 ldrh r3, [r3, #0x24] - bl FUN_02069168 + bl GetMonEvolution cmp r0, #0x0 bne _02072ED0 add r0, r5, #0x0 @@ -1280,7 +1280,7 @@ _02072F2C: add r1, r4, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02076AA0 @@ -1983,41 +1983,41 @@ FUN_020734C0: ; 0x020734C0 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0xa4 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0x2] add r0, r4, #0x0 mov r1, #0xa5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0x4] add r0, r4, #0x0 mov r1, #0xa7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0x6] add r0, r4, #0x0 mov r1, #0xa8 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0x8] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strh r0, [r1, #0xa] mov r3, #0x1 diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s index 7a217fbe..16631f9e 100644 --- a/arm9/asm/unk_02073710.s +++ b/arm9/asm/unk_02073710.s @@ -218,7 +218,7 @@ FUN_020737D0: ; 0x020737D0 add r4, r2, #0x0 ldr r0, [r0, #0x0] add r7, r1, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex lsl r1, r4, #0x10 asr r6, r1, #0x10 mov r1, #0x2c @@ -248,7 +248,7 @@ FUN_020737D0: ; 0x020737D0 ldr r0, [sp, #0x10] mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 str r7, [sp, #0x14] add r0, sp, #0x14 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 9afd1e10..cb5d7a22 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -199,7 +199,7 @@ FUN_02073EEC: ; 0x02073EEC bne _02073F66 ldr r0, [r5, r0] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r2, _02074058 ; =0x0000069C add r6, r0, #0x0 ldr r0, [r5, r2] @@ -238,13 +238,13 @@ _02073F66: ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x0 str r1, [sp, #0x0] add r6, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0x0 bl FUN_02069EC4 ldr r2, _02074058 ; =0x0000069C @@ -530,7 +530,7 @@ FUN_02074200: ; 0x02074200 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, _02074268 ; =0x000005A4 mov r2, #0xc @@ -625,13 +625,13 @@ FUN_020742A8: ; 0x020742A8 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x0 str r1, [sp, #0x0] add r5, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _02074330 ; =0x00000B25 @@ -789,7 +789,7 @@ FUN_02074428: ; 0x02074428 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_0206AA84 ldr r0, _0207444C ; =0x000005A4 mov r1, #0x0 @@ -2383,10 +2383,10 @@ FUN_02075118: ; 0x02075118 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa1 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 ldr r2, _02075198 ; =0x0000069C bne _0207515C diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index 7186cf11..995ebf7e 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -365,7 +365,7 @@ FUN_020757F4: ; 0x020757F4 ldrb r1, [r4, r1] ldr r0, [r0, #0x0] add r5, r2, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a @@ -1045,53 +1045,53 @@ FUN_02075DC0: ; 0x02075DC0 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xd mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, _02075F4C ; =0x000005A4 @@ -1135,42 +1135,42 @@ FUN_02075DC0: ; 0x02075DC0 add r0, r4, #0x0 mov r1, #0xd mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x1c] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x18] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x14] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x10] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0xc] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x8] cmp r1, r0 beq _02075F26 @@ -1178,7 +1178,7 @@ _02075EFA: add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 ldr r1, _02075F4C ; =0x000005A4 beq _02075F18 @@ -1243,11 +1243,11 @@ FUN_02075F60: ; 0x02075F60 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0x0 str r0, [sp, #0x8] - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 ldr r0, _02076084 ; =0x00000B25 ldrb r1, [r5, r0] @@ -1372,10 +1372,10 @@ FUN_020760A0: ; 0x020760A0 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02076134 ; =0x00000B25 add r4, r0, #0x0 ldrb r2, [r5, r1] @@ -1558,7 +1558,7 @@ _02076212: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020772CC @@ -1574,7 +1574,7 @@ _02076212: add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r0, _020763E4 ; =0x0000069C mov r1, #0x46 ldr r0, [r4, r0] @@ -1646,10 +1646,10 @@ _020762DC: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r2, _020763E0 ; =0x00000B25 add r5, r0, #0x0 ldr r0, _02076400 ; =0x00000706 @@ -1782,42 +1782,42 @@ FUN_0207640C: ; 0x0207640C ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765B8 ; =0x00000B28 mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa4 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765BC ; =0x00000B2A mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa5 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765C0 ; =0x00000B2C mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa7 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765C4 ; =0x00000B2E mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa8 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xb3 lsl r1, r1, #0x4 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765C8 ; =0x00000B32 strh r0, [r5, r1] ldr r0, _020765B0 ; =0x000005A4 @@ -1836,7 +1836,7 @@ FUN_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -1847,7 +1847,7 @@ FUN_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -1858,7 +1858,7 @@ FUN_0207640C: ; 0x0207640C add r0, r4, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c @@ -2056,7 +2056,7 @@ _02076680: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, _02076878 ; =0x000005A4 add r5, r0, #0x0 ldr r2, [r4, r1] @@ -2196,7 +2196,7 @@ _020767A4: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r2, _02076878 ; =0x000005A4 add r1, r0, #0x0 ldr r2, [r4, r2] @@ -2241,7 +2241,7 @@ _02076814: ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 ldr r0, _02076878 ; =0x000005A4 ldr r0, [r4, r0] @@ -2260,7 +2260,7 @@ _02076814: ldr r0, [r1, #0x0] add r1, r5, #0x0 lsr r3, r3, #0x10 - bl FUN_02069168 + bl GetMonEvolution ldr r1, _02076878 ; =0x000005A4 ldr r2, [r4, r1] strh r0, [r2, #0x38] @@ -2307,7 +2307,7 @@ FUN_02076890: ; 0x02076890 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 bl FUN_020690E4 add r2, r0, #0x0 @@ -2335,7 +2335,7 @@ _020768E6: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2540,7 +2540,7 @@ _02076AAA: add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r5, r7] @@ -2586,7 +2586,7 @@ FUN_02076AF8: ; 0x02076AF8 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 @@ -2775,7 +2775,7 @@ FUN_02076C94: ; 0x02076C94 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r5, r0, #0x0 bl FUN_020690E4 add r2, r0, #0x0 @@ -2803,7 +2803,7 @@ _02076CDC: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 @@ -2854,7 +2854,7 @@ FUN_02076D3C: ; 0x02076D3C ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r2, _02076DC4 ; =0x000005A4 add r1, r0, #0x0 ldr r2, [r5, r2] @@ -3080,14 +3080,14 @@ FUN_02076F2C: ; 0x02076F2C str r0, [sp, #0x0] add r0, r4, #0x0 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 add r1, r6, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, #0x3e add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, _02076FAC ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] @@ -3098,7 +3098,7 @@ FUN_02076F2C: ; 0x02076F2C add r0, r4, #0x0 add r1, r6, #0x0 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, _02076FAC ; =0x000005A4 ldr r1, [r5, r0] ldrh r0, [r1, #0x24] @@ -3121,7 +3121,7 @@ _02076F98: add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _02076FA8: add sp, #0x4 pop {r3-r6, pc} @@ -3138,11 +3138,11 @@ FUN_02076FB0: ; 0x02076FB0 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, _02077034 ; =0x0000069C @@ -3375,11 +3375,11 @@ _0207716A: ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02077234 ; =0x000005A4 add r2, r0, #0x0 ldr r1, [r5, r1] diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 11d65c38..9da982ce 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -1555,7 +1555,7 @@ _0207A8C0: mov r1, #0x13 ldrb r6, [r5, r0] add r0, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0207AA08 ; =0x00000295 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1572,7 +1572,7 @@ _0207A8F4: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0207AA0C ; =0x00000296 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1589,7 +1589,7 @@ _0207A916: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0207AA10 ; =0x00000297 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1607,7 +1607,7 @@ _0207A938: add r0, r4, #0x0 mov r1, #0x16 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xa6 lsl r1, r1, #0x2 strb r0, [r5, r1] @@ -1625,7 +1625,7 @@ _0207A95E: ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0207AA14 ; =0x00000299 strb r0, [r5, r1] ldrb r0, [r5, r1] @@ -1640,7 +1640,7 @@ _0207A980: add r0, r4, #0x0 mov r1, #0x18 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0207AA18 ; =0x0000029A strb r0, [r5, r1] sub r1, #0x4e @@ -1843,12 +1843,12 @@ FUN_0207AB0C: ; 0x0207AB0C add r7, r0, #0x0 add r0, r6, #0x0 add r5, r2, #0x0 - bl TryDecryptMon + bl AcquireMonLock str r0, [sp, #0x4] add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0xc] add r0, r6, #0x0 bl FUN_020690E4 @@ -1913,12 +1913,12 @@ FUN_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0xe] add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldrb r1, [r5, #0x12] mov r2, #0x7f lsl r0, r0, #0x18 @@ -1931,7 +1931,7 @@ FUN_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x1f ldr r2, [r5, #0x50] ldr r1, _0207AEB4 ; =0xEFFFFFFF @@ -1942,7 +1942,7 @@ FUN_0207AB0C: ; 0x0207AB0C add r0, r6, #0x0 mov r1, #0xaf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _0207AC16 ldr r0, [r5, #0x50] @@ -1961,7 +1961,7 @@ _0207AC16: strb r0, [r5, #0x12] _0207AC1E: add r0, r6, #0x0 - bl GetMonGenderEncrypted + bl GetMonGender ldrb r1, [r5, #0x13] mov r2, #0x3 bic r1, r2 @@ -1972,7 +1972,7 @@ _0207AC1E: add r0, r6, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a @@ -1985,27 +1985,27 @@ _0207AC1E: add r0, r6, #0x0 mov r1, #0xb0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x10] add r0, r6, #0x0 mov r1, #0xb1 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x11] add r0, r6, #0x0 mov r1, #0x7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x14] add r0, r6, #0x0 mov r1, #0x8 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r5, #0x18] add r0, r6, #0x0 mov r1, #0x9c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x44 strb r0, [r1, #0x0] @@ -2013,7 +2013,7 @@ _0207AC1E: ldrh r0, [r5, #0xc] lsl r1, r1, #0x19 lsr r1, r1, #0x19 - bl GetMonExpByLevel + bl GetMonExpBySpeciesAndLevel str r0, [r5, #0x1c] ldrb r0, [r5, #0x12] lsl r0, r0, #0x19 @@ -2025,53 +2025,53 @@ _0207AC1E: _0207ACAA: ldrh r0, [r5, #0xc] add r1, r1, #0x1 - bl GetMonExpByLevel + bl GetMonExpBySpeciesAndLevel _0207ACB2: str r0, [r5, #0x20] add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x24] add r0, r6, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x26] add r0, r6, #0x0 mov r1, #0xa4 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x28] add r0, r6, #0x0 mov r1, #0xa5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x2a] add r0, r6, #0x0 mov r1, #0xa7 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x2c] add r0, r6, #0x0 mov r1, #0xa8 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x2e] add r0, r6, #0x0 mov r1, #0xa6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x30] add r0, r6, #0x0 mov r1, #0xa mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x32 strb r0, [r1, #0x0] add r0, r6, #0x0 - bl GetMonNatureEncrypted + bl GetMonNature add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] @@ -2084,14 +2084,14 @@ _0207AD26: add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x0] mov r2, #0x0 strh r0, [r1, #0x34] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x3a - bl GetMonDataEncrypted + bl GetMonData add r1, r5, r4 add r1, #0x3c strb r0, [r1, #0x0] @@ -2099,7 +2099,7 @@ _0207AD26: add r0, r6, #0x0 add r1, #0x3e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x0] @@ -2116,42 +2116,42 @@ _0207AD26: add r0, r6, #0x0 mov r1, #0x13 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x45 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x14 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x46 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x15 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x47 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x16 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x48 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x17 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x49 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x18 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x4a strb r0, [r1, #0x0] @@ -2180,14 +2180,14 @@ _0207ADFE: add r0, r6, #0x0 mov r1, #0xb mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x4c strh r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r5, #0x0 add r1, #0x4e strh r0, [r1, #0x0] @@ -2243,7 +2243,7 @@ _0207AE7C: str r0, [r5, #0x50] _0207AE84: add r0, r6, #0x0 - bl FUN_02068A80 + bl MonIsShiny cmp r0, #0x1 ldr r1, [r5, #0x50] bne _0207AE98 @@ -2281,7 +2281,7 @@ _0207AECC: add r1, r0, #0x0 add r0, r6, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207AF04 lsr r0, r4, #0x5 @@ -2308,7 +2308,7 @@ _0207AF04: blo _0207AECC ldr r1, [sp, #0x4] add r0, r6, #0x0 - bl TryEncryptMon + bl ReleaseMonLock add sp, #0x8 pop {r3-r7, pc} nop @@ -3123,13 +3123,13 @@ _0207B528: add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207B50C add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207B55E add r0, r5, #0x0 @@ -3169,17 +3169,17 @@ _0207B588: _0207B58E: ldr r0, [r1, #0x0] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x5 mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207B574 add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0207B5BC add r0, r5, #0x0 @@ -3227,13 +3227,13 @@ _0207B5EC: add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _0207B5D0 add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _0207B622 add r0, r5, #0x0 @@ -3269,7 +3269,7 @@ _0207B640: _0207B64E: ldrb r1, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex pop {r4, pc} _0207B658: bl FUN_020690C8 @@ -4814,12 +4814,12 @@ FUN_0207C2D4: ; 0x0207C2D4 add r5, r0, #0x0 mov r1, #0x9f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _0207C2F4 mov r0, #0x6 diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s index 903c4d94..1f17ee0a 100644 --- a/arm9/asm/unk_0207FD00.s +++ b/arm9/asm/unk_0207FD00.s @@ -472,7 +472,7 @@ FUN_020800E0: ; 0x020800E0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl GetMonNatureEncrypted + bl GetMonNature add r4, r0, #0x0 cmp r4, #0x18 bgt _02080106 @@ -511,7 +511,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x94 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -523,7 +523,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x1 @@ -531,7 +531,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -544,7 +544,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x9b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -557,7 +557,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x4 @@ -565,7 +565,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x91 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -577,7 +577,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -585,7 +585,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -598,7 +598,7 @@ FUN_02080108: ; 0x02080108 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -635,7 +635,7 @@ FUN_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x94 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -647,7 +647,7 @@ FUN_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x1 @@ -655,7 +655,7 @@ FUN_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -668,7 +668,7 @@ FUN_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x9b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -681,7 +681,7 @@ FUN_02080228: ; 0x02080228 ldr r0, [r4, #0xc] mov r1, #0x79 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0xf bhi _020802F8 add r0, r0, r0 @@ -797,7 +797,7 @@ FUN_02080384: ; 0x02080384 bne _02080418 mov r1, #0x91 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -809,7 +809,7 @@ FUN_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -817,7 +817,7 @@ FUN_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -830,7 +830,7 @@ FUN_02080384: ; 0x02080384 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -839,7 +839,7 @@ FUN_02080384: ; 0x02080384 _02080418: mov r1, #0x94 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] @@ -851,7 +851,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 @@ -859,7 +859,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] @@ -872,7 +872,7 @@ _02080418: ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 @@ -899,37 +899,37 @@ FUN_0208048C: ; 0x0208048C ldr r0, [r4, #0xc] mov r1, #0x46 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4, #0xc] mov r1, #0x47 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] ldr r0, [r4, #0xc] mov r1, #0x48 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x4] ldr r0, [r4, #0xc] mov r1, #0x49 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x0] ldr r0, [r4, #0xc] mov r1, #0x4a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x4b mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r1, #0x0 ldr r0, [r4, #0xc] add r2, r1, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x6 bl _u32_div_f cmp r1, #0x5 @@ -1196,7 +1196,7 @@ FUN_020806B4: ; 0x020806B4 ldr r0, [r5, #0xc] mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 mov r0, #0x12 ldr r1, [r5, #0x0] @@ -1232,7 +1232,7 @@ FUN_020806F4: ; 0x020806F4 mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02080708 b _0208084E @@ -1240,13 +1240,13 @@ _02080708: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _02080774 add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r0, #0x0 mov r1, #0x37 @@ -1259,7 +1259,7 @@ _02080732: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _0208074C cmp r4, #0x1 @@ -1273,7 +1273,7 @@ _0208074C: add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 @@ -1294,13 +1294,13 @@ _02080774: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _020807D6 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x2 @@ -1318,7 +1318,7 @@ _020807A6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 mov r0, #0x2 mov r1, #0x1 @@ -1344,7 +1344,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 @@ -1354,7 +1354,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x0 @@ -1364,7 +1364,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x9 @@ -1374,7 +1374,7 @@ _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 mov r0, #0x1 mov r1, #0xa @@ -1403,13 +1403,13 @@ _0208084E: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _02080880 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 mov r0, #0x2 mov r1, #0x1 @@ -1428,7 +1428,7 @@ _02080884: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x1 bne _02080896 mov r0, #0x13 @@ -1484,7 +1484,7 @@ _020808E4: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _0208090C add r0, r4, #0x0 @@ -1514,7 +1514,7 @@ _0208091E: _0208092A: mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _02080958 add r0, r4, #0x0 @@ -1575,7 +1575,7 @@ _020809B0: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _020809E2 add r0, r4, #0x0 @@ -1601,7 +1601,7 @@ _020809F6: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 bne _02080A1E add r0, r4, #0x0 @@ -1629,7 +1629,7 @@ _02080A30: _02080A38: mov r1, #0x4c mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0x0 beq _02080AE0 mov r0, #0x1 @@ -1657,39 +1657,39 @@ _02080A66: add r0, r4, #0x0 mov r1, #0x98 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x97 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x94 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x95 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x96 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData _02080ACC: add r0, r4, #0x0 add r1, r5, #0x0 @@ -1723,15 +1723,15 @@ FUN_02080AE4: ; 0x02080AE4 add r0, r5, #0x0 mov r1, #0x7 add r2, sp, #0x4 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x9c add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x90 add r2, r4, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 @@ -1751,19 +1751,19 @@ FUN_02080B30: ; 0x02080B30 bne _02080B76 add r0, r5, #0x0 mov r1, #0x97 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x92 add r2, sp, #0x4 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x93 add r2, sp, #0x8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add sp, #0x10 pop {r3-r5} pop {r3} @@ -1772,19 +1772,19 @@ FUN_02080B30: ; 0x02080B30 _02080B76: add r0, r5, #0x0 mov r1, #0x98 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x94 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x95 add r2, sp, #0x4 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r5, #0x0 mov r1, #0x96 add r2, sp, #0x8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add sp, #0x10 pop {r3-r5} pop {r3} @@ -1803,36 +1803,36 @@ FUN_02080BA8: ; 0x02080BA8 add r2, sp, #0x0 bne _02080BE0 mov r1, #0x97 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add sp, #0x4 pop {r3-r4, pc} _02080BE0: mov r1, #0x98 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x94 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x95 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0x0 mov r1, #0x96 add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add sp, #0x4 pop {r3-r4, pc} @@ -1843,12 +1843,12 @@ FUN_02080C08: ; 0x02080C08 add r4, r0, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x9b add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -1860,5 +1860,5 @@ FUN_02080C28: ; 0x02080C28 str r1, [sp, #0x0] mov r1, #0x6e add r2, sp, #0x0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData pop {r3, pc} diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index f40af68a..86eedd81 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -108,7 +108,7 @@ _02080CB4: ldr r0, [r6, #0xc] bl FUN_0206BB1C mov r1, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC @@ -1083,7 +1083,7 @@ _02081454: ldr r0, [r4, #0x0] ldr r2, [r2, #0x0] mov r1, #0x90 - bl GetMonDataEncrypted + bl GetMonData add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 @@ -1223,7 +1223,7 @@ _02081566: add r0, r5, #0x0 add r1, #0x7a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 b _020815BA _02081576: @@ -1231,7 +1231,7 @@ _02081576: add r0, r5, #0x0 add r1, #0x7e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 b _020815BA _02081586: @@ -1239,7 +1239,7 @@ _02081586: add r0, r5, #0x0 add r1, #0x82 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 b _020815BA _02081596: @@ -1247,7 +1247,7 @@ _02081596: add r0, r5, #0x0 add r1, #0x86 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 b _020815BA _020815A6: @@ -1255,7 +1255,7 @@ _020815A6: add r0, r5, #0x0 add r1, #0x8a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 b _020815BA _020815B6: @@ -2973,7 +2973,7 @@ FUN_02082254: ; 0x02082254 ldr r0, _02082280 ; =0x00001990 mov r2, #0x0 ldr r0, [r4, r0] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _0208227A mov r0, #0x1 @@ -3590,7 +3590,7 @@ _020826AC: add r1, r6, #0x0 ldr r0, [r4, r0] mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 bne _020826DE mov r5, #0x1 @@ -3599,7 +3599,7 @@ _020826DE: add r1, r6, #0x0 ldr r0, [r4, r0] add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData _020826EA: ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] @@ -3748,7 +3748,7 @@ _02082820: lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod _0208283A: add sp, #0xc pop {r4-r7, pc} diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index fb6f03c8..316c13b0 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -765,7 +765,7 @@ FUN_02082D60: ; 0x02082D60 lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x0 - bl FUN_02066E74 + bl GenPersonalityByGenderAndNature mov r1, #0x1 str r1, [sp, #0x0] str r0, [sp, #0x4] @@ -789,7 +789,7 @@ _02082D9A: add r0, r6, #0x0 add r1, #0x36 add r2, #0x2 - bl SetMonDataEncrypted + bl SetMonData add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x4 @@ -810,11 +810,11 @@ _02082D9A: add r0, r6, #0x0 mov r1, #0x76 add r2, r5, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r2, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x90 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x14] @@ -838,30 +838,30 @@ _02082D9A: strb r1, [r0, #0x0] add r0, r6, #0x0 mov r1, #0x13 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0x0 mov r1, #0x14 add r2, sp, #0x1c - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x15 add r2, #0x3 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x16 add r2, #0x2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x17 add r2, #0x1 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0x0 mov r1, #0x18 add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData add sp, #0x20 pop {r3-r7, pc} nop diff --git a/arm9/asm/unk_020842DC.s b/arm9/asm/unk_020842DC.s index 17aec9b7..b4f2fa48 100644 --- a/arm9/asm/unk_020842DC.s +++ b/arm9/asm/unk_020842DC.s @@ -28,7 +28,7 @@ _02084308: add r0, r6, #0x0 mov r1, #0x9f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0xf @@ -103,7 +103,7 @@ _020843AA: add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x17 @@ -139,7 +139,7 @@ _020843EA: add r0, r6, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 bhs _02084414 add r0, r4, #0x0 @@ -156,7 +156,7 @@ _02084414: add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x64 bhs _0208443A add r0, r4, #0x0 @@ -175,7 +175,7 @@ _0208443A: ldr r3, [sp, #0x4] add r1, r6, #0x0 mov r2, #0x3 - bl FUN_02069168 + bl GetMonEvolution cmp r0, #0x0 beq _02084464 add r0, r4, #0x0 @@ -199,14 +199,14 @@ _0208447C: add r0, r6, #0x0 add r1, #0x3e mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x3 bhs _020844B2 add r1, r7, #0x0 add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x0 @@ -260,37 +260,37 @@ _02084502: add r0, r6, #0x0 mov r1, #0xd mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x10] add r0, r6, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] add r0, r6, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] add r0, r6, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x49 lsl r1, r1, #0x2 cmp r0, r1 @@ -616,7 +616,7 @@ FUN_020847F8: ; 0x020847F8 add r5, r1, #0x0 add r1, r2, #0x0 add r4, r3, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r3, [sp, #0x10] add r1, r5, #0x0 add r2, r4, #0x0 @@ -652,7 +652,7 @@ _02084840: mov r1, #0x9f add r2, r6, #0x0 add r7, r6, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x50] str r0, [sp, #0x54] add r0, r4, #0x0 @@ -717,18 +717,18 @@ _020848C0: add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x54 - bl SetMonDataEncrypted + bl SetMonData mov r6, #0x1 _020848D4: add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x54] add r0, r4, #0x0 mov r1, #0x17 @@ -786,7 +786,7 @@ _0208495C: add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x58] add r0, r4, #0x0 mov r1, #0x19 @@ -797,20 +797,20 @@ _0208495C: cmp r0, #0x64 bge _020849B2 add r0, r5, #0x0 - bl CalcMonExpToNextLevelEncrypted + bl CalcMonExpToNextLevel add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 - bl AddMonPartyStatEncrypted + bl AddMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats ldr r0, [sp, #0x50] cmp r0, #0x0 bne _020849B0 add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0x0 ldr r3, [sp, #0x54] ldr r1, [sp, #0x50] @@ -915,37 +915,37 @@ _02084A66: add r0, r5, #0x0 mov r1, #0xd mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xe mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x54] add r0, r5, #0x0 mov r1, #0xf mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x58] add r0, r5, #0x0 mov r1, #0x10 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x5c] add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x60] add r0, r5, #0x0 mov r1, #0x12 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x64] add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x49 lsl r1, r1, #0x2 cmp r0, r1 @@ -985,9 +985,9 @@ _02084A66: add r0, r5, #0x0 mov r1, #0xd add r2, sp, #0x50 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084B18: ldr r0, [sp, #0x6c] @@ -1030,9 +1030,9 @@ _02084B20: add r0, r5, #0x0 mov r1, #0xe add r2, sp, #0x54 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084B78: ldr r0, [sp, #0x6c] @@ -1075,9 +1075,9 @@ _02084B80: add r0, r5, #0x0 mov r1, #0xf add r2, sp, #0x58 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084BD8: ldr r0, [sp, #0x6c] @@ -1120,9 +1120,9 @@ _02084BE0: add r0, r5, #0x0 mov r1, #0x10 add r2, sp, #0x5c - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084C38: ldr r0, [sp, #0x6c] @@ -1165,9 +1165,9 @@ _02084C40: add r0, r5, #0x0 mov r1, #0x11 add r2, sp, #0x60 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084C98: ldr r0, [sp, #0x6c] @@ -1210,9 +1210,9 @@ _02084CA0: add r0, r5, #0x0 mov r1, #0x12 add r2, sp, #0x64 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats mov r6, #0x1 _02084CF8: ldr r0, [sp, #0x6c] @@ -1233,7 +1233,7 @@ _02084D14: add r0, r5, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x50] cmp r0, #0x64 bge _02084D54 @@ -1320,7 +1320,7 @@ FUN_02084DD0: ; 0x02084DD0 add r5, r1, #0x0 add r1, r2, #0x0 add r4, r3, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, [sp, #0x14] add r3, sp, #0x0 str r1, [sp, #0x0] @@ -1338,7 +1338,7 @@ FUN_02084DF0: ; 0x02084DF0 add r1, #0x36 mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 bne _02084E08 @@ -1349,14 +1349,14 @@ _02084E08: add r0, r5, #0x0 add r1, #0x3a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 add r6, #0x3e lsr r4, r0, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r1, r0, #0x18 add r0, r7, #0x0 @@ -1382,7 +1382,7 @@ FUN_02084E40: ; 0x02084E40 add r1, #0x36 mov r2, #0x0 add r6, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 bne _02084E5E @@ -1397,14 +1397,14 @@ _02084E5E: ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x4 strb r0, [r1, #0x0] add r5, #0x3e add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r7, #0x0 @@ -1429,7 +1429,7 @@ _02084EA8: ldr r1, [sp, #0x0] add r0, r6, #0x0 add r2, sp, #0x4 - bl SetMonDataEncrypted + bl SetMonData add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} @@ -1450,7 +1450,7 @@ FUN_02084EC0: ; 0x02084EC0 mov r2, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] @@ -1464,7 +1464,7 @@ _02084EE6: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x0 @@ -1480,7 +1480,7 @@ _02084F08: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x8 strb r0, [r1, #0x1] ldrb r1, [r1, #0x0] @@ -1511,12 +1511,12 @@ _02084F34: ldr r1, [sp, #0x0] add r0, r5, #0x0 add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, #0x1 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} @@ -1556,7 +1556,7 @@ _02084F96: _02084F98: mov r1, #0xa2 add r2, sp, #0xc - bl SetMonDataEncrypted + bl SetMonData pop {r3} pop {r3} add sp, #0x10 @@ -1621,7 +1621,7 @@ FUN_02085000: ; 0x02085000 add r4, r1, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0xff blt _02085014 mov r0, #0x0 @@ -1723,7 +1723,7 @@ _020850BE: add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 ldr r2, [sp, #0x20] lsr r0, r0, #0x10 @@ -1741,7 +1741,7 @@ _020850EC: add r0, r5, #0x0 mov r1, #0x9a mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0xb bne _02085100 ldr r0, [sp, #0x18] @@ -1751,7 +1751,7 @@ _02085100: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r6, r0 bne _02085114 ldr r0, [sp, #0x18] @@ -1775,7 +1775,7 @@ _0208512C: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1 pop {r4-r6} pop {r3} @@ -1787,7 +1787,7 @@ FUN_02085140: ; 0x02085140 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] - bl FUN_0206B9AC + bl GetPartyCount mov r7, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 @@ -1796,28 +1796,28 @@ FUN_02085140: ; 0x02085140 _02085154: ldr r0, [sp, #0x0] add r1, r7, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xab mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _020851AC add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData mov r4, #0x0 _02085190: add r0, r5, #0x0 diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s index 0921775e..b2b33741 100644 --- a/arm9/asm/unk_020854E0.s +++ b/arm9/asm/unk_020854E0.s @@ -46,9 +46,9 @@ FUN_020854E0: ; 0x020854E0 strh r0, [r4, #0xc] ldr r0, [sp, #0x20] str r5, [r4, #0x10] - bl FUN_020256BC + bl CreateNewSealsObject str r0, [r4, #0x14] - bl FUN_02025658 + bl InitSealsObject ldr r0, [r4, #0x14] mov r1, #0xff add r2, r6, #0x0 @@ -106,12 +106,12 @@ FUN_02085578: ; 0x02085578 strh r0, [r4, #0x0] str r5, [r4, #0x10] add r0, r7, #0x0 - bl FUN_020256BC + bl CreateNewSealsObject str r0, [r4, #0x14] ldr r2, [r4, #0x14] add r0, r6, #0x0 mov r1, #0xa9 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 @@ -133,7 +133,7 @@ FUN_020855B0: ; 0x020855B0 strh r0, [r4, #0x0] add r0, r7, #0x0 str r5, [r4, #0x10] - bl FUN_020256BC + bl CreateNewSealsObject add r1, r6, #0x0 str r0, [r4, #0x14] bl FUN_020257D0 @@ -180,7 +180,7 @@ _0208561E: ldr r2, [r5, #0x14] add r0, r4, #0x0 mov r1, #0xa9 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x1 pop {r3-r5, pc} @@ -213,27 +213,27 @@ FUN_02085644: ; 0x02085644 cmp r6, r0 beq _0208569E add r0, r4, #0x0 - bl FUN_020256BC + bl CreateNewSealsObject add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r0, r7, #0x0 mov r1, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_02025888 add r0, r4, #0x0 - bl FUN_02025658 + bl InitSealsObject add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0x0 bl FreeToHeap add r0, r6, #0x0 @@ -262,11 +262,11 @@ _020856BC: add r0, r4, #0x0 mov r1, #0xa9 add r2, r6, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0x0 mov r1, #0x6 add r2, sp, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0x0 mov r1, #0x0 add r2, r5, #0x0 diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index ed131b94..0111206a 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -178,7 +178,7 @@ _02085A7C: beq _02085A9A add r1, r7, #0x0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x0 beq _02085A9A lsl r0, r0, #0x3 @@ -573,7 +573,7 @@ _02085DDC: ldr r0, [r6, #0x10] bl FUN_0206BB1C str r0, [r7, #0x1c] - bl FUN_0206B9AC + bl GetPartyCount mov r4, #0x0 str r0, [sp, #0x0] str r0, [r7, #0x0] @@ -583,7 +583,7 @@ _02085DDC: _02085E0A: ldr r0, [r7, #0x1c] add r1, r4, #0x0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r5, #0x4] ldr r0, [sp, #0x0] add r4, r4, #0x1 @@ -675,7 +675,7 @@ _02085EA6: mov r1, #0xa1 add r2, sp, #0x8 add r5, r0, #0x0 - bl SetMonDataEncrypted + bl SetMonData ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 @@ -683,7 +683,7 @@ _02085EA6: add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0xaa - bl SetMonDataEncrypted + bl SetMonData ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s index 8a6d5079..98f5d44f 100644 --- a/arm9/asm/unk_02086084.s +++ b/arm9/asm/unk_02086084.s @@ -125,7 +125,7 @@ _0208618C: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _020861D8 ; =0x000001EA cmp r0, r1 bne _020861A4 @@ -286,7 +286,7 @@ _020862D6: add r0, r5, #0x0 mov r1, #0x4c add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0xb str r0, [sp, #0x0] ldr r3, [sp, #0x4] @@ -297,7 +297,7 @@ _020862D6: add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0x0 bl FUN_020377AC ldr r1, [r4, #0xc] @@ -319,7 +319,7 @@ _0208633A: ldr r0, [r4, #0xc] mov r1, #0x5 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC @@ -334,13 +334,13 @@ _0208633A: ldr r0, [r4, #0xc] mov r1, #0x6f mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r4, #0x8] mov r2, #0x0 str r0, [r1, #0x10] ldr r0, [r4, #0xc] mov r1, #0x70 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r4, #0x8] str r0, [r1, #0x8] ldr r1, _020863D8 ; =UNK_020FA5FC @@ -359,7 +359,7 @@ _02086396: ldr r0, [r4, #0xc] ldr r2, [r2, #0x18] mov r1, #0x77 - bl SetMonDataEncrypted + bl SetMonData _020863A8: ldr r0, [r4, #0x8] bl FUN_02077AC4 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 83a10e29..ef50db3f 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -1441,7 +1441,7 @@ FUN_02086EE8: ; 0x02086EE8 ldr r4, [r0, #0xc] mov r2, #0x0 add r0, r4, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 @@ -1452,7 +1452,7 @@ FUN_02086EE8: ; 0x02086EE8 add r0, r4, #0x0 mov r1, #0x4c add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData add r0, sp, #0x28 add r1, r4, #0x0 mov r2, #0x2 @@ -1487,11 +1487,11 @@ FUN_02086F4C: ; 0x02086F4C mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl GetMonNatureEncrypted + bl GetMonNature add r6, r0, #0x0 ldr r0, [r5, #0x68] mov r1, #0x1 diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index f27865fe..e728ee4a 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -164,7 +164,7 @@ _020870D2: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005578 @@ -447,7 +447,7 @@ _02087322: mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005578 diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s index c3c27acb..644d8dc5 100644 --- a/arm9/asm/unk_02087D00.s +++ b/arm9/asm/unk_02087D00.s @@ -446,7 +446,7 @@ _02087FFE: strb r0, [r4, #0x11] strb r6, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r1, #0x0 strh r1, [r4, #0x18] @@ -540,7 +540,7 @@ FUN_020880A0: ; 0x020880A0 ldr r0, [r5, #0xc] ldrb r1, [r5, #0x8] ldr r0, [r0, #0x10] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x18] @@ -608,7 +608,7 @@ FUN_02088130: ; 0x02088130 ldrb r0, [r5, #0x8] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #0x13] mov r1, #0x0 strh r1, [r4, #0x18] @@ -704,7 +704,7 @@ FUN_0208821C: ; 0x0208821C add r6, r1, #0x0 add r4, r0, #0x0 add r0, r6, #0x0 - bl GetMonNatureEncrypted + bl GetMonNature lsl r1, r0, #0x1 ldr r0, _02088310 ; =UNK_020FD17C ldrb r0, [r0, r1] @@ -723,7 +723,7 @@ _02088246: add r0, r6, #0x0 add r1, #0x13 add r2, r7, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r1, r4, #0x2 str r0, [r5, r1] add r0, r4, #0x1 @@ -791,7 +791,7 @@ _020882D4: add r0, r6, #0x0 add r1, #0x13 add r2, r4, r2 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -800,7 +800,7 @@ _020882D4: add r0, r6, #0x0 mov r1, #0x9 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] @@ -811,7 +811,7 @@ _020882D4: add r0, r6, #0x0 mov r1, #0x9 add r2, sp, #0x8 - bl SetMonDataEncrypted + bl SetMonData _0208830C: add sp, #0x30 pop {r3-r7, pc} diff --git a/arm9/asm/unk_02088DD8.s b/arm9/asm/unk_02088DD8.s index 9e8c27a7..1dda59b0 100644 --- a/arm9/asm/unk_02088DD8.s +++ b/arm9/asm/unk_02088DD8.s @@ -33,21 +33,21 @@ FUN_02088DF8: ; 0x02088DF8 mov r1, #0x5 mov r2, #0x0 add r5, r0, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r4, #0x0 @@ -59,7 +59,7 @@ _02088E34: add r0, r5, #0x0 add r1, #0x36 add r2, r7, #0x0 - bl GetMonDataEncrypted + bl GetMonData lsl r1, r4, #0x1 strh r0, [r6, r1] add r0, r4, #0x1 diff --git a/arm9/global.inc b/arm9/global.inc index db7e72c3..08442742 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -805,7 +805,7 @@ .extern FUN_020126D8
.extern FUN_020126FC
.extern FUN_02012710
-.extern FUN_0201277C
+.extern IsNighttime
.extern FUN_02012794
.extern FUN_020127A8
.extern FUN_020127C0
@@ -1629,10 +1629,10 @@ .extern FUN_020254F8
.extern FUN_02025520
.extern FUN_02025614
-.extern FUN_02025658
+.extern InitSealsObject
.extern FUN_020256AC
-.extern FUN_020256BC
-.extern FUN_020256D0
+.extern CreateNewSealsObject
+.extern CopySealsObject
.extern FUN_020256DC
.extern FUN_020257C0
.extern FUN_020257C4
@@ -4705,49 +4705,49 @@ .extern FUN_02066818
.extern FUN_02066840
.extern ZeroMonData
-.extern WipeBoxMonDataAndEncrypt
+.extern ZeroBoxMonData
.extern SizeOfStructPokemon
.extern AllocMonZeroed
-.extern TryDecryptMon
-.extern TryEncryptMon
-.extern TryDecryptBoxMon
-.extern TryEncryptBoxMon
+.extern AcquireMonLock
+.extern ReleaseMonLock
+.extern AcquireBoxMonLock
+.extern ReleaseBoxMonLock
.extern CreateMon
.extern CreateMonWithNature
-.extern CreateMonWithNatureGenderLetter
-.extern FUN_02066E74
-.extern FUN_02066EA4
-.extern UpdateMonLevelAndRecalcStats
-.extern CalcMonStatsMaybeEncrypted
-.extern GetMonDataEncrypted
-.extern GetBoxMonDataEncrypted
-.extern SetMonDataEncrypted
-.extern SetBoxMonDataEncrypted
-.extern AddMonPartyStatEncrypted
+.extern CreateMonWithGenderNatureLetter
+.extern GenPersonalityByGenderAndNature
+.extern CreateMonWithFixedIVs
+.extern CalcMonLevelAndStats
+.extern CalcMonStats
+.extern GetMonData
+.extern GetBoxMonData
+.extern SetMonData
+.extern SetBoxMonData
+.extern AddMonData
.extern AllocAndLoadMonPersonal
.extern GetPersonalAttr
.extern FreeMonPersonal
.extern GetMonBaseStat_HandleFormeConversion
.extern GetMonBaseStat
-.extern FUN_02068698
-.extern CalcMonExpToNextLevelEncrypted
-.extern FUN_02068734
-.extern GetMonExpByLevel
-.extern CalcMonLevelEncrypted
-.extern CalcBoxMonLevelEncrypted
+.extern GetPercentProgressTowardsNextLevel
+.extern CalcMonExpToNextLevel
+.extern GetMonBaseExperienceAtCurrentLevel
+.extern GetMonExpBySpeciesAndLevel
+.extern CalcMonLevel
+.extern CalcBoxMonLevel
.extern CalcLevelBySpeciesAndExp
.extern CalcLevelBySpeciesAndExp_PreloadedPersonal
-.extern GetMonNatureEncrypted
-.extern GetBoxMonNatureEncrypted
+.extern GetMonNature
+.extern GetBoxMonNature
.extern GetNatureFromPersonality
-.extern MonApplyFriendshipModEncrypted
-.extern GetMonGenderEncrypted
-.extern GetBoxMonGenderEncrypted
+.extern MonApplyFriendshipMod
+.extern GetMonGender
+.extern GetBoxMonGender
.extern GetGenderBySpeciesAndPersonality
.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
-.extern FUN_02068A80
-.extern FUN_02068AAC
-.extern FUN_02068AD8
+.extern MonIsShiny
+.extern CalcShininessByOtIdAndPersonality
+.extern GenerateShinyPersonality
.extern FUN_02068B68
.extern FUN_02068B70
.extern FUN_02068C00
@@ -4764,7 +4764,7 @@ .extern FUN_020690D4
.extern FUN_020690E4
.extern FUN_020690E8
-.extern FUN_02069168
+.extern GetMonEvolution
.extern ReadFromPersonalPmsNarc
.extern GetEggSpecies
.extern FUN_02069698
@@ -4792,7 +4792,7 @@ .extern FUN_02069E94
.extern FUN_02069EC4
.extern FUN_02069ECC
-.extern GetArceusTypeByPlate
+.extern GetArceusTypeByHeldItemEffect
.extern LoadWotbl_HandleAlternateForme
.extern FUN_02069FB0
.extern FUN_0206A014
@@ -4862,12 +4862,12 @@ .extern FUN_0206B8CC
.extern FUN_0206B900
.extern FUN_0206B938
-.extern FUN_0206B9AC
-.extern FUN_0206B9B0
+.extern GetPartyCount
+.extern GetPartyMonByIndex
.extern FUN_0206B9DC
.extern FUN_0206BA38
.extern FUN_0206BAD0
-.extern FUN_0206BAE4
+.extern PartyHasMon
.extern FUN_0206BB1C
.extern FUN_0206BB28
.extern FUN_0206BB34
diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/include/MI_memory.h index bf6c0ca5..e1e5fe11 100644 --- a/arm9/lib/include/MI_memory.h +++ b/arm9/lib/include/MI_memory.h @@ -22,4 +22,6 @@ static inline void MI_CpuClear32(void *dest, u32 size) MI_CpuFill32(dest, 0, size); } +void MIi_CpuClearFast(u32 data, void *destp, u32 size); + #endif //NITRO_MI_MEMORY_H_ diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 72d4bbbd..a05f9c76 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -3279,7 +3279,7 @@ MOD05_021D8FD0: ; 0x021D8FD0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r6, #0 - bl FUN_0206B9AC + bl GetPartyCount add r7, r0, #0 mov r4, #0 cmp r7, #0 @@ -3287,10 +3287,10 @@ MOD05_021D8FD0: ; 0x021D8FD0 _021D8FF6: add r0, r6, #0 add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 add r2, r5, #0 - bl MonApplyFriendshipModEncrypted + bl MonApplyFriendshipMod add r4, r4, #1 cmp r4, r7 blt _021D8FF6 @@ -27440,12 +27440,12 @@ _021E4980: add r0, r7, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 ldr r0, [sp] mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x55 lsl r1, r1, #2 ldr r1, [r5, r1] @@ -32853,7 +32853,7 @@ MOD05_021E72E8: ; 0x021E72E8 add r4, r1, #0 bl FUN_0206BB1C add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex pop {r4, pc} .balign 4, 0 @@ -43049,7 +43049,7 @@ _021EC46E: bl FUN_02023C7C add r1, r7, #0 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021EC48C add r0, r4, #1 @@ -43081,7 +43081,7 @@ _021EC4AA: bl FUN_02023C7C add r1, r6, #0 add r2, r7, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _021EC4C6 add r0, r4, #0 @@ -43103,7 +43103,7 @@ MOD05_021EC4DC: ; 0x021EC4DC push {r3, lr} mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0206EA98 @@ -43117,7 +43117,7 @@ MOD05_021EC4F0: ; 0x021EC4F0 add r6, r0, #0 str r1, [sp] add r7, r3, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 add r0, r5, #0 bl FUN_02023C80 @@ -43131,7 +43131,7 @@ MOD05_021EC4F0: ; 0x021EC4F0 add r0, r4, #0 mov r1, #0x74 add r2, sp, #0xc - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0 bl FUN_020690E4 bl MOD05_021EC4DC @@ -43142,7 +43142,7 @@ MOD05_021EC4F0: ; 0x021EC4F0 add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 - bl GetMonDataEncrypted + bl GetMonData _021EC544: ldr r1, [sp, #4] add r0, r4, #0 @@ -43155,7 +43155,7 @@ _021EC544: bl FUN_0206B938 ldr r1, _021EC578 ; =0x000001B9 add r0, r6, #0 - bl FUN_0206BAE4 + bl PartyHasMon cmp r0, #0 bne _021EC572 add r0, r7, #0 @@ -43211,13 +43211,13 @@ MOD05_021EC5B0: ; 0x021EC5B0 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _021EC600 add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021EC600 add r0, r5, #0 @@ -43275,7 +43275,7 @@ _021EC64E: blt _021EC616 _021EC658: add r0, r5, #0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add sp, #0xc pop {r4, r5, r6, r7, pc} nop @@ -43304,7 +43304,7 @@ MOD05_021EC668: ; 0x021EC668 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 add r0, r5, #0 @@ -43313,13 +43313,13 @@ MOD05_021EC668: ; 0x021EC668 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x64 beq _021EC6E0 add r0, r4, #0 mov r1, #8 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] add r0, r6, #0 bl FUN_02023C84 @@ -43329,7 +43329,7 @@ MOD05_021EC668: ; 0x021EC668 str r0, [sp, #8] add r0, r4, #0 mov r1, #8 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 bl MOD05_021EC604 _021EC6E0: @@ -43342,13 +43342,13 @@ _021EC6E0: add r2, r0, #0 add r0, r4, #0 mov r1, #0xa9 - bl SetMonDataEncrypted + bl SetMonData _021EC6FA: ldr r0, [sp] add r1, r4, #0 bl FUN_0206B900 add r0, r5, #0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData add r0, r6, #0 mov r1, #0 bl FUN_02023CA0 @@ -43394,16 +43394,16 @@ MOD05_021EC744: ; 0x021EC744 add r0, r4, #0 mov r1, #8 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp] add r0, r0, r5 str r0, [sp] add r0, r4, #0 mov r1, #8 add r2, sp, #0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0 - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel add r4, r0, #0 add r0, r7, #0 bl FreeToHeap @@ -43416,7 +43416,7 @@ MOD05_021EC78C: ; 0x021EC78C add r5, r0, #0 bl FUN_02023C7C add r6, r0, #0 - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 @@ -43525,7 +43525,7 @@ MOD05_021EC864: ; 0x021EC864 bl FUN_02023C7C mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021EC888 add r0, r4, #0 @@ -43564,7 +43564,7 @@ MOD05_021EC8A8: ; 0x021EC8A8 add r5, sp, #4 _021EC8BC: ldr r0, [r5] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 bne _021EC8C8 str r4, [sp] @@ -43581,7 +43581,7 @@ _021EC8D8: ldr r0, [r4] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [r5] cmp r0, #0x84 bne _021EC8EC @@ -43612,7 +43612,7 @@ _021EC90E: add r0, sp, #4 ldr r0, [r0, r1] mov r1, #6 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0xe5 bne _021EC938 bl rand_LC @@ -43652,7 +43652,7 @@ _021EC960: bl MOD05_021EC458 add r1, r5, #0 add r2, r1, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData bl GetNatureFromPersonality mov r7, #0x96 add r6, r0, #0 @@ -43791,62 +43791,62 @@ _021ECA60: ; jump table _021ECA6C: mov r1, #0x46 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x46 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData b _021ECAEE _021ECA82: mov r1, #0x47 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x47 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData b _021ECAEE _021ECA98: mov r1, #0x48 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x48 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData b _021ECAEE _021ECAAE: mov r1, #0x49 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x49 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData b _021ECAEE _021ECAC4: mov r1, #0x4a mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x4a add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData b _021ECAEE _021ECADA: mov r1, #0x4b mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r6] add r0, r4, #0 mov r1, #0x4b add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData _021ECAEE: add r0, r5, #1 lsl r0, r0, #0x18 @@ -43864,7 +43864,7 @@ MOD05_021ECAFC: ; 0x021ECAFC mov r1, #5 add r2, r4, #0 add r6, r4, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, _021ECB60 ; =0x00004E20 @@ -43935,14 +43935,14 @@ MOD05_021ECB6C: ; 0x021ECB6C add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] @@ -43965,13 +43965,13 @@ _021ECBC0: ldr r0, [sp] add r1, r6, #0 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, [sp, #0x20] mov r2, #0 str r0, [r4, r1] ldr r0, [sp, #4] add r1, r6, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, [sp, #0x10] str r0, [r1, #0x20] add r0, r5, #1 @@ -44218,13 +44218,13 @@ _021ECDAE: ldr r0, [sp] mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #6 @@ -44258,12 +44258,12 @@ MOD05_021ECDF4: ; 0x021ECDF4 ldr r0, [sp] mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r5, r0, #0 ldr r0, [sp, #4] mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r5, #0xec beq _021ECE20 cmp r0, #0xec @@ -44301,7 +44301,7 @@ _021ECE56: ldr r0, [r7, r6] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r1, r4, #1 add r2, sp, #0xc strh r0, [r2, r1] @@ -44316,7 +44316,7 @@ _021ECE56: b _021ECE8C _021ECE7A: ldr r0, [r7, r6] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 bne _021ECE8C mov r0, #1 @@ -44377,7 +44377,7 @@ _021ECEDE: lsl r1, r0, #2 add r0, sp, #4 ldr r0, [r0, r1] - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender cmp r0, #1 beq _021ECF02 ldrb r1, [r5, #1] @@ -44424,16 +44424,16 @@ MOD05_021ECF14: ; 0x021ECF14 add r0, r5, #0 mov r1, #0x9a add r2, sp, #0x14 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x10 add r0, r5, #0 mov r1, #0x9b add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r0, sp, #0x30 ldrb r0, [r0, #8] cmp r0, #0 @@ -44441,7 +44441,7 @@ MOD05_021ECF14: ; 0x021ECF14 add r0, r5, #0 mov r1, #0x97 add r2, sp, #0x38 - bl SetMonDataEncrypted + bl SetMonData _021ECF7E: add r2, sp, #0x10 mov r1, #1 @@ -44450,7 +44450,7 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x4c add r2, #1 - bl SetMonDataEncrypted + bl SetMonData ldr r0, _021ED008 ; =0x000001EE mov r1, #4 bl FUN_0200AA50 @@ -44458,7 +44458,7 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x76 add r2, r6, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 bl FUN_02021A20 ldr r0, [sp, #0x40] @@ -44477,15 +44477,15 @@ _021ECF7E: add r0, r5, #0 mov r1, #0x90 add r2, r6, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 mov r1, #7 add r2, sp, #0x1c - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 mov r1, #0x9c add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 bl FUN_02021A20 _021ECFEE: @@ -44526,7 +44526,7 @@ MOD05_021ED00C: ; 0x021ED00C beq _021ED05E add r0, r6, #0 add r1, r4, #0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED05E mov r5, #0 @@ -44536,7 +44536,7 @@ _021ED044: add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED05E add r5, r5, #1 @@ -44562,20 +44562,20 @@ _021ED05E: add r0, r7, #0 mov r1, #0x9a add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0 mov r1, #9 add r2, sp, #0x14 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x14 add r0, r7, #0 mov r1, #0x9b add r2, #1 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0 mov r1, #0x70 add r2, sp, #0x30 - bl SetMonDataEncrypted + bl SetMonData ldr r0, _021ED0C8 ; =0x000001EE mov r1, #4 bl FUN_0200AA50 @@ -44583,7 +44583,7 @@ _021ED05E: add r0, r7, #0 mov r1, #0x76 add r2, r4, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 bl FUN_02021A20 add sp, #0x18 @@ -44617,7 +44617,7 @@ MOD05_021ED0CC: ; 0x021ED0CC bl MOD05_021EC458 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -44664,7 +44664,7 @@ _021ED168: add r0, r4, #0 mov r1, #0x4c add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #4] add r1, r4, #0 bl FUN_0206B900 @@ -44679,7 +44679,7 @@ _021ED168: MOD05_021ED190: ; 0x021ED190 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 - bl FUN_0206B9AC + bl GetPartyCount add r6, r0, #0 mov r4, #0 cmp r6, #0 @@ -44688,18 +44688,18 @@ MOD05_021ED190: ; 0x021ED190 _021ED1A2: add r0, r5, #0 add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r7, #0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _021ED1D6 add r0, r5, #0 add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x28 @@ -44765,18 +44765,18 @@ _021ED228: ldr r0, [r5] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4] ldr r0, [r5] mov r1, #7 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, [sp] str r0, [r1] mov r1, #0 ldr r0, [r5] add r2, r1, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r0, #0 ldrh r0, [r4] bl GetGenderBySpeciesAndPersonality @@ -44956,7 +44956,7 @@ _021ED38E: ldr r0, [r5] mov r1, #0xab mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021ED3AC ldr r0, [sp] @@ -45017,29 +45017,29 @@ _021ED3F8: add r6, r0, #0 add r0, r7, #0 mov r5, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 bls _021ED490 _021ED430: add r0, r7, #0 add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 add r4, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021ED484 add r0, r4, #0 mov r1, #3 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _021ED484 add r0, r4, #0 mov r1, #9 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x10] cmp r0, #0 beq _021ED47E @@ -45055,7 +45055,7 @@ _021ED472: add r0, r4, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData b _021ED484 _021ED47E: add sp, #0x14 @@ -45064,7 +45064,7 @@ _021ED47E: _021ED484: add r0, r7, #0 add r5, r5, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r5, r0 blo _021ED430 _021ED490: @@ -45078,7 +45078,7 @@ _021ED498: .word 0x0000FFFF MOD05_021ED49C: ; 0x021ED49C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 - bl FUN_0206B9AC + bl GetPartyCount add r6, r0, #0 mov r5, #0 cmp r6, #0 @@ -45086,17 +45086,17 @@ MOD05_021ED49C: ; 0x021ED49C _021ED4AC: add r0, r7, #0 add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 add r4, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021ED4D4 add r0, r4, #0 mov r1, #9 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _021ED4D4 add r0, r4, #0 @@ -45120,7 +45120,7 @@ MOD05_021ED4E0: ; 0x021ED4E0 ldr r0, [sp] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021ED50E ldr r2, [sp] @@ -45135,7 +45135,7 @@ _021ED50E: ldr r0, [sp, #4] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021ED526 ldr r2, [sp, #4] @@ -45186,7 +45186,7 @@ MOD05_021ED52C: ; 0x021ED52C add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #2 @@ -45194,7 +45194,7 @@ MOD05_021ED52C: ; 0x021ED52C add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1d @@ -45205,7 +45205,7 @@ _021ED5A4: add r0, r5, #0 mov r1, #0x4d mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _021ED5B4 mov r4, #2 @@ -45222,7 +45222,7 @@ _021ED5B4: MOD05_021ED5C4: ; 0x021ED5C4 push {r3, r4, r5, lr} add r5, r2, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 bl FUN_020690E4 add r2, r0, #0 @@ -45232,7 +45232,7 @@ MOD05_021ED5C4: ; 0x021ED5C4 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, r4, r5, pc} @@ -45316,7 +45316,7 @@ MOD05_021ED650: ; 0x021ED650 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] @@ -45327,14 +45327,14 @@ _021ED67C: add r0, r4, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r1, r5, #1 strh r0, [r7, r1] add r1, r5, #0 add r0, r4, #0 add r1, #0x3a mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x30 strb r0, [r1, r5] add r0, r5, #1 @@ -45345,7 +45345,7 @@ _021ED67C: mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 mov r5, #0 _021ED6B4: @@ -45353,7 +45353,7 @@ _021ED6B4: add r0, r4, #0 add r1, #0x46 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x24 add r1, #2 strb r0, [r1, r5] @@ -45365,52 +45365,52 @@ _021ED6B4: add r0, r4, #0 mov r1, #0xc mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #9] add r0, r4, #0 mov r1, #0x79 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #8] add r0, r4, #0 mov r1, #0xb mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #7] add r0, r4, #0 mov r1, #0x99 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #0xa] add r0, r4, #0 mov r1, #0x6e mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #5] ldr r2, [sp, #0x10] add r0, r4, #0 mov r1, #0x90 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0 mov r1, #0x9c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #3] add r0, r4, #0 mov r1, #7 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x2c] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #4] ldr r1, _021ED93C ; =0x000001EA @@ -45420,7 +45420,7 @@ _021ED6B4: add r0, r4, #0 mov r1, #0x97 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0 mov r0, #2 mov r1, #1 @@ -45429,7 +45429,7 @@ _021ED6B4: bne _021ED788 ldr r0, [sp, #0x2c] add r1, r7, #0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0 beq _021ED788 _021ED774: @@ -45438,7 +45438,7 @@ _021ED774: add r7, r0, #0 ldr r0, [sp, #0x2c] add r1, r7, #0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #0 bne _021ED774 _021ED788: @@ -45460,13 +45460,13 @@ _021ED7A2: add r0, r6, #0 add r1, #0x36 add r2, r7, r2 - bl SetMonDataEncrypted + bl SetMonData add r1, r5, #0 add r2, sp, #0x30 add r0, r6, #0 add r1, #0x3a add r2, r2, r5 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -45480,7 +45480,7 @@ _021ED7CE: add r0, r6, #0 add r1, #0x46 add r2, r7, r5 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -45490,16 +45490,16 @@ _021ED7CE: add r0, r6, #0 mov r1, #0xc add r2, #1 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 mov r1, #0x79 add r2, sp, #0x20 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0xb add r2, #3 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x1c mov r1, #0x78 add r0, sp, #0x18 @@ -45507,118 +45507,118 @@ _021ED7CE: add r0, r6, #0 mov r1, #9 add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x20 add r0, r6, #0 mov r1, #0x99 add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x1c add r0, r6, #0 mov r1, #0x6e add r2, #1 - bl SetMonDataEncrypted + bl SetMonData ldr r2, [sp, #0x10] add r0, r6, #0 mov r1, #0x90 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x9c add r2, #3 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 mov r1, #7 add r2, sp, #0x2c - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 mov r1, #0x70 add r2, sp, #0x1c - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #0x97 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x91 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x92 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x93 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x97 add r2, sp, #0x24 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x91 add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x92 add r2, #1 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 mov r1, #0x93 add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #0x98 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strh r0, [r1, #0xc] add r0, r4, #0 mov r1, #0x94 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #2] add r0, r4, #0 mov r1, #0x95 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1, #1] add r0, r4, #0 mov r1, #0x96 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x18 strb r0, [r1] add r0, r6, #0 mov r1, #0x98 add r2, sp, #0x24 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x94 add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0x18 add r0, r6, #0 mov r1, #0x95 add r2, #1 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 mov r1, #0x96 add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 add r1, r4, #0 bl FUN_02069B88 @@ -45649,11 +45649,11 @@ MOD05_021ED940: ; 0x021ED940 add r0, r4, #0 mov r1, #0x4c add r2, #3 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #5 add r2, r5, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r5, #0 @@ -45662,23 +45662,23 @@ MOD05_021ED940: ; 0x021ED940 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0 add r0, r4, #0 mov r1, #0x4d add r2, #2 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #0 add r0, r4, #0 mov r1, #0x9a add r2, #1 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #0x9b add r2, sp, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add sp, #0x1c pop {r4, r5, pc} .balign 4, 0 @@ -58115,13 +58115,13 @@ MOD05_021F38CC: ; 0x021F38CC mov r1, #0 add r2, r1, #0 add r5, r0, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0 mov r1, #0x46 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58130,7 +58130,7 @@ MOD05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x47 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58139,7 +58139,7 @@ MOD05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x48 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58148,7 +58148,7 @@ MOD05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x49 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58156,7 +58156,7 @@ MOD05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x4a mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58164,7 +58164,7 @@ MOD05_021F38CC: ; 0x021F38CC add r0, r5, #0 mov r1, #0x4b mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0xf and r0, r1 lsl r0, r0, #0x10 @@ -58275,11 +58275,11 @@ MOD05_021F3A18: ; 0x021F3A18 add r5, r1, #0 bl FUN_0206BB1C add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 str r0, [sp] - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r0, [sp] @@ -58344,7 +58344,7 @@ MOD05_021F3AB4: ; 0x021F3AB4 add r5, r1, #0 bl FUN_0206BB1C add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl MOD05_021F38CC add r1, sp, #0 strh r0, [r1] @@ -58440,11 +58440,11 @@ MOD05_021F3B7C: ; 0x021F3B7C add r7, r1, #0 bl FUN_0206BB1C add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 @@ -62943,7 +62943,7 @@ _021F5CBA: bne _021F5D10 ldr r0, [r0, #8] mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r2, [r5, #4] add r3, r0, #0 lsl r2, r2, #0x10 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 2f478ef3..a7f8e367 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -4786,7 +4786,7 @@ _0223BA42: add r4, r0, #0 add r0, r7, #0 mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x20] ldr r1, [sp, #0x20] add r0, r5, #0 @@ -4804,7 +4804,7 @@ _0223BA42: str r1, [sp, #0x34] mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x24 strb r0, [r1, #0x18] _0223BA8C: @@ -5130,7 +5130,7 @@ _0223BD2E: ldr r0, [r0, #0xc] bl FUN_0206BB1C mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x14] ldr r0, [sp, #8] ldr r1, [sp, #0x14] @@ -5312,7 +5312,7 @@ _0223BEA4: add r4, r0, #0 add r0, r6, #0 mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x18] ldr r1, [sp, #0x18] add r0, r5, #0 @@ -5568,7 +5568,7 @@ _0223C0CE: str r0, [sp, #0x14] add r0, r6, #0 mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x1c] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] @@ -5586,7 +5586,7 @@ _0223C0CE: str r1, [sp, #0x2c] mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x20 strb r0, [r1, #0x14] _0223C118: @@ -6400,7 +6400,7 @@ MOD06_0223C738: ; 0x0223C738 add r4, r1, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 cmp r1, #0xe0 @@ -6464,7 +6464,7 @@ _0223C7AC: mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x19 bl _u32_div_f lsl r0, r1, #0x18 @@ -6588,7 +6588,7 @@ _0223C8A6: ldr r0, [sp, #0x44] mov r1, #0x6f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x24] @@ -6607,12 +6607,12 @@ _0223C8D2: cmp r4, #0 bne _0223C8E0 ldr r0, [sp, #0x44] - bl GetMonNatureEncrypted + bl GetMonNature str r0, [sp, #0x20] mov r7, #1 _0223C8E0: add r0, r5, #0 - bl FUN_02068AD8 + bl GenerateShinyPersonality add r4, r0, #0 cmp r7, #0 beq _0223C92E @@ -6632,7 +6632,7 @@ _0223C904: cmp r7, r0 bne _0223C92E add r0, r5, #0 - bl FUN_02068AD8 + bl GenerateShinyPersonality add r4, r0, #0 b _0223C8EC _0223C914: @@ -6644,7 +6644,7 @@ _0223C914: cmp r0, r1 beq _0223C92E add r0, r5, #0 - bl FUN_02068AD8 + bl GenerateShinyPersonality add r4, r0, #0 b _0223C8EC _0223C92E: @@ -6722,7 +6722,7 @@ _0223C9BE: ldr r0, [sp, #0x28] mov r1, #0x6f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #1 @@ -6748,11 +6748,11 @@ _0223C9E4: add r0, r4, #0 add r1, r7, #0 mov r3, #0x20 - bl CreateMonWithNatureGenderLetter + bl CreateMonWithGenderNatureLetter add r0, r4, #0 mov r1, #7 add r2, r5, #0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] add r1, r5, #0 @@ -6779,7 +6779,7 @@ _0223CA28: add r0, r4, #0 mov r1, #7 add r2, r5, #0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] add r1, r5, #0 @@ -7118,7 +7118,7 @@ MOD06_0223CCDC: ; 0x0223CCDC ldr r0, [r5, #0xc] bl FUN_0206BB1C mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0xc] ldr r1, [sp, #0xc] add r0, r5, #0 @@ -7194,7 +7194,7 @@ MOD06_0223CD7C: ; 0x0223CD7C add r6, r3, #0 bl FUN_0206BB1C mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 add r0, r5, #0 add r1, r4, #0 @@ -7488,7 +7488,7 @@ _0223CF96: add r0, r1, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #5 @@ -7622,19 +7622,19 @@ MOD06_0223D044: ; 0x0223D044 add r0, r4, #0 lsr r1, r1, #0x10 add r2, r7, #0 - bl FUN_02066EA4 + bl CreateMonWithFixedIVs add r0, r4, #0 mov r1, #7 add r2, sp, #0x30 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #0x9f add r2, sp, #0x14 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 mov r1, #0xa2 add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r6, #8] add r1, r4, #0 bl FUN_0206B900 @@ -7782,7 +7782,7 @@ _0223D1DA: add r0, r6, #0 mov r1, #5 add r2, r4, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0223D270 ; =0x000001A6 cmp r0, r1 bne _0223D208 @@ -7839,7 +7839,7 @@ _0223D24E: add r0, r6, #0 mov r1, #0x70 add r2, sp, #8 - bl SetMonDataEncrypted + bl SetMonData _0223D25C: ldr r0, [sp] add r1, r6, #0 @@ -7919,14 +7919,14 @@ MOD06_0223D2DC: ; 0x0223D2DC mov r1, #0x4c mov r2, #0 add r4, r3, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0223D302 mov r2, #0 add r0, r7, #0 mov r1, #0xa strb r2, [r4, #0xd] - bl GetMonDataEncrypted + bl GetMonData b _0223D308 _0223D302: mov r0, #1 @@ -19735,7 +19735,7 @@ MOD06_022432E4: ; 0x022432E4 add r0, r1, #0 bl FUN_0206BB1C str r0, [sp, #4] - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #8] @@ -19754,23 +19754,23 @@ _02243308: _02243312: ldr r0, [sp, #4] add r1, r7, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 str r0, [sp, #0xc] - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r0, [sp, #0xc] mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0xc] mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0224336E add r0, r5, #0 @@ -20281,18 +20281,18 @@ _02243726: add r1, #0x2a ldrb r1, [r1] ldr r0, [sp, #8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex lsl r1, r4, #1 add r6, r5, r1 add r7, r0, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x2e] add r0, r7, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r6, #0x36] add r0, r4, #1 lsl r0, r0, #0x10 @@ -20333,17 +20333,17 @@ _0224379C: add r1, r1, r5 add r1, #0x2a ldrb r1, [r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #8] lsl r6, r5, #1 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, r6] ldr r0, [sp, #8] mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r7, r6] cmp r5, #0 beq _022437FA @@ -20579,7 +20579,7 @@ _0224394A: bne _0224396C add r5, #0x2a ldrb r1, [r5] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0 add r0, r4, #0 add r1, r6, #0 @@ -20589,7 +20589,7 @@ _0224394A: _0224396C: add r5, #0x2a ldrb r1, [r5] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r2, r0, #0 add r0, r4, #0 add r1, r6, #0 @@ -21453,17 +21453,17 @@ _02243FFA: add r1, #0x2a ldrb r1, [r1] ldr r0, [sp] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r6, #0 mov r2, #0 str r0, [sp, #4] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _02244024 ldr r0, [sp, #4] add r1, r6, #0 add r2, sp, #8 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 @@ -21522,7 +21522,7 @@ MOD06_0224406C: ; 0x0224406C add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] lsl r0, r0, #0x10 ldrh r1, [r1] @@ -21537,7 +21537,7 @@ MOD06_0224406C: ; 0x0224406C strh r1, [r0] add r0, r5, #0 mov r1, #0x70 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] lsl r0, r0, #0x10 ldrh r2, [r1] @@ -21552,7 +21552,7 @@ MOD06_0224406C: ; 0x0224406C strh r1, [r0] add r0, r5, #0 mov r1, #6 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] mov r4, #0 strh r0, [r1, #2] @@ -21567,13 +21567,13 @@ _022440D0: add r0, r5, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r4, #0 strh r0, [r6, #4] add r0, r5, #0 add r1, #0x3e mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #4] lsl r0, r7 ldrb r1, [r1] @@ -21588,25 +21588,25 @@ _022440D0: add r0, r5, #0 mov r1, #0xc mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] mov r2, #0 strb r0, [r1, #0x1f] add r0, r5, #0 mov r1, #7 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] str r0, [r1, #0xc] mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] mov r2, #0 str r0, [r1, #0x10] add r0, r5, #0 mov r1, #0xae - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] mov r4, #0 str r0, [r1, #0x14] @@ -21616,7 +21616,7 @@ _0224413C: add r0, r5, #0 add r1, #0xd add r2, r6, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] add r1, r1, r4 add r4, r4, #1 @@ -21626,14 +21626,14 @@ _0224413C: add r0, r5, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] mov r2, #0 add r1, #0x20 strb r0, [r1] add r0, r5, #0 mov r1, #9 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp] ldr r2, [sp] add r1, #0x21 @@ -21642,7 +21642,7 @@ _0224413C: add r0, r5, #0 mov r1, #0x74 str r2, [sp] - bl GetMonDataEncrypted + bl GetMonData add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop @@ -21673,7 +21673,7 @@ _022441B8: add r1, #0x2a ldrb r1, [r1] add r0, r7, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 add r0, r5, #0 bl MOD06_0224406C @@ -21909,7 +21909,7 @@ MOD06_02244388: ; 0x02244388 lsr r1, r1, #0x15 mov r2, #0x32 and r3, r4 - bl FUN_02066EA4 + bl CreateMonWithFixedIVs ldrh r0, [r6] add r2, sp, #8 add r2, #1 @@ -21919,11 +21919,11 @@ MOD06_02244388: ; 0x02244388 strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x70 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 mov r1, #6 add r2, r6, #2 - bl SetMonDataEncrypted + bl SetMonData mov r4, #0 str r6, [sp, #4] add r7, r4, #0 @@ -21937,7 +21937,7 @@ _022443D4: add r1, r4, #0 add r0, r5, #0 add r1, #0x36 - bl SetMonDataEncrypted + bl SetMonData ldrb r0, [r6, #0x1e] add r2, sp, #8 add r2, #1 @@ -21950,19 +21950,19 @@ _022443D4: add r1, r4, #0 add r0, r5, #0 add r1, #0x3e - bl SetMonDataEncrypted + bl SetMonData add r1, r4, #0 add r0, r5, #0 add r1, #0x42 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #8 strb r0, [r1] add r1, r4, #0 add r0, r5, #0 add r1, #0x3a add r2, sp, #8 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #4] add r4, r4, #1 add r0, r0, #2 @@ -21975,7 +21975,7 @@ _022443D4: str r0, [sp, #0xc] add r0, r5, #0 add r2, sp, #0xc - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x18] add r0, sp, #8 @@ -21983,7 +21983,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xd - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x19] add r0, sp, #8 @@ -21991,7 +21991,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xe - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x1a] add r0, sp, #8 @@ -21999,7 +21999,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0xf - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x1b] add r0, sp, #8 @@ -22007,7 +22007,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x10 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x1c] add r0, sp, #8 @@ -22015,7 +22015,7 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x11 - bl SetMonDataEncrypted + bl SetMonData add r2, sp, #8 ldrb r1, [r6, #0x1d] add r0, sp, #8 @@ -22023,17 +22023,17 @@ _022443D4: strb r1, [r0, #1] add r0, r5, #0 mov r1, #0x12 - bl SetMonDataEncrypted + bl SetMonData add r2, r6, #0 add r0, r5, #0 mov r1, #0xa add r2, #0x20 - bl SetMonDataEncrypted + bl SetMonData add r2, r6, #0 add r0, r5, #0 mov r1, #9 add r2, #0x21 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r6, #0x14] lsl r0, r0, #1 lsr r0, r0, #0x1f @@ -22052,7 +22052,7 @@ _022443D4: add r0, r5, #0 mov r1, #0x76 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0 bl FUN_02021A20 add r0, r4, #0 @@ -22063,15 +22063,15 @@ _022444FC: add r0, r5, #0 mov r1, #0x74 add r2, #0x22 - bl SetMonDataEncrypted + bl SetMonData _02244508: add r6, #0x1f add r0, r5, #0 mov r1, #0xc add r2, r6, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop @@ -22151,28 +22151,28 @@ _022445A6: add r1, #0x2a ldrb r1, [r1] ldr r0, [sp, #4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r4, #0 bl FUN_02069B88 add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0x32 bls _022445E8 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x32 - bl GetMonExpByLevel + bl GetMonExpBySpeciesAndLevel str r0, [sp, #8] add r0, r4, #0 mov r1, #8 add r2, sp, #8 - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats _022445E8: add r0, r7, #0 add r1, r4, #0 @@ -22345,10 +22345,10 @@ _0224471C: add r1, #0x2a ldrb r1, [r1] add r0, r7, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x21 lsl r1, r1, #6 strh r0, [r5, r1] @@ -22587,7 +22587,7 @@ _022448EC: beq _0224491A ldr r0, [sp] add r1, r7, #0 - bl FUN_02068AAC + bl CalcShininessByOtIdAndPersonality cmp r0, #1 beq _022448EC _0224491A: @@ -26833,7 +26833,7 @@ MOD06_0224690C: ; 0x0224690C str r0, [r4] ldr r0, [r4, #0x5c] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005578 @@ -28745,7 +28745,7 @@ _022477A8: mov r1, #0 add r0, r6, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp] mov r0, #0 str r0, [sp, #4] @@ -30761,7 +30761,7 @@ MOD06_02248724: ; 0x02248724 ldr r0, [r1, #8] str r1, [sp] mov r1, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0 ldr r0, [r5, #0xc] bl FUN_0202A9B0 @@ -30769,7 +30769,7 @@ MOD06_02248724: ; 0x02248724 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 add r0, r7, #0 bl MOD06_02248810 @@ -30779,13 +30779,13 @@ MOD06_02248724: ; 0x02248724 add r0, r6, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0 mov r1, #0x9f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp] @@ -31014,11 +31014,11 @@ MOD06_0224891C: ; 0x0224891C add r4, r3, #0 bl FUN_0206BB1C add r1, r7, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa0 mov r2, #0 add r7, r0, #0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0 ldr r0, [r5, #0x10] str r0, [sp] @@ -31114,7 +31114,7 @@ MOD06_022489D4: ; 0x022489D4 add r0, r5, #0 mov r1, #0x76 add r2, r7, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r7, #0 bl FUN_02021A20 mov r1, #1 @@ -31123,66 +31123,66 @@ MOD06_022489D4: ; 0x022489D4 add r0, r5, #0 mov r1, #0x4d add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData add r0, r5, #0 mov r1, #0x46 add r2, r4, #4 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x47 add r2, #8 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x48 add r2, #0xc - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x49 add r2, #0x10 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x4a add r2, #0x14 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x4b add r2, #0x18 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x13 add r2, #0x24 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x14 add r2, #0x28 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x15 add r2, #0x2c - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x16 add r2, #0x30 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #0x17 add r2, #0x34 - bl SetMonDataEncrypted + bl SetMonData add r2, r4, #0 add r0, r5, #0 mov r1, #6 add r2, #0x3c - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x28] add r1, r6, #4 bl MOD06_022489AC @@ -31190,19 +31190,19 @@ MOD06_022489D4: ; 0x022489D4 add r0, r5, #0 mov r1, #0x90 add r2, r6, #0 - bl SetMonDataEncrypted + bl SetMonData add r0, r6, #0 bl FUN_02021A20 add r2, r4, #0 add r0, r5, #0 mov r1, #0x9c add r2, #0x40 - bl SetMonDataEncrypted + bl SetMonData add r4, #0x48 add r0, r5, #0 mov r1, #0xc add r2, r4, #0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x2c] bl FUN_02034824 add r3, r0, #0 @@ -31213,9 +31213,9 @@ MOD06_022489D4: ; 0x022489D4 mov r2, #1 bl FUN_0208089C add r0, r5, #0 - bl UpdateMonLevelAndRecalcStats + bl CalcMonLevelAndStats add r0, r5, #0 - bl FUN_02068A80 + bl MonIsShiny cmp r0, #0 beq _02248B08 bl ErrorHandling diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index cb716405..c9c4dd87 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -2305,7 +2305,7 @@ MOD07_02213104: ; 0x02213104 str r1, [sp] str r2, [sp, #4] add r7, r3, #0 - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] @@ -2329,17 +2329,17 @@ _0221312A: bls _022131B0 ldr r0, [sp] add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _022131B0 add r0, r7, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _022131B0 add r0, r7, #0 @@ -3643,7 +3643,7 @@ MOD07_02213BEC: ; 0x02213BEC add r0, r1, #0 str r1, [sp] add r5, r2, #0 - bl FUN_0206B9AC + bl GetPartyCount lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] @@ -3672,7 +3672,7 @@ _02213C0C: _02213C2E: ldr r0, [sp] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x18 add r2, r6, #0 mul r2, r1 @@ -3686,7 +3686,7 @@ _02213C2E: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x86 lsl r1, r1, #2 strh r0, [r7, r1] @@ -3702,52 +3702,52 @@ _02213C2E: add r5, r0, r1 add r0, r4, #0 mov r1, #0x4c - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02213D18 ; =0x00000223 mov r2, #0 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0xa2 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02213D1C ; =0x0000021A mov r2, #0 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa3 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x87 lsl r1, r1, #2 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x22 lsl r1, r1, #4 strb r0, [r5, r1] add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02213D20 ; =0x0000021E mov r2, #0 strh r0, [r5, r1] add r0, r4, #0 mov r1, #0xa1 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x89 lsl r1, r1, #2 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _02213D24 ; =0x00000225 mov r2, #0 strb r0, [r5, r1] add r0, r4, #0 mov r1, #0xaf - bl GetMonDataEncrypted + bl GetMonData cmp r0, #1 bne _02213CE8 mov r1, #0 @@ -3758,7 +3758,7 @@ _02213CEA: ldr r0, _02213D28 ; =0x00000222 strb r1, [r7, r0] add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender ldr r1, _02213D2C ; =0x00000221 strb r0, [r5, r1] add r0, r4, #0 @@ -4488,13 +4488,13 @@ MOD07_0221428C: ; 0x0221428C bhs _022142B4 ldr r0, [r0, #4] add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x18] b _022142BE _022142B4: ldr r0, [r0, #0xc] sub r1, r4, #3 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x18] _022142BE: add r1, r4, #0 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 6c672cb0..e09211f8 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -45038,7 +45038,7 @@ MOD08_02228244: ; 0x02228244 str r0, [r2]
ldr r0, [r4, #0xc]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x9c
str r0, [r1]
@@ -45067,7 +45067,7 @@ _02228272: _02228290:
ldr r0, [r4, #0xc]
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, #0x98
str r0, [r4]
pop {r4, pc}
@@ -45080,7 +45080,7 @@ _0222829E: add r4, #0xa0
mov r1, #0xaa
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, pc}
thumb_func_start MOD08_022282B4
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 9ac54172..50557058 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -576,7 +576,7 @@ _022122BA: add r0, r5, r1
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x20]
ldrb r1, [r4, #0x11]
mov r0, #0x50
@@ -1630,7 +1630,7 @@ _02212B0A: ldr r0, [r0, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #4
strh r0, [r4, r1]
mov r2, #2
@@ -1686,7 +1686,7 @@ _02212BAA: add r0, r4, r0
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02212C84 ; =0x0000207E
mov r2, #4
strh r0, [r4, r1]
@@ -1841,7 +1841,7 @@ _02212CD0: add r1, r7, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x82
lsl r1, r1, #6
strh r0, [r4, r1]
@@ -2423,7 +2423,7 @@ MOD09_022131C8: ; 0x022131C8 ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _022131E2
b _02213476
@@ -2437,11 +2437,11 @@ _022131E2: ldr r0, [r0]
ldr r1, [sp, #8]
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #4]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #8]
ldrh r0, [r4, #8]
cmp r0, #0
@@ -2457,54 +2457,54 @@ _0221320C: add r4, r0, r5
ldr r0, [r4, #4]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xa]
ldr r0, [r4, #4]
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
ldr r0, [r4, #4]
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
ldr r0, [r4, #4]
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x12]
ldr r0, [r4, #4]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x14]
ldr r0, [r4, #4]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x16]
ldr r0, [r4, #4]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x18]
ldr r0, [r4, #4]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
strb r0, [r4, #0x19]
ldr r0, [r4, #4]
add r6, #0x1a
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r6, r5]
mov r2, #0x7f
lsl r0, r0, #0x18
@@ -2517,7 +2517,7 @@ _0221320C: ldr r0, [r4, #4]
mov r1, #0xaf
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
ldrb r1, [r6, r5]
bne _022132BC
@@ -2535,7 +2535,7 @@ _022132C2: add r6, r0, #0
ldr r0, [r4, #4]
add r6, #0x1b
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r6, r5]
mov r2, #7
bic r1, r2
@@ -2557,7 +2557,7 @@ _022132C2: ldr r0, [r4, #4]
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1f
@@ -2570,17 +2570,17 @@ _022132C2: ldr r0, [r4, #4]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1c]
ldr r0, [r4, #4]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1e]
ldr r0, [r4, #4]
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
str r0, [r4, #0x20]
add r6, #0x1a
@@ -2588,7 +2588,7 @@ _022132C2: ldrh r0, [r4, #8]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r4, #0x24]
ldrb r0, [r6, r5]
lsl r0, r0, #0x19
@@ -2604,55 +2604,55 @@ _0221335A: add r1, r1, #1
add r4, r0, r5
ldrh r0, [r4, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_02213366:
str r0, [r4, #0x28]
ldr r0, [r4, #4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2c
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2d
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2e
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2f
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x30
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x31
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, #0x32
strb r0, [r4]
ldr r1, [sp]
@@ -2670,7 +2670,7 @@ _022133E4: ldr r0, [r6, #4]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
strh r0, [r7, r1]
add r0, r1, #0
@@ -2681,13 +2681,13 @@ _022133E4: ldr r0, [r6, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #2]
add r1, r4, #0
ldr r0, [r6, #4]
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #3]
ldrh r0, [r5]
ldrb r1, [r5, #3]
@@ -2724,7 +2724,7 @@ _0221345A: ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #8]
cmp r1, r0
bge _02213476
@@ -6734,7 +6734,7 @@ MOD09_022155D0: ; 0x022155D0 ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02215656
add r0, r4, #0
@@ -6788,7 +6788,7 @@ _0221563E: add r7, #0x50
ldr r0, [r0]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022155EE
_02215656:
@@ -8336,7 +8336,7 @@ MOD09_02216378: ; 0x02216378 mov r1, #0xa2
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
@@ -10495,7 +10495,7 @@ MOD09_02217580: ; 0x02217580 ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022175D8
add r7, r5, #4
@@ -10528,7 +10528,7 @@ _022175C6: lsr r4, r0, #0x10
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02217594
_022175D8:
@@ -13506,7 +13506,7 @@ _02218DF2: bl MOD11_02230290
add r4, r0, #0
add r0, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02218E32
add r0, r4, #0
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index dd2316a4..5b67e5a9 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -213,7 +213,7 @@ _0222D752: bl FUN_0201681C
ldr r0, [r5, #4]
ldr r1, [sp, #0x24]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
mov r0, #0x5a
lsl r0, r0, #2
@@ -1141,7 +1141,7 @@ MOD11_0222DFA4: ; 0x0222DFA4 beq _0222DFE4
ldr r0, [r4, #0x6c]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl MOD11_02230FA8
@@ -1685,7 +1685,7 @@ _0222E4AC: bl MOD11_02230014
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r1, [r6, #0x34]
add r0, r5, #0
@@ -2014,35 +2014,35 @@ _0222E734: _0222E760:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E7AA
_0222E76C:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E79E
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E79E
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E7AA
_0222E79E:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E76C
_0222E7AA:
@@ -2119,35 +2119,35 @@ _0222E810: _0222E83C:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E886
_0222E848:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E87A
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E87A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E886
_0222E87A:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E848
_0222E886:
@@ -2234,13 +2234,13 @@ _0222E920: add r7, r4, r0
ldr r0, [r7, #0x68]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E9B8
_0222E938:
ldr r0, [r7, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x14]
add r5, r0, #0
cmp r1, #1
@@ -2255,44 +2255,44 @@ _0222E938: add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E9AC
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9AC
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9B8
b _0222E9AC
_0222E984:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222E9AC
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9AC
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222E9B8
_0222E9AC:
ldr r0, [r7, #0x68]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0222E938
_0222E9B8:
@@ -2345,35 +2345,35 @@ _0222EA0C: bl FUN_0206BAD0
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EA60
_0222EA22:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EA54
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EA54
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EA60
_0222EA54:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EA22
_0222EA60:
@@ -2457,19 +2457,19 @@ _0222EAEE: bne _0222EB2E
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB56
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
ldr r0, [sp, #0x38]
@@ -2479,19 +2479,19 @@ _0222EAEE: _0222EB2E:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EB56
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB56
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EB64
_0222EB56:
@@ -2572,35 +2572,35 @@ _0222EBC6: _0222EBEA:
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EC34
_0222EBF6:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EC28
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EC28
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EC34
_0222EC28:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EBF6
_0222EC34:
@@ -2686,13 +2686,13 @@ _0222ECC8: add r7, r4, r0
ldr r0, [r7, #0x68]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222ED60
_0222ECE0:
ldr r0, [r7, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x20]
add r5, r0, #0
cmp r1, #1
@@ -2707,44 +2707,44 @@ _0222ECE0: add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222ED54
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED54
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED60
b _0222ED54
_0222ED2C:
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222ED54
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED54
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ED60
_0222ED54:
ldr r0, [r7, #0x68]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0222ECE0
_0222ED60:
@@ -2800,35 +2800,35 @@ _0222EDBC: bl FUN_0206BAD0
ldr r0, [r7, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EE10
_0222EDD2:
ldr r0, [r7, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222EE04
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EE04
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222EE10
_0222EE04:
ldr r0, [r7, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EDD2
_0222EE10:
@@ -2861,11 +2861,11 @@ _0222EE3E: beq _0222EE5A
ldr r0, [r4, #0x6c]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r4, #0
mov r1, #0x8f
add r2, #0xf4
- bl GetMonDataEncrypted
+ bl GetMonData
_0222EE5A:
ldr r1, [r4, #0x2c]
mov r0, #1
@@ -2885,7 +2885,7 @@ _0222EE5A: _0222EE7C:
ldr r0, [r4, #0x68]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EEAC
ldr r6, _0222EEEC ; =0x00002404
@@ -2893,21 +2893,21 @@ _0222EE7C: _0222EE8C:
ldr r0, [r4, #0x68]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, r6]
add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x68]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EE8C
_0222EEAC:
ldr r0, [r4, #0x70]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222EEDC
ldr r6, _0222EEEC ; =0x00002404
@@ -2915,15 +2915,15 @@ _0222EEAC: _0222EEBC:
ldr r0, [r4, #0x70]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, r6]
add r1, r7, #0
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
ldr r0, [r4, #0x70]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222EEBC
_0222EEDC:
@@ -5057,7 +5057,7 @@ _0222FFE6: lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
_0222FFF2:
ldr r1, [r5, #0x2c]
@@ -5068,13 +5068,13 @@ _0222FFF2: lsr r0, r0, #0x1d
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
_02230008:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
+ bl GetPartyCount
pop {r3, r4, r5, pc}
thumb_func_start MOD11_02230014
@@ -5099,7 +5099,7 @@ _02230034: add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
_02230042:
ldr r1, [r5, #0x2c]
@@ -5111,14 +5111,14 @@ _02230042: add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
_0223005A:
lsl r0, r4, #2
add r0, r5, r0
ldr r0, [r0, #0x68]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, r5, r6, pc}
thumb_func_start MOD11_02230068
@@ -5703,7 +5703,7 @@ _022303E4: ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #7
str r0, [sp, #0x20]
tst r1, r0
@@ -5714,7 +5714,7 @@ _022303E4: ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230434
@@ -5765,7 +5765,7 @@ _02230478: ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223068C ; =0x00000F88
str r0, [sp, #0x20]
tst r1, r0
@@ -5776,7 +5776,7 @@ _02230478: str r0, [sp, #0x20]
ldr r0, [sp, #0x18]
mov r1, #0x9f
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022304B8
@@ -5813,7 +5813,7 @@ _022304DC: ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x10
str r0, [sp, #0x20]
tst r1, r0
@@ -5824,7 +5824,7 @@ _022304DC: ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _0223051C
@@ -5861,7 +5861,7 @@ _02230540: ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x20
str r0, [sp, #0x20]
tst r1, r0
@@ -5872,7 +5872,7 @@ _02230540: ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230580
@@ -5909,7 +5909,7 @@ _022305A4: ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x40
str r0, [sp, #0x20]
tst r1, r0
@@ -5920,7 +5920,7 @@ _022305A4: ldr r0, [sp, #0x18]
mov r1, #0x9f
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022305E4
@@ -6300,20 +6300,20 @@ _022308C4: ldr r0, [sp, #0x18]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r1, r4, #0
ldr r0, [sp, #0x18]
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _0223095A
add r1, r4, #0
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
add r1, #0x3a
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _0223091C
@@ -6371,20 +6371,20 @@ _0223097E: ldr r0, [sp, #0x18]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r1, r4, #0
ldr r0, [sp, #0x18]
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _022309F2
add r1, r4, #0
ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
add r1, #0x3a
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _022309B4
@@ -6448,7 +6448,7 @@ _02230A0C: ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02230A42
mov r0, #1
@@ -6458,7 +6458,7 @@ _02230A36: ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
_02230A42:
ldr r0, [sp, #0x20]
@@ -6467,12 +6467,12 @@ _02230A42: ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r4, r0
beq _02230B14
ldr r0, [sp, #0x38]
@@ -6491,14 +6491,14 @@ _02230A42: ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
b _02230AC2
_02230A8C:
ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsr r0, r0, #1
str r0, [sp, #0x20]
bne _02230AC2
@@ -6509,7 +6509,7 @@ _02230AA2: ldr r0, [sp, #0x18]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x19
mul r1, r0
add r0, r1, #0
@@ -6524,7 +6524,7 @@ _02230AC2: ldr r0, [sp, #0x18]
ldr r2, [sp, #0x20]
mov r1, #0xa2
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x38]
mov r1, #0x17
lsl r0, r0, #0x10
@@ -6572,7 +6572,7 @@ _02230B14: ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
bhs _02230B4A
ldr r0, [sp, #0x14]
@@ -6597,13 +6597,13 @@ _02230B4A: ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
blo _02230B8E
ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xc8
bhs _02230B8E
ldr r0, [sp, #0x14]
@@ -6628,7 +6628,7 @@ _02230B8E: ldr r0, [sp, #0x18]
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xc8
blo _02230BC4
ldr r0, [sp, #0x14]
@@ -6649,7 +6649,7 @@ _02230BC4: ldr r0, [sp, #0x18]
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _02230BE0
ldr r0, [sp, #8]
@@ -6659,7 +6659,7 @@ _02230BE0: ldr r0, [sp, #0x18]
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #4]
bl MOD11_022302B0
@@ -6672,7 +6672,7 @@ _02230BFC: ldr r0, [sp, #0x18]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
ldr r0, [sp, #0x38]
mov r1, #1
@@ -6692,7 +6692,7 @@ _02230C28: ldr r0, [sp, #0x18]
ldr r2, [sp, #8]
mov r1, #9
- bl AddMonPartyStatEncrypted
+ bl AddMonData
ldr r0, [sp, #0x10]
cmp r0, r5
beq _02230C3E
@@ -6901,7 +6901,7 @@ _02230D9C: cmp r1, #6
bge _02230DC4
ldr r0, [r5, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r3, #0x59
str r7, [sp]
lsl r3, r3, #2
@@ -6911,7 +6911,7 @@ _02230D9C: ldr r0, [r5, #4]
mov r2, #0
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #4]
cmp r0, #0
bne _02230DD0
@@ -7102,7 +7102,7 @@ _02230EE4: mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #0x67
@@ -7152,7 +7152,7 @@ _02230F4E: add r0, r6, #0
mov r1, #0x70
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_02230F58:
add r0, r5, #0
mov r1, #0
@@ -8141,7 +8141,7 @@ _02231606: add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x67
lsl r1, r1, #2
cmp r0, r1
@@ -12578,7 +12578,7 @@ _02233938: add r4, r0, #0
add r0, r7, #0
bl MOD11_0222FF88
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022339C6
_02233950:
@@ -12589,13 +12589,13 @@ _02233950: mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022339B4
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022339B4
add r0, r4, #0
@@ -12616,7 +12616,7 @@ _02233994: add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r5, #0
@@ -12632,7 +12632,7 @@ _022339B4: mov r1, #0
add r4, r4, #1
bl MOD11_0222FF88
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02233950
_022339C6:
@@ -18480,23 +18480,23 @@ _0223678C: _02236794:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367C8
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _022367C8
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367C8
add r7, r7, #1
@@ -18533,23 +18533,23 @@ _022367EA: beq _022367EA
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367EA
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
beq _022367EA
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022367EA
ldr r0, [sp]
@@ -20636,26 +20636,26 @@ _022378A2: beq _02237900
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022378F8
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022378F8
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237AAC ; =0x000001EE
cmp r0, r1
beq _022378F8
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237900
_022378F8:
@@ -20672,17 +20672,17 @@ _02237900: add r4, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, [sp, #4]
add r1, r6, #0
@@ -20818,26 +20818,26 @@ _02237A2A: beq _02237A9A
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A7C
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A7C
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237AAC ; =0x000001EE
cmp r0, r1
beq _02237A7C
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237A9A
_02237A7C:
@@ -21174,13 +21174,13 @@ _02237D16: mov r1, #0xad
mov r2, #0
str r0, [sp, #8]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02237D7E
ldr r0, [sp, #8]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02237DBC ; =0x000001EE
cmp r0, r1
beq _02237D7E
@@ -21190,7 +21190,7 @@ _02237D4E: ldr r0, [sp, #8]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r6, #0
@@ -23876,20 +23876,20 @@ _02239222: mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
@@ -23915,7 +23915,7 @@ _02239222: add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
sub r0, r0, #1
mov r1, #0xa
bl _u32_div_f
@@ -23939,7 +23939,7 @@ _022392AA: add r0, r4, #0
mov r1, #6
add r2, r5, r2
- bl SetMonDataEncrypted
+ bl SetMonData
b _022392EC
_022392C4:
cmp r5, #0x62
@@ -23954,7 +23954,7 @@ _022392C4: add r0, r4, #0
mov r1, #6
add r2, r2, r3
- bl SetMonDataEncrypted
+ bl SetMonData
b _022392EC
_022392E2:
add r1, r1, #1
@@ -23979,7 +23979,7 @@ _022392EC: mov r1, #0xa0
str r2, [sp, #0xc]
mov r5, #0xa
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
cmp r1, #0xa
@@ -24010,7 +24010,7 @@ _0223932E: add r0, r4, #0
mov r1, #6
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_02239350:
ldr r0, [sp]
mov r1, #0
@@ -25352,35 +25352,35 @@ _02239DFA: bl MOD11_0222FF7C
add r0, r7, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239E68
_02239E2A:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239E5C
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02239F48 ; =0x000001EE
cmp r0, r1
beq _02239E5C
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239E5C:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239E2A
_02239E68:
@@ -25400,35 +25400,35 @@ _02239E76: _02239E82:
ldr r0, [sp, #8]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239ECC
ldr r7, _02239F48 ; =0x000001EE
_02239E90:
ldr r0, [sp, #8]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239EC0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r7
beq _02239EC0
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239EC0:
ldr r0, [sp, #8]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239E90
_02239ECC:
@@ -25448,35 +25448,35 @@ _02239EDA: bl MOD11_0222FF7C
add r0, r7, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02239F36
_02239EF8:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02239F2A
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02239F48 ; =0x000001EE
cmp r0, r1
beq _02239F2A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02239F2A:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02239EF8
_02239F36:
@@ -25807,12 +25807,12 @@ MOD11_0223A178: ; 0x0223A178 add r6, r0, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp]
add r0, r6, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, _0223A210 ; =0x00002D67
add r1, r5, r4
@@ -26642,7 +26642,7 @@ _0223A7D6: mov r1, #6
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #1
@@ -26746,7 +26746,7 @@ _0223A8B0: add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #1
@@ -26768,7 +26768,7 @@ _0223A8B0: add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0223A90E
ldr r1, [r4, #4]
@@ -26794,7 +26794,7 @@ _0223A90E: ldr r2, [sp, #0x34]
add r0, r6, #0
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223A928
b _0223AA34
@@ -26802,7 +26802,7 @@ _0223A928: add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
beq _0223AA34
ldr r0, [r4, #4]
@@ -26861,7 +26861,7 @@ _0223A994: add r0, r6, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223ABAC ; =0x020ECAC4
ldrb r1, [r1]
cmp r1, r0
@@ -26888,10 +26888,10 @@ _0223A9D6: add r0, r6, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x48]
add r0, r6, #0
- bl FUN_02068734
+ bl GetMonBaseExperienceAtCurrentLevel
ldr r1, [sp, #0x48]
sub r0, r1, r0
str r0, [r4, #0x3c]
@@ -26914,7 +26914,7 @@ _0223AA0C: add r0, r6, #0
mov r1, #8
add r2, sp, #0x48
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r6, [r4, #4]
ldr r0, [r4]
add r1, r7, #0
@@ -27062,7 +27062,7 @@ _0223AB22: add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x30]
mov r0, #5
mov r1, #0x18
@@ -27082,7 +27082,7 @@ _0223AB58: ldr r1, [r1, r2]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x4c]
lsl r2, r1, #2
ldr r1, [sp, #0x2c]
@@ -27099,9 +27099,9 @@ _0223AB58: add r0, r6, #0
mov r1, #0
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
add r0, r6, #0
- bl CalcMonStatsMaybeEncrypted
+ bl CalcMonStats
ldr r1, [r4, #4]
ldr r0, _0223ABB0 ; =0x0000219C
b _0223ABBC
@@ -27324,7 +27324,7 @@ _0223AD30: ldr r1, [r1, r2]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x28]
lsl r2, r5, #2
ldr r1, [r1, r2]
@@ -27390,7 +27390,7 @@ _0223ADEC: strb r0, [r5, #1]
add r0, r6, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xb4]
mov r0, #3
str r0, [sp, #0xcc]
@@ -27838,7 +27838,7 @@ _0223B192: add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xb8]
ldr r0, [r4]
bl MOD11_02230E54
@@ -27897,7 +27897,7 @@ _0223B1F6: add r0, r6, #0
add r1, #0x3e
add r2, sp, #0x4c
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [r4, #0x40]
ldr r2, [r4, #0x44]
lsl r1, r1, #0x10
@@ -27988,11 +27988,11 @@ MOD11_0223B2DC: ; 0x0223B2DC add r7, r0, #0
ldr r0, [sp]
ldr r1, [sp, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #6
add r2, r4, #0
str r0, [sp, #0x14]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r6, #0
@@ -28015,7 +28015,7 @@ _0223B328: ldr r0, [sp, #0x14]
add r1, #0xd
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
strb r0, [r1]
add r0, r1, #0
@@ -28183,7 +28183,7 @@ _0223B45A: str r0, [sp, #0x18]
ldr r0, [sp, #0x14]
add r1, #0xd
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
add r0, r0, #1
str r0, [sp, #0x10]
@@ -28638,7 +28638,7 @@ _0223B83C: add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
ldr r0, [r4]
bl MOD11_02231668
@@ -29020,7 +29020,7 @@ _0223BB76: mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
ldr r0, [r4]
bl MOD11_02230E18
@@ -29058,7 +29058,7 @@ _0223BBEE: add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #8]
ldr r0, [r4]
bl MOD11_02230290
@@ -29066,7 +29066,7 @@ _0223BBEE: add r0, r6, #0
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x10]
ldr r0, _0223BF18 ; =0x020FA5FC
add r1, r5, #0
@@ -29102,7 +29102,7 @@ _0223BC38: bne _0223BC62
ldr r2, [r5, #0x18]
mov r1, #0x77
- bl SetMonDataEncrypted
+ bl SetMonData
_0223BC62:
add r0, r5, #0
bl FUN_02077AC4
@@ -29204,13 +29204,13 @@ _0223BD3E: add r0, r6, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0
str r0, [sp, #0x2c]
add r0, r6, #0
add r1, #0x3a
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, r5, #1
cmp r5, #4
blt _0223BD3E
@@ -31430,7 +31430,7 @@ MOD11_0223CDC4: ; 0x0223CDC4 ldr r0, [sp, #0x18]
mov r1, #0xaf
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223CF26
mov r0, #2
@@ -31439,7 +31439,7 @@ _0223CF26: ldr r0, [sp, #0x18]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
_0223CF30:
cmp r0, #0
bne _0223CF42
@@ -31472,7 +31472,7 @@ _0223CF5C: ldr r0, [sp, #0x18]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -31697,7 +31697,7 @@ _0223D148: add r0, r7, #0
mov r1, #8
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D18E:
add r0, r5, #0
@@ -31707,7 +31707,7 @@ _0223D18E: add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
pop {r3, r4, r5, r6, r7, pc}
_0223D1A4:
add r0, r5, #0
@@ -31717,7 +31717,7 @@ _0223D1A4: add r0, r7, #0
mov r1, #6
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0223D1B8:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -41607,7 +41607,7 @@ _02241DD2: bl MOD11_0222FF7C
add r0, r6, #0
add r5, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02241E4A
ldr r0, [sp, #0x2c]
@@ -41619,24 +41619,24 @@ _02241DD2: _02241DFE:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241E3E
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02241FCC ; =0x000001EE
cmp r0, r1
beq _02241E3E
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241E3E
ldr r2, [sp, #8]
@@ -41648,7 +41648,7 @@ _02241DFE: _02241E3E:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02241DFE
_02241E4A:
@@ -41700,35 +41700,35 @@ _02241E8A: bl MOD11_0222FF7C
add r0, r6, #0
add r5, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02241EF2
_02241EB4:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02241EE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02241FCC ; =0x000001EE
cmp r0, r1
beq _02241EE6
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_02241EE6:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02241EB4
_02241EF2:
@@ -41905,35 +41905,35 @@ _0224200C: bl MOD11_0222FF7C
add r0, r6, #0
add r4, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02242094
_02242056:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02242088
add r0, r5, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _02242088
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_02242088:
add r0, r6, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02242056
_02242094:
@@ -41985,69 +41985,69 @@ _022420CA: str r0, [sp, #0x14]
add r0, r7, #0
add r4, r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224213C
_022420FE:
add r0, r7, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02242130
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _02242130
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_02242130:
add r0, r7, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022420FE
_0224213C:
ldr r0, [sp, #0x18]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02242186
ldr r7, _02242340 ; =0x000001EE
_0224214A:
ldr r0, [sp, #0x18]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224217A
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r7
beq _0224217A
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r5, r0
_0224217A:
ldr r0, [sp, #0x18]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0224214A
_02242186:
@@ -42089,35 +42089,35 @@ _022421B0: str r0, [sp, #0x10]
add r0, r6, #0
add r4, r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224221A
_022421DC:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224220E
add r0, r5, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242340 ; =0x000001EE
cmp r0, r1
beq _0224220E
add r0, r5, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_0224220E:
add r0, r6, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022421DC
_0224221A:
@@ -43364,41 +43364,41 @@ MOD11_02242B78: ; 0x02242B78 mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
mov r2, #0
strh r0, [r1, r5]
add r0, r4, #0
mov r1, #0xa4
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F4C ; =0x00002D42
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F50 ; =0x00002D44
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F54 ; =0x00002D46
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242F58 ; =0x00002D48
add r2, r7, r5
strh r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, r5
ldr r2, _02242F5C ; =0x00002D4A
str r1, [sp, #0xc]
@@ -43412,7 +43412,7 @@ _02242C02: add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x14]
ldr r1, _02242F60 ; =0x00002D4C
strh r0, [r2, r1]
@@ -43420,7 +43420,7 @@ _02242C02: add r0, r4, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x10]
ldr r1, _02242F64 ; =0x00002D6C
strb r0, [r2, r1]
@@ -43428,7 +43428,7 @@ _02242C02: add r0, r4, #0
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp, #0x10]
ldr r1, _02242F68 ; =0x00002D70
add r6, r6, #1
@@ -43447,7 +43447,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r6, r5]
mov r2, #0x1f
bic r1, r2
@@ -43458,7 +43458,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F6C ; =0xFFFFFC1F
@@ -43469,7 +43469,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F70 ; =0xFFFF83FF
@@ -43480,7 +43480,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F74 ; =0xFFF07FFF
@@ -43491,7 +43491,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F78 ; =0xFE0FFFFF
@@ -43502,7 +43502,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1b
ldr r2, [r6, r5]
ldr r1, _02242F7C ; =0xC1FFFFFF
@@ -43513,7 +43513,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [r6, r5]
ldr r1, _02242F80 ; =0xBFFFFFFF
lsl r0, r0, #0x1f
@@ -43524,7 +43524,7 @@ _02242C02: add r0, r4, #0
mov r1, #0x4d
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [r6, r5]
ldr r1, _02242F84 ; =0x7FFFFFFF
lsl r0, r0, #0x1f
@@ -43598,14 +43598,14 @@ _02242D2E: add r0, r4, #0
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FA0 ; =0x00002D64
add r2, r7, r5
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FA4 ; =0x00002D65
add r2, r7, r5
strb r0, [r2, r1]
@@ -43613,7 +43613,7 @@ _02242D2E: add r0, r7, r1
str r0, [sp, #0x1c]
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldr r1, [sp, #0x1c]
mov r2, #0xf
ldrb r1, [r1, r5]
@@ -43626,7 +43626,7 @@ _02242D2E: ldr r0, _02242FA8 ; =0x00002D66
add r6, r7, r0
add r0, r4, #0
- bl FUN_02068A80
+ bl MonIsShiny
ldrb r1, [r6, r5]
mov r2, #0x20
lsl r0, r0, #0x1f
@@ -43637,7 +43637,7 @@ _02242D2E: add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r6, r5]
mov r2, #0x1f
lsl r0, r0, #0x18
@@ -43670,14 +43670,14 @@ _02242E24: add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FAC ; =0x00002D67
add r2, r7, r5
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB0 ; =0x00002DAC
add r2, r7, r5
str r0, [r2, r1]
@@ -43688,7 +43688,7 @@ _02242E24: add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, r5]
_02242E58:
ldr r0, [sp, #4]
@@ -43698,56 +43698,56 @@ _02242E58: add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB4 ; =0x00002D74
add r2, r7, r6
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FB8 ; =0x00002D75
add r2, r7, r6
strb r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FBC ; =0x00002D8C
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC0 ; =0x00002D90
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC4 ; =0x00002DA4
add r2, r7, r6
str r0, [r2, r1]
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FC8 ; =0x00002DA8
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FCC ; =0x00002DB4
add r2, r7, r6
str r0, [r2, r1]
add r0, r4, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -43762,7 +43762,7 @@ _02242E58: strb r1, [r0, r5]
add r0, r4, #0
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02242FD0 ; =0x00002DBF
add r2, r7, r6
strb r0, [r2, r1]
@@ -43788,13 +43788,13 @@ _02242E58: add r2, r7, r2
mov r1, #0x74
add r2, r2, r6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, _02242FDC ; =0x00002D94
add r0, r4, #0
add r2, r7, r2
mov r1, #0x8f
add r2, r2, r6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, _02242FE0 ; =0x00002DBC
b _02242FE4
.align 2, 0
@@ -43906,7 +43906,7 @@ MOD11_02243054: ; 0x02243054 mov r1, #0xa4
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43915,7 +43915,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43924,7 +43924,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43933,7 +43933,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43942,7 +43942,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43951,7 +43951,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43960,7 +43960,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43969,7 +43969,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -43978,7 +43978,7 @@ MOD11_02243054: ; 0x02243054 add r0, r6, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -44016,21 +44016,21 @@ _02243142: add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431CC ; =0x00002D4C
mov r2, #0
strh r0, [r7, r1]
add r1, r4, #0
add r0, r6, #0
add r1, #0x3a
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431D0 ; =0x00002D6C
mov r2, #0
strb r0, [r5, r1]
add r1, r4, #0
add r0, r6, #0
add r1, #0x3e
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _022431D4 ; =0x00002D70
strb r0, [r5, r1]
_02243186:
@@ -44042,7 +44042,7 @@ _02243186: add r0, r6, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, [sp]
ldr r1, [sp, #4]
add r2, r2, r1
@@ -48640,23 +48640,23 @@ _02245384: mov r6, #0
add r5, r0, #0
add r4, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022453C6
_022453A4:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022453BA
add r6, r6, #1
_022453BA:
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022453A4
_022453C6:
@@ -48697,23 +48697,23 @@ _022453F8: mov r6, #0
add r5, r0, #0
add r4, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224543A
_02245418:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224542E
add r6, r6, #1
_0224542E:
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02245418
_0224543A:
@@ -52132,23 +52132,23 @@ _02246E72: _02246E76:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02246EB6
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02246EB6
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02246EB6
ldr r0, [sp, #0xc]
@@ -60443,7 +60443,7 @@ MOD11_0224AD38: ; 0x0224AD38 add r0, r6, #0
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
b _0224AD7A
_0224AD76:
@@ -60552,17 +60552,17 @@ MOD11_0224AE14: ; 0x0224AE14 add r0, r5, #0
mov r1, #0x8f
add r2, sp, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
bne _0224AE72
add r0, r5, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
bne _0224AE72
add r0, r4, #0
@@ -61031,7 +61031,7 @@ _0224B1D8: bl FUN_0206E7B8
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
+ bl GetArceusTypeByHeldItemEffect
mov r1, #0x46
lsl r1, r1, #2
ldr r1, [r5, r1]
@@ -64908,13 +64908,13 @@ _0224CEE2: add r0, r7, #0
add r1, #0x36
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #8]
add r1, r4, #0
add r0, r7, #0
add r1, #0x3a
add r2, r2, r4
- bl SetMonDataEncrypted
+ bl SetMonData
_0224CF0C:
add r4, r4, #1
add r5, r5, #2
@@ -64932,16 +64932,16 @@ _0224CF14: add r0, r7, #0
mov r1, #6
add r2, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_0224CF30:
add r0, r7, #0
mov r1, #0xa2
add r2, r6, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #0x9f
add r2, r6, #4
- bl SetMonDataEncrypted
+ bl SetMonData
mov r2, #0x65
ldr r1, [sp, #4]
lsl r2, r2, #2
@@ -65054,7 +65054,7 @@ _0224D00A: _0224D024:
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
_0224D02C:
ldrh r1, [r4, #2]
cmp r1, #0xd7
@@ -65066,7 +65066,7 @@ _0224D038: add r0, r6, #0
mov r1, #0x9f
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
_0224D042:
ldr r0, [sp, #4]
add r5, r5, #1
@@ -65586,23 +65586,23 @@ _0224D452: bl MOD11_0222FF88
add r6, r0, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0224D4C0
_0224D466:
add r0, r6, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0224D4B4
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0224D4B4
ldr r0, [sp]
@@ -65613,7 +65613,7 @@ _0224D466: add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #8]
add r0, r1, r0
str r0, [sp, #8]
@@ -65622,12 +65622,12 @@ _0224D4A8: add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r7, r0
_0224D4B4:
add r0, r6, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0224D466
_0224D4C0:
@@ -73750,7 +73750,7 @@ _02251662: bl FUN_0206B8CC
ldr r0, [sp, #0x14]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022516B0
mov r0, #6
@@ -73775,7 +73775,7 @@ _02251680: strb r0, [r1]
ldr r0, [sp, #0x14]
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _02251680
_022516B0:
@@ -74596,7 +74596,7 @@ _02251CEC: mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #8]
mov r2, #0
ldr r1, [r1, #4]
@@ -74605,7 +74605,7 @@ _02251CEC: str r0, [r5, #0x28]
add r0, r6, #0
mov r1, #0xa3
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x2c]
ldr r0, [r4, #8]
mov r1, #0x9f
@@ -74614,7 +74614,7 @@ _02251CEC: ldrh r0, [r0, #0x20]
str r0, [r5, #0x30]
add r0, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02251D72
add r0, r5, #0
@@ -74735,7 +74735,7 @@ _02251E2E: bl MOD11_02230014
mov r1, #0x9f
add r2, r5, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02251E6A
ldr r0, [sp, #0x10]
@@ -75168,7 +75168,7 @@ _022521DC: ldr r0, [r4, #4]
add r1, r6, #0
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
ldr r0, [sp, #0x1c]
bl FUN_02069B88
@@ -75208,7 +75208,7 @@ _02252232: ldr r0, [r4, #4]
ldr r1, [sp, #0xc]
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
ldr r0, [sp, #0x20]
bl FUN_02069B88
@@ -75279,7 +75279,7 @@ _022522C4: bl MOD11_0222FF88
str r0, [sp, #0x10]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0225230E
mov r0, #6
@@ -75302,7 +75302,7 @@ _022522E2: ldr r0, [sp, #0x10]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _022522E2
_0225230E:
@@ -75514,7 +75514,7 @@ _0225249A: bl MOD11_0222FF88
str r0, [sp, #8]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022524FE
ldr r0, [sp, #4]
@@ -75527,7 +75527,7 @@ _022524D0: bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022524F2
ldrb r0, [r7, #0xc]
@@ -75539,7 +75539,7 @@ _022524D0: _022524F2:
ldr r0, [sp, #8]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022524D0
_022524FE:
@@ -81046,12 +81046,12 @@ MOD11_02255034: ; 0x02255034 add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
mov r0, #0xc
add r2, sp, #0x14
@@ -81124,7 +81124,7 @@ _022550D0: _022550EA:
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -81135,11 +81135,11 @@ _022550EA: str r0, [sp, #0x1c]
ldr r0, [sp, #0x10]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0x10]
ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x20]
ldrh r1, [r7, r6]
@@ -81265,7 +81265,7 @@ _02255210: bl MOD11_0222FF88
str r0, [sp, #0x24]
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022552A6
mov r0, #6
@@ -81283,11 +81283,11 @@ _0225523A: ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x24]
ldrb r1, [r7, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255298
ldr r1, _02255500 ; =0x000001EE
@@ -81296,13 +81296,13 @@ _0225523A: add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255280
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225527A
mov r0, #3
@@ -81323,7 +81323,7 @@ _02255284: b _02255294
_0225528E:
add r0, r4, #0
- bl FUN_02068698
+ bl GetPercentProgressTowardsNextLevel
_02255294:
strb r0, [r5, #2]
add r5, r5, #1
@@ -81331,7 +81331,7 @@ _02255298: ldr r0, [sp, #0x24]
add r7, r7, #1
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _0225523A
_022552A6:
@@ -81371,7 +81371,7 @@ _022552E2: bl MOD11_0222FF88
str r0, [sp, #0x10]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0225535E
add r1, r4, #0
@@ -81384,11 +81384,11 @@ _02255304: ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x10]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255350
ldr r1, _02255500 ; =0x000001EE
@@ -81397,13 +81397,13 @@ _02255304: add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225534A
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255344
mov r0, #3
@@ -81422,7 +81422,7 @@ _02255350: ldr r0, [sp, #0x10]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02255304
_0225535E:
@@ -81446,7 +81446,7 @@ _0225537C: bl MOD11_0222FF88
str r0, [sp, #0x14]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02255482
add r1, r4, #0
@@ -81460,11 +81460,11 @@ _022553A0: ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x14]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553EC
ldr r1, _02255500 ; =0x000001EE
@@ -81473,13 +81473,13 @@ _022553A0: add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553E6
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022553E0
mov r0, #3
@@ -81498,7 +81498,7 @@ _022553EC: ldr r0, [sp, #0x14]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _022553A0
b _02255482
@@ -81513,7 +81513,7 @@ _022553FC: bl MOD11_0222FF88
str r0, [sp, #0x18]
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02255482
add r1, r4, #0
@@ -81526,11 +81526,11 @@ _02255428: ldr r1, _022554FC ; =0x0000312C
ldr r0, [sp, #0x18]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255474
ldr r1, _02255500 ; =0x000001EE
@@ -81539,13 +81539,13 @@ _02255428: add r0, r7, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0225546E
add r0, r7, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02255468
mov r0, #3
@@ -81564,7 +81564,7 @@ _02255474: ldr r0, [sp, #0x18]
add r6, r6, #1
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _02255428
_02255482:
@@ -82376,12 +82376,12 @@ MOD11_02255A8C: ; 0x02255A8C add r4, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
mov r0, #0x18
add r2, sp, #0xc
@@ -82432,7 +82432,7 @@ _02255B04: _02255B12:
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
ldr r1, _02255B64 ; =0x00002DA4
add r2, r5, r4
ldr r1, [r2, r1]
@@ -82440,11 +82440,11 @@ _02255B12: str r0, [sp, #0x18]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r4, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r4, r0
str r0, [sp, #0x1c]
mov r0, #0x14
@@ -82480,12 +82480,12 @@ MOD11_02255B68: ; 0x02255B68 add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
mov r1, #0x19
add r0, sp, #0xc
@@ -82494,7 +82494,7 @@ MOD11_02255B68: ; 0x02255B68 add r1, r6, #0
str r0, [sp, #0x10]
add r0, r7, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -82504,11 +82504,11 @@ MOD11_02255B68: ; 0x02255B68 str r0, [sp, #0x14]
add r0, r7, #0
add r1, r6, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
add r0, r7, #0
add r1, r6, #0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x18]
mov r0, #0x10
@@ -83105,12 +83105,12 @@ MOD11_02256020: ; 0x02256020 add r6, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r6, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
mov r0, #0x26
add r2, sp, #0x10
@@ -83183,7 +83183,7 @@ _022560BA: _022560D4:
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
mov r1, #0xc0
mul r1, r4
add r2, r5, r1
@@ -83194,11 +83194,11 @@ _022560D4: str r0, [sp, #0x18]
ldr r0, [sp, #0xc]
add r1, r1, #1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
add r5, r0, #0
ldr r0, [sp, #0xc]
ldr r1, [sp, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
sub r0, r5, r0
str r0, [sp, #0x1c]
ldrh r1, [r7, r6]
@@ -84454,7 +84454,7 @@ _02256A60: mov r4, #0
str r0, [sp, #0x10]
add r7, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02256AE0
mov r0, #6
@@ -84466,11 +84466,11 @@ _02256A80: ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #0x10]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x14]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256AD2
ldr r1, _02256C04 ; =0x000001EE
@@ -84479,13 +84479,13 @@ _02256A80: ldr r0, [sp, #0x14]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256ACA
ldr r0, [sp, #0x14]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256AC2
add r1, r5, r4
@@ -84507,7 +84507,7 @@ _02256AD2: ldr r0, [sp, #0x10]
add r6, r6, #1
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
blt _02256A80
_02256AE0:
@@ -84517,7 +84517,7 @@ _02256AE0: str r0, [sp, #8]
mov r4, #3
mov r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _02256AF8
b _02256BFA
@@ -84531,11 +84531,11 @@ _02256B02: ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #8]
ldrb r1, [r7, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x18]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B54
ldr r1, _02256C04 ; =0x000001EE
@@ -84544,13 +84544,13 @@ _02256B02: ldr r0, [sp, #0x18]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B4C
ldr r0, [sp, #0x18]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256B44
add r1, r5, r4
@@ -84572,7 +84572,7 @@ _02256B54: ldr r0, [sp, #8]
add r7, r7, #1
add r6, r6, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
blt _02256B02
add sp, #0x20
@@ -84595,7 +84595,7 @@ _02256B7A: mov r4, #0
str r0, [sp, #0xc]
add r7, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02256BFA
ldr r0, [sp, #0x38]
@@ -84607,11 +84607,11 @@ _02256B9A: ldr r1, _02256C00 ; =0x0000312C
ldr r0, [sp, #0xc]
ldrb r1, [r6, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x1c]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BEC
ldr r1, _02256C04 ; =0x000001EE
@@ -84620,13 +84620,13 @@ _02256B9A: ldr r0, [sp, #0x1c]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BE4
ldr r0, [sp, #0x1c]
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02256BDC
add r1, r5, r4
@@ -84648,7 +84648,7 @@ _02256BEC: ldr r0, [sp, #0xc]
add r6, r6, #1
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
blt _02256B9A
_02256BFA:
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index acf2d363..6862284e 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -217,7 +217,7 @@ _0222D7BC: ldr r0, [r1, r0] add r1, r6, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5] add r6, r6, #1 add r5, r5, #2 @@ -975,7 +975,7 @@ _0222DE9E: ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _0222DEBE mov r1, #0xb @@ -5972,7 +5972,7 @@ _0223072E: mov r1, #5 ldr r0, [r0, r6] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData bl MOD12_0223EE70 add r1, r5, r4 add r4, r4, #1 @@ -7750,7 +7750,7 @@ _0223151C: ldr r0, [r4] mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r6, #0x64 add r5, r0, #0 add r0, r6, #0 @@ -7777,17 +7777,17 @@ _0223154E: ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7812,17 +7812,17 @@ _02231594: ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7847,17 +7847,17 @@ _022315DA: ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x14 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 add r0, #0xa1 @@ -7882,17 +7882,17 @@ _02231620: ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x15 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 add r0, #0xa2 @@ -7917,17 +7917,17 @@ _02231666: ldr r0, [r4] mov r1, #0x17 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0x16 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] mov r1, #0x13 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 add r0, #0xa0 @@ -7954,7 +7954,7 @@ _022316B2: ldr r0, [r4] mov r1, #0x18 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #8] add r1, r1, r7 add r1, r0, r1 @@ -8951,7 +8951,7 @@ _02231E5E: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData lsl r1, r4, #1 add r2, sp, #0x3c strh r0, [r2, r1] @@ -9369,7 +9369,7 @@ _022321A6: ldr r0, [r1, r0] add r1, r5, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _022321C8 ldr r0, _0223220C ; =0x000002E1 @@ -10201,7 +10201,7 @@ _022327EC: ldr r0, [r0, r1] add r1, r6, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5] add r6, r6, #1 add r5, r5, #2 @@ -11076,7 +11076,7 @@ _02232EB2: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData lsl r2, r4, #1 add r1, sp, #0x10 strh r0, [r1, r2] @@ -12221,7 +12221,7 @@ _022336D4: mov r1, #5 ldr r0, [r0, r4] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData bl MOD08_0222A6C8 cmp r0, #1 bne _02233750 @@ -12296,7 +12296,7 @@ _0223377C: ldr r0, [r0] mov r2, #0 ldr r0, [r0, r4] - bl GetMonDataEncrypted + bl GetMonData bl MOD08_0222A6C8 cmp r0, #1 bne _022337E6 @@ -15395,7 +15395,7 @@ MOD12_02235038: ; 0x02235038 ldr r0, [r1, r0] ldr r2, [sp, #0x30] mov r1, #0x76 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r5] ldr r0, _022350E8 ; =0x00000123 ldrb r0, [r1, r0] @@ -16862,12 +16862,12 @@ _02235B9C: ldr r0, [r6, r5] mov r1, #0xb0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 ldr r0, [r6, r5] mov r1, #0xb1 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, #7 beq _02235BBC cmp r0, #7 @@ -18438,7 +18438,7 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0 ldr r0, [r4] mov r2, #0 @@ -18447,14 +18447,14 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0x6f - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 ldr r0, [r4] ldr r1, [r0, #0xc] ldrb r0, [r4, #0xd] lsl r0, r0, #2 ldr r0, [r1, r0] - bl FUN_02068A80 + bl MonIsShiny str r0, [sp, #0x20] ldr r0, [r4] mov r2, #0 @@ -18463,7 +18463,7 @@ _02236736: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0x70 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x1c] ldr r0, [r4] ldr r1, [r0, #0xc] @@ -18472,7 +18472,7 @@ _02236736: ldr r0, [r1, r0] mov r1, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] ldr r0, [r4] lsl r5, r5, #2 @@ -18480,33 +18480,33 @@ _02236736: mov r1, #5 ldr r0, [r0, r5] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x18] ldr r0, [r4] mov r1, #0x6f ldr r0, [r0, #0xc] mov r2, #0 ldr r0, [r0, r5] - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x14] ldr r0, [r4] ldr r0, [r0, #0xc] ldr r0, [r0, r5] - bl FUN_02068A80 + bl MonIsShiny str r0, [sp, #0x10] ldr r0, [r4] mov r1, #0x70 ldr r0, [r0, #0xc] mov r2, #0 ldr r0, [r0, r5] - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xc] ldr r0, [r4] mov r1, #0 ldr r0, [r0, #0xc] add r2, r1, #0 ldr r0, [r0, r5] - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #4] mov r2, #0x47 mov r0, #0 @@ -19010,7 +19010,7 @@ _02236BD0: lsl r0, r0, #2 ldr r0, [r2, r0] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x10] ldr r0, _02236CF0 ; =0x000005DD bl FUN_020054C8 @@ -23971,7 +23971,7 @@ _02239080: ldr r0, [r0, r1] add r1, r4, #0 add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5] mov r0, #0x23 lsl r0, r0, #4 @@ -27801,7 +27801,7 @@ _0223AC68: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0 mov r0, #0x7f str r0, [sp] @@ -43888,7 +43888,7 @@ _022428E6: str r0, [sp, #0x10] ldr r0, [r1, r0] mov r1, #0x76 - bl GetMonDataEncrypted + bl GetMonData add r0, r5, #1 lsl r0, r0, #4 str r0, [sp, #0x14] @@ -47346,7 +47346,7 @@ _022443A4: lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #5 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0 mov r0, #0x7f str r0, [sp] diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 00b933b8..191de449 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -116,7 +116,7 @@ MOD14_021D75B8: ; 0x021D75B8 lsl r1, r1, #2 ldr r0, [r4, r1] add r1, #0x95 - bl FUN_0206BAE4 + bl PartyHasMon cmp r0, #0 bne _021D75DE mov r0, #0x47 @@ -1905,7 +1905,7 @@ _021D8476: add r0, #0x19 strb r2, [r4, r0] ldr r0, [r4, r1] - bl FUN_0206B9AC + bl GetPartyCount ldr r1, _021D8504 ; =0x0000013F strb r0, [r4, r1] add r0, r4, #0 @@ -3868,7 +3868,7 @@ _021D9488: bl FUN_0206B5E4 mov r1, #0xab mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021D94AE mov r0, #0 @@ -4031,7 +4031,7 @@ _021D95CA: mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount sub r0, r0, #1 cmp r6, r0 beq _021D9610 @@ -4238,7 +4238,7 @@ _021D979C: mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 beq _021D97F2 mov r0, #0x45 @@ -4699,7 +4699,7 @@ MOD14_021D9B84: ; 0x021D9B84 lsl r1, r1, #2 str r0, [sp] ldr r0, [r0, r1] - bl FUN_0206B9AC + bl GetPartyCount mov r6, #0 add r5, r6, #0 str r0, [sp, #4] @@ -4711,27 +4711,27 @@ _021D9B9E: lsl r0, r0, #2 ldr r0, [r1, r0] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 - bl TryDecryptMon + bl AcquireMonLock add r7, r0, #0 add r0, r4, #0 mov r1, #0xac mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _021D9BD2 add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021D9BD2 add r5, r5, #1 _021D9BD2: add r0, r4, #0 add r1, r7, #0 - bl TryEncryptMon + bl ReleaseMonLock cmp r5, #2 blt _021D9BE4 add sp, #8 @@ -5301,7 +5301,7 @@ _021DA042: mov r1, #0xab mov r2, #0 add r7, r0, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DA080 ldr r4, _021DA164 ; =0x021E6224 @@ -5351,7 +5351,7 @@ _021DA0A4: _021DA0AE: add r0, r1, #0 ldr r0, [r0, #0x18] - bl FUN_0206B9AC + bl GetPartyCount str r0, [sp, #0x10] mov r0, #0 str r0, [sp, #8] @@ -5362,7 +5362,7 @@ _021DA0C2: ldr r0, [sp, #4] ldr r1, [sp, #8] ldr r0, [r0, #0x18] - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r4, _021DA164 ; =0x021E6224 ldr r5, [sp, #4] add r7, r0, #0 @@ -5455,12 +5455,12 @@ MOD14_021DA168: ; 0x021DA168 mov r1, #0 add r5, r0, #0 str r1, [sp, #4] - bl TryDecryptBoxMon + bl AcquireBoxMonLock str r0, [sp] add r0, r5, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _021DA1A8 mov r4, #0 @@ -5470,7 +5470,7 @@ _021DA18C: add r0, r5, #0 add r1, #0x36 add r2, r7, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r6, r0 bne _021DA1A2 mov r0, #1 @@ -5483,7 +5483,7 @@ _021DA1A2: _021DA1A8: ldr r1, [sp] add r0, r5, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock ldr r0, [sp, #4] add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -8416,7 +8416,7 @@ MOD14_021DB8D0: ; 0x021DB8D0 mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r4, #8] mov r0, #8 ldrsb r0, [r4, r0] @@ -8495,14 +8495,14 @@ _021DB96C: mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r6, r0 bge _021DB98E mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r4] b _021DB998 _021DB98E: @@ -8518,7 +8518,7 @@ _021DB998: beq _021DB9C4 mov r1, #0xab mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DB9C4 mov r0, #1 @@ -8739,7 +8739,7 @@ _021DBB36: mov r1, #0xab mov r2, #0 str r0, [sp, #0x20] - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DBB86 ldr r0, [sp, #0x20] @@ -8896,13 +8896,13 @@ _021DBC70: mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount add r1, r0, #0 mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] sub r1, r1, #1 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 _021DBC8A: add r0, r7, #0 @@ -9122,7 +9122,7 @@ MOD14_021DBE34: ; 0x021DBE34 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData mov r0, #1 strb r0, [r4, #0x13] add r0, r4, #0 @@ -9189,18 +9189,18 @@ MOD14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 add r6, r2, #0 add r4, #0x4c - bl TryDecryptBoxMon + bl AcquireBoxMonLock str r0, [sp] str r5, [r7, #0x4c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #4] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #6] mov r0, #0x47 lsl r0, r0, #2 @@ -9212,7 +9212,7 @@ MOD14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r4, #0xf] ldrh r0, [r4, #4] mov r1, #9 @@ -9221,7 +9221,7 @@ MOD14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #8 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r2, r0, #0 ldrh r1, [r4, #4] add r0, r7, #0 @@ -9230,17 +9230,17 @@ MOD14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r4, #0xb] add r0, r5, #0 mov r1, #0xb0 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r4, #0xc] add r0, r5, #0 mov r1, #0xb1 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strb r0, [r4, #0xd] ldrb r0, [r4, #0xf] cmp r0, #0 @@ -9248,13 +9248,13 @@ MOD14_021DBEAC: ; 0x021DBEAC add r0, r5, #0 mov r1, #0xaf mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DBF68 mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r2, r0, #0 ldrh r1, [r4, #4] add r0, r7, #0 @@ -9268,7 +9268,7 @@ _021DBF6C: ldr r2, [r4, #0x14] add r0, r5, #0 mov r1, #0x76 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldrb r0, [r4, #0xf] cmp r0, #0 bne _021DBF8C @@ -9302,7 +9302,7 @@ _021DBFAA: bl FUN_0200A8E0 _021DBFB8: add r0, r5, #0 - bl GetBoxMonNatureEncrypted + bl GetBoxMonNature add r1, r0, #0 mov r0, #0x65 lsl r0, r0, #2 @@ -9312,7 +9312,7 @@ _021DBFB8: add r0, r5, #0 mov r1, #0xa mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r0, #0 mov r0, #0x66 lsl r0, r0, #2 @@ -9323,7 +9323,7 @@ _021DBFB8: bl FreeMonPersonal ldr r1, [sp] add r0, r5, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD14_021DBFF4 @@ -9371,125 +9371,125 @@ _021DC034: mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] - bl TryDecryptMon + bl AcquireMonLock add r6, r0, #0 mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa3 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0xa] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa4 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0xc] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0xe] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa7 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x10] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa8 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x12] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0xa6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x14] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x13 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x16] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x14 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x18] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x15 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x1a] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x16 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x1c] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x17 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x1e] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x20] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x37 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x22] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x38 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x24] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x39 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x26] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #7] mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r6, #0 - bl TryEncryptMon + bl ReleaseMonLock add r0, r7, #0 add r0, #0xa4 ldrb r0, [r0] @@ -9557,7 +9557,7 @@ MOD14_021DC1AC: ; 0x021DC1AC ldr r0, [r4, #0x4c] mov r1, #0xb add r2, sp, #0 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0 bl MOD14_021DC3CC cmp r0, #0 @@ -9623,12 +9623,12 @@ _021DC24A: ldr r0, [r4] mov r1, #6 add r2, sp, #0x1c - bl SetBoxMonDataEncrypted + bl SetBoxMonData _021DC254: ldr r0, [r4] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, _021DC274 ; =0x000001ED cmp r0, r1 bne _021DC26A @@ -10215,7 +10215,7 @@ MOD14_021DC58C: ; 0x021DC58C ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData pop {r4, r5, r6, pc} _021DC5B2: ldrb r0, [r5, #0x1f] @@ -10224,13 +10224,13 @@ _021DC5B2: ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData pop {r4, r5, r6, pc} _021DC5C4: ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetMonDataEncrypted + bl GetMonData pop {r4, r5, r6, pc} thumb_func_start MOD14_021DC5D0 @@ -10245,13 +10245,13 @@ MOD14_021DC5D0: ; 0x021DC5D0 ldr r0, [r5, #0x4c] add r1, r4, #0 add r2, r6, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData pop {r4, r5, r6, pc} _021DC5EC: ldr r0, [r5, #8] add r1, r4, #0 add r2, r6, #0 - bl GetMonDataEncrypted + bl GetMonData pop {r4, r5, r6, pc} thumb_func_start MOD14_021DC5F8 @@ -14333,7 +14333,7 @@ _021DE5FE: mov r1, #0xab mov r2, #0 str r0, [sp, #0x34] - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DE64E add r0, r4, #0 @@ -14434,7 +14434,7 @@ _021DE6D0: mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DE70A ldr r1, _021DE724 ; =0x00005814 @@ -14908,7 +14908,7 @@ _021DEA70: mov r1, #0xab mov r2, #0 str r0, [sp, #0x20] - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DEB02 ldrb r1, [r5, #2] @@ -15025,7 +15025,7 @@ _021DEB5C: mov r1, #5 mov r2, #0 str r0, [sp, #0x2c] - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _021DEBA0 add r0, r4, #0 @@ -18859,7 +18859,7 @@ MOD14_021E0940: ; 0x021E0940 str r2, [sp, #8] str r3, [sp, #0xc] ldr r4, [sp, #0x64] - bl TryDecryptBoxMon + bl AcquireBoxMonLock lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] @@ -18877,21 +18877,21 @@ MOD14_021E0940: ; 0x021E0940 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r6, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r7, r0, #0x18 add r0, r6, #0 @@ -18905,12 +18905,12 @@ MOD14_021E0940: ; 0x021E0940 add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #0x30] add r0, r6, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #0x2e] add r0, r4, #4 bl FUN_020B1A24 @@ -18971,7 +18971,7 @@ _021E0A36: bl MOD14_021E0B54 ldr r1, [sp, #0x10] add r0, r6, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock add sp, #0x44 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -18987,19 +18987,19 @@ MOD14_021E0A60: ; 0x021E0A60 str r2, [sp, #8] add r7, r3, #0 ldr r4, [sp, #0x70] - bl TryDecryptBoxMon + bl AcquireBoxMonLock str r0, [sp, #0x14] add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r6, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] @@ -19023,12 +19023,12 @@ MOD14_021E0A60: ; 0x021E0A60 add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #0x30] add r0, r6, #0 mov r1, #0xb mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r4, #0x2e] add r0, r4, #4 bl FUN_020B1A24 @@ -19079,7 +19079,7 @@ _021E0B28: bl MOD14_021E0B54 ldr r1, [sp, #0x14] add r0, r6, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} nop @@ -21819,26 +21819,26 @@ _021E204A: bl FUN_0206B5E4 add r4, r4, #1 add r5, r0, #0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r7, r0, #0 beq _021E20C8 add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _021E209A add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r7, #0 @@ -21876,7 +21876,7 @@ _021E20AA: _021E20C8: ldr r1, [sp, #0x1c] add r0, r5, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock ldr r0, [sp, #0x24] add r6, r6, #2 add r0, r0, #1 @@ -23402,7 +23402,7 @@ MOD14_021E2C7C: ; 0x021E2C7C add r6, r0, #0 ldr r0, [r6, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9AC + bl GetPartyCount add r1, r6, #0 add r1, #0x28 ldrb r4, [r1] @@ -23570,7 +23570,7 @@ MOD14_021E2DB4: ; 0x021E2DB4 add r5, r0, #0 ldr r0, [r5, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9AC + bl GetPartyCount sub r4, r0, #1 add r0, r5, #0 add r0, #0x28 @@ -23975,7 +23975,7 @@ MOD14_021E30C0: ; 0x021E30C0 str r1, [sp] ldr r0, [r0, #4] str r2, [sp, #4] - bl FUN_0206B9AC + bl GetPartyCount sub r6, r0, #1 add r4, r5, #0 mov r0, #0x34 @@ -24281,7 +24281,7 @@ _021E330E: ldr r0, [sp, #0x24] ldr r0, [r0, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9AC + bl GetPartyCount mov r4, #0 str r0, [sp, #0x20] cmp r0, #0 @@ -24299,7 +24299,7 @@ _021E3330: add r1, r4, #0 ldr r0, [r0, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 mov r0, #1 str r0, [sp] @@ -24347,7 +24347,7 @@ MOD14_021E3390: ; 0x021E3390 add r7, r0, #0 ldr r0, [r7, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9AC + bl GetPartyCount mov r6, #0 str r0, [sp] cmp r0, #0 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 3191e90c..0dae9777 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -51043,7 +51043,7 @@ MOD16_021EEFA4: ; 0x021EEFA4 ldr r0, [r4, #0x10] mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x6f lsl r1, r1, #2 str r0, [r5, r1] @@ -55018,7 +55018,7 @@ _021F0E5A: _021F0E68: ldr r0, [sp, #0xc] add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, [sp, #8] add r6, r0, #0 cmp r4, r1 @@ -55028,19 +55028,19 @@ _021F0E68: beq _021F0EB6 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F0EB6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F0EB6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F0ECC ; =0x000001EE cmp r0, r1 beq _021F0EB6 @@ -55568,7 +55568,7 @@ _021F1276: _021F128E: ldr r0, [sp, #0x14] add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, [sp, #8] add r4, r0, #0 cmp r5, r1 @@ -55578,26 +55578,26 @@ _021F128E: beq _021F12EA mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F12EA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F12EA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F1300 ; =0x000001EE cmp r0, r1 beq _021F12EA add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x10] tst r0, r1 beq _021F12EA @@ -55683,7 +55683,7 @@ _021F136A: _021F1382: ldr r0, [sp, #0x14] add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex ldr r1, [sp, #8] add r4, r0, #0 cmp r5, r1 @@ -55693,26 +55693,26 @@ _021F1382: beq _021F13DE mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F13DE add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F13DE add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F13F4 ; =0x000001EE cmp r0, r1 beq _021F13DE add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x10] tst r0, r1 bne _021F13DE @@ -57075,12 +57075,12 @@ _021F1E2C: beq _021F1E66 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 ldr r0, [sp, #0xc] mov r1, #0xa3 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 beq _021F1E66 ldr r0, [sp] @@ -57149,13 +57149,13 @@ _021F1ED6: add r0, r5, #0 add r1, #0x3a mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r4, #0 add r6, r0, #0 add r0, r5, #0 add r1, #0x42 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r6, r0 beq _021F1EFE ldr r0, [sp, #4] @@ -57555,19 +57555,19 @@ _021F21D8: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F22A0 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F22A0 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F22C0 ; =0x000001EE cmp r0, r1 beq _021F22A0 @@ -57579,7 +57579,7 @@ _021F221E: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5] add r4, r4, #1 add r5, r5, #2 @@ -57592,7 +57592,7 @@ _021F2238: add r0, r6, #0 add r1, #0x46 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4] add r5, r5, #1 add r4, r4, #1 @@ -57601,12 +57601,12 @@ _021F2238: add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0 add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, sp, #0x44 str r1, [sp] lsl r1, r4, #0x10 @@ -60065,7 +60065,7 @@ _021F3486: add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r6, #0 @@ -60078,7 +60078,7 @@ _021F34A2: add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r6, #0 @@ -60166,32 +60166,32 @@ _021F3530: add r0, r4, #0 mov r1, #0x4b mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0 add r0, r4, #0 mov r1, #0x4a mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0 add r0, r4, #0 mov r1, #0x49 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r4, #0 mov r1, #0x48 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #4] add r0, r4, #0 mov r1, #0x46 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #8] add r0, r4, #0 mov r1, #0x47 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 lsl r2, r6, #0x1f lsl r0, r5, #0x1f @@ -60398,19 +60398,19 @@ _021F36EC: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F37DE add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F37DE add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F3804 ; =0x000001EE cmp r0, r1 beq _021F37DE @@ -60426,7 +60426,7 @@ _021F3730: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x1c] @@ -60444,7 +60444,7 @@ _021F3730: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x30] add r0, r5, #0 add r1, r4, #0 @@ -60700,19 +60700,19 @@ _021F3956: mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x50] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F39BC ldr r0, [sp, #0x50] mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F39BC ldr r0, [sp, #0x50] mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F3B84 ; =0x000001EE cmp r0, r1 beq _021F39BC @@ -60750,7 +60750,7 @@ _021F39C2: ldr r0, [sp, #0x50] add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldr r0, [sp, #0x14] @@ -60780,7 +60780,7 @@ _021F39F2: ldr r0, [sp, #0x50] mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x70] add r0, r5, #0 add r1, r6, #0 @@ -60844,7 +60844,7 @@ _021F3A7E: ldr r0, [sp, #0x50] mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x80] add r0, r5, #0 add r1, r4, #0 @@ -60934,19 +60934,19 @@ _021F3B3C: mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x20] - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F3BBE ldr r0, [sp, #0x20] mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F3BBE ldr r0, [sp, #0x20] mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F3B84 ; =0x000001EE cmp r0, r1 beq _021F3BBE @@ -60993,7 +60993,7 @@ _021F3BC4: ldr r0, [sp, #0x20] add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldr r0, [sp, #0x14] @@ -61023,7 +61023,7 @@ _021F3BF4: ldr r0, [sp, #0x20] mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x90] add r0, r5, #0 add r1, r6, #0 @@ -61089,7 +61089,7 @@ _021F3C82: ldr r0, [sp, #0x20] mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0xa0] add r0, r5, #0 add r1, r4, #0 @@ -61455,19 +61455,19 @@ _021F3F62: mov r1, #0xa2 mov r2, #0 add r4, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F3FE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F3FE6 add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F3FFC ; =0x000001EE cmp r0, r1 beq _021F3FE6 @@ -61490,7 +61490,7 @@ _021F3F62: add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x10] @@ -61608,19 +61608,19 @@ _021F4094: mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F40FA add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F40FA add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F4254 ; =0x000001EE cmp r0, r1 beq _021F40FA @@ -61669,12 +61669,12 @@ _021F40FC: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x40] add r0, r6, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 lsl r1, r1, #0x10 add r0, r5, #0 @@ -61685,12 +61685,12 @@ _021F40FC: add r0, r6, #0 mov r1, #0xb0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 mov r1, #0xb1 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [sp, #0x40] ldr r2, [sp, #0x38] str r1, [sp] @@ -61715,7 +61715,7 @@ _021F4182: add r0, r6, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x20] @@ -61733,7 +61733,7 @@ _021F4182: add r0, r6, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F425C ; =0x0000306C str r0, [sp, #0x4c] ldrh r1, [r4, r1] @@ -62080,19 +62080,19 @@ _021F445C: mov r1, #0xa2 mov r2, #0 add r4, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F44BA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F44BA add r0, r4, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F4598 ; =0x000001EE cmp r0, r1 beq _021F44BA @@ -62308,7 +62308,7 @@ _021F462E: bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F4664 ldr r0, _021F4694 ; =0x0000219C @@ -62420,7 +62420,7 @@ _021F4704: mov r1, #0xad mov r2, #0 str r0, [sp, #0x68] - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _021F47E0 @@ -62430,7 +62430,7 @@ _021F4704: ldr r0, [sp, #0x68] mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F47E0 add r0, r4, #0 @@ -62477,14 +62477,14 @@ _021F4704: ldr r0, [sp, #0x68] mov r1, #0xb0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x58] ldr r0, [sp, #0x68] mov r1, #0xb1 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x54] @@ -62542,7 +62542,7 @@ _021F480E: add r0, r4, #0 add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x3c] @@ -62560,7 +62560,7 @@ _021F480E: add r0, r4, #0 mov r1, #0xa mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x70] add r0, r5, #0 add r1, r6, #0 @@ -62648,7 +62648,7 @@ _021F48E0: mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _021F4900 @@ -62661,7 +62661,7 @@ _021F4902: ldr r0, [sp, #0x1c] mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F4A06 ldr r0, _021F4A20 ; =0x0000219C @@ -62703,7 +62703,7 @@ _021F4954: ldr r0, [sp, #0x1c] add r1, #0x36 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8c] @@ -62866,29 +62866,29 @@ _021F4A94: bl MOD11_0222FF88 add r7, r0, #0 mov r5, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _021F4AF2 _021F4AA8: add r0, r7, #0 add r1, r5, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F4AE6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021F4AE6 add r0, r6, #0 mov r1, #0xad mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _021F4D70 ; =0x000001EE cmp r0, r1 beq _021F4AE6 @@ -62900,7 +62900,7 @@ _021F4AA8: _021F4AE6: add r0, r7, #0 add r5, r5, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r5, r0 blt _021F4AA8 _021F4AF2: diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 4f74dada..a9ad0efd 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -8856,7 +8856,7 @@ MOD17_021DB700: ; 0x021DB700 add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r0, r6, #0 add r1, r4, #0 mov r2, #2 diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 8b3921cf..7bd6fc00 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -293,7 +293,7 @@ MOD27_02254A48: ; 0x02254A48 str r0, [sp] add r0, r1, #0 str r1, [sp, #4] - bl FUN_0206B9AC + bl GetPartyCount ldr r1, [sp] mov r6, #0 str r0, [r1] @@ -303,9 +303,9 @@ MOD27_02254A48: ; 0x02254A48 _02254A62: ldr r0, [sp, #4] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 - bl TryDecryptMon + bl AcquireMonLock add r7, r0, #0 add r0, r4, #0 bl FUN_0206B688 @@ -313,27 +313,27 @@ _02254A62: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #8] add r0, r4, #0 mov r1, #0xa2 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0xa] add r0, r4, #0 mov r1, #0xa3 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0xc] add r0, r4, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0xe] add r0, r4, #0 mov r1, #0x9f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _02254ABC mov r0, #1 @@ -345,16 +345,16 @@ _02254ABE: add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x12] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r5, #0x13] add r0, r4, #0 add r1, r7, #0 - bl TryEncryptMon + bl ReleaseMonLock ldr r0, [sp] add r6, r6, #1 ldr r0, [r0] diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 89222d17..2ba07ed6 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -73,7 +73,7 @@ MOD28_0225489C: ; 0x0225489C mov r1, #0 str r0, [sp, #4] str r1, [sp] - bl FUN_0206B9AC + bl GetPartyCount mov r6, #0 str r0, [r7, #4] cmp r0, #0 @@ -82,22 +82,22 @@ MOD28_0225489C: ; 0x0225489C _022548D6: ldr r0, [sp, #4] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 add r5, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _02254962 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0xc] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x10] add r0, r5, #0 bl FUN_0206B688 @@ -105,7 +105,7 @@ _022548D6: add r0, r5, #0 mov r1, #9 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData bl MOD28_0225498C cmp r0, #6 bhi _02254944 diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s index d24971d9..a07a6426 100644 --- a/arm9/modules/35/asm/module_35.s +++ b/arm9/modules/35/asm/module_35.s @@ -330,7 +330,7 @@ _02254A7A: str r0, [sp, #8] bl FUN_02023C7C add r4, r0, #0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock str r0, [sp, #0xc] add r0, r4, #0 bl FUN_0206B688 @@ -338,22 +338,22 @@ _02254A7A: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r6, #0x1c] add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r6, #0x20] ldr r0, [sp, #8] bl MOD05_021EC7B4 str r0, [r5, #0xc] add r0, r4, #0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender str r0, [r5, #0x14] ldr r1, [sp, #0xc] add r0, r4, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock ldr r0, [sp] add r7, r7, #1 ldrb r0, [r0] diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s index 0f1fecfb..f7c09bfc 100644 --- a/arm9/modules/39/asm/module_39.s +++ b/arm9/modules/39/asm/module_39.s @@ -63,7 +63,7 @@ MOD39_0225489C: ; 0x0225489C bl MOD20_02252C40 bl FUN_0206BB1C str r0, [sp, #0x10] - bl FUN_0206B9AC + bl GetPartyCount ldr r1, [sp, #4] mov r6, #0 add r1, #0x34 @@ -78,19 +78,19 @@ MOD39_0225489C: ; 0x0225489C _022548CC: ldr r0, [sp, #0x10] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r7, r0, #0 bl FUN_0206B688 str r0, [r4, #4] add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x1c] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r5, #0x28] ldr r0, [sp, #4] str r7, [r4, #0x48] diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 3abecf47..ee020bca 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -212,7 +212,7 @@ MOD56_02211F88: ; 0x02211F88 ldr r0, [r0] bl FUN_0206BB1C str r0, [sp] - bl FUN_0206B9AC + bl GetPartyCount mov r5, #0 add r7, r0, #0 add r4, r5, #0 @@ -221,17 +221,17 @@ MOD56_02211F88: ; 0x02211F88 _02211FA2: ldr r0, [sp] add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa2 mov r2, #0 add r6, r0, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _02211FC8 add r0, r6, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _02211FC8 add r5, r5, #1 @@ -1992,7 +1992,7 @@ MOD56_02212E0C: ; 0x02212E0C bl FUN_02029AFC str r0, [sp, #8] ldr r0, [sp, #0xc] - bl FUN_0206B9AC + bl GetPartyCount mov r6, #0 str r0, [sp, #4] cmp r0, #0 @@ -2001,17 +2001,17 @@ MOD56_02212E0C: ; 0x02212E0C _02212E52: ldr r0, [sp, #0xc] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #5 mov r2, #0 add r7, r0, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r5, #4] mov r2, #0 strh r0, [r1, r4] add r0, r7, #0 mov r1, #6 - bl GetMonDataEncrypted + bl GetMonData ldr r1, [r5, #4] add r6, r6, #1 add r1, r1, r4 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 6fff3ef5..b187276b 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -2218,17 +2218,17 @@ _0222E5EC: add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x10] add r0, r7, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x14] add r0, r7, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r1, r0, #0 ldr r0, [sp, #0x10] ldr r2, [sp, #0x14] @@ -3004,7 +3004,7 @@ MOD62_0222EC54: ; 0x0222EC54 ldr r0, [r0, #4] mov r1, #0xa1 add r2, sp, #0xc - bl SetMonDataEncrypted + bl SetMonData _0222EC80: cmp r7, #0xff beq _0222EC9A @@ -3017,7 +3017,7 @@ _0222EC80: add r0, r1, r0 ldr r0, [r0, #4] mov r1, #0xa1 - bl SetMonDataEncrypted + bl SetMonData _0222EC9A: add r2, r5, #4 ldr r1, [r2, r6] @@ -4492,7 +4492,7 @@ _0222F83E: mov r1, #0x4c add r0, r7, #0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0222F85C ldr r1, _0222F86C ; =0x00000428 @@ -5701,7 +5701,7 @@ MOD62_022301AC: ; 0x022301AC mov r1, #5 ldr r0, [r5, r0] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0 ldr r0, _02230214 ; =0x00000428 mov r1, #2 @@ -5749,11 +5749,11 @@ MOD62_0223021C: ; 0x0223021C mov r1, #5 ldr r0, [r5, r0] mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r4, r0, #0 ldr r0, _02230268 ; =0x00000428 ldr r0, [r5, r0] - bl GetMonNatureEncrypted + bl GetMonNature add r6, r0, #0 mov r0, #0x6a lsl r0, r0, #2 @@ -6199,7 +6199,7 @@ _0223059A: str r0, [sp, #0x9c] ldr r0, _02230724 ; =0x00000428 ldr r0, [r4, r0] - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x8c] add r0, sp, #0x7c bl MOD08_02229918 @@ -6235,12 +6235,12 @@ _022305E2: mov r1, #0xa1 ldr r0, [r4, r0] add r2, sp, #0x18 - bl SetMonDataEncrypted + bl SetMonData ldr r0, _02230724 ; =0x00000428 mov r1, #0xaa ldr r0, [r4, r0] add r2, sp, #0x64 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0x35 add r1, sp, #0x58 bl MOD08_02228218 @@ -6396,7 +6396,7 @@ _0223072C: str r0, [sp, #0x50] ldr r0, [r4, r1] mov r1, #0x9a - bl GetMonDataEncrypted + bl GetMonData str r0, [sp, #0x40] add r0, sp, #0x30 bl MOD08_02229918 @@ -6531,7 +6531,7 @@ _02230860: add r2, r0, #0 add r0, r5, #0 mov r1, #0xaa - bl SetMonDataEncrypted + bl SetMonData _022308A8: mov r0, #0xf5 mov r1, #8 @@ -7091,7 +7091,7 @@ MOD62_02230D38: ; 0x02230D38 ldr r0, [r0, #4] mov r1, #0xa1 add r2, sp, #0 - bl SetMonDataEncrypted + bl SetMonData _02230D5C: mov r0, #0xff str r0, [r4, r6] diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index 20b90cb6..fa4d0c5b 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -3372,17 +3372,17 @@ MOD65_021D8F34: ; 0x021D8F34 str r0, [r4, #0x30] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #0x34] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonGenderEncrypted + bl GetMonGender add r1, r4, #0 add r1, #0x37 strb r0, [r1] ldr r0, [r4, #0x10] ldr r0, [r0] - bl GetMonNatureEncrypted + bl GetMonNature add r1, r4, #0 add r1, #0x36 strb r0, [r1] @@ -3402,7 +3402,7 @@ MOD65_021D8F34: ; 0x021D8F34 ldr r2, [r4, #0x3c] ldr r0, [r0] mov r1, #0x76 - bl GetMonDataEncrypted + bl GetMonData add r1, r4, #0 ldr r0, [r4, #0x10] add r1, #0x36 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 7d7666f9..03dbe420 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -3307,7 +3307,7 @@ MOD67_021D8F00: ; 0x021D8F00 add r1, r7, #0 mov r2, #1 mov r3, #0x20 - bl CreateMonWithNatureGenderLetter + bl CreateMonWithGenderNatureLetter add r0, r6, #0 bl FUN_020690E4 add r2, r0, #0 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index c0a49cfe..bdd1afca 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -50,7 +50,7 @@ MOD69_0222D5C0: ; 0x0222D5C0 str r0, [r4, #4] ldr r0, [r4, #0xc] ldr r0, [r0, #4] - bl FUN_0206B9AC + bl GetPartyCount add r6, r0, #0 mov r5, #0 cmp r6, #0 @@ -61,10 +61,10 @@ _0222D63A: ldr r0, [r4, #0xc] add r1, r5, #0 ldr r0, [r0, #4] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0222D65E ldr r0, [r4, #4] @@ -1224,7 +1224,7 @@ _0222DF98: lsl r1, r1, #2 ldr r0, [r0, #4] ldr r1, [r5, r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x2c] ldr r1, [sp, #0x2c] add r0, sp, #0xc4 @@ -1233,14 +1233,14 @@ _0222DF98: ldr r0, [sp, #0x2c] mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x81 lsl r1, r1, #2 str r0, [r5, r1] mov r1, #0 ldr r0, [sp, #0x2c] add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData str r4, [sp] str r0, [sp, #4] mov r0, #1 @@ -1268,7 +1268,7 @@ _0222DF98: mov r1, #0 ldr r0, [sp, #0x2c] add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData str r4, [sp] str r0, [sp, #4] mov r0, #1 @@ -2281,7 +2281,7 @@ _0222E860: lsl r1, r1, #2 ldr r0, [r0, #4] ldr r1, [r2, r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [r4, #0x24] ldr r0, [r5, #0xc] mov r2, #0 @@ -2360,7 +2360,7 @@ MOD69_0222E8FC: ; 0x0222E8FC mov r1, #0 bl FUN_0200AC60 ldr r0, [r4, #0x24] - bl CalcMonLevelEncrypted + bl CalcMonLevel add r2, r0, #0 mov r0, #0 str r0, [sp] @@ -2370,7 +2370,7 @@ MOD69_0222E8FC: ; 0x0222E8FC mov r3, #3 bl FUN_0200AD38 ldr r0, [r4, #0x24] - bl GetMonGenderEncrypted + bl GetMonGender cmp r0, #0 beq _0222E93C cmp r0, #1 @@ -2418,7 +2418,7 @@ _0222E982: ldr r0, [r5, #0x24] mov r1, #0x98 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0 ldr r0, [r5, #0x14] mov r1, #0 @@ -2480,7 +2480,7 @@ _0222E9FC: ldr r0, [r4, #0x24] ldr r2, [r4, #0x1c] mov r1, #0x76 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0 mov r1, #0x48 bl MOD69_0222E89C @@ -4037,12 +4037,12 @@ MOD69_0222F6C4: ; 0x0222F6C4 add r5, r0, #0 add r0, r4, #0 add r6, r2, #0 - bl TryDecryptMon + bl AcquireMonLock str r0, [sp] add r0, r4, #0 mov r1, #0x79 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData sub r1, r0, #1 cmp r1, #2 bhi _0222F6E8 @@ -4063,7 +4063,7 @@ _0222F6FA: add r0, r4, #0 mov r1, #0x6e mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _0222F70C mov r5, #6 @@ -4075,7 +4075,7 @@ _0222F70C: add r0, r4, #0 mov r1, #7 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r7, r0 beq _0222F726 mov r5, #2 @@ -4089,7 +4089,7 @@ _0222F726: add r0, r4, #0 ldr r2, [r5, r2] mov r1, #0x90 - bl GetMonDataEncrypted + bl GetMonData ldr r1, _0222F788 ; =0x00001B54 ldr r0, [r5, r1] add r1, r1, #4 @@ -4103,7 +4103,7 @@ _0222F750: add r0, r4, #0 mov r1, #0x98 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r1, #0x7d lsl r1, r1, #4 cmp r0, r1 @@ -4114,7 +4114,7 @@ _0222F766: add r0, r4, #0 mov r1, #0x92 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0222F778 mov r5, #0 @@ -4124,7 +4124,7 @@ _0222F778: _0222F77A: ldr r1, [sp] add r0, r4, #0 - bl TryEncryptMon + bl ReleaseMonLock add r0, r5, #0 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index ec5af814..6ab711fd 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -1562,7 +1562,7 @@ _021D80F4: ldr r0, [r7, r0] ldr r2, [sp, #0x1c] mov r1, #0x70 - bl SetMonDataEncrypted + bl SetMonData mov r1, #0x66 lsl r1, r1, #2 ldr r1, [r7, r1] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index a6e576b3..a480a3f6 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -138,7 +138,7 @@ MOD71_0222D5C0: ; 0x0222D5C0 mov r0, #0x1a bl FUN_020335F0 bl FUN_02033E74 - bl FUN_0201277C + bl IsNighttime cmp r0, #0 bne _0222D71A ldr r1, _0222D748 ; =0x0000043D @@ -420,11 +420,11 @@ MOD71_0222D93C: ; 0x0222D93C bl MOD71_0222DB94 ldr r0, _0222D9B8 ; =0x00002218 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount add r4, r0, #0 ldr r0, _0222D9BC ; =0x0000221C ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount add r2, r0, #0 mov r0, #0x5d lsl r0, r0, #2 @@ -644,13 +644,13 @@ MOD71_0222DB5C: ; 0x0222DB5C add r0, r5, #0 add r6, r2, #0 mov r4, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222DB92 _0222DB70: add r0, r5, #0 add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0 add r0, r7, #0 @@ -658,7 +658,7 @@ _0222DB70: bl FUN_0200ACF8 add r0, r5, #0 add r4, r4, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 blt _0222DB70 _0222DB92: @@ -676,7 +676,7 @@ MOD71_0222DB94: ; 0x0222DB94 str r3, [sp, #0x10] ldr r6, [sp, #0x28] mov r4, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222DBE6 add r7, r6, #1 @@ -701,7 +701,7 @@ _0222DBB0: ldr r0, [sp, #0x10] add r5, #0x10 add r4, r4, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 blt _0222DBB0 _0222DBE6: @@ -718,7 +718,7 @@ MOD71_0222DBEC: ; 0x0222DBEC str r1, [sp, #0xc] str r2, [sp, #0x20] mov r7, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 bgt _0222DC02 b _0222DD10 @@ -847,7 +847,7 @@ _0222DCE2: _0222DD02: ldr r0, [sp, #8] add r7, r7, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r7, r0 bge _0222DD10 b _0222DC0C @@ -1086,7 +1086,7 @@ _0222DED6: blt _0222DED6 ldr r0, _0222E0F8 ; =0x00002218 ldr r0, [r4, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222DF12 mov r0, #0x69 @@ -1097,20 +1097,20 @@ _0222DEF4: ldr r0, _0222E0F8 ; =0x00002218 add r1, r5, #0 ldr r0, [r4, r0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r6, #0 bl MOD71_0222E118 ldr r0, [r4, r7] add r6, #0x10 add r5, r5, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r5, r0 blt _0222DEF4 _0222DF12: ldr r0, _0222E0FC ; =0x0000221C mov r5, #0 ldr r0, [r4, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222DF48 mov r0, #0x69 @@ -1121,14 +1121,14 @@ _0222DF28: ldr r0, _0222E0FC ; =0x0000221C add r1, r5, #0 ldr r0, [r4, r0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r5, #6 lsl r1, r1, #4 add r1, r6, r1 bl MOD71_0222E118 ldr r0, [r4, r7] add r5, r5, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r5, r0 blt _0222DF28 _0222DF48: @@ -1233,7 +1233,7 @@ _0222E010: ldr r0, _0222E0F8 ; =0x00002218 mov r1, #0 ldr r0, [r4, r0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r2, #0x7f ldr r3, _0222E104 ; =0x000020F0 lsl r2, r2, #4 @@ -1343,46 +1343,46 @@ MOD71_0222E118: ; 0x0222E118 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 - bl TryDecryptMon + bl AcquireMonLock add r7, r0, #0 add r0, r5, #0 mov r1, #0x9a mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #4] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #6] add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strb r0, [r4, #5] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData strh r0, [r4, #8] add r0, r5, #0 mov r1, #0xa1 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData str r0, [r4, #0xc] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0 add r0, r5, #0 add r1, r7, #0 - bl TryEncryptMon + bl ReleaseMonLock ldrh r0, [r4] cmp r0, #0 beq _0222E18E @@ -1412,7 +1412,7 @@ MOD71_0222E1A0: ; 0x0222E1A0 ldr r0, _0222E20C ; =0x0000221C add r7, r1, #0 ldr r0, [r5, r0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r6, r0, #0 add r0, r4, #0 mov r1, #6 @@ -1473,7 +1473,7 @@ MOD71_0222E224: ; 0x0222E224 bge _0222E29E ldr r0, _0222E2BC ; =0x00002218 ldr r0, [r5, r0] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 add r0, r5, #0 add r0, #0x88 @@ -1675,7 +1675,7 @@ MOD71_0222E3D4: ; 0x0222E3D4 ldr r0, _0222E42C ; =0x00002218 mov r4, #0 ldr r0, [r6, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222E402 ldr r7, _0222E42C ; =0x00002218 @@ -1688,14 +1688,14 @@ _0222E3EA: ldr r0, [r6, r7] add r5, r5, #4 add r4, r4, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r4, r0 blt _0222E3EA _0222E402: ldr r0, _0222E430 ; =0x0000221C mov r5, #0 ldr r0, [r6, r0] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #0 ble _0222E42A ldr r7, _0222E430 ; =0x0000221C @@ -1707,7 +1707,7 @@ _0222E414: ldr r0, [r6, r7] add r4, r4, #4 add r5, r5, #1 - bl FUN_0206B9AC + bl GetPartyCount cmp r5, r0 blt _0222E414 _0222E42A: @@ -2647,12 +2647,12 @@ MOD71_0222EBFC: ; 0x0222EBFC mov r1, #0 add r0, r6, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData add r7, r0, #0 add r0, r6, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -2694,10 +2694,10 @@ MOD71_0222EC5C: ; 0x0222EC5C add r4, r0, #0 add r0, r6, #0 add r1, r7, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x76 add r2, r4, #0 - bl GetMonDataEncrypted + bl GetMonData add r0, r5, #0 mov r1, #0 bl FUN_02019620 @@ -2728,10 +2728,10 @@ MOD71_0222ECA8: ; 0x0222ECA8 _0222ECB6: add r0, r1, #0 add r1, r2, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0x4d mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _0222ECCE mov r0, #2 @@ -2753,7 +2753,7 @@ MOD71_0222ECD4: ; 0x0222ECD4 str r2, [sp, #8] str r3, [sp, #0xc] ldr r4, [sp, #0x50] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #2 bl FUN_02068E14 str r0, [sp, #0x10] @@ -2929,10 +2929,10 @@ _0222EE14: bl MOD71_02230EFC ldr r0, [sp, #8] ldr r1, [sp, #0xc] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa0 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #1 @@ -2975,10 +2975,10 @@ _0222EEA6: bl MOD71_02230EFC ldr r0, [sp, #8] ldr r1, [sp, #0xc] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r5, #0x20 lsl r0, r0, #0x10 lsl r4, r5, #4 @@ -3864,7 +3864,7 @@ MOD71_0222F59C: ; 0x0222F59C str r0, [r5, #0xc] ldr r0, [r5, #8] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r5, #0x1f] mov r0, #0 str r0, [r5, #0x34] @@ -3880,7 +3880,7 @@ _0222F5CC: ldr r1, [r5, r0] str r1, [r5, #0xc] ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount strb r0, [r5, #0x1f] bl FUN_02031190 mov r2, #1 @@ -4875,7 +4875,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 add r1, #0x88 ldr r0, [r4, r0] ldr r1, [r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0 mov r0, #0x5f @@ -5694,7 +5694,7 @@ MOD71_022304AC: ; 0x022304AC add r1, #0x88 ldr r0, [r4, r0] ldr r1, [r1] - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0 mov r0, #0x5f @@ -5708,7 +5708,7 @@ MOD71_022304AC: ; 0x022304AC ldr r1, [r1] ldr r0, [r4, r0] sub r1, r1, #6 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0 mov r0, #0x5f @@ -6121,7 +6121,7 @@ MOD71_02230810: ; 0x02230810 ldr r1, [r1] ldr r0, [r4, r0] sub r1, r1, #6 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 add r2, r0, #0 mov r0, #0x5f @@ -6327,18 +6327,18 @@ MOD71_022309E8: ; 0x022309E8 add r4, r0, #0 ldr r0, [sp, #4] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r7, #0 bl FUN_02069B88 ldr r0, [sp, #8] ldr r1, [sp, #0xc] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r4, #0 bl FUN_02069B88 add r0, r4, #0 mov r1, #0x4c mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 bne _02230A40 mov r1, #0x46 @@ -6347,7 +6347,7 @@ MOD71_022309E8: ; 0x022309E8 add r0, r4, #0 mov r1, #9 add r2, sp, #0x10 - bl SetMonDataEncrypted + bl SetMonData _02230A40: bl FUN_02031190 bl FUN_0202DFA4 @@ -6375,7 +6375,7 @@ _02230A40: ldr r0, [sp, #4] ldr r1, _02230AE0 ; =0x000001B9 str r6, [r5, #0x2c] - bl FUN_0206BAE4 + bl PartyHasMon cmp r0, #0 bne _02230A98 ldr r0, [r5, #0x10] @@ -6387,13 +6387,13 @@ _02230A98: bl FUN_0202C144 ldr r0, [sp, #4] add r1, r6, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 add r0, r4, #0 bl FUN_02069B88 ldr r0, [sp, #8] ldr r1, [sp, #0xc] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 add r0, r7, #0 bl FUN_02069B88 @@ -6427,7 +6427,7 @@ MOD71_02230AE4: ; 0x02230AE4 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl GetMonDataEncrypted + bl GetMonData add r0, r5, #0 bl FUN_0202398C add r7, r0, #0 @@ -6435,7 +6435,7 @@ MOD71_02230AE4: ; 0x02230AE4 bl FUN_020239CC add r5, r0, #0 add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender add r3, r0, #0 mov r0, #0x1a lsl r1, r5, #0x18 @@ -6538,7 +6538,7 @@ MOD71_02230BC4: ; 0x02230BC4 ldr r0, _02230C00 ; =0x00002218 mov r4, #0 ldr r0, [r5, r0] - bl FUN_0206B9AC + bl GetPartyCount add r3, r4, #0 cmp r0, #0 ble _02230BF0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 6f7aff75..e40f2c19 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -801,7 +801,7 @@ MOD76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 - bl SetMonDataEncrypted + bl SetMonData mov r0, #0 str r0, [sp] ldr r1, [r4] @@ -809,7 +809,7 @@ MOD76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3e - bl SetMonDataEncrypted + bl SetMonData add r0, r4, #0 bl MOD76_021D8514 mov r1, #0 @@ -820,7 +820,7 @@ MOD76_021D7B2C: ; 0x021D7B2C ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x3a - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r4] mov r1, #0 strb r1, [r0, #0x16] @@ -2028,7 +2028,7 @@ MOD76_021D8524: ; 0x021D8524 ldr r0, [r1] ldrb r1, [r1, #0x17] add r1, #0x36 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} @@ -2131,7 +2131,7 @@ _021D85EC: ldr r0, [r0] add r1, #0x36 add r2, r6, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _021D8608 add r0, r4, #1 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index ca042f7e..2ff872c5 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -4660,7 +4660,7 @@ _0222FA26: beq _0222FA80 ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _0222FA80 ldr r0, _0222FAE4 ; =0x00000F0F @@ -4855,7 +4855,7 @@ MOD80_0222FBC0: ; 0x0222FBC0 ldr r0, [sp, #0x48] ldr r2, [sp, #0x1c] mov r1, #0x76 - bl GetBoxMonDataEncrypted + bl GetBoxMonData mov r2, #0 ldrsh r0, [r4, r2] mov r1, #6 @@ -4866,7 +4866,7 @@ MOD80_0222FBC0: ; 0x0222FBC0 mov r0, #3 ldrsb r4, [r4, r0] ldr r0, [sp, #0x48] - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x30] add r0, r5, #0 mov r1, #0x46 @@ -5058,12 +5058,12 @@ MOD80_0222FD88: ; 0x0222FD88 mov r1, #0 add r0, r5, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0 add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -9976,10 +9976,10 @@ _022325CE: add r1, #0xba ldrh r1, [r1] ldr r0, [r0, #8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa1 add r2, r4, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _022325FE mov r0, #0xe @@ -10216,10 +10216,10 @@ _022327CE: add r1, #0xba ldrh r1, [r1] ldr r0, [r0, #8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex mov r1, #0xa1 add r2, r4, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 beq _022327FE mov r0, #0xb @@ -10458,7 +10458,7 @@ MOD80_02232990: ; 0x02232990 beq _022329E6 ldr r0, [r4] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _022329E6 ldr r0, _02232A2C ; =0x00000F0F @@ -10777,7 +10777,7 @@ MOD80_02232BD4: ; 0x02232BD4 MOD80_02232C2C: ; 0x02232C2C push {r4, lr} add r4, r1, #0 - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel strb r0, [r4, #3] pop {r4, pc} thumb_func_end MOD80_02232C2C @@ -10832,38 +10832,38 @@ MOD80_02232C88: ; 0x02232C88 add r7, r2, #0 add r6, r3, #0 ldr r4, [sp, #0x40] - bl TryDecryptBoxMon + bl AcquireBoxMonLock add r0, r5, #0 mov r1, #0xab mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x1c] add r0, r5, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r6] add r0, r5, #0 mov r1, #0x70 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x10] add r0, r5, #0 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x14] add r0, r5, #0 mov r1, #6 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x18] ldrh r0, [r6] mov r1, #0x6f mov r2, #0 strh r0, [r4] add r0, r5, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r0, r0, #1 strb r0, [r4, #2] ldr r0, [sp, #0x14] @@ -10874,7 +10874,7 @@ MOD80_02232C88: ; 0x02232C88 _02232CF2: add r0, r5, #0 mov r1, #1 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock ldr r0, [sp, #0x1c] cmp r0, #0 beq _02232D60 @@ -11031,7 +11031,7 @@ _02232E22: _02232E3A: ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount mov r4, #0 str r0, [sp, #0x14] cmp r0, #0 @@ -11040,7 +11040,7 @@ _02232E4A: ldr r0, [r5] add r1, r4, #0 ldr r0, [r0, #8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex str r0, [sp, #0x24] bl FUN_020690E4 ldr r1, _02232F84 ; =0x00001004 @@ -11076,7 +11076,7 @@ _02232E4A: ldr r0, [sp, #0x24] mov r1, #0xa1 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r0, #0 ldr r0, _02232F90 ; =0x00000E54 beq _02232EB4 @@ -11221,7 +11221,7 @@ MOD80_02232FB8: ; 0x02232FB8 cmp r0, #0 beq _02232FEA add r0, r5, #0 - bl FUN_0206B9AC + bl GetPartyCount sub r0, r0, #1 cmp r4, r0 ble _02232FDC @@ -11230,7 +11230,7 @@ MOD80_02232FB8: ; 0x02232FB8 _02232FDC: add r0, r5, #0 add r1, r4, #0 - bl FUN_0206B9B0 + bl GetPartyMonByIndex bl FUN_020690E4 pop {r3, r4, r5, r6, r7, pc} _02232FEA: @@ -11251,7 +11251,7 @@ MOD80_02232FF8: ; 0x02232FF8 cmp r0, #0 beq _02233014 add r0, r4, #0 - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #2 bge _02233014 mov r0, #0 @@ -11266,7 +11266,7 @@ MOD80_02233018: ; 0x02233018 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r4, #0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock ldr r5, _02233050 ; =0x02237220 str r0, [sp] add r6, r4, #0 @@ -11274,7 +11274,7 @@ _02233028: ldrh r1, [r5] add r0, r7, #0 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r6, r6, #1 add r4, r4, r0 add r5, r5, #2 @@ -11282,7 +11282,7 @@ _02233028: blt _02233028 ldr r1, [sp] add r0, r7, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock cmp r4, #0 beq _0223304C mov r0, #1 @@ -11305,7 +11305,7 @@ MOD80_02233054: ; 0x02233054 _02233062: mov r1, #0xab mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _02233072 mov r0, #0 @@ -11314,7 +11314,7 @@ _02233072: add r0, r4, #0 mov r1, #0xac mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 beq _02233084 mov r0, #2 @@ -11386,18 +11386,18 @@ MOD80_022330E4: ; 0x022330E4 mov r1, #5 mov r2, #0 add r5, r0, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, sp, #0 strh r0, [r1] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r0, #1 add r0, sp, #0 strb r1, [r0, #2] add r0, r5, #0 - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel add r1, sp, #0 strb r0, [r1, #3] add r0, sp, #0 @@ -11418,7 +11418,7 @@ MOD80_0223311C: ; 0x0223311C ldr r0, [r0] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, sp, #0 strh r0, [r1, #6] add r0, r5, #0 @@ -11426,14 +11426,14 @@ MOD80_0223311C: ; 0x0223311C ldr r0, [r0] mov r1, #0x6f mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r0, #1 add r0, sp, #0 strb r1, [r0, #8] add r0, r5, #0 add r0, #0xbc ldr r0, [r0] - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel add r1, sp, #0 strb r0, [r1, #9] add r0, r4, #0 @@ -11459,13 +11459,13 @@ MOD80_0223311C: ; 0x0223311C mov r1, #5 mov r2, #0 add r5, r0, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, sp, #0 strh r0, [r1] add r0, r5, #0 mov r1, #0x6f mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r0, r0, #1 add r1, sp, #0 strb r0, [r1, #2] @@ -11524,7 +11524,7 @@ MOD80_022331F8: ; 0x022331F8 push {r3, lr} mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0206EA98 @@ -13374,14 +13374,14 @@ MOD80_022340DC: ; 0x022340DC ldr r0, [sp, #0xc] ldr r2, [sp, #0x18] mov r1, #0x76 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r0, [sp, #0xc] mov r1, #0x6f mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r6, r0, #1 ldr r0, [sp, #0xc] - bl CalcBoxMonLevelEncrypted + bl CalcBoxMonLevel str r0, [sp, #0x10] add r0, r4, #0 mov r1, #0x64 @@ -13467,7 +13467,7 @@ _022341CA: ldr r0, [sp, #0xc] mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData strh r0, [r7] ldr r0, [sp, #0x10] strb r6, [r7, #2] @@ -16102,7 +16102,7 @@ _02235590: add r1, #0xba ldrh r1, [r1] ldr r0, [r0, #8] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r4, r0, #0 bl FUN_0206AA84 add r2, r5, #0 @@ -16121,7 +16121,7 @@ _02235590: ldr r0, [r5] ldr r1, _022355EC ; =0x000001B9 ldr r0, [r0, #8] - bl FUN_0206BAE4 + bl PartyHasMon cmp r0, #0 bne _022355DC ldr r0, [r5] @@ -16152,7 +16152,7 @@ MOD80_022355F0: ; 0x022355F0 mov r1, #6 mov r2, #0 add r6, r3, #0 - bl GetMonDataEncrypted + bl GetMonData ldr r0, [r5] add r1, r4, #0 ldr r0, [r0, #0x20] @@ -16161,7 +16161,7 @@ MOD80_022355F0: ; 0x022355F0 str r0, [sp, #0x20] ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _02235624 mov r0, #0 @@ -16175,7 +16175,7 @@ _02235624: add r0, r4, #0 mov r1, #9 add r2, sp, #0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [r5] ldr r0, [r0] bl MOD80_02235754 @@ -16189,7 +16189,7 @@ _02235640: bl FUN_0206B900 ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount add r1, r5, #0 mov r2, #0x12 add r1, #0xcc @@ -16246,7 +16246,7 @@ MOD80_022356AC: ; 0x022356AC str r0, [sp, #0x20] ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _022356D2 mov r0, #0 @@ -16258,7 +16258,7 @@ _022356D2: add r0, r4, #0 mov r1, #9 add r2, sp, #0 - bl SetMonDataEncrypted + bl SetMonData ldr r0, [sp, #0x20] cmp r0, #0x12 bne _02235706 @@ -16268,7 +16268,7 @@ _022356D2: bl FUN_0206B900 ldr r0, [r5] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount add r1, r5, #0 mov r2, #0x12 add r1, #0xcc @@ -16364,9 +16364,9 @@ MOD80_022357A0: ; 0x022357A0 add r0, r4, #0 mov r1, #0x74 add r2, sp, #4 - bl GetMonDataEncrypted + bl GetMonData add r0, r4, #0 - bl GetMonGenderEncrypted + bl GetMonGender add r3, r0, #0 mov r0, #0x3e str r0, [sp] @@ -16395,7 +16395,7 @@ MOD80_022357DC: ; 0x022357DC beq _022357FA ldr r0, [r4] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _022357FA mov r0, #2 @@ -16409,7 +16409,7 @@ _022357FA: bne _02235816 ldr r0, [r4] ldr r0, [r0, #8] - bl FUN_0206B9AC + bl GetPartyCount cmp r0, #6 bne _02235816 mov r0, #1 @@ -17434,7 +17434,7 @@ _02235FDE: mov r1, #6 mov r2, #0 add r7, r0, #0 - bl GetMonDataEncrypted + bl GetMonData add r3, r0, #0 add r0, sp, #0x30 lsl r3, r3, #0x10 @@ -17443,7 +17443,7 @@ _02235FDE: add r1, r7, #0 mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02069168 + bl GetMonEvolution str r0, [sp, #0x24] cmp r0, #0 beq _02236052 @@ -17502,30 +17502,30 @@ _02236068: add r0, r7, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0 ldr r0, [sp, #0x20] mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 bne _022360B6 mov r1, #0 add r0, r7, #0 add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData add r5, r0, #0 mov r1, #0 ldr r0, [sp, #0x20] add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData cmp r5, r0 beq _02236126 _022360B6: add r0, r7, #0 mov r1, #6 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r3, r0, #0 add r0, sp, #0x2c lsl r3, r3, #0x10 @@ -17534,7 +17534,7 @@ _022360B6: add r1, r7, #0 mov r2, #1 lsr r3, r3, #0x10 - bl FUN_02069168 + bl GetMonEvolution str r0, [sp, #0x28] cmp r0, #0 beq _02236118 @@ -17717,7 +17717,7 @@ MOD80_02236218: ; 0x02236218 add r5, #0xd0 ldr r0, [r0, #8] ldr r1, [r5] - bl FUN_0206B9B0 + bl GetPartyMonByIndex add r1, r0, #0 add r0, r4, #0 bl FUN_02069B88 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 87239548..82f5fbd1 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -136,7 +136,7 @@ _02237F22: mov r1, #5 ldr r0, [r0] mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData mov r1, #0x53 lsl r1, r1, #2 strh r0, [r4, r1] @@ -144,7 +144,7 @@ _02237F22: mov r1, #5 ldr r0, [r0, #4] mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, _02237FD8 ; =0x0000014E strh r0, [r4, r1] mov r0, #0 @@ -197,7 +197,7 @@ MOD81_02237FE8: ; 0x02237FE8 push {r3, lr} mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData mov r1, #0x1c bl GetMonBaseStat cmp r0, #0 @@ -999,7 +999,7 @@ _0223860E: ldr r4, [r0, #4] _02238610: add r0, r4, #0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock str r0, [sp, #0x20] add r0, sp, #0x34 add r1, r4, #0 @@ -1008,12 +1008,12 @@ _02238610: mov r1, #0 add r0, r4, #0 add r2, r1, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData str r0, [sp, #0x1c] add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 ldr r1, [sp, #0x58] lsr r0, r0, #0x10 @@ -1051,7 +1051,7 @@ _02238648: bl FUN_02017E14 ldr r1, [sp, #0x20] add r0, r4, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock add r0, r7, #0 bl FreeToHeap _02238690: @@ -2514,7 +2514,7 @@ _02239138: bl MOD81_02238818 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _0223918A ldr r0, [r4, #0x10] @@ -9501,7 +9501,7 @@ _0223C8D6: bl MOD81_02238820 mov r1, #0x4c mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0 bne _0223C902 ldr r0, [r4] diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 0ce9b5c7..2aa02a59 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -21809,7 +21809,7 @@ MOD83_02237F04: ; 0x02237F04 add r0, r1, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0 @@ -21864,9 +21864,9 @@ MOD83_02237F6C: ; 0x02237F6C add r4, r1, #0 add r6, r0, #0 add r0, r4, #0 - bl WipeBoxMonDataAndEncrypt + bl ZeroBoxMonData add r0, r4, #0 - bl TryDecryptBoxMon + bl AcquireBoxMonLock mov r1, #0 str r0, [sp] add r0, r6, #0 @@ -21876,7 +21876,7 @@ MOD83_02237F6C: ; 0x02237F6C add r0, r4, #0 mov r1, #0 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0xb mov r2, #0 @@ -21887,7 +21887,7 @@ MOD83_02237F6C: ; 0x02237F6C add r0, r4, #0 mov r1, #5 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0xc mov r2, #0 @@ -21903,7 +21903,7 @@ _02237FCE: add r0, r4, #0 mov r1, #6 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #1 mov r2, #0 @@ -21912,7 +21912,7 @@ _02237FCE: add r0, r4, #0 mov r1, #7 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x19 mov r2, #0 @@ -21921,13 +21921,13 @@ _02237FCE: add r0, r4, #0 mov r1, #8 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData mov r0, #0x46 str r0, [sp, #8] add r0, r4, #0 mov r1, #9 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 add r1, r4, #0 bl MOD83_02237F04 @@ -21935,7 +21935,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xa add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #8 mov r2, #0 @@ -21944,7 +21944,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xb add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #3 mov r2, #0 @@ -21953,7 +21953,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xc add r2, sp, #4 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1a mov r2, #0 @@ -21962,7 +21962,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xd add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1b mov r2, #0 @@ -21971,7 +21971,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xe add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1c mov r2, #0 @@ -21980,7 +21980,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0xf add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1d mov r2, #0 @@ -21989,7 +21989,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x10 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1e mov r2, #0 @@ -21998,7 +21998,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x11 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x1f mov r2, #0 @@ -22007,7 +22007,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x12 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x16 mov r2, #0 @@ -22016,7 +22016,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x13 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x17 mov r2, #0 @@ -22025,7 +22025,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x14 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x18 mov r2, #0 @@ -22034,7 +22034,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x15 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x21 mov r2, #0 @@ -22043,7 +22043,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x16 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x2f mov r2, #0 @@ -22052,7 +22052,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x17 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x30 mov r2, #0 @@ -22061,7 +22061,7 @@ _02237FCE: add r0, r4, #0 mov r1, #0x18 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData mov r5, #0 add r7, r5, #0 _0223815E: @@ -22075,7 +22075,7 @@ _0223815E: add r0, r4, #0 add r1, #0x36 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x15 mov r2, #0 @@ -22090,18 +22090,18 @@ _0223815E: add r0, r4, #0 add r1, #0x3e add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r1, r5, #0 add r0, r4, #0 add r1, #0x42 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData add r1, r5, #0 str r0, [sp, #8] add r0, r4, #0 add r1, #0x3a add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 add r7, r7, #2 cmp r5, #4 @@ -22114,7 +22114,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x46 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x28 mov r2, #0 @@ -22123,7 +22123,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x47 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x29 mov r2, #0 @@ -22132,7 +22132,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x48 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x2a mov r2, #0 @@ -22141,7 +22141,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x49 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x2b mov r2, #0 @@ -22150,7 +22150,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4a add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x2c mov r2, #0 @@ -22159,7 +22159,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4b add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x2d mov r2, #0 @@ -22168,7 +22168,7 @@ _0223815E: add r0, r4, #0 mov r1, #0x4c add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x32 mov r2, #0 @@ -22186,7 +22186,7 @@ _0223826C: add r0, r4, #0 add r1, #0x4e add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 cmp r5, r7 blt _0223826C @@ -22208,7 +22208,7 @@ _02238298: add r0, r4, #0 add r1, #0x52 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 cmp r5, r7 blt _02238298 @@ -22230,7 +22230,7 @@ _022382C4: add r0, r4, #0 add r1, #0x56 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 cmp r5, r7 blt _022382C4 @@ -22252,7 +22252,7 @@ _022382F0: add r0, r4, #0 add r1, #0x5a add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 cmp r5, r7 blt _022382F0 @@ -22274,7 +22274,7 @@ _0223831C: add r0, r4, #0 add r1, #0x5e add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r5, r5, #1 cmp r5, r7 blt _0223831C @@ -22287,7 +22287,7 @@ _02238332: add r0, r4, #0 mov r1, #0x62 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x44 mov r2, #0 @@ -22296,7 +22296,7 @@ _02238332: add r0, r4, #0 mov r1, #0x63 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x45 mov r2, #0 @@ -22305,7 +22305,7 @@ _02238332: add r0, r4, #0 mov r1, #0x64 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x46 mov r2, #0 @@ -22314,7 +22314,7 @@ _02238332: add r0, r4, #0 mov r1, #0x65 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x47 mov r2, #0 @@ -22323,7 +22323,7 @@ _02238332: add r0, r4, #0 mov r1, #0x66 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x48 mov r2, #0 @@ -22332,7 +22332,7 @@ _02238332: add r0, r4, #0 mov r1, #0x67 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x49 mov r2, #0 @@ -22341,7 +22341,7 @@ _02238332: add r0, r4, #0 mov r1, #0x68 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x4a mov r2, #0 @@ -22350,7 +22350,7 @@ _02238332: add r0, r4, #0 mov r1, #0x69 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x4b mov r2, #0 @@ -22359,7 +22359,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6a add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x4c mov r2, #0 @@ -22368,7 +22368,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6b add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x4d mov r2, #0 @@ -22377,7 +22377,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6c add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x4e mov r2, #0 @@ -22386,7 +22386,7 @@ _02238332: add r0, r4, #0 mov r1, #0x6d add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x50 mov r2, #0 @@ -22395,18 +22395,18 @@ _02238332: add r0, r4, #0 mov r1, #0x6e add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0 - bl GetBoxMonGenderEncrypted + bl GetBoxMonGender str r0, [sp, #8] add r0, r4, #0 mov r1, #0x6f add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData cmp r0, #0xc9 bne _022384AE mov r1, #0 @@ -22436,12 +22436,12 @@ _02238332: add r0, r4, #0 mov r1, #0x70 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData _022384AE: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetBoxMonDataEncrypted + bl GetBoxMonData ldr r1, _022385F0 ; =0x00000182 cmp r0, r1 bne _022384FE @@ -22481,7 +22481,7 @@ _022384F4: add r0, r4, #0 mov r1, #0x70 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData _022384FE: add r0, r6, #0 mov r1, #2 @@ -22495,7 +22495,7 @@ _022384FE: add r0, r4, #0 mov r1, #0x75 add r2, sp, #0xc - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #3 mov r2, #0 @@ -22509,7 +22509,7 @@ _022384FE: add r0, r4, #0 mov r1, #0x4d add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData _0223853E: add r0, r6, #0 mov r1, #0x25 @@ -22519,7 +22519,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x79 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #7 add r2, sp, #0x24 @@ -22532,7 +22532,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x8f add r2, sp, #0xc - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x23 mov r2, #0 @@ -22541,7 +22541,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x98 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x22 mov r2, #0 @@ -22550,7 +22550,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x99 add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x26 mov r2, #0 @@ -22559,7 +22559,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x9a add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x24 mov r2, #0 @@ -22568,7 +22568,7 @@ _0223853E: add r0, r4, #0 mov r1, #0x9b add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData add r0, r6, #0 mov r1, #0x31 mov r2, #0 @@ -22577,10 +22577,10 @@ _0223853E: add r0, r4, #0 mov r1, #0x9c add r2, sp, #8 - bl SetBoxMonDataEncrypted + bl SetBoxMonData ldr r1, [sp] add r0, r4, #0 - bl TryEncryptBoxMon + bl ReleaseBoxMonLock add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop @@ -23885,10 +23885,10 @@ MOD83_02238F94: ; 0x02238F94 add r7, r2, #0 add r6, r3, #0 ldr r4, [sp, #0x40] - bl GetMonGenderEncrypted + bl GetMonGender str r0, [sp, #0x24] ldr r0, [sp, #0x20] - bl FUN_02068A80 + bl MonIsShiny lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -23908,7 +23908,7 @@ MOD83_02238F94: ; 0x02238F94 mov r1, #0 ldr r0, [sp, #0x20] add r2, r1, #0 - bl GetMonDataEncrypted + bl GetMonData mov r3, #0 str r3, [sp] mov r1, #0xa @@ -24027,12 +24027,12 @@ _022390C2: add r0, r4, #0 mov r1, #5 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r6, r0, #0 add r0, r4, #0 mov r1, #0x70 mov r2, #0 - bl GetMonDataEncrypted + bl GetMonData add r2, r0, #0 mov r0, #0xe9 lsl r0, r0, #4 diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c new file mode 100644 index 00000000..4a4b8a6d --- /dev/null +++ b/arm9/src/pokemon.c @@ -0,0 +1,3741 @@ +#include "global.h" +#define IN_POKEMON_C +#include "proto.h" +#include "party.h" +#include "pokemon.h" +#include "filesystem.h" +#include "heap.h" +#include "MI_memory.h" +#include "math_util.h" +#include "move_data.h" +#include "string_util.h" +#include "text.h" +#include "constants/abilities.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/sinnoh_dex.h" + +#pragma thumb on + +u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr); +u32 GetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr); +void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr); +void SetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr); +void AddMonDataInternal(struct Pokemon * pokemon, int attr, int amount); +void AddBoxMonData(struct BoxPokemon * pokemon, int attr, int amount); +u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon); +u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno); +u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid); +u8 BoxMonIsShiny(struct BoxPokemon * boxmon); +u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid); +void InitBoxMonMoveset(struct BoxPokemon * boxmon); +u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move); +void FUN_02069718(struct BoxPokemon * boxmon, u16 move); +void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot); +void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2); +s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor); +s8 FUN_02069BE4(u32 personality, int flavor); +u8 FUN_02069CF4(struct PlayerParty * party_p, u8 mask); +BOOL FUN_02069E7C(struct BoxPokemon * boxmon); +BOOL FUN_02069E9C(struct BoxPokemon * boxmon); +void FUN_02069ECC(struct BoxPokemon * boxmon); +void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl); +void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5); +BOOL MonHasMove(struct Pokemon * pokemon, u16 move); +BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1); +BOOL FUN_0206A16C(u16 species, int forme, u32 a2); +void FUN_0206A1CC(struct BoxPokemon * boxmon); +u32 MaskOfFlagNo(int flagno); +void LoadMonPersonal(int species, struct BaseStats * personal); +void LoadMonEvolutionTable(u16 species, struct Evolution * dest); + +int ResolveMonForme(int species, int forme); +void MonEncryptSegment(u16 * datap, u32 size, u32 key); +void MonDecryptSegment(u16 * datap, u32 size, u32 key); +u16 MonEncryptionLCRNG(u32 * seed); +u16 CalcMonChecksum(u16 * datap, u32 size); +PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u8 which_struct); +void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * baseStats); +u8 FUN_020690D4(struct BoxPokemon * boxmon); + +#define ENCRY_ARGS_PTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.pid +#define ENCRY_ARGS_BOX(boxmon) (u16 *)&(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum +#define ENCRYPT_PTY(mon) MonEncryptSegment(ENCRY_ARGS_PTY(mon)) +#define ENCRYPT_BOX(boxmon) MonEncryptSegment(ENCRY_ARGS_BOX(boxmon)) +#define DECRYPT_PTY(mon) MonDecryptSegment(ENCRY_ARGS_PTY(mon)) +#define DECRYPT_BOX(boxmon) MonDecryptSegment(ENCRY_ARGS_BOX(boxmon)) +#define CHECKSUM(boxmon) CalcMonChecksum((u16 *)(boxmon)->substructs, sizeof((boxmon)->substructs)) +#define SHINY_CHECK(otid, pid) (( \ + ((((otid) & 0xFFFF0000u) >> 16u)) ^ \ + (((otid) & 0xFFFFu)) ^ \ + ((((pid) & 0xFFFF0000u) >> 16u))^ \ + (((pid) & 0xFFFFu))) \ + < 8u) +#define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % 28u) + +const u16 sItemOdds[2][2] = { + { 45, 95 }, + { 20, 80 }, +}; + +const s8 sFriendshipModTable[][3] = { + { 5, 3, 2 }, + { 5, 3, 2 }, + { 1, 1, 0 }, + { 3, 2, 1 }, + { 1, 1, 0 }, + { 1, 1, 1 }, + { -1, -1, -1 }, + { -5, -5, -10 }, + { -5, -5, -10 }, + { 3, 2, 1 }, +}; + +const u16 sLegendaryMonsList[] = { + SPECIES_MEWTWO, + SPECIES_MEW, + SPECIES_HO_OH, + SPECIES_LUGIA, + SPECIES_CELEBI, + SPECIES_KYOGRE, + SPECIES_GROUDON, + SPECIES_RAYQUAZA, + SPECIES_JIRACHI, + SPECIES_DEOXYS, + SPECIES_DIALGA, + SPECIES_PALKIA, + SPECIES_GIRATINA, + SPECIES_PHIONE, + SPECIES_MANAPHY, + SPECIES_DARKRAI, + SPECIES_SHAYMIN, + SPECIES_ARCEUS, +}; + +const s8 UNK_020F7F16[][5] = { + // Atk, Def, Spd, SpA, SpD + { 0, 0, 0, 0, 0}, + { 1, 0, 0, 0, -1}, + { 1, 0, -1, 0, 0}, + { 1, -1, 0, 0, 0}, + { 1, 0, 0, -1, 0}, + { -1, 0, 0, 0, 1}, + { 0, 0, 0, 0, 0}, + { 0, 0, -1, 0, 1}, + { 0, -1, 0, 0, 1}, + { 0, 0, 0, -1, 1}, + { -1, 0, 1, 0, 0}, + { 0, 0, 1, 0, -1}, + { 0, 0, 0, 0, 0}, + { 0, -1, 1, 0, 0}, + { 0, 0, 1, -1, 0}, + { -1, 1, 0, 0, 0}, + { 0, 1, 0, 0, -1}, + { 0, 1, -1, 0, 0}, + { 0, 0, 0, 0, 0}, + { 0, 1, 0, -1, 0}, + { -1, 0, 0, 1, 0}, + { 0, 0, 0, 1, -1}, + { 0, 0, -1, 1, 0}, + { 0, -1, 0, 1, 0}, + { 0, 0, 0, 0, 0}, +}; + +const s8 sNatureStatMods[][5] = { + { 0, 0, 0, 0, 0 }, + { 1, -1, 0, 0, 0 }, + { 1, 0, -1, 0, 0 }, + { 1, 0, 0, -1, 0 }, + { 1, 0, 0, 0, -1 }, + { -1, 1, 0, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 1, -1, 0, 0 }, + { 0, 1, 0, -1, 0 }, + { 0, 1, 0, 0, -1 }, + { -1, 0, 1, 0, 0 }, + { 0, -1, 1, 0, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 1, -1, 0 }, + { 0, 0, 1, 0, -1 }, + { -1, 0, 0, 1, 0 }, + { 0, -1, 0, 1, 0 }, + { 0, 0, -1, 1, 0 }, + { 0, 0, 0, 0, 0 }, + { 0, 0, 0, 1, -1 }, + { -1, 0, 0, 0, 1 }, + { 0, -1, 0, 0, 1 }, + { 0, 0, -1, 0, 1 }, + { 0, 0, 0, -1, 1 }, + { 0, 0, 0, 0, 0 }, +}; + +void ZeroMonData(struct Pokemon * pokemon) +{ + MIi_CpuClearFast(0, pokemon, sizeof(struct Pokemon)); + ENCRYPT_BOX(&pokemon->box); + ENCRYPT_PTY(pokemon); +} + +void ZeroBoxMonData(struct BoxPokemon * boxmon) +{ + MIi_CpuClearFast(0, boxmon, sizeof(struct BoxPokemon)); + ENCRYPT_BOX(boxmon); +} + +u32 SizeOfStructPokemon(void) +{ + return sizeof(struct Pokemon); +} + +struct Pokemon * AllocMonZeroed(u32 heap_id) +{ + struct Pokemon * pokemon = (struct Pokemon *)AllocFromHeap(heap_id, sizeof(struct Pokemon)); + ZeroMonData(pokemon); + return pokemon; +} + +BOOL AcquireMonLock(struct Pokemon * mon) +{ + BOOL ret = FALSE; + + if (!mon->box.party_lock) + { + ret = TRUE; + GF_ASSERT(!mon->box.box_lock); + mon->box.party_lock = TRUE; + mon->box.box_lock = TRUE; + DECRYPT_PTY(mon); + DECRYPT_BOX(&mon->box); + } + return ret; +} + +BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result) +{ + BOOL ret = FALSE; + if (mon->box.party_lock == TRUE && decrypt_result == TRUE) + { + ret = TRUE; + mon->box.party_lock = FALSE; + mon->box.box_lock = FALSE; + ENCRYPT_PTY(mon); + mon->box.checksum = CHECKSUM(&mon->box); + ENCRYPT_BOX(&mon->box); + } + return ret; +} + +BOOL AcquireBoxMonLock(struct BoxPokemon * mon) +{ + BOOL ret = FALSE; + + if (!mon->box_lock) + { + ret = TRUE; + mon->box_lock = TRUE; + DECRYPT_BOX(mon); + } + return ret; +} + +BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result) +{ + BOOL ret = FALSE; + if (mon->box_lock == TRUE && decrypt_result == TRUE) + { + ret = TRUE; + mon->box_lock = FALSE; + mon->checksum = CHECKSUM(mon); + ENCRYPT_BOX(mon); + } + return ret; +} + +void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId) +{ + struct SealStruct * seal; + u32 capsule; + u8 seal_coords[0x18]; + ZeroMonData(pokemon); + CreateBoxMon(&pokemon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId); + // Not your average encryption call + MonEncryptSegment((u16 *)&pokemon->party, sizeof(pokemon->party), 0); + ENCRYPT_PTY(pokemon); + SetMonData(pokemon, MON_DATA_LEVEL, &level); + seal = CreateNewSealsObject(0); + SetMonData(pokemon, MON_DATA_SEAL_STRUCT, seal); + FreeToHeap(seal); + capsule = 0; + SetMonData(pokemon, MON_DATA_CAPSULE, &capsule); + MIi_CpuClearFast(0, seal_coords, sizeof(seal_coords)); + SetMonData(pokemon, MON_DATA_SEAL_COORDS, seal_coords); + CalcMonLevelAndStats(pokemon); +} + +void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId) +{ + BOOL decry; + u32 exp; + u32 iv; + ZeroBoxMonData(boxPokemon); + decry = AcquireBoxMonLock(boxPokemon); + if (hasFixedPersonality == 0) + { + fixedPersonality = (rand_LC() | (rand_LC() << 16)); + } + SetBoxMonData(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality); + if (otIdType == 2) + { + do + { + fixedOtId = (rand_LC() | (rand_LC() << 16)); + } while (SHINY_CHECK(fixedOtId, fixedPersonality)); + } + else if (otIdType != 1) + fixedOtId = 0; + SetBoxMonData(boxPokemon, MON_DATA_OTID, &fixedOtId); + SetBoxMonData(boxPokemon, MON_DATA_GAME_LANGUAGE, (void *)&gGameLanguage); + SetBoxMonData(boxPokemon, MON_DATA_SPECIES, &species); + SetBoxMonData(boxPokemon, MON_DATA_SPECIES_NAME, NULL); + exp = GetMonExpBySpeciesAndLevel(species, level); + SetBoxMonData(boxPokemon, MON_DATA_EXPERIENCE, &exp); + exp = (u32)GetMonBaseStat(species, BASE_FRIENDSHIP); + SetBoxMonData(boxPokemon, MON_DATA_FRIENDSHIP, &exp); + SetBoxMonData(boxPokemon, MON_DATA_MET_LEVEL, &level); + SetBoxMonData(boxPokemon, MON_DATA_GAME_VERSION, (void *)&gGameVersion); + exp = ITEM_POKE_BALL; + SetBoxMonData(boxPokemon, MON_DATA_POKEBALL, &exp); + if (fixedIV < 0x20) + { + SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &fixedIV); + SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &fixedIV); + SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &fixedIV); + SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &fixedIV); + SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &fixedIV); + SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV); + } + else + { + exp = rand_LC(); + iv = exp & 0x1F; + SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &iv); + iv = (exp & 0x3E0) >> 5; + SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &iv); + iv = (exp & 0x7C00) >> 10; + SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &iv); + exp = rand_LC(); + iv = exp & 0x1F; + SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &iv); + iv = (exp & 0x3E0) >> 5; + SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &iv); + iv = (exp & 0x7C00) >> 10; + SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &iv); + } + exp = (u32)GetMonBaseStat(species, BASE_ABILITY_1); + iv = (u32)GetMonBaseStat(species, BASE_ABILITY_2); + if (iv != 0) + { + if (fixedPersonality & 1) + SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &iv); + else + SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp); + } + else + SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp); + exp = GetBoxMonGender(boxPokemon); + SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp); + InitBoxMonMoveset(boxPokemon); + ReleaseBoxMonLock(boxPokemon, decry); +} + +void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature) +{ + u32 personality; + do + { + personality = (u32)(rand_LC() | (rand_LC() << 16)); + } while (nature != GetNatureFromPersonality(personality)); + CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)personality, (int)0, (int)0); +} + +// FIXME: stack storage of pokemon, fixedIv swapped +void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter) +{ + u32 pid = 0; + u16 test = 0; + if (letter != 0 && letter < 29) + { + do { + pid = (u32)(rand_LC() | (rand_LC() << 16)); + test = (u16)CALC_UNOWN_LETTER(pid); + } while (nature != GetNatureFromPersonality(pid) || gender != GetGenderBySpeciesAndPersonality(species, pid) || test != letter - 1); + } + else + { + pid = GenPersonalityByGenderAndNature(species, gender, nature); + } + CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)pid, 0, 0); +} + +u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature) +{ + int pid = nature; + u8 ratio = (u8)GetMonBaseStat(species, BASE_GENDER_RATIO); + switch (ratio) + { + case MON_RATIO_MALE: + case MON_RATIO_FEMALE: + case MON_RATIO_UNKNOWN: + break; + default: + if (gender == MON_MALE) + { + // Smallest increment that forces the low byte to exceed the + // gender ratio, thus making the mon male + pid = 25 * ((ratio / 25) + 1); + pid += nature; + } + break; + } + return (u32)pid; +} + +void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality) +{ + CreateMon(pokemon, species, level, 0, 1, personality, 0, 0); + SetMonData(pokemon, MON_DATA_IVS_WORD, &ivs); + CalcMonLevelAndStats(pokemon); +} + +void CalcMonLevelAndStats(struct Pokemon * pokemon) +{ + BOOL decry = AcquireMonLock(pokemon); + u32 level = (u32)CalcMonLevel(pokemon); + SetMonData(pokemon, MON_DATA_LEVEL, &level); + CalcMonStats(pokemon); + ReleaseMonLock(pokemon, decry); +} + +void CalcMonStats(struct Pokemon * pokemon) +{ + struct BaseStats * baseStats; + int level; + int maxHp; + int hpIv; + int hpEv; + int atkIv; + int defIv; + int speedIv; + int spatkIv; + int spdefIv; + int atkEv; + int defEv; + int speedEv; + int spatkEv; + int spdefEv; + int forme; + int hp; + int species; + int newMaxHp; + int newAtk; + int newDef; + int newSpeed; + int newSpatk; + int newSpdef; + BOOL decry = AcquireMonLock(pokemon); + level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + maxHp = (int)GetMonData(pokemon, MON_DATA_MAXHP, NULL); + hp = (int)GetMonData(pokemon, MON_DATA_HP, NULL); + hpIv = (int)GetMonData(pokemon, MON_DATA_HP_IV, NULL); + hpEv = (int)GetMonData(pokemon, MON_DATA_HP_EV, NULL); + atkIv = (int)GetMonData(pokemon, MON_DATA_ATK_IV, NULL); + atkEv = (int)GetMonData(pokemon, MON_DATA_ATK_EV, NULL); + defIv = (int)GetMonData(pokemon, MON_DATA_DEF_IV, NULL); + defEv = (int)GetMonData(pokemon, MON_DATA_DEF_EV, NULL); + speedIv = (int)GetMonData(pokemon, MON_DATA_SPEED_IV, NULL); + speedEv = (int)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL); + spatkIv = (int)GetMonData(pokemon, MON_DATA_SPATK_IV, NULL); + spatkEv = (int)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL); + spdefIv = (int)GetMonData(pokemon, MON_DATA_SPDEF_IV, NULL); + spdefEv = (int)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL); + forme = (int)GetMonData(pokemon, MON_DATA_FORME, NULL); + species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + + baseStats = (struct BaseStats *)AllocFromHeap(0, sizeof(struct BaseStats)); + LoadMonBaseStats_HandleAlternateForme(species, forme, baseStats); + + if (species == SPECIES_SHEDINJA) + newMaxHp = 1; + else + { + newMaxHp = (baseStats->hp * 2 + hpIv + hpEv / 4) * level / 100 + level + 10; + } + SetMonData(pokemon, MON_DATA_MAXHP, &newMaxHp); + + newAtk = (baseStats->atk * 2 + atkIv + atkEv / 4) * level / 100 + 5; + newAtk = ModifyStatByNature(GetMonNature(pokemon), (u16)newAtk, 1); + SetMonData(pokemon, MON_DATA_ATK, &newAtk); + + newDef = (baseStats->def * 2 + defIv + defEv / 4) * level / 100 + 5; + newDef = ModifyStatByNature(GetMonNature(pokemon), (u16)newDef, 2); + SetMonData(pokemon, MON_DATA_DEF, &newDef); + + newSpeed = (baseStats->speed * 2 + speedIv + speedEv / 4) * level / 100 + 5; + newSpeed = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpeed, 3); + SetMonData(pokemon, MON_DATA_SPEED, &newSpeed); + + newSpatk = (baseStats->spatk * 2 + spatkIv + spatkEv / 4) * level / 100 + 5; + newSpatk = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpatk, 4); + SetMonData(pokemon, MON_DATA_SPATK, &newSpatk); + + newSpdef = (baseStats->spdef * 2 + spdefIv + spdefEv / 4) * level / 100 + 5; + newSpdef = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpdef, 5); + SetMonData(pokemon, MON_DATA_SPDEF, &newSpdef); + + FreeToHeap(baseStats); + + if (hp != 0 || maxHp == 0) + { + if (species == SPECIES_SHEDINJA) + hp = 1; + else if (hp == 0) + hp = newMaxHp; + else + hp += newMaxHp - maxHp; + } + if (hp != 0) + SetMonData(pokemon, MON_DATA_HP, &hp); + ReleaseMonLock(pokemon, decry); +} + +u32 GetMonData(struct Pokemon * pokemon, int attr, void * dest) +{ + u32 ret; + u32 checksum; + if (!pokemon->box.party_lock) + { + DECRYPT_PTY(pokemon); + DECRYPT_BOX(&pokemon->box); + checksum = CHECKSUM(&pokemon->box); + if (checksum != pokemon->box.checksum) + { + GF_ASSERT(checksum == pokemon->box.checksum); + pokemon->box.checksum_fail = TRUE; + } + } + ret = GetMonDataInternal(pokemon, attr, dest); + if (!pokemon->box.party_lock) + { + ENCRYPT_PTY(pokemon); + ENCRYPT_BOX(&pokemon->box); + } + return ret; +} + +u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest) +{ + switch (attr) + { + case MON_DATA_STATUS: + return pokemon->party.status; + case MON_DATA_LEVEL: + return pokemon->party.level; + case MON_DATA_CAPSULE: + return pokemon->party.capsule; + case MON_DATA_HP: + return pokemon->party.hp; + case MON_DATA_MAXHP: + return pokemon->party.maxHp; + case MON_DATA_ATK: + return pokemon->party.atk; + case MON_DATA_DEF: + return pokemon->party.def; + case MON_DATA_SPEED: + return pokemon->party.speed; + case MON_DATA_SPATK: + return pokemon->party.spatk; + case MON_DATA_SPDEF: + return pokemon->party.spdef; + case MON_DATA_SEAL_STRUCT: + CopySealsObject(&pokemon->party.seal_something, dest); + return 1; + case MON_DATA_SEAL_COORDS: + FUN_02029C74(pokemon->party.sealCoords, dest); + return 1; + default: + return GetBoxMonDataInternal(&pokemon->box, attr, dest); + } +} + +u32 GetBoxMonData(struct BoxPokemon * boxmon, int attr, void * dest) +{ + u32 ret; + u32 checksum; + if (!boxmon->box_lock) + { + DECRYPT_BOX(boxmon); + checksum = CHECKSUM(boxmon); + if (checksum != boxmon->checksum) + { + GF_ASSERT(checksum == boxmon->checksum); + boxmon->checksum_fail = TRUE; + } + } + ret = GetBoxMonDataInternal(boxmon, attr, dest); + if (!boxmon->box_lock) + { + ENCRYPT_BOX(boxmon); + } + return ret; +} + +u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest) +{ + u32 ret = 0; + PokemonDataBlockA * blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; + PokemonDataBlockB * blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; + PokemonDataBlockC * blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; + PokemonDataBlockD * blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; + + switch (attr) + { + default: + ret = 0; + break; + case MON_DATA_PERSONALITY: + ret = boxmon->pid; + break; + case MON_DATA_PARTY_LOCK: + ret = boxmon->party_lock; + break; + case MON_DATA_BOX_LOCK: + ret = boxmon->box_lock; + break; + case MON_DATA_CHECKSUM_FAILED: + ret = boxmon->checksum_fail; + break; + case MON_DATA_CHECKSUM: + ret = boxmon->checksum; + break; + case MON_DATA_SPECIES_EXISTS: + if (blockA->species != SPECIES_NONE) + ret = TRUE; + else + ret = FALSE; + break; + case MON_DATA_SANITY_IS_EGG: + ret = boxmon->checksum_fail; + if (!ret) + ret = blockB->isEgg; + break; + case MON_DATA_SPECIES2: + ret = blockA->species; + if (ret != SPECIES_NONE && (blockB->isEgg || boxmon->checksum_fail)) + ret = SPECIES_EGG; + break; + case MON_DATA_LEVEL: + ret = (u32)CalcLevelBySpeciesAndExp(blockA->species, blockA->exp); + break; + case MON_DATA_SPECIES: + if (boxmon->checksum_fail) + ret = SPECIES_EGG; + else + ret = blockA->species; + break; + case MON_DATA_HELD_ITEM: + ret = blockA->heldItem; + break; + case MON_DATA_OTID: + ret = blockA->otID; + break; + case MON_DATA_EXPERIENCE: + ret = blockA->exp; + break; + case MON_DATA_FRIENDSHIP: + ret = blockA->friendship; + break; + case MON_DATA_ABILITY: + ret = blockA->ability; + break; + case MON_DATA_MARKINGS: + ret = blockA->markings; + break; + case MON_DATA_GAME_LANGUAGE: + ret = blockA->originLanguage; + break; + case MON_DATA_HP_EV: + ret = blockA->hpEV; + break; + case MON_DATA_ATK_EV: + ret = blockA->atkEV; + break; + case MON_DATA_DEF_EV: + ret = blockA->defEV; + break; + case MON_DATA_SPEED_EV: + ret = blockA->spdEV; + break; + case MON_DATA_SPATK_EV: + ret = blockA->spatkEV; + break; + case MON_DATA_SPDEF_EV: + ret = blockA->spdefEV; + break; + case MON_DATA_COOL: + ret = blockA->coolStat; + break; + case MON_DATA_BEAUTY: + ret = blockA->beautyStat; + break; + case MON_DATA_CUTE: + ret = blockA->cuteStat; + break; + case MON_DATA_SMART: + ret = blockA->smartStat; + break; + case MON_DATA_TOUGH: + ret = blockA->toughStat; + break; + case MON_DATA_SHEEN: + ret = blockA->sheen; + break; + case MON_DATA_SINNOH_CHAMP_RIBBON: + case MON_DATA_SINNOH_RIBBON_26: + case MON_DATA_SINNOH_RIBBON_27: + case MON_DATA_SINNOH_RIBBON_28: + case MON_DATA_SINNOH_RIBBON_29: + case MON_DATA_SINNOH_RIBBON_30: + case MON_DATA_SINNOH_RIBBON_31: + case MON_DATA_SINNOH_RIBBON_32: + case MON_DATA_SINNOH_RIBBON_33: + case MON_DATA_SINNOH_RIBBON_34: + case MON_DATA_SINNOH_RIBBON_35: + case MON_DATA_SINNOH_RIBBON_36: + case MON_DATA_SINNOH_RIBBON_37: + case MON_DATA_SINNOH_RIBBON_38: + case MON_DATA_SINNOH_RIBBON_39: + case MON_DATA_SINNOH_RIBBON_40: + case MON_DATA_SINNOH_RIBBON_41: + case MON_DATA_SINNOH_RIBBON_42: + case MON_DATA_SINNOH_RIBBON_43: + case MON_DATA_SINNOH_RIBBON_44: + case MON_DATA_SINNOH_RIBBON_45: + case MON_DATA_SINNOH_RIBBON_46: + case MON_DATA_SINNOH_RIBBON_47: + case MON_DATA_SINNOH_RIBBON_48: + case MON_DATA_SINNOH_RIBBON_49: + case MON_DATA_SINNOH_RIBBON_50: + case MON_DATA_SINNOH_RIBBON_51: + case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_SINNOH_RIBBON_53: + { + if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON))) + { + ret = TRUE; + } + else + { + ret = FALSE; + } + } + break; + case MON_DATA_MOVE1: + case MON_DATA_MOVE2: + case MON_DATA_MOVE3: + case MON_DATA_MOVE4: + ret = blockB->moves[attr - MON_DATA_MOVE1]; + break; + case MON_DATA_MOVE1PP: + case MON_DATA_MOVE2PP: + case MON_DATA_MOVE3PP: + case MON_DATA_MOVE4PP: + ret = blockB->movePP[attr - MON_DATA_MOVE1PP]; + break; + case MON_DATA_MOVE1PPUP: + case MON_DATA_MOVE2PPUP: + case MON_DATA_MOVE3PPUP: + case MON_DATA_MOVE4PPUP: + ret = blockB->movePpUps[attr - MON_DATA_MOVE1PPUP]; + break; + case MON_DATA_MOVE1MAXPP: + case MON_DATA_MOVE2MAXPP: + case MON_DATA_MOVE3MAXPP: + case MON_DATA_MOVE4MAXPP: + ret = (u32)FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1MAXPP], blockB->movePpUps[attr - MON_DATA_MOVE1MAXPP]); + break; + case MON_DATA_HP_IV: + ret = blockB->hpIV; + break; + case MON_DATA_ATK_IV: + ret = blockB->atkIV; + break; + case MON_DATA_DEF_IV: + ret = blockB->defIV; + break; + case MON_DATA_SPEED_IV: + ret = blockB->spdIV; + break; + case MON_DATA_SPATK_IV: + ret = blockB->spatkIV; + break; + case MON_DATA_SPDEF_IV: + ret = blockB->spdefIV; + break; + case MON_DATA_IS_EGG: + ret = boxmon->checksum_fail; + if (!ret) + ret = blockB->isEgg; + break; + case MON_DATA_HAS_NICKNAME: + ret = blockB->isNicknamed; + break; + case MON_DATA_COOL_RIBBON: + case MON_DATA_HOENN_RIBBON_79: + case MON_DATA_HOENN_RIBBON_80: + case MON_DATA_HOENN_RIBBON_81: + case MON_DATA_HOENN_RIBBON_82: + case MON_DATA_HOENN_RIBBON_83: + case MON_DATA_HOENN_RIBBON_84: + case MON_DATA_HOENN_RIBBON_85: + case MON_DATA_HOENN_RIBBON_86: + case MON_DATA_HOENN_RIBBON_87: + case MON_DATA_HOENN_RIBBON_88: + case MON_DATA_HOENN_RIBBON_89: + case MON_DATA_HOENN_RIBBON_90: + case MON_DATA_HOENN_RIBBON_91: + case MON_DATA_HOENN_RIBBON_92: + case MON_DATA_HOENN_RIBBON_93: + case MON_DATA_HOENN_RIBBON_94: + case MON_DATA_HOENN_RIBBON_95: + case MON_DATA_HOENN_RIBBON_96: + case MON_DATA_HOENN_RIBBON_97: + case MON_DATA_HOENN_RIBBON_98: + case MON_DATA_HOENN_RIBBON_99: + case MON_DATA_HOENN_RIBBON_100: + case MON_DATA_HOENN_RIBBON_101: + case MON_DATA_HOENN_RIBBON_102: + case MON_DATA_HOENN_RIBBON_103: + case MON_DATA_HOENN_RIBBON_104: + case MON_DATA_HOENN_RIBBON_105: + case MON_DATA_HOENN_RIBBON_106: + case MON_DATA_HOENN_RIBBON_107: + case MON_DATA_HOENN_RIBBON_108: + case MON_DATA_HOENN_RIBBON_109: + if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON))) + ret = TRUE; + else + ret = FALSE; + break; + case MON_DATA_FATEFUL_ENCOUNTER: + ret = blockB->fatefulEncounter; + break; + case MON_DATA_GENDER: + ret = blockB->gender; + break; + case MON_DATA_FORME: + ret = blockB->alternateForm; + break; + case MON_DATA_RESERVED_113: + ret = blockB->HGSS_shinyLeaves; + break; + case MON_DATA_RESERVED_114: + ret = blockB->Unused; + break; + case MON_DATA_NICKNAME: + if (boxmon->checksum_fail) + GetSpeciesName(SPECIES_MANAPHY_EGG, 0, dest); + else + { + u16 * dest16 = (u16 *)dest; + for (ret = 0; ret < POKEMON_NAME_LENGTH; ret++) + { + dest16[ret] = blockC->nickname[ret]; + } + dest16[ret] = EOS; + } + break; + case MON_DATA_NICKNAME_4: + ret = blockB->isNicknamed; + // fallthrough + case MON_DATA_NICKNAME_3: + if (boxmon->checksum_fail) + { + u16 * buffer = FUN_0200AA50(SPECIES_MANAPHY_EGG, 0); + FUN_02021A74(dest, buffer); + FUN_02021A20(buffer); + } + else + { + FUN_02021E28(dest, blockC->nickname); + } + break; + case MON_DATA_UNK_120: + ret = blockC->Unused; + break; + case MON_DATA_GAME_VERSION: + ret = blockC->originGame; + break; + case MON_DATA_SINNOH_RIBBON_122: + case MON_DATA_SINNOH_RIBBON_123: + case MON_DATA_SINNOH_RIBBON_124: + case MON_DATA_SINNOH_RIBBON_125: + case MON_DATA_SINNOH_RIBBON_126: + case MON_DATA_SINNOH_RIBBON_127: + case MON_DATA_SINNOH_RIBBON_128: + case MON_DATA_SINNOH_RIBBON_129: + case MON_DATA_SINNOH_RIBBON_130: + case MON_DATA_SINNOH_RIBBON_131: + case MON_DATA_SINNOH_RIBBON_132: + case MON_DATA_SINNOH_RIBBON_133: + case MON_DATA_SINNOH_RIBBON_134: + case MON_DATA_SINNOH_RIBBON_135: + case MON_DATA_SINNOH_RIBBON_136: + case MON_DATA_SINNOH_RIBBON_137: + case MON_DATA_SINNOH_RIBBON_138: + case MON_DATA_SINNOH_RIBBON_139: + case MON_DATA_SINNOH_RIBBON_140: + case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_SINNOH_RIBBON_142: + if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122))) + ret = TRUE; + else + ret = FALSE; + break; + case MON_DATA_OT_NAME: + { + u16 * dest16 = (u16 *)dest; + for (ret = 0; ret < OT_NAME_LENGTH; ret++) + dest16[ret] = blockD->otTrainerName[ret]; + dest16[ret] = EOS; + } + break; + case MON_DATA_OT_NAME_2: + FUN_02021E28(dest, blockD->otTrainerName); + break; + case MON_DATA_EGG_MET_YEAR: + ret = blockD->dateEggReceived[0]; + break; + case MON_DATA_EGG_MET_MONTH: + ret = blockD->dateEggReceived[1]; + break; + case MON_DATA_EGG_MET_DAY: + ret = blockD->dateEggReceived[2]; + break; + case MON_DATA_MET_YEAR: + ret = blockD->dateMet[0]; + break; + case MON_DATA_MET_MONTH: + ret = blockD->dateMet[1]; + break; + case MON_DATA_MET_DAY: + ret = blockD->dateMet[2]; + break; + case MON_DATA_EGG_MET_LOCATION: + ret = blockD->DP_EggLocation; + break; + case MON_DATA_MET_LOCATION: + ret = blockD->DP_MetLocation; + break; + case MON_DATA_POKERUS: + ret = blockD->pokerus; + break; + case MON_DATA_POKEBALL: + ret = blockD->pokeball; + break; + case MON_DATA_MET_LEVEL: + ret = blockD->metLevel; + break; + case MON_DATA_MET_GENDER: + ret = blockD->metGender; + break; + case MON_DATA_ENCOUNTER_TYPE: + ret = blockD->encounterType; + break; + case MON_DATA_RESERVED_158: + ret = blockD->HGSS_Pokeball; + break; + case MON_DATA_IVS_WORD: + ret = (blockB->hpIV) | \ + (blockB->atkIV << 5) | \ + (blockB->defIV << 10) | \ + (blockB->spdIV << 15) | \ + (blockB->spatkIV << 20) | \ + (blockB->spdefIV << 25); + break; + case MON_DATA_UNK_175: + if ((blockA->species == SPECIES_NIDORAN_F || blockA->species == SPECIES_NIDORAN_M) && !blockB->isNicknamed) + ret = FALSE; + else + ret = TRUE; + break; + case MON_DATA_TYPE_1: + case MON_DATA_TYPE_2: + if (blockA->species == SPECIES_ARCEUS && blockA->ability == ABILITY_MULTITYPE) + ret = (u32)GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8(blockA->heldItem, 1, 0)); + else + { + ret = (u32)GetMonBaseStat_HandleFormeConversion(blockA->species, blockB->alternateForm, (enum BaseStat)(attr - MON_DATA_TYPE_1 + BASE_TYPE1)); + } + break; + case MON_DATA_SPECIES_NAME: + GetSpeciesName(blockA->species, 0, dest); + break; + } + return ret; +} + +void SetMonData(struct Pokemon * pokemon, int attr, void * value) +{ + u16 checksum; + if (!pokemon->box.party_lock) + { + DECRYPT_PTY(pokemon); + DECRYPT_BOX(&pokemon->box); + checksum = CHECKSUM(&pokemon->box); + if (checksum != pokemon->box.checksum) + { + GF_ASSERT(checksum == pokemon->box.checksum); + pokemon->box.checksum_fail = TRUE; + ENCRYPT_BOX(&pokemon->box); + return; + } + } + SetMonDataInternal(pokemon, attr, value); + if (!pokemon->box.party_lock) + { + ENCRYPT_PTY(pokemon); + pokemon->box.checksum = CHECKSUM(&pokemon->box); + ENCRYPT_BOX(&pokemon->box); + } +} + +void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value) +{ +#define VALUE(type) (*(const type *)value) + switch (attr) + { + case MON_DATA_STATUS: + pokemon->party.status = VALUE(u32); + break; + case MON_DATA_LEVEL: + pokemon->party.level = VALUE(u8); + break; + case MON_DATA_CAPSULE: + pokemon->party.capsule = VALUE(u8); + break; + case MON_DATA_HP: + pokemon->party.hp = VALUE(u16); + break; + case MON_DATA_MAXHP: + pokemon->party.maxHp = VALUE(u16); + break; + case MON_DATA_ATK: + pokemon->party.atk = VALUE(u16); + break; + case MON_DATA_DEF: + pokemon->party.def = VALUE(u16); + break; + case MON_DATA_SPEED: + pokemon->party.speed = VALUE(u16); + break; + case MON_DATA_SPATK: + pokemon->party.spatk = VALUE(u16); + break; + case MON_DATA_SPDEF: + pokemon->party.spdef = VALUE(u16); + break; + case MON_DATA_SEAL_STRUCT: + CopySealsObject((const struct SealStruct *)value, &pokemon->party.seal_something); + break; + case MON_DATA_SEAL_COORDS: + FUN_02029C74((const u8 *)value, pokemon->party.sealCoords); + break; + default: + SetBoxMonDataInternal(&pokemon->box, attr, value); + break; + } +#undef VALUE +} + +void SetBoxMonData(struct BoxPokemon * boxmon, int attr, void * value) +{ + u16 checksum; + if (!boxmon->box_lock) + { + DECRYPT_BOX(boxmon); + checksum = CHECKSUM(boxmon); + if (checksum != boxmon->checksum) + { + GF_ASSERT(checksum == boxmon->checksum); + boxmon->checksum_fail = TRUE; + ENCRYPT_BOX(boxmon); + return; + } + } + SetBoxMonDataInternal(boxmon, attr, value); + if (!boxmon->box_lock) + { + boxmon->checksum = CHECKSUM(boxmon); + ENCRYPT_BOX(boxmon); + } +} + + +void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value) +{ +#define VALUE(type) (*(const type *)value) + u8 flag; + u64 mask; + u32 i; + u16 namebuf[POKEMON_NAME_LENGTH + 1]; + u16 namebuf2[POKEMON_NAME_LENGTH + 1]; + u16 namebuf3[POKEMON_NAME_LENGTH + 1]; + u16 * speciesName; + + PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; + PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; + PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; + PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; + + switch (attr) + { + case MON_DATA_PERSONALITY: + boxmon->pid = VALUE(u32); + break; + case MON_DATA_PARTY_LOCK: + GF_ASSERT(0); + boxmon->party_lock = VALUE(u8); + break; + case MON_DATA_BOX_LOCK: + GF_ASSERT(0); + boxmon->box_lock = VALUE(u8); + break; + case MON_DATA_CHECKSUM_FAILED: + boxmon->checksum_fail = VALUE(u8); + break; + case MON_DATA_CHECKSUM: + boxmon->checksum = VALUE(u16); + break; + case MON_DATA_SPECIES: + blockA->species = VALUE(u16); + break; + case MON_DATA_HELD_ITEM: + blockA->heldItem = VALUE(u16); + break; + case MON_DATA_OTID: + blockA->otID = VALUE(u32); + break; + case MON_DATA_EXPERIENCE: + blockA->exp = VALUE(u32); + break; + case MON_DATA_FRIENDSHIP: + blockA->friendship = VALUE(u8); + break; + case MON_DATA_ABILITY: + blockA->ability = VALUE(u8); + break; + case MON_DATA_MARKINGS: + blockA->markings = VALUE(u8); + break; + case MON_DATA_GAME_LANGUAGE: + blockA->originLanguage = VALUE(u8); + break; + case MON_DATA_HP_EV: + blockA->hpEV = VALUE(u8); + break; + case MON_DATA_ATK_EV: + blockA->atkEV = VALUE(u8); + break; + case MON_DATA_DEF_EV: + blockA->defEV = VALUE(u8); + break; + case MON_DATA_SPEED_EV: + blockA->spdEV = VALUE(u8); + break; + case MON_DATA_SPATK_EV: + blockA->spatkEV = VALUE(u8); + break; + case MON_DATA_SPDEF_EV: + blockA->spdefEV = VALUE(u8); + break; + case MON_DATA_COOL: + blockA->coolStat = VALUE(u8); + break; + case MON_DATA_BEAUTY: + blockA->beautyStat = VALUE(u8); + break; + case MON_DATA_CUTE: + blockA->cuteStat = VALUE(u8); + break; + case MON_DATA_SMART: + blockA->smartStat = VALUE(u8); + break; + case MON_DATA_TOUGH: + blockA->toughStat = VALUE(u8); + break; + case MON_DATA_SHEEN: + blockA->sheen = VALUE(u8); + break; + case MON_DATA_SINNOH_CHAMP_RIBBON: + case MON_DATA_SINNOH_RIBBON_26: + case MON_DATA_SINNOH_RIBBON_27: + case MON_DATA_SINNOH_RIBBON_28: + case MON_DATA_SINNOH_RIBBON_29: + case MON_DATA_SINNOH_RIBBON_30: + case MON_DATA_SINNOH_RIBBON_31: + case MON_DATA_SINNOH_RIBBON_32: + case MON_DATA_SINNOH_RIBBON_33: + case MON_DATA_SINNOH_RIBBON_34: + case MON_DATA_SINNOH_RIBBON_35: + case MON_DATA_SINNOH_RIBBON_36: + case MON_DATA_SINNOH_RIBBON_37: + case MON_DATA_SINNOH_RIBBON_38: + case MON_DATA_SINNOH_RIBBON_39: + case MON_DATA_SINNOH_RIBBON_40: + case MON_DATA_SINNOH_RIBBON_41: + case MON_DATA_SINNOH_RIBBON_42: + case MON_DATA_SINNOH_RIBBON_43: + case MON_DATA_SINNOH_RIBBON_44: + case MON_DATA_SINNOH_RIBBON_45: + case MON_DATA_SINNOH_RIBBON_46: + case MON_DATA_SINNOH_RIBBON_47: + case MON_DATA_SINNOH_RIBBON_48: + case MON_DATA_SINNOH_RIBBON_49: + case MON_DATA_SINNOH_RIBBON_50: + case MON_DATA_SINNOH_RIBBON_51: + case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_SINNOH_RIBBON_53: + flag = VALUE(u8); + mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON); + if (flag) + blockA->sinnohRibbons |= mask; + else + blockA->sinnohRibbons &= -1ull ^ mask; + break; + case MON_DATA_MOVE1: + case MON_DATA_MOVE2: + case MON_DATA_MOVE3: + case MON_DATA_MOVE4: + blockB->moves[attr - MON_DATA_MOVE1] = VALUE(u16); + break; + case MON_DATA_MOVE1PP: + case MON_DATA_MOVE2PP: + case MON_DATA_MOVE3PP: + case MON_DATA_MOVE4PP: + blockB->movePP[attr - MON_DATA_MOVE1PP] = VALUE(u8); + break; + case MON_DATA_MOVE1PPUP: + case MON_DATA_MOVE2PPUP: + case MON_DATA_MOVE3PPUP: + case MON_DATA_MOVE4PPUP: + blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = VALUE(u8); + break; + case MON_DATA_HP_IV: + blockB->hpIV = VALUE(u8); + break; + case MON_DATA_ATK_IV: + blockB->atkIV = VALUE(u8); + break; + case MON_DATA_DEF_IV: + blockB->defIV = VALUE(u8); + break; + case MON_DATA_SPEED_IV: + blockB->spdIV = VALUE(u8); + break; + case MON_DATA_SPATK_IV: + blockB->spatkIV = VALUE(u8); + break; + case MON_DATA_SPDEF_IV: + blockB->spdefIV = VALUE(u8); + break; + case MON_DATA_IS_EGG: + blockB->isEgg = VALUE(u8); + break; + case MON_DATA_HAS_NICKNAME: + blockB->isNicknamed = VALUE(u8); + break; + case MON_DATA_COOL_RIBBON: + case MON_DATA_HOENN_RIBBON_79: + case MON_DATA_HOENN_RIBBON_80: + case MON_DATA_HOENN_RIBBON_81: + case MON_DATA_HOENN_RIBBON_82: + case MON_DATA_HOENN_RIBBON_83: + case MON_DATA_HOENN_RIBBON_84: + case MON_DATA_HOENN_RIBBON_85: + case MON_DATA_HOENN_RIBBON_86: + case MON_DATA_HOENN_RIBBON_87: + case MON_DATA_HOENN_RIBBON_88: + case MON_DATA_HOENN_RIBBON_89: + case MON_DATA_HOENN_RIBBON_90: + case MON_DATA_HOENN_RIBBON_91: + case MON_DATA_HOENN_RIBBON_92: + case MON_DATA_HOENN_RIBBON_93: + case MON_DATA_HOENN_RIBBON_94: + case MON_DATA_HOENN_RIBBON_95: + case MON_DATA_HOENN_RIBBON_96: + case MON_DATA_HOENN_RIBBON_97: + case MON_DATA_HOENN_RIBBON_98: + case MON_DATA_HOENN_RIBBON_99: + case MON_DATA_HOENN_RIBBON_100: + case MON_DATA_HOENN_RIBBON_101: + case MON_DATA_HOENN_RIBBON_102: + case MON_DATA_HOENN_RIBBON_103: + case MON_DATA_HOENN_RIBBON_104: + case MON_DATA_HOENN_RIBBON_105: + case MON_DATA_HOENN_RIBBON_106: + case MON_DATA_HOENN_RIBBON_107: + case MON_DATA_HOENN_RIBBON_108: + case MON_DATA_HOENN_RIBBON_109: + flag = VALUE(u8); + mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON); + if (flag) + blockB->ribbonFlags |= mask; + else + blockB->ribbonFlags &= -1ull ^ mask; + break; + case MON_DATA_FATEFUL_ENCOUNTER: + blockB->fatefulEncounter = VALUE(u8); + break; + case MON_DATA_GENDER: + blockB->gender = VALUE(u8); + break; + case MON_DATA_FORME: + blockB->alternateForm = VALUE(u8); + break; + case MON_DATA_RESERVED_113: + blockB->HGSS_shinyLeaves = VALUE(u8); + break; + case MON_DATA_RESERVED_114: + blockB->Unused = VALUE(u16); + break; + case MON_DATA_NICKNAME_2: + GetSpeciesName(blockA->species, 0, namebuf); + blockB->isNicknamed = StringNotEqual(namebuf, value); + // fallthrough + case MON_DATA_NICKNAME: + for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) + { + blockC->nickname[i] = VALUE(u16); value = (void *const )((char *)value + 2); + } + break; + case MON_DATA_NICKNAME_4: + GetSpeciesName(blockA->species, 0, namebuf2); + FUN_02021EF0(value, namebuf3, POKEMON_NAME_LENGTH + 1); + blockB->isNicknamed = StringNotEqual(namebuf2, namebuf3); + // fallthrough + case MON_DATA_NICKNAME_3: + FUN_02021EF0(value, blockC->nickname, POKEMON_NAME_LENGTH + 1); + break; + case MON_DATA_UNK_120: + blockC->Unused = VALUE(u8); + break; + case MON_DATA_GAME_VERSION: + blockC->originGame = VALUE(u8); + break; + case MON_DATA_SINNOH_RIBBON_122: + case MON_DATA_SINNOH_RIBBON_123: + case MON_DATA_SINNOH_RIBBON_124: + case MON_DATA_SINNOH_RIBBON_125: + case MON_DATA_SINNOH_RIBBON_126: + case MON_DATA_SINNOH_RIBBON_127: + case MON_DATA_SINNOH_RIBBON_128: + case MON_DATA_SINNOH_RIBBON_129: + case MON_DATA_SINNOH_RIBBON_130: + case MON_DATA_SINNOH_RIBBON_131: + case MON_DATA_SINNOH_RIBBON_132: + case MON_DATA_SINNOH_RIBBON_133: + case MON_DATA_SINNOH_RIBBON_134: + case MON_DATA_SINNOH_RIBBON_135: + case MON_DATA_SINNOH_RIBBON_136: + case MON_DATA_SINNOH_RIBBON_137: + case MON_DATA_SINNOH_RIBBON_138: + case MON_DATA_SINNOH_RIBBON_139: + case MON_DATA_SINNOH_RIBBON_140: + case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_SINNOH_RIBBON_142: + flag = VALUE(u8); + mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122); + if (flag) + blockC->sinnohRibbons2 |= mask; + else + blockC->sinnohRibbons2 &= -1ull ^ mask; + break; + case MON_DATA_OT_NAME: + for (i = 0; i < OT_NAME_LENGTH + 1; i++) + { + blockD->otTrainerName[i] = VALUE(u16); value = (void *)((char *)value + 2); + } + break; + case MON_DATA_OT_NAME_2: + FUN_02021EF0(value, blockD->otTrainerName, OT_NAME_LENGTH + 1); + break; + case MON_DATA_EGG_MET_YEAR: + blockD->dateEggReceived[0] = VALUE(u8); + break; + case MON_DATA_EGG_MET_MONTH: + blockD->dateEggReceived[1] = VALUE(u8); + break; + case MON_DATA_EGG_MET_DAY: + blockD->dateEggReceived[2] = VALUE(u8); + break; + case MON_DATA_MET_YEAR: + blockD->dateMet[0] = VALUE(u8); + break; + case MON_DATA_MET_MONTH: + blockD->dateMet[1] = VALUE(u8); + break; + case MON_DATA_MET_DAY: + blockD->dateMet[2] = VALUE(u8); + break; + case MON_DATA_EGG_MET_LOCATION: + blockD->DP_EggLocation = VALUE(u16); + break; + case MON_DATA_MET_LOCATION: + blockD->DP_MetLocation = VALUE(u16); + break; + case MON_DATA_POKERUS: + blockD->pokerus = VALUE(u8); + break; + case MON_DATA_POKEBALL: + blockD->pokeball = VALUE(u8); + break; + case MON_DATA_MET_LEVEL: + blockD->metLevel = VALUE(u8); + break; + case MON_DATA_MET_GENDER: + blockD->metGender = VALUE(u8); + break; + case MON_DATA_ENCOUNTER_TYPE: + blockD->encounterType = VALUE(u8); + break; + case MON_DATA_RESERVED_158: + blockD->HGSS_Pokeball = VALUE(u16); + break; + case MON_DATA_IVS_WORD: + blockB->hpIV = (VALUE(u32) >> 0) & 0x1F; + blockB->atkIV = (VALUE(u32) >> 5) & 0x1F; + blockB->defIV = (VALUE(u32) >> 10) & 0x1F; + blockB->spdIV = (VALUE(u32) >> 15) & 0x1F; + blockB->spatkIV = (VALUE(u32) >> 20) & 0x1F; + blockB->spdefIV = (VALUE(u32) >> 25) & 0x1F; + break; + case MON_DATA_SPECIES_NAME: + speciesName = FUN_0200AA50(blockA->species, 0); + FUN_02021EF0(speciesName, blockC->nickname, POKEMON_NAME_LENGTH + 1); + FUN_02021A20(speciesName); + break; + } +#undef VALUE +} + +void AddMonData(struct Pokemon * pokemon, int attr, int value) +{ + u16 checksum; + if (!pokemon->box.party_lock) + { + DECRYPT_PTY(pokemon); + DECRYPT_BOX(&pokemon->box); + checksum = CHECKSUM(&pokemon->box); + if (checksum != pokemon->box.checksum) + { + GF_ASSERT(checksum == pokemon->box.checksum); + ENCRYPT_BOX(&pokemon->box); + return; + } + } + AddMonDataInternal(pokemon, attr, value); + if (!pokemon->box.party_lock) + { + ENCRYPT_PTY(pokemon); + pokemon->box.checksum = CHECKSUM(&pokemon->box); + ENCRYPT_BOX(&pokemon->box); + } +} + +void AddMonDataInternal(struct Pokemon * pokemon, int attr, int value) +{ + s32 maxHp; + switch (attr) + { + case MON_DATA_HP: + maxHp = pokemon->party.maxHp; + if ((s32)(pokemon->party.hp + value) > maxHp) + pokemon->party.hp = (u16)maxHp; + else + pokemon->party.hp += value; + break; + case MON_DATA_STATUS: + case MON_DATA_LEVEL: + case MON_DATA_CAPSULE: + case MON_DATA_MAXHP: + case MON_DATA_ATK: + case MON_DATA_DEF: + case MON_DATA_SPEED: + case MON_DATA_SPATK: + case MON_DATA_SPDEF: + case MON_DATA_SEAL_STRUCT: + // case MON_DATA_SEAL_COORDS: + GF_ASSERT(0); + break; + default: + AddBoxMonData(&pokemon->box, attr, value); + break; + } +} + +void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value) +{ + PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA; + PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB; + PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC; + PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD; + + switch (attr) + { + case MON_DATA_EXPERIENCE: + if (blockA->exp + value > GetMonExpBySpeciesAndLevel(blockA->species, 100)) + blockA->exp = GetMonExpBySpeciesAndLevel(blockA->species, 100); + else + blockA->exp += value; + break; + case MON_DATA_FRIENDSHIP: + if (blockA->friendship + value > 255) + blockA->friendship = 255; + else + blockA->friendship += value; + break; + case MON_DATA_HP_EV: + blockA->hpEV += value; + break; + case MON_DATA_ATK_EV: + blockA->atkEV += value; + break; + case MON_DATA_DEF_EV: + blockA->defEV += value; + break; + case MON_DATA_SPEED_EV: + blockA->spdEV += value; + break; + case MON_DATA_SPATK_EV: + blockA->spatkEV += value; + break; + case MON_DATA_SPDEF_EV: + blockA->spdefEV += value; + break; + case MON_DATA_COOL: + if (blockA->coolStat + value > 255) + blockA->coolStat = 255; + else + blockA->coolStat += value; + break; + case MON_DATA_BEAUTY: + if (blockA->beautyStat + value > 255) + blockA->beautyStat = 255; + else + blockA->beautyStat += value; + break; + case MON_DATA_CUTE: + if (blockA->cuteStat + value > 255) + blockA->cuteStat = 255; + else + blockA->cuteStat += value; + break; + case MON_DATA_SMART: + if (blockA->smartStat + value > 255) + blockA->smartStat = 255; + else + blockA->smartStat += value; + break; + case MON_DATA_TOUGH: + if (blockA->toughStat + value > 255) + blockA->toughStat = 255; + else + blockA->toughStat += value; + break; + case MON_DATA_SHEEN: + if (blockA->sheen + value > 255) + blockA->sheen = 255; + else + blockA->sheen += value; + break; + case MON_DATA_MOVE1PP: + case MON_DATA_MOVE2PP: + case MON_DATA_MOVE3PP: + case MON_DATA_MOVE4PP: + if (blockB->movePP[attr - MON_DATA_MOVE1PP] + value > FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP])) + blockB->movePP[attr - MON_DATA_MOVE1PP] = (u8)FUN_0206AB30(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP]); + else + blockB->movePP[attr - MON_DATA_MOVE1PP] += value; + break; + case MON_DATA_MOVE1PPUP: + case MON_DATA_MOVE2PPUP: + case MON_DATA_MOVE3PPUP: + case MON_DATA_MOVE4PPUP: + if (blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] + value > 3) + blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = 3; + else + blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] += value; + break; + case MON_DATA_MOVE1MAXPP: + case MON_DATA_MOVE2MAXPP: + case MON_DATA_MOVE3MAXPP: + case MON_DATA_MOVE4MAXPP: + break; + case MON_DATA_HP_IV: + if (blockB->hpIV + value > 31) + blockB->hpIV = 31; + else + blockB->hpIV += value; + break; + case MON_DATA_ATK_IV: + if (blockB->atkIV + value > 31) + blockB->atkIV = 31; + else + blockB->atkIV += value; + break; + case MON_DATA_DEF_IV: + if (blockB->defIV + value > 31) + blockB->defIV = 31; + else + blockB->defIV += value; + break; + case MON_DATA_SPEED_IV: + if (blockB->spdIV + value > 31) + blockB->spdIV = 31; + else + blockB->spdIV += value; + break; + case MON_DATA_SPATK_IV: + if (blockB->spatkIV + value > 31) + blockB->spatkIV = 31; + else + blockB->spatkIV += value; + break; + case MON_DATA_SPDEF_IV: + if (blockB->spdefIV + value > 31) + blockB->spdefIV = 31; + else + blockB->spdefIV += value; + break; + case MON_DATA_PERSONALITY: + case MON_DATA_PARTY_LOCK: + case MON_DATA_BOX_LOCK: + case MON_DATA_CHECKSUM_FAILED: + case MON_DATA_CHECKSUM: + case MON_DATA_SPECIES: + case MON_DATA_HELD_ITEM: + case MON_DATA_OTID: + case MON_DATA_ABILITY: + case MON_DATA_MARKINGS: + case MON_DATA_GAME_LANGUAGE: + case MON_DATA_SINNOH_CHAMP_RIBBON: + case MON_DATA_SINNOH_RIBBON_26: + case MON_DATA_SINNOH_RIBBON_27: + case MON_DATA_SINNOH_RIBBON_28: + case MON_DATA_SINNOH_RIBBON_29: + case MON_DATA_SINNOH_RIBBON_30: + case MON_DATA_SINNOH_RIBBON_31: + case MON_DATA_SINNOH_RIBBON_32: + case MON_DATA_SINNOH_RIBBON_33: + case MON_DATA_SINNOH_RIBBON_34: + case MON_DATA_SINNOH_RIBBON_35: + case MON_DATA_SINNOH_RIBBON_36: + case MON_DATA_SINNOH_RIBBON_37: + case MON_DATA_SINNOH_RIBBON_38: + case MON_DATA_SINNOH_RIBBON_39: + case MON_DATA_SINNOH_RIBBON_40: + case MON_DATA_SINNOH_RIBBON_41: + case MON_DATA_SINNOH_RIBBON_42: + case MON_DATA_SINNOH_RIBBON_43: + case MON_DATA_SINNOH_RIBBON_44: + case MON_DATA_SINNOH_RIBBON_45: + case MON_DATA_SINNOH_RIBBON_46: + case MON_DATA_SINNOH_RIBBON_47: + case MON_DATA_SINNOH_RIBBON_48: + case MON_DATA_SINNOH_RIBBON_49: + case MON_DATA_SINNOH_RIBBON_50: + case MON_DATA_SINNOH_RIBBON_51: + case MON_DATA_SINNOH_RIBBON_52: + case MON_DATA_SINNOH_RIBBON_53: + case MON_DATA_MOVE1: + case MON_DATA_MOVE2: + case MON_DATA_MOVE3: + case MON_DATA_MOVE4: + case MON_DATA_IS_EGG: + case MON_DATA_HAS_NICKNAME: + case MON_DATA_COOL_RIBBON: + case MON_DATA_HOENN_RIBBON_79: + case MON_DATA_HOENN_RIBBON_80: + case MON_DATA_HOENN_RIBBON_81: + case MON_DATA_HOENN_RIBBON_82: + case MON_DATA_HOENN_RIBBON_83: + case MON_DATA_HOENN_RIBBON_84: + case MON_DATA_HOENN_RIBBON_85: + case MON_DATA_HOENN_RIBBON_86: + case MON_DATA_HOENN_RIBBON_87: + case MON_DATA_HOENN_RIBBON_88: + case MON_DATA_HOENN_RIBBON_89: + case MON_DATA_HOENN_RIBBON_90: + case MON_DATA_HOENN_RIBBON_91: + case MON_DATA_HOENN_RIBBON_92: + case MON_DATA_HOENN_RIBBON_93: + case MON_DATA_HOENN_RIBBON_94: + case MON_DATA_HOENN_RIBBON_95: + case MON_DATA_HOENN_RIBBON_96: + case MON_DATA_HOENN_RIBBON_97: + case MON_DATA_HOENN_RIBBON_98: + case MON_DATA_HOENN_RIBBON_99: + case MON_DATA_HOENN_RIBBON_100: + case MON_DATA_HOENN_RIBBON_101: + case MON_DATA_HOENN_RIBBON_102: + case MON_DATA_HOENN_RIBBON_103: + case MON_DATA_HOENN_RIBBON_104: + case MON_DATA_HOENN_RIBBON_105: + case MON_DATA_HOENN_RIBBON_106: + case MON_DATA_HOENN_RIBBON_107: + case MON_DATA_HOENN_RIBBON_108: + case MON_DATA_HOENN_RIBBON_109: + case MON_DATA_FATEFUL_ENCOUNTER: + case MON_DATA_GENDER: + case MON_DATA_FORME: + case MON_DATA_RESERVED_113: + case MON_DATA_RESERVED_114: + case MON_DATA_UNUSED_115: + case MON_DATA_NICKNAME: + case MON_DATA_NICKNAME_2: + case MON_DATA_NICKNAME_3: + case MON_DATA_NICKNAME_4: + case MON_DATA_UNK_120: + case MON_DATA_GAME_VERSION: + case MON_DATA_SINNOH_RIBBON_122: + case MON_DATA_SINNOH_RIBBON_123: + case MON_DATA_SINNOH_RIBBON_124: + case MON_DATA_SINNOH_RIBBON_125: + case MON_DATA_SINNOH_RIBBON_126: + case MON_DATA_SINNOH_RIBBON_127: + case MON_DATA_SINNOH_RIBBON_128: + case MON_DATA_SINNOH_RIBBON_129: + case MON_DATA_SINNOH_RIBBON_130: + case MON_DATA_SINNOH_RIBBON_131: + case MON_DATA_SINNOH_RIBBON_132: + case MON_DATA_SINNOH_RIBBON_133: + case MON_DATA_SINNOH_RIBBON_134: + case MON_DATA_SINNOH_RIBBON_135: + case MON_DATA_SINNOH_RIBBON_136: + case MON_DATA_SINNOH_RIBBON_137: + case MON_DATA_SINNOH_RIBBON_138: + case MON_DATA_SINNOH_RIBBON_139: + case MON_DATA_SINNOH_RIBBON_140: + case MON_DATA_SINNOH_RIBBON_141: + case MON_DATA_SINNOH_RIBBON_142: + case MON_DATA_OT_NAME: + case MON_DATA_OT_NAME_2: + case MON_DATA_EGG_MET_YEAR: + case MON_DATA_EGG_MET_MONTH: + case MON_DATA_EGG_MET_DAY: + case MON_DATA_MET_YEAR: + case MON_DATA_MET_MONTH: + case MON_DATA_MET_DAY: + case MON_DATA_EGG_MET_LOCATION: + case MON_DATA_MET_LOCATION: + case MON_DATA_POKERUS: + case MON_DATA_POKEBALL: + case MON_DATA_MET_LEVEL: + case MON_DATA_MET_GENDER: + case MON_DATA_ENCOUNTER_TYPE: + case MON_DATA_RESERVED_158: + case MON_DATA_STATUS: + case MON_DATA_LEVEL: + case MON_DATA_CAPSULE: + case MON_DATA_HP: + case MON_DATA_MAXHP: + case MON_DATA_ATK: + case MON_DATA_DEF: + case MON_DATA_SPEED: + case MON_DATA_SPATK: + case MON_DATA_SPDEF: + case MON_DATA_SEAL_STRUCT: + case MON_DATA_SEAL_COORDS: + case MON_DATA_SPECIES_EXISTS: + case MON_DATA_SANITY_IS_EGG: + case MON_DATA_SPECIES2: + case MON_DATA_IVS_WORD: + case MON_DATA_UNK_175: + case MON_DATA_TYPE_1: + case MON_DATA_TYPE_2: + case MON_DATA_SPECIES_NAME: + default: + GF_ASSERT(0); + } +} + +struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id) +{ + struct BaseStats * baseStats = (struct BaseStats *)AllocFromHeap(heap_id, sizeof(struct BaseStats)); + LoadMonPersonal(species, baseStats); + return baseStats; +} + +int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr) +{ + int ret; + GF_ASSERT(baseStats != NULL); + switch (attr) + { + case BASE_HP: + ret = baseStats->hp; + break; + case BASE_ATK: + ret = baseStats->atk; + break; + case BASE_DEF: + ret = baseStats->def; + break; + case BASE_SPEED: + ret = baseStats->speed; + break; + case BASE_SPATK: + ret = baseStats->spatk; + break; + case BASE_SPDEF: + ret = baseStats->spdef; + break; + case BASE_TYPE1: + ret = baseStats->types[0]; + break; + case BASE_TYPE2: + ret = baseStats->types[1]; + break; + case BASE_CATCH_RATE: + ret = baseStats->catchRate; + break; + case BASE_EXP_YIELD: + ret = baseStats->expYield; + break; + case BASE_HP_YIELD: + ret = baseStats->hp_yield; + break; + case BASE_ATK_YIELD: + ret = baseStats->atk_yield; + break; + case BASE_DEF_YIELD: + ret = baseStats->def_yield; + break; + case BASE_SPEED_YIELD: + ret = baseStats->speed_yield; + break; + case BASE_SPATK_YIELD: + ret = baseStats->spatk_yield; + break; + case BASE_SPDEF_YIELD: + ret = baseStats->spdef_yield; + break; + case BASE_ITEM_1: + ret = baseStats->item1; + break; + case BASE_ITEM_2: + ret = baseStats->item2; + break; + case BASE_GENDER_RATIO: + ret = baseStats->genderRatio; + break; + case BASE_EGG_CYCLES: + ret = baseStats->eggCycles; + break; + case BASE_FRIENDSHIP: + ret = baseStats->friendship; + break; + case BASE_GROWTH_RATE: + ret = baseStats->growthRate; + break; + case BASE_EGG_GROUP_1: + ret = baseStats->eggGroups[0]; + break; + case GASE_EGG_GROUP_2: + ret = baseStats->eggGroups[1]; + break; + case BASE_ABILITY_1: + ret = baseStats->abilities[0]; + break; + case BASE_ABILITY_2: + ret = baseStats->abilities[1]; + break; + case BASE_GREAT_MARSH_RATE: + ret = baseStats->greatMarshRate; + break; + case BASE_COLOR: + ret = baseStats->color; + break; + case BASE_FLIP: + ret = baseStats->flip; + break; + case BASE_UNKNOWN_29: + ret = (int)baseStats->unk1C; + break; + case BASE_UNKNOWN_30: + ret = (int)baseStats->unk20; + break; + case BASE_UNKNOWN_31: + ret = (int)baseStats->unk24; + break; + case BASE_UNKNOWN_32: + ret = (int)baseStats->unk28; + break; + } + return ret; +} + +void FreeMonPersonal(struct BaseStats * personal) +{ + GF_ASSERT(personal != NULL); + FreeToHeap(personal); +} + +int GetMonBaseStat_HandleFormeConversion(int species, int forme, enum BaseStat attr) +{ + int ret; + struct BaseStats * personal = AllocAndLoadMonPersonal(ResolveMonForme(species, forme), 0); + ret = GetPersonalAttr(personal, attr); + FreeMonPersonal(personal); + return ret; +} + +int GetMonBaseStat(int species, enum BaseStat attr) +{ + int ret; + struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0); + ret = GetPersonalAttr(personal, attr); + FreeMonPersonal(personal); + return ret; +} + +u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon) +{ + BOOL decry = AcquireMonLock(pokemon); + u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + u32 lo = GetMonExpBySpeciesAndLevel(species, level); + u32 hi = GetMonExpBySpeciesAndLevel(species, level + 1); + u32 cur = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL); + ReleaseMonLock(pokemon, decry); + return (u8)(100 * (cur - lo) / (hi - lo)); +} + +u32 CalcMonExpToNextLevel(struct Pokemon * pokemon) +{ + return CalcBoxMonExpToNextLevel(&pokemon->box); +} + +u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon) +{ + u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u16 level = (u16)(CalcBoxMonLevel(boxmon) + 1); + u32 cur = GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL); + u32 hi = GetMonExpBySpeciesAndLevel(species, level); + return hi - cur; +} + +u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon) +{ + int species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + int level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + return GetMonExpBySpeciesAndLevel(species, level); +} + +u32 GetMonExpBySpeciesAndLevel(int species, int level) +{ + return GetExpByGrowthRateAndLevel(GetMonBaseStat(species, BASE_GROWTH_RATE), level); +} + +void LoadGrowthTable(int growthRate, u32 * dest) +{ + GF_ASSERT(growthRate < 8); + ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_PERSONAL_GROWTBL, growthRate); +} + +u32 GetExpByGrowthRateAndLevel(int growthRate, int level) +{ + u32 * table; + u32 ret; + GF_ASSERT(growthRate < 8); + GF_ASSERT(level <= 101); + table = (u32 *)AllocFromHeap(0, 101 * sizeof(u32)); + LoadGrowthTable(growthRate, table); + ret = table[level]; + FreeToHeap(table); + return ret; +} + +int CalcMonLevel(struct Pokemon * pokemon) +{ + return CalcBoxMonLevel(&pokemon->box); +} + +int CalcBoxMonLevel(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + int exp = (int)GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL); + ReleaseBoxMonLock(boxmon, decry); + return CalcLevelBySpeciesAndExp((u16)species, (u32)exp); +} + +int CalcLevelBySpeciesAndExp(u16 species, u32 exp) +{ + int level; + struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0); + level = CalcLevelBySpeciesAndExp_PreloadedPersonal(personal, species, exp); + FreeMonPersonal(personal); + return level; +} + +int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 exp) +{ +#pragma unused(species) + static u32 table[101]; + int i; + LoadGrowthTable(GetPersonalAttr(personal, BASE_GROWTH_RATE), table); + for (i = 1; i < 101; i++) + { + if (table[i] > exp) + break; + } + return i - 1; +} + +u8 GetMonNature(struct Pokemon * pokemon) +{ + return GetBoxMonNature(&pokemon->box); +} + +u8 GetBoxMonNature(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + ReleaseBoxMonLock(boxmon, decry); + return GetNatureFromPersonality(personality); +} + +u8 GetNatureFromPersonality(u32 pid) +{ + return (u8)(pid % 25); +} + +u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) +{ + u16 retVal; + + // Dont modify HP, Accuracy, or Evasion by nature + if (statIndex < 1 || statIndex > 5) + return n; + + switch (sNatureStatMods[nature][statIndex - 1]) + { + case 1: + retVal = (u16)((u16)(n * 110) / 100); // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast + break; + case -1: + retVal = (u16)((u16)(n * 90) / 100); // NOTE: will overflow for n > 728, see above + break; + default: + retVal = n; + break; + } + return retVal; +} + +void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location) +{ + u16 species; + u8 effect; + u8 r4; + s16 friendship; + s8 mod; + + if (kind == 5 && (rand_LC() & 1)) + return; + + species = (u16)GetMonData(pokemon, MON_DATA_SPECIES2, NULL); + if (species == SPECIES_NONE || species == SPECIES_EGG) + return; + + effect = (u8)FUN_0206E7B8((u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, 0); + r4 = 0; + friendship = (s16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + if (friendship >= 100) + r4++; + if (friendship >= 200) + r4++; + mod = sFriendshipModTable[kind][r4]; + if (mod > 0 && GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) + mod++; + if (mod > 0 && GetMonData(pokemon, MON_DATA_EGG_MET_LOCATION, NULL) == location) + mod++; + if (mod > 0 && effect == 52) // Soothe Bell effect? + mod = (s8)(mod * 150 / 100); + friendship += mod; + if (friendship < 0) + friendship = 0; + if (friendship > 255) + friendship = 255; + SetMonData(pokemon, MON_DATA_FRIENDSHIP, &friendship); +} + +u8 GetMonGender(struct Pokemon * pokemon) +{ + return GetBoxMonGender(&pokemon->box); +} + +u8 GetBoxMonGender(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + ReleaseBoxMonLock(boxmon, decry); + return GetGenderBySpeciesAndPersonality(species, personality); +} + +u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid) +{ + struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0); + u8 gender = GetGenderBySpeciesAndPersonality_PreloadedPersonal(personal, species, pid); + FreeMonPersonal(personal); + return gender; +} + +u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid) +{ +#pragma unused(species) + u8 ratio = (u8)GetPersonalAttr(personal, BASE_GENDER_RATIO); + switch (ratio) + { + case MON_RATIO_MALE: + return MON_MALE; + case MON_RATIO_FEMALE: + return MON_FEMALE; + case MON_RATIO_UNKNOWN: + return MON_GENDERLESS; + default: + if (ratio > (u8)pid) + return MON_FEMALE; + else + return MON_MALE; + } +} + +u8 MonIsShiny(struct Pokemon * pokemon) +{ + return BoxMonIsShiny(&pokemon->box); +} + +u8 BoxMonIsShiny(struct BoxPokemon * boxmon) +{ + u32 otid = GetBoxMonData(boxmon, MON_DATA_OTID, NULL); + u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + return CalcShininessByOtIdAndPersonality(otid, pid); +} + +u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid) +{ + return SHINY_CHECK(otid, pid); +} + +u32 GenerateShinyPersonality(u32 otid) +{ + int r4; + u16 r6; + u16 r5; + otid = (u32)((((otid & 0xFFFF0000) >> 16) ^ (otid & 0xFFFF)) >> 3u); + r6 = (u16)(rand_LC() & 7); + r5 = (u16)(rand_LC() & 7); + for (r4 = 0; r4 < 13; r4++) + { + if (MaskOfFlagNo(r4) & otid) + { + if (rand_LC() & 1) + r6 |= MaskOfFlagNo(r4 + 3); + else + r5 |= MaskOfFlagNo(r4 + 3); + } + else if (rand_LC() & 1) + { + r6 |= MaskOfFlagNo(r4 + 3); + r5 |= MaskOfFlagNo(r4 + 3); + } + } + return (u32)((r5 << 16) | r6); +} + +void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10) +{ + FUN_02068B70(spC, &pokemon->box, sp10); +} + +void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL); + u8 gender = GetBoxMonGender(boxmon); + u8 shiny = BoxMonIsShiny(boxmon); + u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + u8 forme; + if (species == SPECIES_EGG) + { + if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) + forme = 1; + else + forme = 0; + } + else + forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL); + FUN_02068C00(spC, species, gender, sp10, shiny, forme, personality); + ReleaseBoxMonLock(boxmon, decry); +} + +void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality) +{ + spC->unk6 = 0; + spC->unk8 = 0; + spC->unkC = 0; + switch (species) + { + case SPECIES_BURMY: + if (forme > 2) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 / 2 + 0x48 + forme * 2); + spC->unk4 = (u16)(shiny + 0x92 + forme * 2); + break; + case SPECIES_WORMADAM: + if (forme > 2) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 / 2 + 0x4E + forme * 2); + spC->unk4 = (u16)(shiny + 0x98 + forme * 2); + break; + case SPECIES_SHELLOS: + if (forme > 1) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 + 0x54 + forme); + spC->unk4 = (u16)(shiny + 0x9E + forme * 2); + break; + case SPECIES_GASTRODON: + if (forme > 1) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 + 0x58 + forme); + spC->unk4 = (u16)(shiny + 0xA2 + forme * 2); + break; + case SPECIES_CHERRIM: + if (forme > 1) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 + 0x5C + forme); + spC->unk4 = (u16)(shiny * 2 + 0xA6 + forme); + break; + case SPECIES_ARCEUS: + if (forme > 17) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 / 2 + 0x60 + forme * 2); + spC->unk4 = (u16)(shiny + 0xAA + forme * 2); + break; + case SPECIES_CASTFORM: + if (forme > 3) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 * 2 + 0x40 + forme); + spC->unk4 = (u16)(shiny * 4 + 0x8A + forme); + break; + case SPECIES_DEOXYS: + if (forme > 3) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 / 2 + forme * 2); + spC->unk4 = (u16)(shiny + 0x86); + break; + case SPECIES_UNOWN: + if (forme >= 28) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(sp10 / 2 + 0x8 + forme * 2); + spC->unk4 = (u16)(shiny + 0x88); + break; + case SPECIES_EGG: + if (forme > 1) + forme = 0; + spC->unk0 = 0x75; + spC->unk2 = (u16)(0x84 + forme); + spC->unk4 = (u16)(0xCE + forme); + break; + case SPECIES_MANAPHY_EGG: + spC->unk0 = 0x75; + spC->unk2 = 0x84; + spC->unk4 = 0xCE; + break; + default: + spC->unk0 = 0x4; + spC->unk2 = (u16)(species * 6 + sp10 + (gender == MON_FEMALE ? 0 : 1)); + spC->unk4 = (u16)(shiny + (species * 6 + 4)); + if (species == SPECIES_SPINDA && sp10 == 2) + { + spC->unk6 = SPECIES_SPINDA; + spC->unk8 = 0; + spC->unkC = personality; + } + break; + } +} + +u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1) +{ + return FUN_02068E1C(&pokemon->box, a1); +} + +u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1) +{ + u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL); + u8 gender = GetBoxMonGender(boxmon); + u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + u8 forme; + if (species == SPECIES_EGG) + { + if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY) + forme = 1; + else + forme = 0; + } + else + forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL); + return FUN_02068E88(species, gender, a1, forme, pid); +} + +u8 FUN_02068E88(int species, u8 gender, u32 a1, u8 forme, u32 pid) +{ +#pragma unused(pid) + u8 ret; + s32 fileId; + enum NarcId narc; + switch (species) + { + case SPECIES_BURMY: + if (forme > 2) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 / 2 + 0x48 + forme * 2); + break; + case SPECIES_WORMADAM: + if (forme > 2) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 / 2 + 0x4E + forme * 2); + break; + case SPECIES_SHELLOS: + if (forme > 1) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 + 0x54 + forme); + break; + case SPECIES_GASTRODON: + if (forme > 1) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 + 0x58 + forme); + break; + case SPECIES_CHERRIM: + if (forme > 1) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 + 0x5C + forme); + break; + case SPECIES_ARCEUS: + if (forme > 17) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 / 2 + 0x60 + 2 * forme); + break; + case SPECIES_CASTFORM: + if (forme > 3) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 * 2 + 0x40 + forme); + break; + case SPECIES_DEOXYS: + if (forme > 3) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 / 2 + forme * 2); + break; + case SPECIES_UNOWN: + if (forme >= 28) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(a1 / 2 + 0x8 + forme * 2); + break; + case SPECIES_EGG: + if (forme > 1) + forme = 0; + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = (s32)(0x84 + forme); + break; + case SPECIES_MANAPHY_EGG: + narc = NARC_POKETOOL_POKEGRA_HEIGHT_O; + fileId = 0x84; + break; + default: + narc = NARC_POKETOOL_POKEGRA_HEIGHT; + fileId = (s32)(4 * species + a1 + (gender != MON_FEMALE ? 1 : 0)); + break; + } + ReadWholeNarcMemberByIdPair(&ret, narc, fileId); + return ret; +} + +void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2) +{ + if (a2 == 2) + a0->unk0 = 60; + else + { + a0->unk0 = 6; + a1 = (u16)FUN_0206AA30(a1); + } + a0->unk2 = (u16)(a1 * 2); + a0->unk4 = (u16)(a1 * 2 + 1); + a0->unk6 = 0; + a0->unk8 = 0; + a0->unkC = 0; +} + +void FUN_02069010(void * dest, int a1) +{ + struct Pokeanm buffer; + ReadFromNarcMemberByIdPair(&buffer, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(28 * a1), 28); + MI_CpuCopy8(buffer.unk8, dest, 20); +} + +void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6) +{ + struct UnkStruct_02069038 sp4; + ReadFromNarcMemberByIdPair(&sp4.anim, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(a2 * 28), 28); + if (a3 == 2) + { + sp4.unk0 = sp4.anim.unk0[0].unk0; + sp4.unk2 = sp4.anim.unk0[0].unk1; + sp4.unk4 = (u8)a5; + } + else + { + a3 = FUN_02014C3C((u8)a4); + GF_ASSERT(a3 < 3); + sp4.unk0 = sp4.anim.unk0[a3 + 1].unk0; + sp4.unk2 = sp4.anim.unk0[a3 + 1].unk1; + sp4.unk4 = (u8)a5; + } + FUN_02014C54((int)a0, (int)a1, &sp4, (u8)a6); +} + +void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1) +{ + a0->unk0 = 60; + a0->unk2 = (u16)(a1 * 2); + a0->unk4 = (u16)(a1 * 2 + 1); + a0->unk6 = 0; + a0->unk8 = 0; + a0->unkC = 0; +} + +u32 FUN_020690C4(void) +{ + return sizeof(struct Pokemon); +} + +u32 FUN_020690C8(void) +{ + return sizeof(struct BoxPokemon); +} + +u8 FUN_020690CC(struct Pokemon * pokemon) +{ + return FUN_020690D4(&pokemon->box); +} + +u8 FUN_020690D4(struct BoxPokemon * boxmon) +{ + return (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL); +} + +struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon) +{ + return &pokemon->box; +} + +BOOL FUN_020690E8(struct Pokemon * pokemon) +{ + u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + u8 level = (u8)(GetMonData(pokemon, MON_DATA_LEVEL, NULL) + 1); + u32 exp = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL); + u32 growthrate = (u32)GetMonBaseStat(species, BASE_GROWTH_RATE); + u32 maxexp = GetExpByGrowthRateAndLevel((int)growthrate, 100); + if (exp > maxexp) + { + exp = maxexp; + SetMonData(pokemon, MON_DATA_EXPERIENCE, &exp); + } + if (level > 100) + return FALSE; + if (exp >= GetExpByGrowthRateAndLevel((int)growthrate, level)) + { + SetMonData(pokemon, MON_DATA_LEVEL, &level); + return TRUE; + } + return FALSE; +} + +u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret) +{ + u16 target = SPECIES_NONE; + u32 sp40; + u16 species; + u16 heldItem; + u32 personality; + int i; + u8 beauty; + u8 level; + u16 friendship; + u16 pid_hi; + struct Evolution * evoTable; + u8 r1; + + species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + heldItem = (u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL); + personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL); + beauty = (u8)GetMonData(pokemon, MON_DATA_BEAUTY, NULL); + pid_hi = (u16)((personality & 0xFFFF0000) >> 16); + r1 = (u8)FUN_0206E7B8(heldItem, 1, 0); + if (species != SPECIES_KADABRA && r1 == 0x3F && context != 3) + return SPECIES_NONE; + if (method_ret == NULL) + method_ret = &sp40; + evoTable = AllocFromHeap(0, 7 * sizeof(struct Evolution)); + LoadMonEvolutionTable(species, evoTable); + switch (context) + { + case 0: + level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + friendship = (u16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + for (i = 0; i < 7; i++) + { + switch (evoTable[i].method) + { + case EVO_NONE: + break; + case EVO_FRIENDSHIP: + if (friendship >= 220) + { + target = evoTable[i].target; + *method_ret = EVO_FRIENDSHIP; + } + break; + case EVO_FRIENDSHIP_DAY: + if (IsNighttime() == 0 && friendship >= 220) + { + target = evoTable[i].target; + *method_ret = EVO_FRIENDSHIP_DAY; + } + break; + case EVO_FRIENDSHIP_NIGHT: + if (IsNighttime() == 1 && friendship >= 220) + { + target = evoTable[i].target; + *method_ret = EVO_FRIENDSHIP_NIGHT; + } + break; + case EVO_LEVEL: + if (evoTable[i].param <= level) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL; + } + break; + case EVO_TRADE: + break; + case EVO_TRADE_ITEM: + break; + case EVO_STONE: + break; + case EVO_LEVEL_ATK_GT_DEF: + if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) > GetMonData(pokemon, MON_DATA_DEF, NULL)) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_ATK_GT_DEF; + } + break; + case EVO_LEVEL_ATK_EQ_DEF: + if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) == GetMonData(pokemon, MON_DATA_DEF, NULL)) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_ATK_EQ_DEF; + } + break; + case EVO_LEVEL_ATK_LT_DEF: + if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) < GetMonData(pokemon, MON_DATA_DEF, NULL)) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_ATK_LT_DEF; + } + break; + case EVO_LEVEL_PID_LO: + if (evoTable[i].param <= level && pid_hi % 10 < 5) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_PID_LO; + } + break; + case EVO_LEVEL_PID_HI: + if (evoTable[i].param <= level && pid_hi % 10 >= 5) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_PID_HI; + } + break; + case EVO_LEVEL_NINJASK: + if (evoTable[i].param <= level) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_NINJASK; + } + break; + case EVO_LEVEL_SHEDINJA: + *method_ret = EVO_LEVEL_SHEDINJA; + break; + case EVO_BEAUTY: + if (evoTable[i].param <= beauty) + { + target = evoTable[i].target; + *method_ret = EVO_BEAUTY; + } + break; + case EVO_STONE_MALE: + break; + case EVO_STONE_FEMALE: + break; + case EVO_ITEM_DAY: + if (IsNighttime() == 0 && evoTable[i].param == heldItem) + { + target = evoTable[i].target; + *method_ret = EVO_ITEM_DAY; + } + break; + case EVO_ITEM_NIGHT: + if (IsNighttime() == 1 && evoTable[i].param == heldItem) + { + target = evoTable[i].target; + *method_ret = EVO_ITEM_NIGHT; + } + break; + case EVO_HAS_MOVE: + if (MonHasMove(pokemon, evoTable[i].param) == TRUE) + { + target = evoTable[i].target; + *method_ret = EVO_HAS_MOVE; + } + break; + case EVO_OTHER_PARTY_MON: + if (party != NULL && PartyHasMon(party, evoTable[i].param) == 1) + { + target = evoTable[i].target; + *method_ret = EVO_OTHER_PARTY_MON; + } + break; + case EVO_LEVEL_MALE: + if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && evoTable[i].param <= level) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_MALE; + } + break; + case EVO_LEVEL_FEMALE: + if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && evoTable[i].param <= level) + { + target = evoTable[i].target; + *method_ret = EVO_LEVEL_FEMALE; + } + break; + case EVO_CORONET: + if (usedItem == evoTable[i].method) + { + target = evoTable[i].target; + *method_ret = EVO_CORONET; + } + break; + case EVO_ETERNA: + if (usedItem == evoTable[i].method) + { + target = evoTable[i].target; + *method_ret = EVO_ETERNA; + } + break; + case EVO_ROUTE217: + if (usedItem == evoTable[i].method) + { + target = evoTable[i].target; + *method_ret = EVO_ROUTE217; + } + break; + } + if (target != SPECIES_NONE) + break; + } + break; + case 1: + for (i = 0; i < 7; i++) + { + switch (evoTable[i].method) + { + case EVO_TRADE: + target = evoTable[i].target; + *method_ret = EVO_TRADE; + break; + case EVO_TRADE_ITEM: + if (heldItem == evoTable[i].param) + { + target = evoTable[i].target; + *method_ret = EVO_TRADE_ITEM; + } + break; + } + if (target != SPECIES_NONE) + break; + } + break; + case 2: + case 3: + for (i = 0; i < 7; i++) + { + if (evoTable[i].method == EVO_STONE && usedItem == evoTable[i].param) + { + target = evoTable[i].target; + *method_ret = 0; + break; + } + if (evoTable[i].method == EVO_STONE_MALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && usedItem == evoTable[i].param) + { + target = evoTable[i].target; + *method_ret = 0; + break; + } + if (evoTable[i].method == EVO_STONE_FEMALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && usedItem == evoTable[i].param) + { + target = evoTable[i].target; + *method_ret = 0; + break; + } + } + break; + } + FreeToHeap(evoTable); + return target; +} + +u16 ReadFromPersonalPmsNarc(u16 species) +{ + u16 ret = SPECIES_NONE; + GF_ASSERT(species < SPECIES_EGG); + { + FSFile file; + FS_InitFile(&file); + FS_OpenFile(&file, "poketool/personal/pms.narc"); + FS_SeekFile(&file, (s32)(species * sizeof(u16)), FS_SEEK_SET); + FS_ReadFile(&file, &ret, sizeof(u16)); + FS_CloseFile(&file); + } + return ret; +} + +u16 GetEggSpecies(u16 species) +{ + switch (species) + { + case SPECIES_SUDOWOODO: + case SPECIES_MARILL: + case SPECIES_MR_MIME: + case SPECIES_CHANSEY: + case SPECIES_SNORLAX: + case SPECIES_MANTINE: + case SPECIES_WOBBUFFET: + case SPECIES_ROSELIA: + case SPECIES_CHIMECHO: + return species; + default: + return ReadFromPersonalPmsNarc(species); + } +} + +#define WOTBL_END 0xFFFF +#define WOTBL_MOVE_MASK 0x01FF +#define WOTBL_MOVE_SHIFT 0 +#define WOTBL_LVL_MASK 0xFE00 +#define WOTBL_LVL_SHIFT 9 +#define WOTBL_MOVE(x) ((u16)(((x) & WOTBL_MOVE_MASK) >> WOTBL_MOVE_SHIFT)) +#define WOTBL_LVL(x) ((u8)(((x) & WOTBL_LVL_MASK) >> WOTBL_LVL_SHIFT)) + +void InitBoxMonMoveset(struct BoxPokemon * boxmon) +{ + BOOL decry; + u16 * wotbl; + int i; + u16 species; + u32 forme; + u8 level; + u16 move; + wotbl = AllocFromHeap(0, 22 * sizeof(u16)); + decry = AcquireBoxMonLock(boxmon); + species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + forme = GetBoxMonData(boxmon, MON_DATA_FORME, NULL); + level = (u8)CalcBoxMonLevel(boxmon); + LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl); + for (i = 0; wotbl[i] != WOTBL_END; i++) + { + if ((wotbl[i] & WOTBL_LVL_MASK) > (level << WOTBL_LVL_SHIFT)) + break; + move = WOTBL_MOVE(wotbl[i]); + if (FUN_020696A8(boxmon, move) == 0xFFFF) + FUN_02069718(boxmon, move); + } + FreeToHeap(wotbl); + ReleaseBoxMonLock(boxmon, decry); +} + +u32 FUN_02069698(struct Pokemon * pokemon, u16 move) +{ + return FUN_020696A8(FUN_020690E4(pokemon), move); +} + +u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move) +{ + u32 ret = 0xFFFF; + int i; + BOOL decry = AcquireBoxMonLock(boxmon); + u16 cur_move; + for (i = 0; i < 4; i++) + { + cur_move = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL); + if (cur_move == MOVE_NONE) + { + FUN_020697D4(boxmon, move, (u8)i); + ret = move; + break; + } + if (cur_move == move) + { + ret = 0xFFFE; + break; + } + } + ReleaseBoxMonLock(boxmon, decry); + return ret; +} + +void FUN_02069708(struct Pokemon * pokemon, u16 move) +{ + FUN_02069718(FUN_020690E4(pokemon), move); +} + +void FUN_02069718(struct BoxPokemon * boxmon, u16 move) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + int i; + u16 moves[4]; + u8 pp[4]; + u8 ppUp[4]; + + for (i = 0; i < 3; i++) + { + moves[i] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i + 1, NULL); + pp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + i + 1, NULL); + ppUp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i + 1, NULL); + } + + moves[3] = move; + pp[3] = (u8)FUN_0206AB18(move, 5); + ppUp[3] = 0; + + for (i = 0; i < 4; i++) + { + SetBoxMonData(boxmon, MON_DATA_MOVE1 + i, &moves[i]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp[i]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i, &ppUp[i]); + } + + ReleaseBoxMonLock(boxmon, decry); +} + +void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot) +{ + FUN_020697D4(&pokemon->box, move, slot); +} + +void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot) +{ + u8 ppUp; + u8 pp; + + SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot, &move); + ppUp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot, NULL); + pp = (u8)FUN_0206AB30(move, ppUp); + SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot, &pp); +} + +u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0) +{ + u32 ret = 0; + u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16)); + u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + u32 forme = GetMonData(pokemon, MON_DATA_FORME, NULL); + u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl); + + + if (wotbl[*r5] == 0xFFFF) + { + FreeToHeap(wotbl); + return 0; + } + while ((wotbl[*r5] & WOTBL_LVL_MASK) != (level << WOTBL_LVL_SHIFT)) + { + (*r5)++; + if (wotbl[*r5] == 0xFFFF) + { + FreeToHeap(wotbl); + return 0; + } + } + if ((wotbl[*r5] & WOTBL_LVL_MASK) == (level << WOTBL_LVL_SHIFT)) + { + *sp0 = WOTBL_MOVE(wotbl[*r5]); + (*r5)++; + ret = FUN_02069698(pokemon, *sp0); + } + FreeToHeap(wotbl); + return ret; +} + +void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2) +{ + FUN_020698E8(&pokemon->box, slot1, slot2); +} + +void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2) +{ + u16 moves[2]; + u8 pp[2]; + u8 ppUp[2]; + + moves[0] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, NULL); + pp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, NULL); + ppUp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, NULL); + moves[1] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, NULL); + pp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, NULL); + ppUp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, NULL); + + SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, &moves[1]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, &pp[1]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, &ppUp[1]); + SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, &moves[0]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, &pp[0]); + SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, &ppUp[0]); +} + +void FUN_020699A4(struct Pokemon * pokemon, u32 slot) +{ + u16 move; + u8 pp; + u8 ppUp; + for (; slot < 3; slot++) + { + move = (u16)GetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot + 1), NULL); + pp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot + 1), NULL); + ppUp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot + 1), NULL); + SetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot), &move); + SetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot), &pp); + SetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot), &ppUp); + } + move = MOVE_NONE; + pp = 0; + ppUp = 0; + SetMonData(pokemon, MON_DATA_MOVE1 + 3, &move); + SetMonData(pokemon, MON_DATA_MOVE1PP + 3, &pp); + SetMonData(pokemon, MON_DATA_MOVE1PPUP + 3, &ppUp); +} + +BOOL MonHasMove(struct Pokemon * pokemon, u16 move) +{ + int i; + for (i = 0; i < 4; i++) + { + if (GetMonData(pokemon, MON_DATA_MOVE1 + i, NULL) == move) + break; + } + if (i != 4) + return TRUE; + else + return FALSE; +} + +void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest) +{ + u32 sp0 = 0; + u8 sp4[12][2]; + struct SealStruct * seals; + dest->box = *src; + if (dest->box.box_lock) + dest->box.party_lock = TRUE; + SetMonData(dest, MON_DATA_STATUS, &sp0); + SetMonData(dest, MON_DATA_HP, &sp0); + SetMonData(dest, MON_DATA_MAXHP, &sp0); + seals = CreateNewSealsObject(0); + SetMonData(dest, MON_DATA_SEAL_STRUCT, seals); + FreeToHeap(seals); + SetMonData(dest, MON_DATA_CAPSULE, &sp0); + MIi_CpuClearFast(0, sp4, sizeof(sp4)); + SetMonData(dest, MON_DATA_SEAL_COORDS, sp4); + CalcMonLevelAndStats(dest); +} + +u8 FUN_02069AEC(struct PlayerParty * party) +{ + int i; + int r7 = GetPartyCount(party); + u8 ret = 1; + u8 level; + for (i = 0; i < r7; i++) + { + struct Pokemon * pokemon = GetPartyMonByIndex(party, i); + if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE + && !GetMonData(pokemon, MON_DATA_IS_EGG, NULL)) + { + level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL); + if (level > ret) + ret = level; + } + } + return ret; +} + +u16 FUN_02069B40(u16 species) +{ + u16 ret; + ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_POKEZUKAN, 0, species * sizeof(u16), sizeof(u16)); + return ret; +} + +u16 FUN_02069B60(u16 sinnoh_dex) +{ + u16 ret = SPECIES_NONE; + if (sinnoh_dex <= SINNOH_DEX_COUNT) + ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_SHINZUKAN, 0, sinnoh_dex * sizeof(u16), sizeof(u16)); + return ret; +} + +void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest) +{ + *dest = *src; +} + +void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest) +{ + *dest = src->box; +} + +void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest) +{ + *dest = *src; +} + +s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor) +{ + return FUN_02069BD0(&pokemon->box, flavor); +} + +s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor) +{ + u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + return FUN_02069BE4(personality, flavor); +} + +s8 FUN_02069BE4(u32 personality, int flavor) +{ + return UNK_020F7F16[GetNatureFromPersonality(personality)][flavor]; +} + +int FUN_02069BFC(u16 species, u32 forme, u16 * dest) +{ + int i; + u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16)); + LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl); + for (i = 0; wotbl[i] != WOTBL_END; i++) + { + dest[i] = WOTBL_MOVE(wotbl[i]); + } + FreeToHeap(wotbl); + return i; +} + +void FUN_02069C4C(struct PlayerParty * party) +{ + int count = GetPartyCount(party); + int idx; + struct Pokemon * pokemon; + u8 sp0; + switch (rand_LC()) + { + case 0x4000: + case 0x8000: + case 0xC000: + do + { + idx = rand_LC() % count; + pokemon = GetPartyMonByIndex(party, idx); + } while (GetMonData(pokemon, MON_DATA_SPECIES, NULL) == SPECIES_NONE || GetMonData(pokemon, MON_DATA_IS_EGG, NULL)); + if (!FUN_02069CF4(party, (u8)MaskOfFlagNo(idx))) + { + do + { + sp0 = (u8)rand_LC(); + } while (!(sp0 & 7)); + if (sp0 & 0xF0) + sp0 &= 7; + sp0 |= sp0 << 4; + sp0 &= 0xF3; + sp0++; + SetMonData(pokemon, MON_DATA_POKERUS, &sp0); + } + } +} + +u8 FUN_02069CF4(struct PlayerParty * party, u8 mask) +{ + int i = 0; + u32 flag = 1; + u8 ret = 0; + struct Pokemon * pokemon; + if (mask != 0) + { + do + { + if (mask & 1) + { + pokemon = GetPartyMonByIndex(party, i); + if (GetMonData(pokemon, MON_DATA_POKERUS, NULL)) + ret |= flag; + } + i++; + flag <<= 1; + mask >>= 1; + } + while (mask != 0); + } + else + { + pokemon = GetPartyMonByIndex(party, 0); + if (GetMonData(pokemon, MON_DATA_POKERUS, NULL)) + ret++; + } + return ret; +} + +void FUN_02069D50(struct PlayerParty * party, int r5) +{ + int i; + u8 pokerus; + struct Pokemon * pokemon; + int count = GetPartyCount(party); + for (i = 0; i < count; i++) + { + pokemon = GetPartyMonByIndex(party, i); + if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) + { + pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL); + if (pokerus & 0xF) + { + if ((pokerus & 0xF) < r5 || r5 > 4) + pokerus &= 0xF0; + else + pokerus -= r5; + if (pokerus == 0) + pokerus = 0x10; // immune + SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + } + } + } +} + +void FUN_02069DC8(struct PlayerParty * party) +{ + int count = GetPartyCount(party); + int i; + struct Pokemon * pokemon; + u8 pokerus; + if ((rand_LC() % 3) == 0) + { + for (i = 0; i < count; i++) + { + pokemon = GetPartyMonByIndex(party, i); + if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE) + { + pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL); + if (pokerus & 0xF) + { + if (i != 0) + { + pokemon = GetPartyMonByIndex(party, i - 1); + if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0)) + SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + } + if (i < count - 1) + { + pokemon = GetPartyMonByIndex(party, i + 1); + if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0)) + { + SetMonData(pokemon, MON_DATA_POKERUS, &pokerus); + i++; // don't infect the rest of the party + } + } + } + } + } + } +} + +BOOL FUN_02069E74(struct Pokemon * pokemon) +{ + return FUN_02069E7C(&pokemon->box); +} + +BOOL FUN_02069E7C(struct BoxPokemon * boxmon) +{ + return !!(GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL) & 0xF); +} + +BOOL FUN_02069E94(struct Pokemon * pokemon) +{ + return FUN_02069E9C(&pokemon->box); +} + +BOOL FUN_02069E9C(struct BoxPokemon * boxmon) +{ + u8 pokerus = (u8)GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL); + if (pokerus & 0xF) + return FALSE; + if (pokerus & 0xF0) + return TRUE; + return FALSE; +} + +void FUN_02069EC4(struct Pokemon * pokemon) +{ + FUN_02069ECC(&pokemon->box); +} + +void FUN_02069ECC(struct BoxPokemon * boxmon) +{ + u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u32 ability = GetBoxMonData(boxmon, MON_DATA_ABILITY, NULL); + u32 heldItem = GetBoxMonData(boxmon, MON_DATA_HELD_ITEM, NULL); + u32 forme; + if (species == SPECIES_ARCEUS && ability == ABILITY_MULTITYPE) + { + forme = GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8((u16)heldItem, 1, 0)); + SetBoxMonData(boxmon, MON_DATA_FORME, &forme); + } +} + +u32 GetArceusTypeByHeldItemEffect(u16 heldEffect) +{ + switch (heldEffect) + { + case 0x7D: + return TYPE_FIRE; + case 0x7E: + return TYPE_WATER; + case 0x7F: + return TYPE_ELECTRIC; + case 0x80: + return TYPE_GRASS; + case 0x81: + return TYPE_ICE; + case 0x82: + return TYPE_FIGHTING; + case 0x83: + return TYPE_POISON; + case 0x84: + return TYPE_GROUND; + case 0x85: + return TYPE_FLYING; + case 0x86: + return TYPE_PSYCHIC; + case 0x87: + return TYPE_BUG; + case 0x88: + return TYPE_ROCK; + case 0x89: + return TYPE_GHOST; + case 0x8A: + return TYPE_DRAGON; + case 0x8B: + return TYPE_DARK; + case 0x8C: + return TYPE_STEEL; + default: + return TYPE_NORMAL; + } +} + +void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl) +{ + ReadWholeNarcMemberByIdPair(wotbl, NARC_POKETOOL_PERSONAL_WOTBL, ResolveMonForme(species, forme)); +} + +void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20) +{ + if (r4 == SPECIES_CHATOT) + { + if (!FUN_02005F14((int)r5)) + { + FUN_02005E80(1); + FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20); + } + else + { + if (sp1C) + FUN_02005E80(1); + FUN_02005E90((int)r7, 0, (int)sp18, (int)r6); + } + } + else + { + FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20); + } +} + +void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5) +{ + u32 hp; + FUN_0206A054(&pokemon->box, a1, pokeball, a3, encounterType, a5); + if (pokeball == ITEM_HEAL_BALL) + { + hp = GetMonData(pokemon, MON_DATA_MAXHP, NULL); + SetMonData(pokemon, MON_DATA_HP, &hp); + hp = 0; + SetMonData(pokemon, MON_DATA_STATUS, &hp); + } +} + +void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5) +{ + FUN_020808AC(boxmon, (int)a1, 0, (int)a3, (int)a5); + SetBoxMonData(boxmon, MON_DATA_GAME_VERSION, (void *)&gGameVersion); + SetBoxMonData(boxmon, MON_DATA_POKEBALL, &pokeball); + SetBoxMonData(boxmon, MON_DATA_ENCOUNTER_TYPE, &encounterType); +} + +void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2) +{ + u32 chance; + u16 species; + u16 forme; + u16 item1; + u16 item2; + if (!(a1 & 0x81)) { + chance = (u32)(rand_LC() % 100); + species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, 0); + forme = (u16)GetMonData(pokemon, MON_DATA_FORME, 0); + item1 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_1); + item2 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_2); + if (item1 == item2 && item1 != ITEM_NONE) + { + SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1); + } + else + { + if (chance >= sItemOdds[a2][0]) + { + if (chance < sItemOdds[a2][1]) + { + SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1); + } + else + { + SetMonData(pokemon, MON_DATA_HELD_ITEM, &item2); + } + } + } + } +} + +BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1) +{ + return FUN_0206A144(&pokemon->box, a1); +} + +BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1) +{ + u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL); + int forme = (int)GetBoxMonData(boxmon, MON_DATA_FORME, NULL); + return FUN_0206A16C(species, forme, a1); +} + +BOOL FUN_0206A16C(u16 species, int forme, u32 a2) +{ + u32 r4; + enum BaseStat r2; + if (species == SPECIES_EGG) + return FALSE; + if (a2 < 32) + { + r4 = 1ul << a2; + r2 = BASE_UNKNOWN_29; + } + else if (a2 < 64) + { + r4 = 1ul << (a2 - 32); + r2 = BASE_UNKNOWN_30; + } + else if (a2 < 96) + { + r4 = 1ul << (a2 - 64); + r2 = BASE_UNKNOWN_31; + } + else + { + r4 = 1ul << (a2 - 96); + r2 = BASE_UNKNOWN_32; + } + return !!(GetMonBaseStat_HandleFormeConversion(species, forme, r2) & r4); +} + +void FUN_0206A1C4(struct Pokemon * pokemon) +{ + FUN_0206A1CC(&pokemon->box); +} + +void FUN_0206A1CC(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + int pid = (int)GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); + int ability1 = (int)GetMonBaseStat(species, BASE_ABILITY_1); + int ability2 = (int)GetMonBaseStat(species, BASE_ABILITY_2); + + if (ability2 != ABILITY_NONE) + { + if (pid & 1) + SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability2); + else + SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1); + } + else + SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1); + ReleaseBoxMonLock(boxmon, decry); +} + +void FUN_0206A23C(struct Pokemon * r5, u32 personality) +{ + PokemonDataBlockA * r4; + PokemonDataBlockB * r6; + PokemonDataBlockC * r7; + PokemonDataBlockD * sp8; + PokemonDataBlockA * spC; + PokemonDataBlockB * sp10; + PokemonDataBlockC * sp14; + PokemonDataBlockD * sp18; + struct Pokemon * sp4; + + sp4 = AllocMonZeroed(0); + FUN_02069B88(r5, sp4); + r4 = &GetSubstruct(&sp4->box, r5->box.pid, 0)->blockA; + r6 = &GetSubstruct(&sp4->box, r5->box.pid, 1)->blockB; + r7 = &GetSubstruct(&sp4->box, r5->box.pid, 2)->blockC; + sp8 = &GetSubstruct(&sp4->box, r5->box.pid, 3)->blockD; + spC = &GetSubstruct(&r5->box, personality, 0)->blockA; + sp10 = &GetSubstruct(&r5->box, personality, 1)->blockB; + sp14 = &GetSubstruct(&r5->box, personality, 2)->blockC; + sp18 = &GetSubstruct(&r5->box, personality, 3)->blockD; + + DECRYPT_BOX(&sp4->box); + DECRYPT_PTY(r5); + DECRYPT_BOX(&r5->box); + r5->box.pid = personality; + *spC = *r4; + *sp10 = *r6; + *sp14 = *r7; + *sp18 = *sp8; + r5->box.checksum = CHECKSUM(&r5->box); + ENCRYPT_BOX(&r5->box); + ENCRYPT_PTY(r5); + FreeToHeap(sp4); +} + +void LoadMonPersonal(int species, struct BaseStats * personal) +{ + ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, species); +} + +void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * personal) +{ + ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, ResolveMonForme(species, forme)); +} + +void LoadMonEvolutionTable(u16 species, struct Evolution * evo) +{ + ReadWholeNarcMemberByIdPair(evo, NARC_POKETOOL_PERSONAL_EVO, species); +} + + +void MonEncryptSegment(u16 * data, u32 size, u32 seed) { + int i; + for (i = 0; i < size / 2; i++) + { + data[i] ^= MonEncryptionLCRNG(&seed); + } +} + +void MonDecryptSegment(u16 * data, u32 size, u32 seed) { + MonEncryptSegment(data, size, seed); +} + +u16 MonEncryptionLCRNG(u32 * seed) +{ + *seed = *seed * 1103515245 + 24691; + return (u16)(*seed >> 16); +} + +u16 CalcMonChecksum(u16 * data, u32 size) +{ + int i; + u16 ret = 0; + for (i = 0; i < size / 2; i++) + { + ret += data[i]; + } + return ret; +} + +#define SUBSTRUCT_CASE(v1, v2, v3, v4) \ +{ \ + PokemonDataBlock *substructs = boxMon->substructs; \ + switch (substructType) \ + { \ + case 0: \ + result = &substructs[v1]; \ + break; \ + case 1: \ + result = &substructs[v2]; \ + break; \ + case 2: \ + result = &substructs[v3]; \ + break; \ + case 3: \ + result = &substructs[v4]; \ + break; \ + } \ + \ + break; \ +} + +PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType) +{ + PokemonDataBlock *result; + + switch ((personality & 0x3E000) >> 13) + { + case 0: + case 24: + SUBSTRUCT_CASE(0,1,2,3) + case 1: + case 25: + SUBSTRUCT_CASE(0,1,3,2) + case 2: + case 26: + SUBSTRUCT_CASE(0,2,1,3) + case 3: + case 27: + SUBSTRUCT_CASE(0,3,1,2) + case 4: + case 28: + SUBSTRUCT_CASE(0,2,3,1) + case 5: + case 29: + SUBSTRUCT_CASE(0,3,2,1) + case 6: + case 30: + SUBSTRUCT_CASE(1,0,2,3) + case 7: + case 31: + SUBSTRUCT_CASE(1,0,3,2) + case 8: + SUBSTRUCT_CASE(2,0,1,3) + case 9: + SUBSTRUCT_CASE(3,0,1,2) + case 10: + SUBSTRUCT_CASE(2,0,3,1) + case 11: + SUBSTRUCT_CASE(3,0,2,1) + case 12: + SUBSTRUCT_CASE(1,2,0,3) + case 13: + SUBSTRUCT_CASE(1,3,0,2) + case 14: + SUBSTRUCT_CASE(2,1,0,3) + case 15: + SUBSTRUCT_CASE(3,1,0,2) + case 16: + SUBSTRUCT_CASE(2,3,0,1) + case 17: + SUBSTRUCT_CASE(3,2,0,1) + case 18: + SUBSTRUCT_CASE(1,2,3,0) + case 19: + SUBSTRUCT_CASE(1,3,2,0) + case 20: + SUBSTRUCT_CASE(2,1,3,0) + case 21: + SUBSTRUCT_CASE(3,1,2,0) + case 22: + SUBSTRUCT_CASE(2,3,1,0) + case 23: + SUBSTRUCT_CASE(3,2,1,0) + } + return result; +} + +int ResolveMonForme(int species, int forme) +{ + switch (species) + { + case SPECIES_DEOXYS: + if (forme != 0 && forme <= 3) + return SPECIES_DEOXYS_ATK + forme - 1; + break; + case SPECIES_WORMADAM: + if (forme != 0 && forme <= 2) + return SPECIES_WORMADAM_SANDY + forme - 1; + break; + } + return species; +} + +u32 MaskOfFlagNo(int flagno) +{ + // This is completely inane. + int i; + u32 ret = 1; + GF_ASSERT(flagno < 32); + for (i = 0; i < flagno; i++) + ret <<= 1; + return ret; +} + +int LowestFlagNo(u32 mask) +{ + int i; + u32 bit = 1; + for (i = 0; i < 32; i++) + { + if (mask & bit) + break; + bit <<= 1; + } + return i; +} + +BOOL IsPokemonLegendaryOrMythical(u16 species) +{ + int i; + for (i = 0; i < NELEMS(sLegendaryMonsList); i++) + { + if (species == sLegendaryMonsList[i]) + return TRUE; + } + return FALSE; +} + +u16 GetLegendaryMon(u32 idx) +{ + if (idx >= NELEMS(sLegendaryMonsList)) + idx = 0; + return sLegendaryMonsList[idx]; +} + +BOOL FUN_0206A998(struct Pokemon * pokemon) +{ + u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL); + return IsPokemonLegendaryOrMythical(species); +} + +BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id) +{ + u32 myId = FUN_020239BC(sb2); + u32 otId = GetBoxMonData(boxmon, MON_DATA_OTID, NULL); + u32 myGender = FUN_020239CC(sb2); + u32 otGender = GetBoxMonData(boxmon, MON_DATA_MET_GENDER, NULL); + struct String * r7 = FUN_020239A0(sb2, heap_id); + struct String * r6 = FUN_020219F4(OT_NAME_LENGTH + 1, heap_id); + BOOL ret = FALSE; + GetBoxMonData(boxmon, MON_DATA_OT_NAME_2, r6); + if (myId == otId && myGender == otGender && FUN_02021CE0(r7, r6) == 0) + ret = TRUE; + FUN_02021A20(r6); + FUN_02021A20(r7); + return ret; +} + +int FUN_0206AA30(int x) +{ + switch (x) + { + case 63: + return 2; + case 90: + case 91: + case 92: + case 93: + case 94: + return x - 87; + default: + if (FUN_0206AE00(x) == 1) + return 1; + else + return 0; + case 0: + case 1: + return x; + } +} + +void FUN_0206AA84(struct Pokemon * pokemon) +{ + u8 sp0 = 0; + u8 sp1[12][2]; + MIi_CpuClearFast(0, sp1, sizeof(sp1)); + SetMonData(pokemon, MON_DATA_CAPSULE, &sp0); + SetMonData(pokemon, MON_DATA_SEAL_COORDS, sp1); +} + +void FUN_0206AAB4(struct BoxPokemon * boxmon) +{ + int i; + u8 pp; + BOOL decry = AcquireBoxMonLock(boxmon); + for (i = 0; i < 4; i++) + { + if (GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE) + { + pp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1MAXPP + i, NULL); + SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp); + } + } + ReleaseBoxMonLock(boxmon, decry); +} diff --git a/arm9/src/string_util.c b/arm9/src/string_util.c index e36f1a30..54ad61fc 100644 --- a/arm9/src/string_util.c +++ b/arm9/src/string_util.c @@ -1,8 +1,5 @@ #include "string_util.h"
-#define EOS 0xFFFF
-#define NON_DIGIT 0xE2
-
const u16 gDigitTable[] = {
0xA2,
0xA3,
diff --git a/include/constants/abilities.h b/include/constants/abilities.h new file mode 100644 index 00000000..f107e623 --- /dev/null +++ b/include/constants/abilities.h @@ -0,0 +1,129 @@ +#ifndef POKEDIAMOND_CONSTANTS_ABILITIES_H +#define POKEDIAMOND_CONSTANTS_ABILITIES_H + +#define ABILITY_NONE 0 +#define ABILITY_STENCH 1 +#define ABILITY_DRIZZLE 2 +#define ABILITY_SPEED_BOOST 3 +#define ABILITY_BATTLE_ARMOR 4 +#define ABILITY_STURDY 5 +#define ABILITY_DAMP 6 +#define ABILITY_LIMBER 7 +#define ABILITY_SAND_VEIL 8 +#define ABILITY_STATIC 9 +#define ABILITY_VOLT_ABSORB 10 +#define ABILITY_WATER_ABSORB 11 +#define ABILITY_OBLIVIOUS 12 +#define ABILITY_CLOUD_NINE 13 +#define ABILITY_COMPOUND_EYES 14 +#define ABILITY_INSOMNIA 15 +#define ABILITY_COLOR_CHANGE 16 +#define ABILITY_IMMUNITY 17 +#define ABILITY_FLASH_FIRE 18 +#define ABILITY_SHIELD_DUST 19 +#define ABILITY_OWN_TEMPO 20 +#define ABILITY_SUCTION_CUPS 21 +#define ABILITY_INTIMIDATE 22 +#define ABILITY_SHADOW_TAG 23 +#define ABILITY_ROUGH_SKIN 24 +#define ABILITY_WONDER_GUARD 25 +#define ABILITY_LEVITATE 26 +#define ABILITY_EFFECT_SPORE 27 +#define ABILITY_SYNCHRONIZE 28 +#define ABILITY_CLEAR_BODY 29 +#define ABILITY_NATURAL_CURE 30 +#define ABILITY_LIGHTNING_ROD 31 +#define ABILITY_SERENE_GRACE 32 +#define ABILITY_SWIFT_SWIM 33 +#define ABILITY_CHLOROPHYLL 34 +#define ABILITY_ILLUMINATE 35 +#define ABILITY_TRACE 36 +#define ABILITY_HUGE_POWER 37 +#define ABILITY_POISON_POINT 38 +#define ABILITY_INNER_FOCUS 39 +#define ABILITY_MAGMA_ARMOR 40 +#define ABILITY_WATER_VEIL 41 +#define ABILITY_MAGNET_PULL 42 +#define ABILITY_SOUNDPROOF 43 +#define ABILITY_RAIN_DISH 44 +#define ABILITY_SAND_STREAM 45 +#define ABILITY_PRESSURE 46 +#define ABILITY_THICK_FAT 47 +#define ABILITY_EARLY_BIRD 48 +#define ABILITY_FLAME_BODY 49 +#define ABILITY_RUN_AWAY 50 +#define ABILITY_KEEN_EYE 51 +#define ABILITY_HYPER_CUTTER 52 +#define ABILITY_PICKUP 53 +#define ABILITY_TRUANT 54 +#define ABILITY_HUSTLE 55 +#define ABILITY_CUTE_CHARM 56 +#define ABILITY_PLUS 57 +#define ABILITY_MINUS 58 +#define ABILITY_FORECAST 59 +#define ABILITY_STICKY_HOLD 60 +#define ABILITY_SHED_SKIN 61 +#define ABILITY_GUTS 62 +#define ABILITY_MARVEL_SCALE 63 +#define ABILITY_LIQUID_OOZE 64 +#define ABILITY_OVERGROW 65 +#define ABILITY_BLAZE 66 +#define ABILITY_TORRENT 67 +#define ABILITY_SWARM 68 +#define ABILITY_ROCK_HEAD 69 +#define ABILITY_DROUGHT 70 +#define ABILITY_ARENA_TRAP 71 +#define ABILITY_VITAL_SPIRIT 72 +#define ABILITY_WHITE_SMOKE 73 +#define ABILITY_PURE_POWER 74 +#define ABILITY_SHELL_ARMOR 75 +#define ABILITY_AIR_LOCK 76 +#define ABILITY_TANGLED_FEET 77 +#define ABILITY_MOTOR_DRIVE 78 +#define ABILITY_RIVALRY 79 +#define ABILITY_STEADFAST 80 +#define ABILITY_SNOW_CLOAK 81 +#define ABILITY_GLUTTONY 82 +#define ABILITY_ANGER_POINT 83 +#define ABILITY_UNBURDEN 84 +#define ABILITY_HEATPROOF 85 +#define ABILITY_SIMPLE 86 +#define ABILITY_DRY_SKIN 87 +#define ABILITY_DOWNLOAD 88 +#define ABILITY_IRON_FIST 89 +#define ABILITY_POISON_HEAL 90 +#define ABILITY_ADAPTABILITY 91 +#define ABILITY_SKILL_LINK 92 +#define ABILITY_HYDRATION 93 +#define ABILITY_SOLAR_POWER 94 +#define ABILITY_QUICK_FEET 95 +#define ABILITY_NORMALIZE 96 +#define ABILITY_SNIPER 97 +#define ABILITY_MAGIC_GUARD 98 +#define ABILITY_NO_GUARD 99 +#define ABILITY_STALL 100 +#define ABILITY_TECHNICIAN 101 +#define ABILITY_LEAF_GUARD 102 +#define ABILITY_KLUTZ 103 +#define ABILITY_MOLD_BREAKER 104 +#define ABILITY_SUPER_LUCK 105 +#define ABILITY_AFTERMATH 106 +#define ABILITY_ANTICIPATION 107 +#define ABILITY_FOREWARN 108 +#define ABILITY_UNAWARE 109 +#define ABILITY_TINTED_LENS 110 +#define ABILITY_FILTER 111 +#define ABILITY_SLOW_START 112 +#define ABILITY_SCRAPPY 113 +#define ABILITY_STORM_DRAIN 114 +#define ABILITY_ICE_BODY 115 +#define ABILITY_SOLID_ROCK 116 +#define ABILITY_SNOW_WARNING 117 +#define ABILITY_HONEY_GATHER 118 +#define ABILITY_FRISK 119 +#define ABILITY_RECKLESS 120 +#define ABILITY_MULTITYPE 121 +#define ABILITY_FLOWER_GIFT 122 +#define ABILITY_BAD_DREAMS 123 + +#endif //POKEDIAMOND_CONSTANTS_ABILITIES_H diff --git a/include/constants/global.h b/include/constants/global.h new file mode 100644 index 00000000..28d4b206 --- /dev/null +++ b/include/constants/global.h @@ -0,0 +1,7 @@ +#ifndef POKEDIAMOND_CONSTANTS_GLOBAL_H +#define POKEDIAMOND_CONSTANTS_GLOBAL_H + +#define POKEMON_NAME_LENGTH 10 +#define OT_NAME_LENGTH 7 + +#endif //POKEDIAMOND_CONSTANTS_GLOBAL_H diff --git a/include/constants/items.h b/include/constants/items.h new file mode 100644 index 00000000..98c3dd97 --- /dev/null +++ b/include/constants/items.h @@ -0,0 +1,448 @@ +#ifndef POKEDIAMOND_CONSTANTS_ITEMS_H +#define POKEDIAMOND_CONSTANTS_ITEMS_H + +#define ITEM_NONE 0 +#define ITEM_MASTER_BALL 1 +#define ITEM_ULTRA_BALL 2 +#define ITEM_GREAT_BALL 3 +#define ITEM_POKE_BALL 4 +#define ITEM_SAFARI_BALL 5 +#define ITEM_NET_BALL 6 +#define ITEM_DIVE_BALL 7 +#define ITEM_NEST_BALL 8 +#define ITEM_REPEAT_BALL 9 +#define ITEM_TIMER_BALL 10 +#define ITEM_LUXURY_BALL 11 +#define ITEM_PREMIER_BALL 12 +#define ITEM_DUSK_BALL 13 +#define ITEM_HEAL_BALL 14 +#define ITEM_QUICK_BALL 15 +#define ITEM_CHERISH_BALL 16 +#define ITEM_POTION 17 +#define ITEM_ANTIDOTE 18 +#define ITEM_BURN_HEAL 19 +#define ITEM_ICE_HEAL 20 +#define ITEM_AWAKENING 21 +#define ITEM_PARLYZ_HEAL 22 +#define ITEM_FULL_RESTORE 23 +#define ITEM_MAX_POTION 24 +#define ITEM_HYPER_POTION 25 +#define ITEM_SUPER_POTION 26 +#define ITEM_FULL_HEAL 27 +#define ITEM_REVIVE 28 +#define ITEM_MAX_REVIVE 29 +#define ITEM_FRESH_WATER 30 +#define ITEM_SODA_POP 31 +#define ITEM_LEMONADE 32 +#define ITEM_MOOMOO_MILK 33 +#define ITEM_ENERGYPOWDER 34 +#define ITEM_ENERGY_ROOT 35 +#define ITEM_HEAL_POWDER 36 +#define ITEM_REVIVAL_HERB 37 +#define ITEM_ETHER 38 +#define ITEM_MAX_ETHER 39 +#define ITEM_ELIXIR 40 +#define ITEM_MAX_ELIXIR 41 +#define ITEM_LAVA_COOKIE 42 +#define ITEM_BERRY_JUICE 43 +#define ITEM_SACRED_ASH 44 +#define ITEM_HP_UP 45 +#define ITEM_PROTEIN 46 +#define ITEM_IRON 47 +#define ITEM_CARBOS 48 +#define ITEM_CALCIUM 49 +#define ITEM_RARE_CANDY 50 +#define ITEM_PP_UP 51 +#define ITEM_ZINC 52 +#define ITEM_PP_MAX 53 +#define ITEM_OLD_GATEAU 54 +#define ITEM_GUARD_SPEC_ 55 +#define ITEM_DIRE_HIT 56 +#define ITEM_X_ATTACK 57 +#define ITEM_X_DEFENSE 58 +#define ITEM_X_SPEED 59 +#define ITEM_X_ACCURACY 60 +#define ITEM_X_SPECIAL 61 +#define ITEM_X_SP__DEF 62 +#define ITEM_POKE_DOLL 63 +#define ITEM_FLUFFY_TAIL 64 +#define ITEM_BLUE_FLUTE 65 +#define ITEM_YELLOW_FLUTE 66 +#define ITEM_RED_FLUTE 67 +#define ITEM_BLACK_FLUTE 68 +#define ITEM_WHITE_FLUTE 69 +#define ITEM_SHOAL_SALT 70 +#define ITEM_SHOAL_SHELL 71 +#define ITEM_RED_SHARD 72 +#define ITEM_BLUE_SHARD 73 +#define ITEM_YELLOW_SHARD 74 +#define ITEM_GREEN_SHARD 75 +#define ITEM_SUPER_REPEL 76 +#define ITEM_MAX_REPEL 77 +#define ITEM_ESCAPE_ROPE 78 +#define ITEM_REPEL 79 +#define ITEM_SUN_STONE 80 +#define ITEM_MOON_STONE 81 +#define ITEM_FIRE_STONE 82 +#define ITEM_THUNDERSTONE 83 +#define ITEM_WATER_STONE 84 +#define ITEM_LEAF_STONE 85 +#define ITEM_TINYMUSHROOM 86 +#define ITEM_BIG_MUSHROOM 87 +#define ITEM_PEARL 88 +#define ITEM_BIG_PEARL 89 +#define ITEM_STARDUST 90 +#define ITEM_STAR_PIECE 91 +#define ITEM_NUGGET 92 +#define ITEM_HEART_SCALE 93 +#define ITEM_HONEY 94 +#define ITEM_GROWTH_MULCH 95 +#define ITEM_DAMP_MULCH 96 +#define ITEM_STABLE_MULCH 97 +#define ITEM_GOOEY_MULCH 98 +#define ITEM_ROOT_FOSSIL 99 +#define ITEM_CLAW_FOSSIL 100 +#define ITEM_HELIX_FOSSIL 101 +#define ITEM_DOME_FOSSIL 102 +#define ITEM_OLD_AMBER 103 +#define ITEM_ARMOR_FOSSIL 104 +#define ITEM_SKULL_FOSSIL 105 +#define ITEM_RARE_BONE 106 +#define ITEM_SHINY_STONE 107 +#define ITEM_DUSK_STONE 108 +#define ITEM_DAWN_STONE 109 +#define ITEM_OVAL_STONE 110 +#define ITEM_ODD_KEYSTONE 111 + +#define ITEM_ADAMANT_ORB 135 +#define ITEM_LUSTROUS_ORB 136 +#define ITEM_GRASS_MAIL 137 +#define ITEM_FLAME_MAIL 138 +#define ITEM_BUBBLE_MAIL 139 +#define ITEM_BLOOM_MAIL 140 +#define ITEM_TUNNEL_MAIL 141 +#define ITEM_STEEL_MAIL 142 +#define ITEM_HEART_MAIL 143 +#define ITEM_SNOW_MAIL 144 +#define ITEM_SPACE_MAIL 145 +#define ITEM_AIR_MAIL 146 +#define ITEM_MOSAIC_MAIL 147 +#define ITEM_BRICK_MAIL 148 +#define ITEM_CHERI_BERRY 149 +#define ITEM_CHESTO_BERRY 150 +#define ITEM_PECHA_BERRY 151 +#define ITEM_RAWST_BERRY 152 +#define ITEM_ASPEAR_BERRY 153 +#define ITEM_LEPPA_BERRY 154 +#define ITEM_ORAN_BERRY 155 +#define ITEM_PERSIM_BERRY 156 +#define ITEM_LUM_BERRY 157 +#define ITEM_SITRUS_BERRY 158 +#define ITEM_FIGY_BERRY 159 +#define ITEM_WIKI_BERRY 160 +#define ITEM_MAGO_BERRY 161 +#define ITEM_AGUAV_BERRY 162 +#define ITEM_IAPAPA_BERRY 163 +#define ITEM_RAZZ_BERRY 164 +#define ITEM_BLUK_BERRY 165 +#define ITEM_NANAB_BERRY 166 +#define ITEM_WEPEAR_BERRY 167 +#define ITEM_PINAP_BERRY 168 +#define ITEM_POMEG_BERRY 169 +#define ITEM_KELPSY_BERRY 170 +#define ITEM_QUALOT_BERRY 171 +#define ITEM_HONDEW_BERRY 172 +#define ITEM_GREPA_BERRY 173 +#define ITEM_TAMATO_BERRY 174 +#define ITEM_CORNN_BERRY 175 +#define ITEM_MAGOST_BERRY 176 +#define ITEM_RABUTA_BERRY 177 +#define ITEM_NOMEL_BERRY 178 +#define ITEM_SPELON_BERRY 179 +#define ITEM_PAMTRE_BERRY 180 +#define ITEM_WATMEL_BERRY 181 +#define ITEM_DURIN_BERRY 182 +#define ITEM_BELUE_BERRY 183 +#define ITEM_OCCA_BERRY 184 +#define ITEM_PASSHO_BERRY 185 +#define ITEM_WACAN_BERRY 186 +#define ITEM_RINDO_BERRY 187 +#define ITEM_YACHE_BERRY 188 +#define ITEM_CHOPLE_BERRY 189 +#define ITEM_KEBIA_BERRY 190 +#define ITEM_SHUCA_BERRY 191 +#define ITEM_COBA_BERRY 192 +#define ITEM_PAYAPA_BERRY 193 +#define ITEM_TANGA_BERRY 194 +#define ITEM_CHARTI_BERRY 195 +#define ITEM_KASIB_BERRY 196 +#define ITEM_HABAN_BERRY 197 +#define ITEM_COLBUR_BERRY 198 +#define ITEM_BABIRI_BERRY 199 +#define ITEM_CHILAN_BERRY 200 +#define ITEM_LIECHI_BERRY 201 +#define ITEM_GANLON_BERRY 202 +#define ITEM_SALAC_BERRY 203 +#define ITEM_PETAYA_BERRY 204 +#define ITEM_APICOT_BERRY 205 +#define ITEM_LANSAT_BERRY 206 +#define ITEM_STARF_BERRY 207 +#define ITEM_ENIGMA_BERRY 208 +#define ITEM_MICLE_BERRY 209 +#define ITEM_CUSTAP_BERRY 210 +#define ITEM_JABOCA_BERRY 211 +#define ITEM_ROWAP_BERRY 212 +#define ITEM_BRIGHTPOWDER 213 +#define ITEM_WHITE_HERB 214 +#define ITEM_MACHO_BRACE 215 +#define ITEM_EXP__SHARE 216 +#define ITEM_QUICK_CLAW 217 +#define ITEM_SOOTHE_BELL 218 +#define ITEM_MENTAL_HERB 219 +#define ITEM_CHOICE_BAND 220 +#define ITEM_KINGS_ROCK 221 +#define ITEM_SILVERPOWDER 222 +#define ITEM_AMULET_COIN 223 +#define ITEM_CLEANSE_TAG 224 +#define ITEM_SOUL_DEW 225 +#define ITEM_DEEPSEATOOTH 226 +#define ITEM_DEEPSEASCALE 227 +#define ITEM_SMOKE_BALL 228 +#define ITEM_EVERSTONE 229 +#define ITEM_FOCUS_BAND 230 +#define ITEM_LUCKY_EGG 231 +#define ITEM_SCOPE_LENS 232 +#define ITEM_METAL_COAT 233 +#define ITEM_LEFTOVERS 234 +#define ITEM_DRAGON_SCALE 235 +#define ITEM_LIGHT_BALL 236 +#define ITEM_SOFT_SAND 237 +#define ITEM_HARD_STONE 238 +#define ITEM_MIRACLE_SEED 239 +#define ITEM_BLACKGLASSES 240 +#define ITEM_BLACK_BELT 241 +#define ITEM_MAGNET 242 +#define ITEM_MYSTIC_WATER 243 +#define ITEM_SHARP_BEAK 244 +#define ITEM_POISON_BARB 245 +#define ITEM_NEVERMELTICE 246 +#define ITEM_SPELL_TAG 247 +#define ITEM_TWISTEDSPOON 248 +#define ITEM_CHARCOAL 249 +#define ITEM_DRAGON_FANG 250 +#define ITEM_SILK_SCARF 251 +#define ITEM_UPGRADE 252 +#define ITEM_SHELL_BELL 253 +#define ITEM_SEA_INCENSE 254 +#define ITEM_LAX_INCENSE 255 +#define ITEM_LUCKY_PUNCH 256 +#define ITEM_METAL_POWDER 257 +#define ITEM_THICK_CLUB 258 +#define ITEM_STICK 259 +#define ITEM_RED_SCARF 260 +#define ITEM_BLUE_SCARF 261 +#define ITEM_PINK_SCARF 262 +#define ITEM_GREEN_SCARF 263 +#define ITEM_YELLOW_SCARF 264 +#define ITEM_WIDE_LENS 265 +#define ITEM_MUSCLE_BAND 266 +#define ITEM_WISE_GLASSES 267 +#define ITEM_EXPERT_BELT 268 +#define ITEM_LIGHT_CLAY 269 +#define ITEM_LIFE_ORB 270 +#define ITEM_POWER_HERB 271 +#define ITEM_TOXIC_ORB 272 +#define ITEM_FLAME_ORB 273 +#define ITEM_QUICK_POWDER 274 +#define ITEM_FOCUS_SASH 275 +#define ITEM_ZOOM_LENS 276 +#define ITEM_METRONOME 277 +#define ITEM_IRON_BALL 278 +#define ITEM_LAGGING_TAIL 279 +#define ITEM_DESTINY_KNOT 280 +#define ITEM_BLACK_SLUDGE 281 +#define ITEM_ICY_ROCK 282 +#define ITEM_SMOOTH_ROCK 283 +#define ITEM_HEAT_ROCK 284 +#define ITEM_DAMP_ROCK 285 +#define ITEM_GRIP_CLAW 286 +#define ITEM_CHOICE_SCARF 287 +#define ITEM_STICKY_BARB 288 +#define ITEM_POWER_BRACER 289 +#define ITEM_POWER_BELT 290 +#define ITEM_POWER_LENS 291 +#define ITEM_POWER_BAND 292 +#define ITEM_POWER_ANKLET 293 +#define ITEM_POWER_WEIGHT 294 +#define ITEM_SHED_SHELL 295 +#define ITEM_BIG_ROOT 296 +#define ITEM_CHOICE_SPECS 297 +#define ITEM_FLAME_PLATE 298 +#define ITEM_SPLASH_PLATE 299 +#define ITEM_ZAP_PLATE 300 +#define ITEM_MEADOW_PLATE 301 +#define ITEM_ICICLE_PLATE 302 +#define ITEM_FIST_PLATE 303 +#define ITEM_TOXIC_PLATE 304 +#define ITEM_EARTH_PLATE 305 +#define ITEM_SKY_PLATE 306 +#define ITEM_MIND_PLATE 307 +#define ITEM_INSECT_PLATE 308 +#define ITEM_STONE_PLATE 309 +#define ITEM_SPOOKY_PLATE 310 +#define ITEM_DRACO_PLATE 311 +#define ITEM_DREAD_PLATE 312 +#define ITEM_IRON_PLATE 313 +#define ITEM_ODD_INCENSE 314 +#define ITEM_ROCK_INCENSE 315 +#define ITEM_FULL_INCENSE 316 +#define ITEM_WAVE_INCENSE 317 +#define ITEM_ROSE_INCENSE 318 +#define ITEM_LUCK_INCENSE 319 +#define ITEM_PURE_INCENSE 320 +#define ITEM_PROTECTOR 321 +#define ITEM_ELECTIRIZER 322 +#define ITEM_MAGMARIZER 323 +#define ITEM_DUBIOUS_DISC 324 +#define ITEM_REAPER_CLOTH 325 +#define ITEM_RAZOR_CLAW 326 +#define ITEM_RAZOR_FANG 327 +#define ITEM_TM01 328 +#define ITEM_TM02 329 +#define ITEM_TM03 330 +#define ITEM_TM04 331 +#define ITEM_TM05 332 +#define ITEM_TM06 333 +#define ITEM_TM07 334 +#define ITEM_TM08 335 +#define ITEM_TM09 336 +#define ITEM_TM10 337 +#define ITEM_TM11 338 +#define ITEM_TM12 339 +#define ITEM_TM13 340 +#define ITEM_TM14 341 +#define ITEM_TM15 342 +#define ITEM_TM16 343 +#define ITEM_TM17 344 +#define ITEM_TM18 345 +#define ITEM_TM19 346 +#define ITEM_TM20 347 +#define ITEM_TM21 348 +#define ITEM_TM22 349 +#define ITEM_TM23 350 +#define ITEM_TM24 351 +#define ITEM_TM25 352 +#define ITEM_TM26 353 +#define ITEM_TM27 354 +#define ITEM_TM28 355 +#define ITEM_TM29 356 +#define ITEM_TM30 357 +#define ITEM_TM31 358 +#define ITEM_TM32 359 +#define ITEM_TM33 360 +#define ITEM_TM34 361 +#define ITEM_TM35 362 +#define ITEM_TM36 363 +#define ITEM_TM37 364 +#define ITEM_TM38 365 +#define ITEM_TM39 366 +#define ITEM_TM40 367 +#define ITEM_TM41 368 +#define ITEM_TM42 369 +#define ITEM_TM43 370 +#define ITEM_TM44 371 +#define ITEM_TM45 372 +#define ITEM_TM46 373 +#define ITEM_TM47 374 +#define ITEM_TM48 375 +#define ITEM_TM49 376 +#define ITEM_TM50 377 +#define ITEM_TM51 378 +#define ITEM_TM52 379 +#define ITEM_TM53 380 +#define ITEM_TM54 381 +#define ITEM_TM55 382 +#define ITEM_TM56 383 +#define ITEM_TM57 384 +#define ITEM_TM58 385 +#define ITEM_TM59 386 +#define ITEM_TM60 387 +#define ITEM_TM61 388 +#define ITEM_TM62 389 +#define ITEM_TM63 390 +#define ITEM_TM64 391 +#define ITEM_TM65 392 +#define ITEM_TM66 393 +#define ITEM_TM67 394 +#define ITEM_TM68 395 +#define ITEM_TM69 396 +#define ITEM_TM70 397 +#define ITEM_TM71 398 +#define ITEM_TM72 399 +#define ITEM_TM73 400 +#define ITEM_TM74 401 +#define ITEM_TM75 402 +#define ITEM_TM76 403 +#define ITEM_TM77 404 +#define ITEM_TM78 405 +#define ITEM_TM79 406 +#define ITEM_TM80 407 +#define ITEM_TM81 408 +#define ITEM_TM82 409 +#define ITEM_TM83 410 +#define ITEM_TM84 411 +#define ITEM_TM85 412 +#define ITEM_TM86 413 +#define ITEM_TM87 414 +#define ITEM_TM88 415 +#define ITEM_TM89 416 +#define ITEM_TM90 417 +#define ITEM_TM91 418 +#define ITEM_TM92 419 +#define ITEM_HM01 420 +#define ITEM_HM02 421 +#define ITEM_HM03 422 +#define ITEM_HM04 423 +#define ITEM_HM05 424 +#define ITEM_HM06 425 +#define ITEM_HM07 426 +#define ITEM_HM08 427 +#define ITEM_EXPLORER_KIT 428 +#define ITEM_LOOT_SACK 429 +#define ITEM_RULE_BOOK 430 +#define ITEM_POKE_RADAR 431 +#define ITEM_POINT_CARD 432 +#define ITEM_JOURNAL 433 +#define ITEM_SEAL_CASE 434 +#define ITEM_FASHION_CASE 435 +#define ITEM_SEAL_BAG 436 +#define ITEM_PAL_PAD 437 +#define ITEM_WORKS_KEY 438 +#define ITEM_OLD_CHARM 439 +#define ITEM_GALACTIC_KEY 440 +#define ITEM_RED_CHAIN 441 +#define ITEM_TOWN_MAP 442 +#define ITEM_VS__SEEKER 443 +#define ITEM_COIN_CASE 444 +#define ITEM_OLD_ROD 445 +#define ITEM_GOOD_ROD 446 +#define ITEM_SUPER_ROD 447 +#define ITEM_SPRAYDUCK 448 +#define ITEM_POFFIN_CASE 449 +#define ITEM_BICYCLE 450 +#define ITEM_SUITE_KEY 451 +#define ITEM_OAKS_LETTER 452 +#define ITEM_LUNAR_WING 453 +#define ITEM_MEMBER_CARD 454 +#define ITEM_AZURE_FLUTE 455 +#define ITEM_S_S__TICKET 456 +#define ITEM_CONTEST_PASS 457 +#define ITEM_MAGMA_STONE 458 +#define ITEM_PARCEL 459 +#define ITEM_COUPON_1 460 +#define ITEM_COUPON_2 461 +#define ITEM_COUPON_3 462 +#define ITEM_STORAGE_KEY 463 +#define ITEM_SECRETPOTION 464 + +#endif //POKEDIAMOND_CONSTANTS_ITEMS_H diff --git a/include/constants/moves.h b/include/constants/moves.h new file mode 100644 index 00000000..e25c16c9 --- /dev/null +++ b/include/constants/moves.h @@ -0,0 +1,473 @@ +#ifndef POKEDIAMOND_CONSTANTS_MOVES_H +#define POKEDIAMOND_CONSTANTS_MOVES_H + +#define MOVE_NONE 0 +#define MOVE_POUND 1 +#define MOVE_KARATE_CHOP 2 +#define MOVE_DOUBLE_SLAP 3 +#define MOVE_COMET_PUNCH 4 +#define MOVE_MEGA_PUNCH 5 +#define MOVE_PAY_DAY 6 +#define MOVE_FIRE_PUNCH 7 +#define MOVE_ICE_PUNCH 8 +#define MOVE_THUNDER_PUNCH 9 +#define MOVE_SCRATCH 10 +#define MOVE_VISE_GRIP 11 +#define MOVE_GUILLOTINE 12 +#define MOVE_RAZOR_WIND 13 +#define MOVE_SWORDS_DANCE 14 +#define MOVE_CUT 15 +#define MOVE_GUST 16 +#define MOVE_WING_ATTACK 17 +#define MOVE_WHIRLWIND 18 +#define MOVE_FLY 19 +#define MOVE_BIND 20 +#define MOVE_SLAM 21 +#define MOVE_VINE_WHIP 22 +#define MOVE_STOMP 23 +#define MOVE_DOUBLE_KICK 24 +#define MOVE_MEGA_KICK 25 +#define MOVE_JUMP_KICK 26 +#define MOVE_ROLLING_KICK 27 +#define MOVE_SAND_ATTACK 28 +#define MOVE_HEADBUTT 29 +#define MOVE_HORN_ATTACK 30 +#define MOVE_FURY_ATTACK 31 +#define MOVE_HORN_DRILL 32 +#define MOVE_TACKLE 33 +#define MOVE_BODY_SLAM 34 +#define MOVE_WRAP 35 +#define MOVE_TAKE_DOWN 36 +#define MOVE_THRASH 37 +#define MOVE_DOUBLE_EDGE 38 +#define MOVE_TAIL_WHIP 39 +#define MOVE_POISON_STING 40 +#define MOVE_TWINEEDLE 41 +#define MOVE_PIN_MISSILE 42 +#define MOVE_LEER 43 +#define MOVE_BITE 44 +#define MOVE_GROWL 45 +#define MOVE_ROAR 46 +#define MOVE_SING 47 +#define MOVE_SUPERSONIC 48 +#define MOVE_SONIC_BOOM 49 +#define MOVE_DISABLE 50 +#define MOVE_ACID 51 +#define MOVE_EMBER 52 +#define MOVE_FLAMETHROWER 53 +#define MOVE_MIST 54 +#define MOVE_WATER_GUN 55 +#define MOVE_HYDRO_PUMP 56 +#define MOVE_SURF 57 +#define MOVE_ICE_BEAM 58 +#define MOVE_BLIZZARD 59 +#define MOVE_PSYBEAM 60 +#define MOVE_BUBBLE_BEAM 61 +#define MOVE_AURORA_BEAM 62 +#define MOVE_HYPER_BEAM 63 +#define MOVE_PECK 64 +#define MOVE_DRILL_PECK 65 +#define MOVE_SUBMISSION 66 +#define MOVE_LOW_KICK 67 +#define MOVE_COUNTER 68 +#define MOVE_SEISMIC_TOSS 69 +#define MOVE_STRENGTH 70 +#define MOVE_ABSORB 71 +#define MOVE_MEGA_DRAIN 72 +#define MOVE_LEECH_SEED 73 +#define MOVE_GROWTH 74 +#define MOVE_RAZOR_LEAF 75 +#define MOVE_SOLAR_BEAM 76 +#define MOVE_POISON_POWDER 77 +#define MOVE_STUN_SPORE 78 +#define MOVE_SLEEP_POWDER 79 +#define MOVE_PETAL_DANCE 80 +#define MOVE_STRING_SHOT 81 +#define MOVE_DRAGON_RAGE 82 +#define MOVE_FIRE_SPIN 83 +#define MOVE_THUNDER_SHOCK 84 +#define MOVE_THUNDERBOLT 85 +#define MOVE_THUNDER_WAVE 86 +#define MOVE_THUNDER 87 +#define MOVE_ROCK_THROW 88 +#define MOVE_EARTHQUAKE 89 +#define MOVE_FISSURE 90 +#define MOVE_DIG 91 +#define MOVE_TOXIC 92 +#define MOVE_CONFUSION 93 +#define MOVE_PSYCHIC 94 +#define MOVE_HYPNOSIS 95 +#define MOVE_MEDITATE 96 +#define MOVE_AGILITY 97 +#define MOVE_QUICK_ATTACK 98 +#define MOVE_RAGE 99 +#define MOVE_TELEPORT 100 +#define MOVE_NIGHT_SHADE 101 +#define MOVE_MIMIC 102 +#define MOVE_SCREECH 103 +#define MOVE_DOUBLE_TEAM 104 +#define MOVE_RECOVER 105 +#define MOVE_HARDEN 106 +#define MOVE_MINIMIZE 107 +#define MOVE_SMOKESCREEN 108 +#define MOVE_CONFUSE_RAY 109 +#define MOVE_WITHDRAW 110 +#define MOVE_DEFENSE_CURL 111 +#define MOVE_BARRIER 112 +#define MOVE_LIGHT_SCREEN 113 +#define MOVE_HAZE 114 +#define MOVE_REFLECT 115 +#define MOVE_FOCUS_ENERGY 116 +#define MOVE_BIDE 117 +#define MOVE_METRONOME 118 +#define MOVE_MIRROR_MOVE 119 +#define MOVE_SELF_DESTRUCT 120 +#define MOVE_EGG_BOMB 121 +#define MOVE_LICK 122 +#define MOVE_SMOG 123 +#define MOVE_SLUDGE 124 +#define MOVE_BONE_CLUB 125 +#define MOVE_FIRE_BLAST 126 +#define MOVE_WATERFALL 127 +#define MOVE_CLAMP 128 +#define MOVE_SWIFT 129 +#define MOVE_SKULL_BASH 130 +#define MOVE_SPIKE_CANNON 131 +#define MOVE_CONSTRICT 132 +#define MOVE_AMNESIA 133 +#define MOVE_KINESIS 134 +#define MOVE_SOFT_BOILED 135 +#define MOVE_HIGH_JUMP_KICK 136 +#define MOVE_GLARE 137 +#define MOVE_DREAM_EATER 138 +#define MOVE_POISON_GAS 139 +#define MOVE_BARRAGE 140 +#define MOVE_LEECH_LIFE 141 +#define MOVE_LOVELY_KISS 142 +#define MOVE_SKY_ATTACK 143 +#define MOVE_TRANSFORM 144 +#define MOVE_BUBBLE 145 +#define MOVE_DIZZY_PUNCH 146 +#define MOVE_SPORE 147 +#define MOVE_FLASH 148 +#define MOVE_PSYWAVE 149 +#define MOVE_SPLASH 150 +#define MOVE_ACID_ARMOR 151 +#define MOVE_CRABHAMMER 152 +#define MOVE_EXPLOSION 153 +#define MOVE_FURY_SWIPES 154 +#define MOVE_BONEMERANG 155 +#define MOVE_REST 156 +#define MOVE_ROCK_SLIDE 157 +#define MOVE_HYPER_FANG 158 +#define MOVE_SHARPEN 159 +#define MOVE_CONVERSION 160 +#define MOVE_TRI_ATTACK 161 +#define MOVE_SUPER_FANG 162 +#define MOVE_SLASH 163 +#define MOVE_SUBSTITUTE 164 +#define MOVE_STRUGGLE 165 +#define MOVE_SKETCH 166 +#define MOVE_TRIPLE_KICK 167 +#define MOVE_THIEF 168 +#define MOVE_SPIDER_WEB 169 +#define MOVE_MIND_READER 170 +#define MOVE_NIGHTMARE 171 +#define MOVE_FLAME_WHEEL 172 +#define MOVE_SNORE 173 +#define MOVE_CURSE 174 +#define MOVE_FLAIL 175 +#define MOVE_CONVERSION_2 176 +#define MOVE_AEROBLAST 177 +#define MOVE_COTTON_SPORE 178 +#define MOVE_REVERSAL 179 +#define MOVE_SPITE 180 +#define MOVE_POWDER_SNOW 181 +#define MOVE_PROTECT 182 +#define MOVE_MACH_PUNCH 183 +#define MOVE_SCARY_FACE 184 +#define MOVE_FEINT_ATTACK 185 +#define MOVE_SWEET_KISS 186 +#define MOVE_BELLY_DRUM 187 +#define MOVE_SLUDGE_BOMB 188 +#define MOVE_MUD_SLAP 189 +#define MOVE_OCTAZOOKA 190 +#define MOVE_SPIKES 191 +#define MOVE_ZAP_CANNON 192 +#define MOVE_FORESIGHT 193 +#define MOVE_DESTINY_BOND 194 +#define MOVE_PERISH_SONG 195 +#define MOVE_ICY_WIND 196 +#define MOVE_DETECT 197 +#define MOVE_BONE_RUSH 198 +#define MOVE_LOCK_ON 199 +#define MOVE_OUTRAGE 200 +#define MOVE_SANDSTORM 201 +#define MOVE_GIGA_DRAIN 202 +#define MOVE_ENDURE 203 +#define MOVE_CHARM 204 +#define MOVE_ROLLOUT 205 +#define MOVE_FALSE_SWIPE 206 +#define MOVE_SWAGGER 207 +#define MOVE_MILK_DRINK 208 +#define MOVE_SPARK 209 +#define MOVE_FURY_CUTTER 210 +#define MOVE_STEEL_WING 211 +#define MOVE_MEAN_LOOK 212 +#define MOVE_ATTRACT 213 +#define MOVE_SLEEP_TALK 214 +#define MOVE_HEAL_BELL 215 +#define MOVE_RETURN 216 +#define MOVE_PRESENT 217 +#define MOVE_FRUSTRATION 218 +#define MOVE_SAFEGUARD 219 +#define MOVE_PAIN_SPLIT 220 +#define MOVE_SACRED_FIRE 221 +#define MOVE_MAGNITUDE 222 +#define MOVE_DYNAMIC_PUNCH 223 +#define MOVE_MEGAHORN 224 +#define MOVE_DRAGON_BREATH 225 +#define MOVE_BATON_PASS 226 +#define MOVE_ENCORE 227 +#define MOVE_PURSUIT 228 +#define MOVE_RAPID_SPIN 229 +#define MOVE_SWEET_SCENT 230 +#define MOVE_IRON_TAIL 231 +#define MOVE_METAL_CLAW 232 +#define MOVE_VITAL_THROW 233 +#define MOVE_MORNING_SUN 234 +#define MOVE_SYNTHESIS 235 +#define MOVE_MOONLIGHT 236 +#define MOVE_HIDDEN_POWER 237 +#define MOVE_CROSS_CHOP 238 +#define MOVE_TWISTER 239 +#define MOVE_RAIN_DANCE 240 +#define MOVE_SUNNY_DAY 241 +#define MOVE_CRUNCH 242 +#define MOVE_MIRROR_COAT 243 +#define MOVE_PSYCH_UP 244 +#define MOVE_EXTREME_SPEED 245 +#define MOVE_ANCIENT_POWER 246 +#define MOVE_SHADOW_BALL 247 +#define MOVE_FUTURE_SIGHT 248 +#define MOVE_ROCK_SMASH 249 +#define MOVE_WHIRLPOOL 250 +#define MOVE_BEAT_UP 251 +#define MOVE_FAKE_OUT 252 +#define MOVE_UPROAR 253 +#define MOVE_STOCKPILE 254 +#define MOVE_SPIT_UP 255 +#define MOVE_SWALLOW 256 +#define MOVE_HEAT_WAVE 257 +#define MOVE_HAIL 258 +#define MOVE_TORMENT 259 +#define MOVE_FLATTER 260 +#define MOVE_WILL_O_WISP 261 +#define MOVE_MEMENTO 262 +#define MOVE_FACADE 263 +#define MOVE_FOCUS_PUNCH 264 +#define MOVE_SMELLING_SALTS 265 +#define MOVE_FOLLOW_ME 266 +#define MOVE_NATURE_POWER 267 +#define MOVE_CHARGE 268 +#define MOVE_TAUNT 269 +#define MOVE_HELPING_HAND 270 +#define MOVE_TRICK 271 +#define MOVE_ROLE_PLAY 272 +#define MOVE_WISH 273 +#define MOVE_ASSIST 274 +#define MOVE_INGRAIN 275 +#define MOVE_SUPERPOWER 276 +#define MOVE_MAGIC_COAT 277 +#define MOVE_RECYCLE 278 +#define MOVE_REVENGE 279 +#define MOVE_BRICK_BREAK 280 +#define MOVE_YAWN 281 +#define MOVE_KNOCK_OFF 282 +#define MOVE_ENDEAVOR 283 +#define MOVE_ERUPTION 284 +#define MOVE_SKILL_SWAP 285 +#define MOVE_IMPRISON 286 +#define MOVE_REFRESH 287 +#define MOVE_GRUDGE 288 +#define MOVE_SNATCH 289 +#define MOVE_SECRET_POWER 290 +#define MOVE_DIVE 291 +#define MOVE_ARM_THRUST 292 +#define MOVE_CAMOUFLAGE 293 +#define MOVE_TAIL_GLOW 294 +#define MOVE_LUSTER_PURGE 295 +#define MOVE_MIST_BALL 296 +#define MOVE_FEATHER_DANCE 297 +#define MOVE_TEETER_DANCE 298 +#define MOVE_BLAZE_KICK 299 +#define MOVE_MUD_SPORT 300 +#define MOVE_ICE_BALL 301 +#define MOVE_NEEDLE_ARM 302 +#define MOVE_SLACK_OFF 303 +#define MOVE_HYPER_VOICE 304 +#define MOVE_POISON_FANG 305 +#define MOVE_CRUSH_CLAW 306 +#define MOVE_BLAST_BURN 307 +#define MOVE_HYDRO_CANNON 308 +#define MOVE_METEOR_MASH 309 +#define MOVE_ASTONISH 310 +#define MOVE_WEATHER_BALL 311 +#define MOVE_AROMATHERAPY 312 +#define MOVE_FAKE_TEARS 313 +#define MOVE_AIR_CUTTER 314 +#define MOVE_OVERHEAT 315 +#define MOVE_ODOR_SLEUTH 316 +#define MOVE_ROCK_TOMB 317 +#define MOVE_SILVER_WIND 318 +#define MOVE_METAL_SOUND 319 +#define MOVE_GRASS_WHISTLE 320 +#define MOVE_TICKLE 321 +#define MOVE_COSMIC_POWER 322 +#define MOVE_WATER_SPOUT 323 +#define MOVE_SIGNAL_BEAM 324 +#define MOVE_SHADOW_PUNCH 325 +#define MOVE_EXTRASENSORY 326 +#define MOVE_SKY_UPPERCUT 327 +#define MOVE_SAND_TOMB 328 +#define MOVE_SHEER_COLD 329 +#define MOVE_MUDDY_WATER 330 +#define MOVE_BULLET_SEED 331 +#define MOVE_AERIAL_ACE 332 +#define MOVE_ICICLE_SPEAR 333 +#define MOVE_IRON_DEFENSE 334 +#define MOVE_BLOCK 335 +#define MOVE_HOWL 336 +#define MOVE_DRAGON_CLAW 337 +#define MOVE_FRENZY_PLANT 338 +#define MOVE_BULK_UP 339 +#define MOVE_BOUNCE 340 +#define MOVE_MUD_SHOT 341 +#define MOVE_POISON_TAIL 342 +#define MOVE_COVET 343 +#define MOVE_VOLT_TACKLE 344 +#define MOVE_MAGICAL_LEAF 345 +#define MOVE_WATER_SPORT 346 +#define MOVE_CALM_MIND 347 +#define MOVE_LEAF_BLADE 348 +#define MOVE_DRAGON_DANCE 349 +#define MOVE_ROCK_BLAST 350 +#define MOVE_SHOCK_WAVE 351 +#define MOVE_WATER_PULSE 352 +#define MOVE_DOOM_DESIRE 353 +#define MOVE_PSYCHO_BOOST 354 +#define MOVE_ROOST 355 +#define MOVE_GRAVITY 356 +#define MOVE_MIRACLE_EYE 357 +#define MOVE_WAKE_UP_SLAP 358 +#define MOVE_HAMMER_ARM 359 +#define MOVE_GYRO_BALL 360 +#define MOVE_HEALING_WISH 361 +#define MOVE_BRINE 362 +#define MOVE_NATURAL_GIFT 363 +#define MOVE_FEINT 364 +#define MOVE_PLUCK 365 +#define MOVE_TAILWIND 366 +#define MOVE_ACUPRESSURE 367 +#define MOVE_METAL_BURST 368 +#define MOVE_U_TURN 369 +#define MOVE_CLOSE_COMBAT 370 +#define MOVE_PAYBACK 371 +#define MOVE_ASSURANCE 372 +#define MOVE_EMBARGO 373 +#define MOVE_FLING 374 +#define MOVE_PSYCHO_SHIFT 375 +#define MOVE_TRUMP_CARD 376 +#define MOVE_HEAL_BLOCK 377 +#define MOVE_WRING_OUT 378 +#define MOVE_POWER_TRICK 379 +#define MOVE_GASTRO_ACID 380 +#define MOVE_LUCKY_CHANT 381 +#define MOVE_ME_FIRST 382 +#define MOVE_COPYCAT 383 +#define MOVE_POWER_SWAP 384 +#define MOVE_GUARD_SWAP 385 +#define MOVE_PUNISHMENT 386 +#define MOVE_LAST_RESORT 387 +#define MOVE_WORRY_SEED 388 +#define MOVE_SUCKER_PUNCH 389 +#define MOVE_TOXIC_SPIKES 390 +#define MOVE_HEART_SWAP 391 +#define MOVE_AQUA_RING 392 +#define MOVE_MAGNET_RISE 393 +#define MOVE_FLARE_BLITZ 394 +#define MOVE_FORCE_PALM 395 +#define MOVE_AURA_SPHERE 396 +#define MOVE_ROCK_POLISH 397 +#define MOVE_POISON_JAB 398 +#define MOVE_DARK_PULSE 399 +#define MOVE_NIGHT_SLASH 400 +#define MOVE_AQUA_TAIL 401 +#define MOVE_SEED_BOMB 402 +#define MOVE_AIR_SLASH 403 +#define MOVE_X_SCISSOR 404 +#define MOVE_BUG_BUZZ 405 +#define MOVE_DRAGON_PULSE 406 +#define MOVE_DRAGON_RUSH 407 +#define MOVE_POWER_GEM 408 +#define MOVE_DRAIN_PUNCH 409 +#define MOVE_VACUUM_WAVE 410 +#define MOVE_FOCUS_BLAST 411 +#define MOVE_ENERGY_BALL 412 +#define MOVE_BRAVE_BIRD 413 +#define MOVE_EARTH_POWER 414 +#define MOVE_SWITCHEROO 415 +#define MOVE_GIGA_IMPACT 416 +#define MOVE_NASTY_PLOT 417 +#define MOVE_BULLET_PUNCH 418 +#define MOVE_AVALANCHE 419 +#define MOVE_ICE_SHARD 420 +#define MOVE_SHADOW_CLAW 421 +#define MOVE_THUNDER_FANG 422 +#define MOVE_ICE_FANG 423 +#define MOVE_FIRE_FANG 424 +#define MOVE_SHADOW_SNEAK 425 +#define MOVE_MUD_BOMB 426 +#define MOVE_PSYCHO_CUT 427 +#define MOVE_ZEN_HEADBUTT 428 +#define MOVE_MIRROR_SHOT 429 +#define MOVE_FLASH_CANNON 430 +#define MOVE_ROCK_CLIMB 431 +#define MOVE_DEFOG 432 +#define MOVE_TRICK_ROOM 433 +#define MOVE_DRACO_METEOR 434 +#define MOVE_DISCHARGE 435 +#define MOVE_LAVA_PLUME 436 +#define MOVE_LEAF_STORM 437 +#define MOVE_POWER_WHIP 438 +#define MOVE_ROCK_WRECKER 439 +#define MOVE_CROSS_POISON 440 +#define MOVE_GUNK_SHOT 441 +#define MOVE_IRON_HEAD 442 +#define MOVE_MAGNET_BOMB 443 +#define MOVE_STONE_EDGE 444 +#define MOVE_CAPTIVATE 445 +#define MOVE_STEALTH_ROCK 446 +#define MOVE_GRASS_KNOT 447 +#define MOVE_CHATTER 448 +#define MOVE_JUDGMENT 449 +#define MOVE_BUG_BITE 450 +#define MOVE_CHARGE_BEAM 451 +#define MOVE_WOOD_HAMMER 452 +#define MOVE_AQUA_JET 453 +#define MOVE_ATTACK_ORDER 454 +#define MOVE_DEFEND_ORDER 455 +#define MOVE_HEAL_ORDER 456 +#define MOVE_HEAD_SMASH 457 +#define MOVE_DOUBLE_HIT 458 +#define MOVE_ROAR_OF_TIME 459 +#define MOVE_SPACIAL_REND 460 +#define MOVE_LUNAR_DANCE 461 +#define MOVE_CRUSH_GRIP 462 +#define MOVE_MAGMA_STORM 463 +#define MOVE_DARK_VOID 464 +#define MOVE_SEED_FLARE 465 +#define MOVE_OMINOUS_WIND 466 +#define MOVE_SHADOW_FORCE 467 + +#endif //POKEDIAMOND_CONSTANTS_MOVES_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 00000000..9accbad1 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,407 @@ +#ifndef POKEDIAMOND_CONSTANTS_POKEMON_H +#define POKEDIAMOND_CONSTANTS_POKEMON_H + + +// Pokemon types +#define TYPE_NONE 255 +#define TYPE_NORMAL 0 +#define TYPE_FIGHTING 1 +#define TYPE_FLYING 2 +#define TYPE_POISON 3 +#define TYPE_GROUND 4 +#define TYPE_ROCK 5 +#define TYPE_BUG 6 +#define TYPE_GHOST 7 +#define TYPE_STEEL 8 +#define TYPE_MYSTERY 9 +#define TYPE_FIRE 10 +#define TYPE_WATER 11 +#define TYPE_GRASS 12 +#define TYPE_ELECTRIC 13 +#define TYPE_PSYCHIC 14 +#define TYPE_ICE 15 +#define TYPE_DRAGON 16 +#define TYPE_DARK 17 +#define NUMBER_OF_MON_TYPES 18 + +// Pokemon egg groups +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_UNDISCOVERED 15 + +#define EGG_GROUPS_PER_MON 2 + +// Pokemon natures +#define NATURE_HARDY 0 +#define NATURE_LONELY 1 +#define NATURE_BRAVE 2 +#define NATURE_ADAMANT 3 +#define NATURE_NAUGHTY 4 +#define NATURE_BOLD 5 +#define NATURE_DOCILE 6 +#define NATURE_RELAXED 7 +#define NATURE_IMPISH 8 +#define NATURE_LAX 9 +#define NATURE_TIMID 10 +#define NATURE_HASTY 11 +#define NATURE_SERIOUS 12 +#define NATURE_JOLLY 13 +#define NATURE_NAIVE 14 +#define NATURE_MODEST 15 +#define NATURE_MILD 16 +#define NATURE_QUIET 17 +#define NATURE_BASHFUL 18 +#define NATURE_RASH 19 +#define NATURE_CALM 20 +#define NATURE_GENTLE 21 +#define NATURE_SASSY 22 +#define NATURE_CAREFUL 23 +#define NATURE_QUIRKY 24 + +// Pokemon Stats +#define STAT_HP 0 +#define STAT_ATK 1 +#define STAT_DEF 2 +#define STAT_SPEED 3 +#define STAT_SPATK 4 +#define STAT_SPDEF 5 +#define STAT_ACC 6 // Only in battles. +#define STAT_EVASION 7 // Only in battles. + +#define NUM_EV_STATS NUM_STATS - 1 // excludes HP +#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion + +// Shiny odds +#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 + + +#define MON_DATA_PERSONALITY 0 +#define MON_DATA_PARTY_LOCK 1 +#define MON_DATA_BOX_LOCK 2 +#define MON_DATA_CHECKSUM_FAILED 3 +#define MON_DATA_CHECKSUM 4 +#define MON_DATA_SPECIES 5 +#define MON_DATA_HELD_ITEM 6 +#define MON_DATA_OTID 7 +#define MON_DATA_EXPERIENCE 8 +#define MON_DATA_FRIENDSHIP 9 +#define MON_DATA_ABILITY 10 +#define MON_DATA_MARKINGS 11 +#define MON_DATA_GAME_LANGUAGE 12 +#define MON_DATA_HP_EV 13 +#define MON_DATA_ATK_EV 14 +#define MON_DATA_DEF_EV 15 +#define MON_DATA_SPEED_EV 16 +#define MON_DATA_SPATK_EV 17 +#define MON_DATA_SPDEF_EV 18 +#define MON_DATA_COOL 19 +#define MON_DATA_BEAUTY 20 +#define MON_DATA_CUTE 21 +#define MON_DATA_SMART 22 +#define MON_DATA_TOUGH 23 +#define MON_DATA_SHEEN 24 +#define MON_DATA_SINNOH_CHAMP_RIBBON 25 +#define MON_DATA_SINNOH_RIBBON_26 26 +#define MON_DATA_SINNOH_RIBBON_27 27 +#define MON_DATA_SINNOH_RIBBON_28 28 +#define MON_DATA_SINNOH_RIBBON_29 29 +#define MON_DATA_SINNOH_RIBBON_30 30 +#define MON_DATA_SINNOH_RIBBON_31 31 +#define MON_DATA_SINNOH_RIBBON_32 32 +#define MON_DATA_SINNOH_RIBBON_33 33 +#define MON_DATA_SINNOH_RIBBON_34 34 +#define MON_DATA_SINNOH_RIBBON_35 35 +#define MON_DATA_SINNOH_RIBBON_36 36 +#define MON_DATA_SINNOH_RIBBON_37 37 +#define MON_DATA_SINNOH_RIBBON_38 38 +#define MON_DATA_SINNOH_RIBBON_39 39 +#define MON_DATA_SINNOH_RIBBON_40 40 +#define MON_DATA_SINNOH_RIBBON_41 41 +#define MON_DATA_SINNOH_RIBBON_42 42 +#define MON_DATA_SINNOH_RIBBON_43 43 +#define MON_DATA_SINNOH_RIBBON_44 44 +#define MON_DATA_SINNOH_RIBBON_45 45 +#define MON_DATA_SINNOH_RIBBON_46 46 +#define MON_DATA_SINNOH_RIBBON_47 47 +#define MON_DATA_SINNOH_RIBBON_48 48 +#define MON_DATA_SINNOH_RIBBON_49 49 +#define MON_DATA_SINNOH_RIBBON_50 50 +#define MON_DATA_SINNOH_RIBBON_51 51 +#define MON_DATA_SINNOH_RIBBON_52 52 +#define MON_DATA_SINNOH_RIBBON_53 53 +#define MON_DATA_MOVE1 54 +#define MON_DATA_MOVE2 55 +#define MON_DATA_MOVE3 56 +#define MON_DATA_MOVE4 57 +#define MON_DATA_MOVE1PP 58 +#define MON_DATA_MOVE2PP 59 +#define MON_DATA_MOVE3PP 60 +#define MON_DATA_MOVE4PP 61 +#define MON_DATA_MOVE1PPUP 62 +#define MON_DATA_MOVE2PPUP 63 +#define MON_DATA_MOVE3PPUP 64 +#define MON_DATA_MOVE4PPUP 65 +#define MON_DATA_MOVE1MAXPP 66 +#define MON_DATA_MOVE2MAXPP 67 +#define MON_DATA_MOVE3MAXPP 68 +#define MON_DATA_MOVE4MAXPP 69 +#define MON_DATA_HP_IV 70 +#define MON_DATA_ATK_IV 71 +#define MON_DATA_DEF_IV 72 +#define MON_DATA_SPEED_IV 73 +#define MON_DATA_SPATK_IV 74 +#define MON_DATA_SPDEF_IV 75 +#define MON_DATA_IS_EGG 76 +#define MON_DATA_HAS_NICKNAME 77 +#define MON_DATA_COOL_RIBBON 78 +#define MON_DATA_HOENN_RIBBON_79 79 +#define MON_DATA_HOENN_RIBBON_80 80 +#define MON_DATA_HOENN_RIBBON_81 81 +#define MON_DATA_HOENN_RIBBON_82 82 +#define MON_DATA_HOENN_RIBBON_83 83 +#define MON_DATA_HOENN_RIBBON_84 84 +#define MON_DATA_HOENN_RIBBON_85 85 +#define MON_DATA_HOENN_RIBBON_86 86 +#define MON_DATA_HOENN_RIBBON_87 87 +#define MON_DATA_HOENN_RIBBON_88 88 +#define MON_DATA_HOENN_RIBBON_89 89 +#define MON_DATA_HOENN_RIBBON_90 90 +#define MON_DATA_HOENN_RIBBON_91 91 +#define MON_DATA_HOENN_RIBBON_92 92 +#define MON_DATA_HOENN_RIBBON_93 93 +#define MON_DATA_HOENN_RIBBON_94 94 +#define MON_DATA_HOENN_RIBBON_95 95 +#define MON_DATA_HOENN_RIBBON_96 96 +#define MON_DATA_HOENN_RIBBON_97 97 +#define MON_DATA_HOENN_RIBBON_98 98 +#define MON_DATA_HOENN_RIBBON_99 99 +#define MON_DATA_HOENN_RIBBON_100 100 +#define MON_DATA_HOENN_RIBBON_101 101 +#define MON_DATA_HOENN_RIBBON_102 102 +#define MON_DATA_HOENN_RIBBON_103 103 +#define MON_DATA_HOENN_RIBBON_104 104 +#define MON_DATA_HOENN_RIBBON_105 105 +#define MON_DATA_HOENN_RIBBON_106 106 +#define MON_DATA_HOENN_RIBBON_107 107 +#define MON_DATA_HOENN_RIBBON_108 108 +#define MON_DATA_HOENN_RIBBON_109 109 +#define MON_DATA_FATEFUL_ENCOUNTER 110 +#define MON_DATA_GENDER 111 +#define MON_DATA_FORME 112 +#define MON_DATA_RESERVED_113 113 // HGSS +#define MON_DATA_RESERVED_114 114 // Plat +#define MON_DATA_UNUSED_115 115 +#define MON_DATA_NICKNAME 116 +#define MON_DATA_NICKNAME_2 117 +#define MON_DATA_NICKNAME_3 118 // ??? +#define MON_DATA_NICKNAME_4 119 // ??? +#define MON_DATA_UNK_120 120 +#define MON_DATA_GAME_VERSION 121 +#define MON_DATA_SINNOH_RIBBON_122 122 +#define MON_DATA_SINNOH_RIBBON_123 123 +#define MON_DATA_SINNOH_RIBBON_124 124 +#define MON_DATA_SINNOH_RIBBON_125 125 +#define MON_DATA_SINNOH_RIBBON_126 126 +#define MON_DATA_SINNOH_RIBBON_127 127 +#define MON_DATA_SINNOH_RIBBON_128 128 +#define MON_DATA_SINNOH_RIBBON_129 129 +#define MON_DATA_SINNOH_RIBBON_130 130 +#define MON_DATA_SINNOH_RIBBON_131 131 +#define MON_DATA_SINNOH_RIBBON_132 132 +#define MON_DATA_SINNOH_RIBBON_133 133 +#define MON_DATA_SINNOH_RIBBON_134 134 +#define MON_DATA_SINNOH_RIBBON_135 135 +#define MON_DATA_SINNOH_RIBBON_136 136 +#define MON_DATA_SINNOH_RIBBON_137 137 +#define MON_DATA_SINNOH_RIBBON_138 138 +#define MON_DATA_SINNOH_RIBBON_139 139 +#define MON_DATA_SINNOH_RIBBON_140 140 +#define MON_DATA_SINNOH_RIBBON_141 141 +#define MON_DATA_SINNOH_RIBBON_142 142 +#define MON_DATA_OT_NAME 143 +#define MON_DATA_OT_NAME_2 144 // ??? +#define MON_DATA_EGG_MET_YEAR 145 +#define MON_DATA_EGG_MET_MONTH 146 +#define MON_DATA_EGG_MET_DAY 147 +#define MON_DATA_MET_YEAR 148 +#define MON_DATA_MET_MONTH 149 +#define MON_DATA_MET_DAY 150 +#define MON_DATA_EGG_MET_LOCATION 151 +#define MON_DATA_MET_LOCATION 152 +#define MON_DATA_POKERUS 153 +#define MON_DATA_POKEBALL 154 +#define MON_DATA_MET_LEVEL 155 +#define MON_DATA_MET_GENDER 156 +#define MON_DATA_ENCOUNTER_TYPE 157 +#define MON_DATA_RESERVED_158 158 // HGSS +#define MON_DATA_STATUS 159 +#define MON_DATA_LEVEL 160 +#define MON_DATA_CAPSULE 161 +#define MON_DATA_HP 162 +#define MON_DATA_MAXHP 163 +#define MON_DATA_ATK 164 +#define MON_DATA_DEF 165 +#define MON_DATA_SPEED 166 +#define MON_DATA_SPATK 167 +#define MON_DATA_SPDEF 168 +#define MON_DATA_SEAL_STRUCT 169 +#define MON_DATA_SEAL_COORDS 170 +#define MON_DATA_SPECIES_EXISTS 171 +#define MON_DATA_SANITY_IS_EGG 172 +#define MON_DATA_SPECIES2 173 +#define MON_DATA_IVS_WORD 174 +#define MON_DATA_UNK_175 175 +#define MON_DATA_TYPE_1 176 +#define MON_DATA_TYPE_2 177 +#define MON_DATA_SPECIES_NAME 178 + +#define MON_RATIO_MALE 0 +#define MON_RATIO_FEMALE 254 +#define MON_RATIO_UNKNOWN 255 + +enum MonGender +{ + MON_MALE = 0, + MON_FEMALE = 1, + MON_GENDERLESS = 2 +}; + +// TODO: Identify the rest of these +enum BaseStat { + BASE_HP = 0, + BASE_ATK, + BASE_DEF, + BASE_SPEED, + BASE_SPATK, + BASE_SPDEF, + BASE_TYPE1, + BASE_TYPE2, + BASE_CATCH_RATE, + BASE_EXP_YIELD, + BASE_HP_YIELD, + BASE_ATK_YIELD, + BASE_DEF_YIELD, + BASE_SPEED_YIELD, + BASE_SPATK_YIELD, + BASE_SPDEF_YIELD, + BASE_ITEM_1, + BASE_ITEM_2, + BASE_GENDER_RATIO, + BASE_EGG_CYCLES, + BASE_FRIENDSHIP, + BASE_GROWTH_RATE, + BASE_EGG_GROUP_1, + GASE_EGG_GROUP_2, + BASE_ABILITY_1, + BASE_ABILITY_2, + BASE_GREAT_MARSH_RATE, + BASE_COLOR, + BASE_FLIP, + BASE_UNKNOWN_29, + BASE_UNKNOWN_30, + BASE_UNKNOWN_31, + BASE_UNKNOWN_32, +}; + +typedef enum { + EGG = 0, + EVENT = 0, + HATCHED = 0, + PAL_PARK = 0, + TALL_GRASS = 2, + DIALGA_GAME_EVENT = 4, + PALKIA_GAME_EVENT = 4, + CAVE = 5, + HALL_OF_ORIGIN = 5, + SURFING = 7, + FISHING = 7, + BUILDING = 9, + SAFARI_ZONE = 10, + STARTER = 12, + FOSSIL = 12, + GIFT_EEVEE = 12 +} EncounterType; + +typedef enum GameLanguage OriginLanguage; + +typedef enum { + ARCEUS_NORMAL = 0, + ARCEUS_FIST = 1, + ARCEUS_SKY = 2, + ARCEUS_TOXIC = 3, + ARCEUS_EARTH = 4, + ARCEUS_STONE = 5, + ARCEUS_INSECT = 6, + ARCEUS_SPOOKY = 7, + ARCEUS_IRON = 8, + ARCEUS_FLAME = 9, + ARCEUS_SPLASH = 10, + ARCEUS_MEADOW = 11, + ARCEUS_ZAP = 12, + ARCEUS_MIND = 13, + ARCEUS_ICICLE = 14, + ARCEUS_DRACO = 15, + ARCEUS_DREAD = 16, + BURMY_PLANT = 0, + BURMY_SANDY = 1, + BURMY_TRASH = 2, + DEOXYS_NORMAL = 0, + DEOXYS_ATTACK = 1, + DEOXYS_DEFENSE = 2, + DEOXYS_SPEED = 3, + GIRATINA_ALTERED = 0, + GIRATINA_ORIGIN = 1, + ROTOM_NORMAL = 0, + ROTOM_HEAT = 1, + ROTOM_WASH = 2, + ROTOM_FROST = 3, + ROTOM_FAN = 4, + ROTOM_MOW = 5, + SHAYMIN_LAND = 0, + SHAYMIN_SKY = 1, + SHELLOS_WEST = 0, + SHELLOS_EAST = 1, + UNOWN_A = 0, + UNOWN_B = 1, + UNOWN_C = 2, + UNOWN_D = 3, + UNOWN_E = 4, + UNOWN_F = 5, + UNOWN_G = 6, + UNOWN_H = 7, + UNOWN_I = 8, + UNOWN_J = 9, + UNOWN_K = 10, + UNOWN_L = 11, + UNOWN_M = 12, + UNOWN_N = 13, + UNOWN_O = 14, + UNOWN_P = 15, + UNOWN_Q = 16, + UNOWN_R = 17, + UNOWN_S = 18, + UNOWN_T = 19, + UNOWN_U = 20, + UNOWN_V = 21, + UNOWN_W = 22, + UNOWN_X = 23, + UNOWN_Y = 24, + UNOWN_Z = 25, + UNOWN_EXCLAMATION_MARK = 26, + UNOWN_QUESTION_MARK = 27 +} AlternateForms; + +#endif //POKEDIAMOND_CONSTANTS_POKEMON_H diff --git a/include/constants/sinnoh_dex.h b/include/constants/sinnoh_dex.h new file mode 100644 index 00000000..555ced8b --- /dev/null +++ b/include/constants/sinnoh_dex.h @@ -0,0 +1,158 @@ +#ifndef POKEDIAMOND_CONSTANTS_SINNOH_DEX_H +#define POKEDIAMOND_CONSTANTS_SINNOH_DEX_H + +#define SINNOH_DEX_ARCEUS 0 +#define SINNOH_DEX_TURTWIG 1 +#define SINNOH_DEX_GROTLE 2 +#define SINNOH_DEX_TORTERRA 3 +#define SINNOH_DEX_CHIMCHAR 4 +#define SINNOH_DEX_MONFERNO 5 +#define SINNOH_DEX_INFERNAPE 6 +#define SINNOH_DEX_PIPLUP 7 +#define SINNOH_DEX_PRINPLUP 8 +#define SINNOH_DEX_EMPOLEON 9 +#define SINNOH_DEX_STARLY 10 +#define SINNOH_DEX_STARAVIA 11 +#define SINNOH_DEX_STARAPTOR 12 +#define SINNOH_DEX_BIDOOF 13 +#define SINNOH_DEX_BIBAREL 14 +#define SINNOH_DEX_KRICKETOT 15 +#define SINNOH_DEX_KRICKETUNE 16 +#define SINNOH_DEX_SHINX 17 +#define SINNOH_DEX_LUXIO 18 +#define SINNOH_DEX_LUXRAY 19 +#define SINNOH_DEX_ABRA 20 +#define SINNOH_DEX_KADABRA 21 +#define SINNOH_DEX_ALAKAZAM 22 +#define SINNOH_DEX_MAGIKARP 23 +#define SINNOH_DEX_GYARADOS 24 +#define SINNOH_DEX_BUDEW 25 +#define SINNOH_DEX_ROSELIA 26 +#define SINNOH_DEX_ROSERADE 27 +#define SINNOH_DEX_ZUBAT 28 +#define SINNOH_DEX_GOLBAT 29 +#define SINNOH_DEX_CROBAT 30 +#define SINNOH_DEX_GEODUDE 31 +#define SINNOH_DEX_GRAVELER 32 +#define SINNOH_DEX_GOLEM 33 +#define SINNOH_DEX_ONIX 34 +#define SINNOH_DEX_STEELIX 35 +#define SINNOH_DEX_CRANIDOS 36 +#define SINNOH_DEX_RAMPARDOS 37 +#define SINNOH_DEX_SHIELDON 38 +#define SINNOH_DEX_BASTIODON 39 +#define SINNOH_DEX_MACHOP 40 +#define SINNOH_DEX_MACHOKE 41 +#define SINNOH_DEX_MACHAMP 42 +#define SINNOH_DEX_PSYDUCK 43 +#define SINNOH_DEX_GOLDUCK 44 +#define SINNOH_DEX_BURMY 45 +#define SINNOH_DEX_WORMADAM 46 +#define SINNOH_DEX_MOTHIM 47 +#define SINNOH_DEX_WURMPLE 48 +#define SINNOH_DEX_SILCOON 49 +#define SINNOH_DEX_BEAUTIFLY 50 +#define SINNOH_DEX_CASCOON 51 +#define SINNOH_DEX_DUSTOX 52 +#define SINNOH_DEX_COMBEE 53 +#define SINNOH_DEX_VESPIQUEN 54 +#define SINNOH_DEX_PACHIRISU 55 +#define SINNOH_DEX_BUIZEL 56 +#define SINNOH_DEX_FLOATZEL 57 +#define SINNOH_DEX_CHERUBI 58 +#define SINNOH_DEX_CHERRIM 59 +#define SINNOH_DEX_SHELLOS 60 +#define SINNOH_DEX_GASTRODON 61 +#define SINNOH_DEX_HERACROSS 62 +#define SINNOH_DEX_AIPOM 63 +#define SINNOH_DEX_AMBIPOM 64 +#define SINNOH_DEX_DRIFLOON 65 +#define SINNOH_DEX_DRIFBLIM 66 +#define SINNOH_DEX_BUNEARY 67 +#define SINNOH_DEX_LOPUNNY 68 +#define SINNOH_DEX_GASTLY 69 +#define SINNOH_DEX_HAUNTER 70 +#define SINNOH_DEX_GENGAR 71 +#define SINNOH_DEX_MISDREAVUS 72 +#define SINNOH_DEX_MISMAGIUS 73 +#define SINNOH_DEX_MURKROW 74 +#define SINNOH_DEX_HONCHKROW 75 +#define SINNOH_DEX_GLAMEOW 76 +#define SINNOH_DEX_PURUGLY 77 +#define SINNOH_DEX_GOLDEEN 78 +#define SINNOH_DEX_SEAKING 79 +#define SINNOH_DEX_BARBOACH 80 +#define SINNOH_DEX_WHISCASH 81 +#define SINNOH_DEX_CHINGLING 82 +#define SINNOH_DEX_CHIMECHO 83 +#define SINNOH_DEX_STUNKY 84 +#define SINNOH_DEX_SKUNTANK 85 +#define SINNOH_DEX_MEDITITE 86 +#define SINNOH_DEX_MEDICHAM 87 +#define SINNOH_DEX_BRONZOR 88 +#define SINNOH_DEX_BRONZONG 89 +#define SINNOH_DEX_PONYTA 90 +#define SINNOH_DEX_RAPIDASH 91 +#define SINNOH_DEX_BONSLY 92 +#define SINNOH_DEX_SUDOWOODO 93 +#define SINNOH_DEX_MIME_JR 94 +#define SINNOH_DEX_MR_MIME 95 +#define SINNOH_DEX_HAPPINY 96 +#define SINNOH_DEX_CHANSEY 97 +#define SINNOH_DEX_BLISSEY 98 +#define SINNOH_DEX_CLEFFA 99 +#define SINNOH_DEX_CLEFAIRY 100 +#define SINNOH_DEX_CLEFABLE 101 +#define SINNOH_DEX_CHATOT 102 +#define SINNOH_DEX_PICHU 103 +#define SINNOH_DEX_PIKACHU 104 +#define SINNOH_DEX_RAICHU 105 +#define SINNOH_DEX_HOOTHOOT 106 +#define SINNOH_DEX_NOCTOWL 107 +#define SINNOH_DEX_SPIRITOMB 108 +#define SINNOH_DEX_GIBLE 109 +#define SINNOH_DEX_GABITE 110 +#define SINNOH_DEX_GARCHOMP 111 +#define SINNOH_DEX_MUNCHLAX 112 +#define SINNOH_DEX_SNORLAX 113 +#define SINNOH_DEX_UNOWN 114 +#define SINNOH_DEX_RIOLU 115 +#define SINNOH_DEX_LUCARIO 116 +#define SINNOH_DEX_WOOPER 117 +#define SINNOH_DEX_QUAGSIRE 118 +#define SINNOH_DEX_WINGULL 119 +#define SINNOH_DEX_PELIPPER 120 +#define SINNOH_DEX_GIRAFARIG 121 +#define SINNOH_DEX_HIPPOPOTAS 122 +#define SINNOH_DEX_HIPPOWDON 123 +#define SINNOH_DEX_AZURILL 124 +#define SINNOH_DEX_MARILL 125 +#define SINNOH_DEX_AZUMARILL 126 +#define SINNOH_DEX_SKORUPI 127 +#define SINNOH_DEX_DRAPION 128 +#define SINNOH_DEX_CROAGUNK 129 +#define SINNOH_DEX_TOXICROAK 130 +#define SINNOH_DEX_CARNIVINE 131 +#define SINNOH_DEX_REMORAID 132 +#define SINNOH_DEX_OCTILLERY 133 +#define SINNOH_DEX_FINNEON 134 +#define SINNOH_DEX_LUMINEON 135 +#define SINNOH_DEX_TENTACOOL 136 +#define SINNOH_DEX_TENTACRUEL 137 +#define SINNOH_DEX_FEEBAS 138 +#define SINNOH_DEX_MILOTIC 139 +#define SINNOH_DEX_MANTYKE 140 +#define SINNOH_DEX_MANTINE 141 +#define SINNOH_DEX_SNOVER 142 +#define SINNOH_DEX_ABOMASNOW 143 +#define SINNOH_DEX_SNEASEL 144 +#define SINNOH_DEX_WEAVILE 145 +#define SINNOH_DEX_UXIE 146 +#define SINNOH_DEX_MESPRIT 147 +#define SINNOH_DEX_AZELF 148 +#define SINNOH_DEX_DIALGA 149 +#define SINNOH_DEX_PALKIA 150 +#define SINNOH_DEX_MANAPHY 151 +#define SINNOH_DEX_COUNT SINNOH_DEX_MANAPHY + +#endif //POKEDIAMOND_CONSTANTS_SINNOH_DEX_H diff --git a/include/filesystem.h b/include/filesystem.h index 37f73bb0..6b5a16d6 100644 --- a/include/filesystem.h +++ b/include/filesystem.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_FILESYSTEM_H #include "nitro/types.h" +#include "FS_file.h" typedef struct NARC { diff --git a/include/global.h b/include/global.h index 2f31fa3d..2574c437 100644 --- a/include/global.h +++ b/include/global.h @@ -4,6 +4,9 @@ #include "config.h" #include "function_target.h" #include "nitro.h" +#include "constants/global.h" + +#define NELEMS(a) (sizeof(a) / sizeof(*(a))) enum GameVersion { VERSION_SAPPHIRE = 1, @@ -27,4 +30,9 @@ enum GameLanguage { extern void ErrorHandling(void); +#define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0) + +extern const enum GameLanguage gGameLanguage; +extern const enum GameVersion gGameVersion; + #endif //GUARD_GLOBAL_H diff --git a/include/math_util.h b/include/math_util.h new file mode 100644 index 00000000..f7169956 --- /dev/null +++ b/include/math_util.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_MATH_UTIL_H +#define POKEDIAMOND_MATH_UTIL_H + +u16 rand_LC(void); + +#endif //POKEDIAMOND_MATH_UTIL_H diff --git a/include/move_data.h b/include/move_data.h new file mode 100644 index 00000000..8da864b0 --- /dev/null +++ b/include/move_data.h @@ -0,0 +1,7 @@ +#ifndef POKEDIAMOND_MOVE_DATA_H +#define POKEDIAMOND_MOVE_DATA_H + +int FUN_0206AB30(u16 move, u8 ppUp); +u32 FUN_0206AB18(u16 move, u32 attr); + +#endif //POKEDIAMOND_MOVE_DATA_H diff --git a/include/party.h b/include/party.h new file mode 100644 index 00000000..b6065a3f --- /dev/null +++ b/include/party.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_PARTY_H +#define POKEDIAMOND_PARTY_H + +#include "pokemon.h" + +#define PARTY_SIZE 6 + +struct PlayerParty +{ + u32 maxCount; + u32 curCount; + struct Pokemon mons[PARTY_SIZE]; +}; + +BOOL PartyHasMon(struct PlayerParty * party_p, u16 species); +int GetPartyCount(struct PlayerParty * party_p); +struct Pokemon * GetPartyMonByIndex(struct PlayerParty * party_p, int idx); + +#endif //POKEDIAMOND_PARTY_H diff --git a/include/pokemon.h b/include/pokemon.h index 68cc0d59..8e2eec3d 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -6,266 +6,76 @@ // Enums #include "constants/species.h" - -#define MON_DATA_PERSONALITY 0 -#define MON_DATA_IS_ENCRYPTED 1 -#define MON_DATA_CONTROL_4_1 2 -#define MON_DATA_CONTROL_4_2 3 -#define MON_DATA_CHECKSUM 4 -#define MON_DATA_SPECIES 5 -#define MON_DATA_HELD_ITEM 6 -#define MON_DATA_OTID 7 -#define MON_DATA_EXPERIENCE 8 -#define MON_DATA_FRIENDSHIP 9 -#define MON_DATA_ABILITY 10 -#define MON_DATA_MARKINGS 11 -#define MON_DATA_GAME_LANGUAGE 12 -#define MON_DATA_HP_EV 13 -#define MON_DATA_ATK_EV 14 -#define MON_DATA_DEF_EV 15 -#define MON_DATA_SPEED_EV 16 -#define MON_DATA_SPATK_EV 17 -#define MON_DATA_SPDEF_EV 18 -#define MON_DATA_COOL 19 -#define MON_DATA_BEAUTY 20 -#define MON_DATA_CUTE 21 -#define MON_DATA_SMART 22 -#define MON_DATA_TOUGH 23 -#define MON_DATA_SHEEN 24 -#define MON_DATA_SINNOH_CHAMP_RIBBON 25 -// TODO: ribbon flags through 53 -#define MON_DATA_MOVE1 54 -#define MON_DATA_MOVE2 55 -#define MON_DATA_MOVE3 56 -#define MON_DATA_MOVE4 57 -#define MON_DATA_MOVE1PP 58 -#define MON_DATA_MOVE2PP 59 -#define MON_DATA_MOVE3PP 60 -#define MON_DATA_MOVE4PP 61 -#define MON_DATA_MOVE1PPUP 62 -#define MON_DATA_MOVE2PPUP 63 -#define MON_DATA_MOVE3PPUP 64 -#define MON_DATA_MOVE4PPUP 65 -#define MON_DATA_MOVE1MAXPP 66 -#define MON_DATA_MOVE2MAXPP 67 -#define MON_DATA_MOVE3MAXPP 68 -#define MON_DATA_MOVE4MAXPP 69 -#define MON_DATA_HP_IV 70 -#define MON_DATA_ATK_IV 71 -#define MON_DATA_DEF_IV 72 -#define MON_DATA_SPEED_IV 73 -#define MON_DATA_SPATK_IV 74 -#define MON_DATA_SPDEF_IV 75 -#define MON_DATA_IS_EGG 76 -#define MON_DATA_HAS_NICKNAME 77 -#define MON_DATA_COOL_RIBBON 78 -// TODO: ribbon flags through 109 -#define MON_DATA_FATEFUL_ENCOUNTER 110 -#define MON_DATA_GENDER 111 -#define MON_DATA_FORME 112 -#define MON_DATA_RESERVED_113 113 // HGSS -#define MON_DATA_RESERVED_114 114 // Plat -#define MON_DATA_UNUSED_115 115 -#define MON_DATA_NICKNAME 116 -#define MON_DATA_UNUSED_117 117 -#define MON_DATA_NICKNAME_2 118 // ??? -#define MON_DATA_NICKNAME_3 119 // ??? -#define MON_DATA_UNK_120 120 -#define MON_DATA_GAME_VERSION 121 -// TODO: ribbon flags 122-142 -#define MON_DATA_OT_NAME 143 -#define MON_DATA_OT_NAME_2 144 // ??? -#define MON_DATA_EGG_MET_YEAR 145 -#define MON_DATA_EGG_MET_MONTH 146 -#define MON_DATA_EGG_MET_DAY 147 -#define MON_DATA_MET_YEAR 148 -#define MON_DATA_MET_MONTH 149 -#define MON_DATA_MET_DAY 150 -#define MON_DATA_EGG_MET_LOCATION 151 -#define MON_DATA_MET_LOCATION 152 -#define MON_DATA_POKERUS 153 -#define MON_DATA_POKEBALL 154 -#define MON_DATA_MET_LEVEL 155 -#define MON_DATA_MET_GENDER 156 -#define MON_DATA_ENCOUNTER_TYPE 157 -#define MON_DATA_RESERVED_158 158 // HGSS -#define MON_DATA_STATUS 159 -#define MON_DATA_LEVEL 160 -#define MON_DATA_CAPSULE 161 -#define MON_DATA_HP 162 -#define MON_DATA_MAXHP 163 -#define MON_DATA_ATK 164 -#define MON_DATA_DEF 165 -#define MON_DATA_SPEED 166 -#define MON_DATA_SPATK 167 -#define MON_DATA_SPDEF 168 -#define MON_DATA_SEAL_TYPES_MAYBE 169 -#define MON_DATA_SEAL_COORDS 170 -#define MON_DATA_SPECIES_EXISTS 171 -#define MON_DATA_SANITY_CHECK_172 172 -#define MON_DATA_SANITY_CHECK_173 173 -#define MON_DATA_IVS_WORD 174 -#define MON_DATA_IS_FEMALE 175 -#define MON_DATA_TYPE_1 176 -#define MON_DATA_TYPE_2 177 -#define MON_DATA_SPECIES_NAME 178 - -// TODO: Identify the rest of these -enum BaseStat { - BASE_HP = 0, - BASE_ATK, - BASE_DEF, - BASE_SPEED, - BASE_SPATK, - BASE_SPDEF, - BASE_TYPE1, - BASE_TYPE2, - BASE_CATCH_RATE, - BASE_EXP_YIELD, - BASE_HP_YIELD, - BASE_ATK_YIELD, - BASE_DEF_YIELD, - BASE_SPEED_YIELD, - BASE_SPATK_YIELD, - BASE_SPDEF_YIELD, - BASE_ITEM_1 = 16, - BASE_ITEM_2, - BASE_GENDER_RATIO, - BASE_EGG_CYCLES, - BASE_FIRENDSHIP, - BASE_GROWTH_RATE, - BASE_EGG_GROUP_1, - GASE_EGG_GROUP_2, - BASE_ABILITY_1, - BASE_ABILITY_2, - BASE_GREAT_MARSH_RATE, - BASE_COLOR, - BASE_FLIP, -}; +#include "seals.h" +#include "constants/pokemon.h" +#include "string16.h" +#include "save_block_2.h" struct BaseStats { - u8 hp; - u8 atk; - u8 def; - u8 speed; - u8 spatk; - u8 spdef; - u8 types[2]; - u8 catchRate; - u8 expYield; - u16 hp_yield:2; - u16 atk_yield:2; - u16 def_yield:2; - u16 speed_yield:2; - u16 spatk_yield:2; - u16 spdef_yield:2; - u16 unkB_4:2; - u16 padding_B_6:2; - u16 item1; - u16 item2; - u8 genderRatio; - u8 eggCycles; - u8 friendship; - u8 growthRate; - u8 eggGroups[2]; - u8 abilities[2]; - u8 greatMarshRate; - u8 color:7; - u8 flip:1; - u8 padding_1A[2]; - u32 unk1C; - u32 unk20; - u32 unk24; - u32 unk28; + /* 0x00 */ u8 hp; + /* 0x01 */ u8 atk; + /* 0x02 */ u8 def; + /* 0x03 */ u8 speed; + /* 0x04 */ u8 spatk; + /* 0x05 */ u8 spdef; + /* 0x06 */ u8 types[2]; + /* 0x08 */ u8 catchRate; + /* 0x09 */ u8 expYield; + /* 0x0A */ u16 hp_yield:2; + u16 atk_yield:2; + u16 def_yield:2; + u16 speed_yield:2; + /* 0x0B */ u16 spatk_yield:2; + u16 spdef_yield:2; + u16 padding_B_4:4; + /* 0x0C */ u16 item1; + /* 0x0E */ u16 item2; + /* 0x10 */ u8 genderRatio; + /* 0x11 */ u8 eggCycles; + /* 0x12 */ u8 friendship; + /* 0x13 */ u8 growthRate; + /* 0x14 */ u8 eggGroups[2]; + /* 0x16 */ u8 abilities[2]; + /* 0x18 */ u8 greatMarshRate; + /* 0x19 */ u8 color:7; + u8 flip:1; + u8 padding_1A[2]; + /* 0x1C */ u32 unk1C; + /* 0x20 */ u32 unk20; + /* 0x24 */ u32 unk24; + /* 0x28 */ u32 unk28; }; -typedef enum { - EGG = 0, - EVENT = 0, - HATCHED = 0, - PAL_PARK = 0, - TALL_GRASS = 2, - DIALGA_GAME_EVENT = 4, - PALKIA_GAME_EVENT = 4, - CAVE = 5, - HALL_OF_ORIGIN = 5, - SURFING = 7, - FISHING = 7, - BUILDING = 9, - SAFARI_ZONE = 10, - STARTER = 12, - FOSSIL = 12, - GIFT_EEVEE = 12 -} EncounterType; - -typedef enum GameLanguage OriginLanguage; - -typedef enum { - ARCEUS_NORMAL = 0, - ARCEUS_FIST = 8, - ARCEUS_SKY = 16, - ARCEUS_TOXIC = 24, - ARCEUS_EARTH = 32, - ARCEUS_STONE = 40, - ARCEUS_INSECT = 48, - ARCEUS_SPOOKY = 56, - ARCEUS_IRON = 64, - ARCEUS_FLAME = 72, - ARCEUS_SPLASH = 80, - ARCEUS_MEADOW = 88, - ARCEUS_ZAP = 96, - ARCEUS_MIND = 104, - ARCEUS_ICICLE = 112, - ARCEUS_DRACO = 120, - ARCEUS_DREAD = 128, - BURMY_PLANT = 0, - BURMY_SANDY = 8, - BURMY_TRASH = 16, - DEOXYS_NORMAL = 0, - DEOXYS_ATTACK = 8, - DEOXYS_DEFENSE = 16, - DEOXYS_SPEED = 24, - GIRATINA_ALTERED = 0, - GIRATINA_ORIGIN = 8, - ROTOM_NORMAL = 0, - ROTOM_HEAT = 8, - ROTOM_WASH = 16, - ROTOM_FROST = 24, - ROTOM_FAN = 32, - ROTOM_MOW = 40, - SHAYMIN_LAND = 0, - SHAYMIN_SKY = 8, - SHELLOS_WEST = 0, - SHELLOS_EAST = 8, - UNOWN_A = 0, - UNOWN_B = 8, - UNOWN_C = 16, - UNOWN_D = 24, - UNOWN_E = 32, - UNOWN_F = 40, - UNOWN_G = 48, - UNOWN_H = 56, - UNOWN_I = 64, - UNOWN_J = 72, - UNOWN_K = 80, - UNOWN_L = 88, - UNOWN_M = 96, - UNOWN_N = 104, - UNOWN_O = 112, - UNOWN_P = 120, - UNOWN_Q = 128, - UNOWN_R = 136, - UNOWN_S = 144, - UNOWN_T = 152, - UNOWN_U = 160, - UNOWN_V = 168, - UNOWN_W = 176, - UNOWN_X = 184, - UNOWN_Y = 192, - UNOWN_Z = 200, - UNOWN_EXCLAMATION_MARK = 208, - UNOWN_QUESTION_MARK = 216 -} AlternateForms; +typedef enum EvoMethod +{ + EVO_NONE = 0, + EVO_FRIENDSHIP, + EVO_FRIENDSHIP_DAY, + EVO_FRIENDSHIP_NIGHT, + EVO_LEVEL, + EVO_TRADE, + EVO_TRADE_ITEM, + EVO_STONE, + EVO_LEVEL_ATK_GT_DEF, + EVO_LEVEL_ATK_EQ_DEF, + EVO_LEVEL_ATK_LT_DEF, + EVO_LEVEL_PID_LO, + EVO_LEVEL_PID_HI, + EVO_LEVEL_NINJASK, + EVO_LEVEL_SHEDINJA, + EVO_BEAUTY, + EVO_STONE_MALE, + EVO_STONE_FEMALE, + EVO_ITEM_DAY, + EVO_ITEM_NIGHT, + EVO_HAS_MOVE, + EVO_OTHER_PARTY_MON, + EVO_LEVEL_MALE, + EVO_LEVEL_FEMALE, + EVO_CORONET, + EVO_ETERNA, + EVO_ROUTE217, +} EvoMethod; // Structs @@ -305,7 +115,7 @@ typedef struct { /* 0x10 */ u32 hpIV:5, atkIV:5, defIV:5, spdIV:5, spatkIV:5, spdefIV:5, isEgg:1, isNicknamed:1; // TODO: Finish HoennRibbonSet /* 0x14 */ u32 ribbonFlags; // cool, ... - /* 0x18 */ u8 fatefulEncounter:1, female:1, genderless:1, alternateForm:5; + /* 0x18 */ u8 fatefulEncounter:1, gender:2, alternateForm:5; /* 0x19 */ u8 HGSS_shinyLeaves; // TODO: Turn into bitfield /* 0x1A */ u16 Unused; /* 0x1C */ u16 Platinum_EggLocation; @@ -314,10 +124,10 @@ typedef struct { typedef struct { /* 0x00 */ u16 nickname[11]; - /* 0x1A */ u8 Unused; - /* 0x1B */ u8 originGame; + /* 0x16 */ u8 Unused; + /* 0x17 */ u8 originGame; // TODO: Finish SinnohRibbonSet2 - /* 0x1C */ u32 sinnohRibbons2; // cool, ... + /* 0x18 */ u64 sinnohRibbons2; // cool, ... } PokemonDataBlockC; typedef struct { @@ -328,7 +138,8 @@ typedef struct { /* 0x18 */ u16 DP_MetLocation; /* 0x1A */ u8 pokerus; /* 0x1B */ u8 pokeball; - /* 0x1C */ u8 flags; + /* 0x1C */ u8 metLevel:7; + u8 metGender:1; /* 0x1D */ u8 encounterType; /* 0x1E */ u16 HGSS_Pokeball; } PokemonDataBlockD; @@ -341,26 +152,18 @@ typedef union { } PokemonDataBlock; struct BoxPokemon { - /* 0x000 */ u32 personalityValue; - /* 0x004 */ u16 no_encrypt:1; - u16 control_4_1:1; - u16 control_4_2:1; + /* 0x000 */ u32 pid; + /* 0x004 */ u16 party_lock:1; + u16 box_lock:1; + u16 checksum_fail:1; u16 Unused:13; // Might be used for validity checks /* 0x006 */ u16 checksum; // Stored checksum of pokemon - /* 0x008 */ PokemonDataBlock box[4]; + /* 0x008 */ PokemonDataBlock substructs[4]; }; struct PartyPokemon { - /* 0x000 */ struct BoxPokemon box; - /* 0x088 */ u8 slp:3; - u8 psn:1; - u8 brn:1; - u8 frz:1; - u8 prz:1; - u8 tox:1; - /* 0x089 */ u8 unk89; - /* 0x08A */ u8 filler8A[2]; + /* 0x088 */ u32 status; // slp:3, psn:1, brn:1, frz:1, prz:1, tox:1, ... /* 0x08C */ u8 level; /* 0x08D */ u8 capsule; /* 0x08E */ u16 hp; @@ -370,7 +173,7 @@ struct PartyPokemon /* 0x096 */ u16 speed; /* 0x098 */ u16 spatk; /* 0x09A */ u16 spdef; - /* 0x09C */ u8 seal_something[0x38]; // a struct? + /* 0x09C */ struct SealStruct seal_something; // a struct? /* 0x0D4 */ u8 sealCoords[0x18]; // u8 pairs? }; @@ -379,11 +182,152 @@ struct Pokemon { /* 0x088 */ struct PartyPokemon party; }; // size: 0xEC -int GetMonBaseStat_HandleFormeConversion(int species, int form, int stat_id); -int GetMonBaseStat(int species, int stat_id); -int GetMonExpByLevel(int species, int level); -void LoadGrowthTable(int species, int * table); -int GetExpByGrowthRateAndLevel(int rate, int level); -int CalcLevelBySpeciesAndExp(int species, int experience); +#include "party.h" + +struct SomeDrawPokemonStruct +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u8 unk8; + u8 filler_9[3]; + u32 unkC; +}; + +struct PokeanmSub +{ + s8 unk0; + u8 unk1; +}; + +struct Pokeanm +{ + struct PokeanmSub unk0[4]; + u8 unk8[20]; +}; + +struct UnkStruct_02069038 +{ + u16 unk0; + u16 unk2; + u8 unk4; + u8 padding; + struct Pokeanm anim; +}; + +struct Evolution +{ + u16 method; + u16 param; + u16 target; +}; + +void ZeroMonData(struct Pokemon * pokemon); +void ZeroBoxMonData(struct BoxPokemon * boxmon); +u32 SizeOfStructPokemon(void); +struct Pokemon * AllocMonZeroed(u32 heap_id); +BOOL AcquireMonLock(struct Pokemon * mon); +BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result); +BOOL AcquireBoxMonLock(struct BoxPokemon * mon); +BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result); +void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId); +void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId); +void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature); +void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter); +u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature); +void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality); +void CalcMonLevelAndStats(struct Pokemon * pokemon); +void CalcMonStats(struct Pokemon * pokemon); +#ifndef IN_POKEMON_C +u32 GetMonData(); +u32 GetBoxMonData(); +#else +u32 GetMonData(struct Pokemon * pokemon, int attr, void * ptr); +u32 GetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr); +#endif +void SetMonData(struct Pokemon * pokemon, int attr, void * ptr); +void SetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr); +void AddMonData(struct Pokemon * pokemon, int attr, int amount); +struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id); +int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr); +void FreeMonPersonal(struct BaseStats * personal); +int GetMonBaseStat_HandleFormeConversion(int species, int form, enum BaseStat stat_id); +int GetMonBaseStat(int species, enum BaseStat stat_id); +u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon); +u32 CalcMonExpToNextLevel(struct Pokemon * pokemon); +u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon); +u32 GetMonExpBySpeciesAndLevel(int species, int level); +void LoadGrowthTable(int growthRate, u32 * table); +u32 GetExpByGrowthRateAndLevel(int rate, int level); +int CalcMonLevel(struct Pokemon * pokemon); +int CalcBoxMonLevel(struct BoxPokemon * boxmon); +int CalcLevelBySpeciesAndExp(u16 species, u32 experience); +int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 experience); +u8 GetBoxMonNature(struct BoxPokemon * boxmon); +u8 GetMonNature(struct Pokemon * mon); +u8 GetNatureFromPersonality(u32 pid); +void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location); +u8 GetMonGender(struct Pokemon * pokemon); +u8 GetBoxMonGender(struct BoxPokemon * boxmon); +u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid); +u8 MonIsShiny(struct Pokemon * pokemon); +u32 GenerateShinyPersonality(u32 otid); +void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10); +void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality); +u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1); +u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1); +u8 FUN_02068E88(int species, u8 gender, u32 a2, u8 forme, u32 pid); +u32 GetArceusTypeByHeldItemEffect(u16 plate); +int FUN_0206AA30(int a0); +void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10); +void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2); +void FUN_02069010(void * dest, int a1); +void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6); +void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1); +u32 FUN_020690C4(void); +u32 FUN_020690C8(void); +u8 FUN_020690CC(struct Pokemon * pokemon); +struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon); +u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret); +u16 ReadFromPersonalPmsNarc(u16 species); +u16 GetEggSpecies(u16 species); +BOOL FUN_020690E8(struct Pokemon * pokemon); +u32 FUN_02069698(struct Pokemon * pokemon, u16 move); +void FUN_02069708(struct Pokemon * pokemon, u16 move); +void FUN_02069718(struct BoxPokemon * boxmon, u16 move); +void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot); +u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0); +void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2); +void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2); +void FUN_020699A4(struct Pokemon * pokemon, u32 slot); +void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest); +u8 FUN_02069AEC(struct PlayerParty * party); +u16 FUN_02069B40(u16 species); +u16 FUN_02069B60(u16 sinnoh_dex); +void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest); +void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest); +void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest); +s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor); +int FUN_02069BFC(u16 species, u32 forme, u16 * dest); +void FUN_02069C4C(struct PlayerParty * party); +void FUN_02069D50(struct PlayerParty * party, int r5); +void FUN_02069DC8(struct PlayerParty * party); +BOOL FUN_02069E74(struct Pokemon * pokemon); +BOOL FUN_02069E94(struct Pokemon * pokemon); +void FUN_02069EC4(struct Pokemon * pokemon); +void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20); +void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5); +void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2); +BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1); +void FUN_0206A1C4(struct Pokemon * pokemon); +void FUN_0206A23C(struct Pokemon * r5, u32 personality); +int LowestFlagNo(u32 mask); +BOOL IsPokemonLegendaryOrMythical(u16 species); +u16 GetLegendaryMon(u32 idx); +BOOL FUN_0206A998(struct Pokemon * pokemon); +BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id); +void FUN_0206AA84(struct Pokemon * pokemon); +void FUN_0206AAB4(struct BoxPokemon * boxmon); #endif //POKEDIAMOND_POKEMON_H diff --git a/include/proto.h b/include/proto.h new file mode 100644 index 00000000..6f022d90 --- /dev/null +++ b/include/proto.h @@ -0,0 +1,23 @@ +#ifndef POKEDIAMOND_PROTO_H +#define POKEDIAMOND_PROTO_H + +// For homeless function declarations + +#include "pokemon.h" // for struct definitions + +u16 * FUN_0200AA50(u16 species, u32 heap_id); +void FUN_02021A74(u16 * dest, u16 * src); +void FUN_02021A20(void * ptr); +void FUN_02021E28(u16 * dest, u16 * src); +void FUN_02021EF0(const u16 * src, u16 * dest, u32 count); +u32 FUN_0206E7B8(u16 item, u32 a1, u32 a2); +int FUN_02014C3C(u8); +void FUN_02014C54(int, int, struct UnkStruct_02069038 *, u8); +u32 IsNighttime(void); // is day or night +int FUN_02005F14(int); +void FUN_02005E80(int); +void FUN_02005E90(int, int, int, int); +void FUN_020056AC(int, int, int, int, int); +void FUN_020808AC(struct BoxPokemon *, int, int, int, int); + +#endif //POKEDIAMOND_PROTO_H diff --git a/include/save_block_2.h b/include/save_block_2.h new file mode 100644 index 00000000..38e11de4 --- /dev/null +++ b/include/save_block_2.h @@ -0,0 +1,18 @@ +#ifndef POKEDIAMOND_SAVE_BLOCK_2_H +#define POKEDIAMOND_SAVE_BLOCK_2_H + +struct SaveBlock2 +{ + u16 playerName[OT_NAME_LENGTH + 1]; + u32 playerId; + u8 filler_14[4]; + u8 gender; + u8 padding[3]; + // TODO: finish this struct +}; + +struct String * FUN_020239A0(struct SaveBlock2 *, u32 heap_id); +u32 FUN_020239BC(struct SaveBlock2 *); +u32 FUN_020239CC(struct SaveBlock2 *); + +#endif //POKEDIAMOND_SAVE_BLOCK_2_H diff --git a/include/seals.h b/include/seals.h new file mode 100644 index 00000000..8fda23b9 --- /dev/null +++ b/include/seals.h @@ -0,0 +1,15 @@ +#ifndef POKEDIAMOND_SEALS_H +#define POKEDIAMOND_SEALS_H + +struct SealStruct +{ + // TODO: define + u8 filler_00[0x38]; +}; + +struct SealStruct * CreateNewSealsObject(u32 heap_id); + +void CopySealsObject(const struct SealStruct *, struct SealStruct *); +void FUN_02029C74(const u8 *, u8 *); + +#endif //POKEDIAMOND_SEALS_H diff --git a/include/string16.h b/include/string16.h new file mode 100644 index 00000000..7092c641 --- /dev/null +++ b/include/string16.h @@ -0,0 +1,17 @@ +#ifndef POKEDIAMOND_STRING16_H +#define POKEDIAMOND_STRING16_H + +struct String +{ + u16 len; + u16 pos; + u32 magic; + u16 unk8; + u16 data[1]; +}; + +struct String * FUN_020219F4(u32 count, u32 heap_id); +int FUN_02021CE0(struct String *, struct String *); +int FUN_0206AE00(int x); + +#endif //POKEDIAMOND_STRING16_H diff --git a/include/string_util.h b/include/string_util.h index 53d4e5f4..e9079229 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -7,6 +7,9 @@ #include "global.h" +#define EOS 0xFFFF +#define NON_DIGIT 0xE2 + enum PrintingMode { NORMAL, PAD_SPACE, diff --git a/include/text.h b/include/text.h new file mode 100644 index 00000000..cec36a30 --- /dev/null +++ b/include/text.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_TEXT_H +#define POKEDIAMOND_TEXT_H + +void GetSpeciesName(u16 species, u32 heap_id, u16 * dest); + +#endif //POKEDIAMOND_TEXT_H |