From c9b75afe693fb283790ee52c7b620619b881051a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 Sep 2020 13:10:08 -0400 Subject: Decompile trainer_data engine code --- arm9/arm9.lsf | 6 +- arm9/asm/scrcmd.s | 2 +- arm9/asm/unk_0204653C.s | 2 +- arm9/asm/unk_0206ABC4.s | 749 -------------- arm9/global.inc | 8 +- arm9/modules/06/asm/module_06.s | 6 +- arm9/modules/07/asm/module_07.s | 16 +- arm9/modules/11/asm/module_11_thumb2.s | 10 +- arm9/src/pokemon.c | 2 +- arm9/src/trainer_data.c | 403 ++++++++ files/poketool/trainer/trdata.json | 1698 ++++++++++++++++---------------- files/poketool/trainer/trdata.json.txt | 2 +- include/proto.h | 2 +- include/trainer_data.h | 13 +- 14 files changed, 1294 insertions(+), 1625 deletions(-) delete mode 100644 arm9/asm/unk_0206ABC4.s create mode 100644 arm9/src/trainer_data.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 29b8e407..6abd904a 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -246,9 +246,11 @@ Static arm9 Object unk_02064E90.o Object unk_020653EC.o Object unk_02066840.o + + ##poketool## Object pokemon.o Object waza.o - Object unk_0206ABC4.o + Object trainer_data.o Object pokemon_storage_system.o Object unk_0206B688.o Object party.o @@ -259,6 +261,8 @@ Static arm9 Object unk_0206DE24.o Object unk_0206E0F0.o Object unk_0206E2F0.o + + ##itemtool## Object itemtool.o Object bag.o Object unk_0206F1F0.o diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index b874b757..affbe1c1 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -6376,7 +6376,7 @@ FUN_0203CBE8: ; 0x0203CBE8 ldr r0, [sp, #0x0] ldr r2, [r6, #0x0] mov r3, #0xb - bl FUN_0206AD4C + bl GetTrainerMessageByIdPair add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s index b74847fc..4309494e 100644 --- a/arm9/asm/unk_0204653C.s +++ b/arm9/asm/unk_0204653C.s @@ -1482,7 +1482,7 @@ _0204711A: ldr r1, [r7, #0xc] ldr r2, [sp, #0x20] add r0, r4, #0x0 - bl FUN_0206ABC4 + bl EnemyTrainerSet_Init ldr r0, [r7, #0xc] bl FUN_02029FC8 mov r1, #0x8 diff --git a/arm9/asm/unk_0206ABC4.s b/arm9/asm/unk_0206ABC4.s deleted file mode 100644 index b4b3d88e..00000000 --- a/arm9/asm/unk_0206ABC4.s +++ /dev/null @@ -1,749 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F8010 -UNK_020F8010: ; 0x020F8010 - .byte 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0 - .byte 0, 1, 1, 0, 0, 1, 1, 2, 0, 1, 1, 0, 0, 0, 1, 2 - .byte 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 2 - .byte 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0 - .byte 0, 0, 1, 0, 0, 1, 2, 0, 1, 0, 1, 0, 1, 1, 1, 0 - .byte 1, 0, 2, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0 - .byte 1, 0, 0, 0 - - .text - - thumb_func_start FUN_0206ABC4 -FUN_0206ABC4: ; 0x0206ABC4 - push {r3-r7, lr} - sub sp, #0x48 - str r2, [sp, #0x4] - ldr r2, _0206AC70 ; =0x0000022F - str r0, [sp, #0x0] - add r4, r1, #0x0 - ldr r3, [sp, #0x4] - mov r0, #0x1 - mov r1, #0x1a - bl NewMsgDataFromNarc - str r0, [sp, #0x10] - add r0, r4, #0x0 - bl FUN_02024EC0 - bl FUN_02024EE8 - ldr r4, [sp, #0x0] - str r0, [sp, #0xc] - add r0, r4, #0x0 - add r5, r4, #0x0 - mov r7, #0x0 - str r0, [sp, #0x8] - add r5, #0x3c -_0206ABF4: - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _0206AC48 - add r1, sp, #0x14 - bl TrainerData_ReadTrData - ldr r3, [sp, #0x8] - add r6, sp, #0x14 - add r3, #0x28 - mov r2, #0x6 -_0206AC08: - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - sub r2, r2, #0x1 - bne _0206AC08 - ldr r0, [r6, #0x0] - str r0, [r3, #0x0] - add r0, sp, #0x14 - ldrb r0, [r0, #0x1] - cmp r0, #0x3f - bne _0206AC26 - ldr r1, [sp, #0xc] - add r0, r5, #0x0 - bl CopyU16StringArray - b _0206AC3E -_0206AC26: - ldr r0, [sp, #0x10] - ldr r1, [r4, #0x18] - bl NewString_ReadMsgData - add r6, r0, #0x0 - add r1, r5, #0x0 - mov r2, #0x8 - bl CopyStringToU16Array - add r0, r6, #0x0 - bl String_dtor -_0206AC3E: - ldr r0, [sp, #0x0] - ldr r2, [sp, #0x4] - add r1, r7, #0x0 - bl LoadTrainerParty -_0206AC48: - ldr r0, [sp, #0x8] - add r7, r7, #0x1 - add r0, #0x34 - add r4, r4, #0x4 - add r5, #0x34 - str r0, [sp, #0x8] - cmp r7, #0x4 - blt _0206ABF4 - ldr r0, [sp, #0x0] - ldr r1, [r0, #0x0] - ldr r0, [sp, #0x24] - orr r1, r0 - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - ldr r0, [sp, #0x10] - bl DestroyMsgData - add sp, #0x48 - pop {r3-r7, pc} - nop -_0206AC70: .word 0x0000022F - - thumb_func_start TrainerData_GetAttr -TrainerData_GetAttr: ; 0x0206AC74 - push {r4-r5, lr} - sub sp, #0x34 - add r5, r1, #0x0 - add r1, sp, #0x0 - bl TrainerData_ReadTrData - cmp r5, #0x9 - bhi _0206ACCC - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0206AC90: ; jump table (using 16-bit offset) - .short _0206ACA4 - _0206AC90 - 2; case 0 - .short _0206ACAA - _0206AC90 - 2; case 1 - .short _0206ACB0 - _0206AC90 - 2; case 2 - .short _0206ACB6 - _0206AC90 - 2; case 3 - .short _0206ACBC - _0206AC90 - 2; case 4 - .short _0206ACBC - _0206AC90 - 2; case 5 - .short _0206ACBC - _0206AC90 - 2; case 6 - .short _0206ACBC - _0206AC90 - 2; case 7 - .short _0206ACC6 - _0206AC90 - 2; case 8 - .short _0206ACCA - _0206AC90 - 2; case 9 -_0206ACA4: - add r0, sp, #0x0 - ldrb r4, [r0, #0x0] - b _0206ACCC -_0206ACAA: - add r0, sp, #0x0 - ldrb r4, [r0, #0x1] - b _0206ACCC -_0206ACB0: - add r0, sp, #0x0 - ldrb r4, [r0, #0x2] - b _0206ACCC -_0206ACB6: - add r0, sp, #0x0 - ldrb r4, [r0, #0x3] - b _0206ACCC -_0206ACBC: - sub r0, r5, #0x4 - lsl r1, r0, #0x1 - add r0, sp, #0x4 - ldrh r4, [r0, r1] - b _0206ACCC -_0206ACC6: - ldr r4, [sp, #0xc] - b _0206ACCC -_0206ACCA: - ldr r4, [sp, #0x10] -_0206ACCC: - add r0, r4, #0x0 - add sp, #0x34 - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_0206ACD4 -FUN_0206ACD4: ; 0x0206ACD4 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x4] - add r7, r1, #0x0 - ldr r1, [sp, #0x4] - mov r0, #0x3b - add r4, r2, #0x0 - bl GetNarcMemberSizeByIdPair - add r6, r0, #0x0 - mov r0, #0x2 - str r0, [sp, #0x0] - add r0, sp, #0xc - mov r1, #0x89 - mov r2, #0x0 - lsl r3, r5, #0x1 - bl ReadFromNarcMemberByIdPair - mov r0, #0x3b - add r1, r4, #0x0 - bl NARC_ctor - add r4, sp, #0xc - ldrh r2, [r4, #0x0] - str r0, [sp, #0x8] - cmp r2, r6 - beq _0206AD40 -_0206AD0E: - add r0, sp, #0xc - add r0, #0x2 - str r0, [sp, #0x0] - ldr r0, [sp, #0x8] - mov r1, #0x0 - mov r3, #0x4 - bl NARC_ReadFromMember - ldrh r1, [r4, #0x2] - cmp r1, r5 - bne _0206AD30 - ldrh r0, [r4, #0x4] - cmp r0, r7 - bne _0206AD30 - mov r0, #0x1 - str r0, [sp, #0x4] - b _0206AD40 -_0206AD30: - cmp r1, r5 - bne _0206AD40 - ldrh r0, [r4, #0x0] - add r0, r0, #0x4 - strh r0, [r4, #0x0] - ldrh r2, [r4, #0x0] - cmp r2, r6 - bne _0206AD0E -_0206AD40: - ldr r0, [sp, #0x8] - bl NARC_dtor - ldr r0, [sp, #0x4] - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_0206AD4C -FUN_0206AD4C: ; 0x0206AD4C - push {r3-r7, lr} - sub sp, #0x18 - add r6, r0, #0x0 - add r7, r1, #0x0 - mov r0, #0x3b - mov r1, #0x0 - str r2, [sp, #0x4] - str r3, [sp, #0x8] - bl GetNarcMemberSizeByIdPair - add r5, r0, #0x0 - mov r0, #0x2 - str r0, [sp, #0x0] - add r0, sp, #0x10 - mov r1, #0x89 - mov r2, #0x0 - lsl r3, r6, #0x1 - bl ReadFromNarcMemberByIdPair - ldr r1, [sp, #0x8] - mov r0, #0x3b - bl NARC_ctor - add r4, sp, #0x10 - ldrh r2, [r4, #0x0] - str r0, [sp, #0xc] - cmp r2, r5 - beq _0206ADC2 -_0206AD84: - add r0, sp, #0x10 - add r0, #0x2 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - mov r1, #0x0 - mov r3, #0x4 - bl NARC_ReadFromMember - ldrh r0, [r4, #0x2] - cmp r0, r6 - bne _0206ADB6 - ldrh r0, [r4, #0x4] - cmp r0, r7 - bne _0206ADB6 - ldr r0, [sp, #0x4] - add r2, sp, #0x10 - str r0, [sp, #0x0] - ldrh r2, [r2, #0x0] - ldr r1, _0206ADDC ; =0x0000022E - ldr r3, [sp, #0x8] - mov r0, #0x1a - lsr r2, r2, #0x2 - bl ReadMsgData_NewNarc_ExistingString - b _0206ADC2 -_0206ADB6: - ldrh r0, [r4, #0x0] - add r0, r0, #0x4 - strh r0, [r4, #0x0] - ldrh r2, [r4, #0x0] - cmp r2, r5 - bne _0206AD84 -_0206ADC2: - ldr r0, [sp, #0xc] - bl NARC_dtor - add r0, sp, #0x10 - ldrh r0, [r0, #0x0] - cmp r0, r5 - bne _0206ADD6 - ldr r0, [sp, #0x4] - bl StringSetEmpty -_0206ADD6: - add sp, #0x18 - pop {r3-r7, pc} - nop -_0206ADDC: .word 0x0000022E - - thumb_func_start TrainerData_ReadTrData -TrainerData_ReadTrData: ; 0x0206ADE0 - ldr r3, _0206ADEC ; =ReadWholeNarcMemberByIdPair - add r2, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x39 - bx r3 - nop -_0206ADEC: .word ReadWholeNarcMemberByIdPair - - thumb_func_start TrainerData_ReadTrPoke -TrainerData_ReadTrPoke: ; 0x0206ADF0 - ldr r3, _0206ADFC ; =ReadWholeNarcMemberByIdPair - add r2, r0, #0x0 - add r0, r1, #0x0 - mov r1, #0x3a - bx r3 - nop -_0206ADFC: .word ReadWholeNarcMemberByIdPair - - thumb_func_start FUN_0206AE00 -FUN_0206AE00: ; 0x0206AE00 - ldr r1, _0206AE08 ; =UNK_020F8010 - ldrb r0, [r1, r0] - bx lr - nop -_0206AE08: .word UNK_020F8010 - - thumb_func_start LoadTrainerParty -LoadTrainerParty: ; 0x0206AE0C - push {r3-r7, lr} - sub sp, #0x50 - add r7, r1, #0x0 - add r4, r0, #0x0 - add r5, r2, #0x0 - bl GetLCRNGSeed - lsl r6, r7, #0x2 - str r0, [sp, #0x44] - add r0, r4, r6 - ldr r0, [r0, #0x4] - mov r1, #0x6 - bl InitPartyWithMaxSize - add r0, r5, #0x0 - mov r1, #0x60 - bl AllocFromHeap - str r0, [sp, #0x4c] - add r0, r5, #0x0 - bl AllocMonZeroed - str r0, [sp, #0x40] - add r0, r4, r6 - ldr r0, [r0, #0x18] - ldr r1, [sp, #0x4c] - bl TrainerData_ReadTrPoke - mov r0, #0x34 - add r5, r7, #0x0 - mul r5, r0 - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - bl FUN_0206AE00 - cmp r0, #0x1 - bne _0206AE5E - mov r0, #0x78 - str r0, [sp, #0x10] - b _0206AE62 -_0206AE5E: - mov r0, #0x88 - str r0, [sp, #0x10] -_0206AE62: - add r0, r4, r5 - add r0, #0x28 - ldrb r0, [r0, #0x0] - cmp r0, #0x3 - bhi _0206AF26 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0206AE78: ; jump table (using 16-bit offset) - .short _0206AE80 - _0206AE78 - 2; case 0 - .short _0206AF28 - _0206AE78 - 2; case 1 - .short _0206AFE8 - _0206AE78 - 2; case 2 - .short _0206B08C - _0206AE78 - 2; case 3 -_0206AE80: - mov r0, #0x0 - str r0, [sp, #0x48] - add r0, r4, r5 - add r0, #0x2b - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - ble _0206AF26 - ldr r0, [sp, #0x4c] - str r0, [sp, #0x28] - add r0, r4, r6 - str r0, [sp, #0x24] -_0206AE96: - ldr r0, [sp, #0x24] - ldr r2, [sp, #0x28] - ldr r1, [r0, #0x18] - ldr r0, [sp, #0x28] - ldrh r3, [r2, #0x0] - ldrh r2, [r2, #0x2] - ldrh r0, [r0, #0x4] - add r2, r3, r2 - add r0, r0, r2 - add r7, r1, r0 - add r0, r7, #0x0 - bl SetLCRNGSeed - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - ble _0206AECE -_0206AEBC: - bl LCRandom - add r7, r0, #0x0 - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - add r6, r6, #0x1 - cmp r6, r0 - blt _0206AEBC -_0206AECE: - ldr r0, [sp, #0x10] - lsl r1, r7, #0x8 - add r6, r1, r0 - ldr r0, [sp, #0x28] - ldrh r1, [r0, #0x0] - mov r0, #0x1f - mul r0, r1 - mov r1, #0xff - bl _s32_div_f - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - lsl r3, r3, #0x18 - str r6, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x28] - ldrh r1, [r1, #0x4] - ldrh r2, [r2, #0x2] - ldr r0, [sp, #0x40] - lsr r3, r3, #0x18 - bl CreateMon - ldr r0, [sp, #0x24] - ldr r1, [sp, #0x40] - ldr r0, [r0, #0x4] - bl AddMonToParty - ldr r0, [sp, #0x28] - add r0, r0, #0x6 - str r0, [sp, #0x28] - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] - add r0, r4, r5 - add r0, #0x2b - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x48] - cmp r0, r1 - blt _0206AE96 -_0206AF26: - b _0206B156 -_0206AF28: - mov r0, #0x0 - str r0, [sp, #0x18] - add r0, r4, r5 - add r0, #0x2b - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - ble _0206AFE6 - ldr r0, [sp, #0x4c] - str r0, [sp, #0x30] - add r0, r4, r6 - str r0, [sp, #0x2c] -_0206AF3E: - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x30] - ldr r1, [r0, #0x18] - ldr r0, [sp, #0x30] - ldrh r3, [r2, #0x0] - ldrh r2, [r2, #0x2] - ldrh r0, [r0, #0x4] - add r2, r3, r2 - add r0, r0, r2 - add r7, r1, r0 - add r0, r7, #0x0 - bl SetLCRNGSeed - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - ble _0206AF76 -_0206AF64: - bl LCRandom - add r7, r0, #0x0 - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - add r6, r6, #0x1 - cmp r6, r0 - blt _0206AF64 -_0206AF76: - ldr r0, [sp, #0x10] - lsl r1, r7, #0x8 - add r6, r1, r0 - ldr r0, [sp, #0x30] - ldrh r1, [r0, #0x0] - mov r0, #0x1f - mul r0, r1 - mov r1, #0xff - bl _s32_div_f - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - lsl r3, r3, #0x18 - str r6, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r1, [sp, #0x30] - ldr r2, [sp, #0x30] - ldrh r1, [r1, #0x4] - ldrh r2, [r2, #0x2] - ldr r0, [sp, #0x40] - lsr r3, r3, #0x18 - bl CreateMon - ldr r7, [sp, #0x30] - mov r6, #0x0 -_0206AFB0: - ldrh r1, [r7, #0x6] - lsl r2, r6, #0x18 - ldr r0, [sp, #0x40] - lsr r2, r2, #0x18 - bl MonSetMoveInSlot - add r6, r6, #0x1 - add r7, r7, #0x2 - cmp r6, #0x4 - blt _0206AFB0 - ldr r0, [sp, #0x2c] - ldr r1, [sp, #0x40] - ldr r0, [r0, #0x4] - bl AddMonToParty - ldr r0, [sp, #0x30] - add r0, #0xe - str r0, [sp, #0x30] - ldr r0, [sp, #0x18] - add r0, r0, #0x1 - str r0, [sp, #0x18] - add r0, r4, r5 - add r0, #0x2b - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x18] - cmp r0, r1 - blt _0206AF3E -_0206AFE6: - b _0206B156 -_0206AFE8: - mov r0, #0x0 - str r0, [sp, #0x1c] - add r0, r4, r5 - add r0, #0x2b - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - ble _0206B08A - add r0, r4, r6 - ldr r7, [sp, #0x4c] - str r0, [sp, #0x34] -_0206AFFC: - ldr r0, [sp, #0x34] - ldrh r3, [r7, #0x0] - ldrh r2, [r7, #0x2] - ldr r1, [r0, #0x18] - ldrh r0, [r7, #0x4] - add r2, r3, r2 - add r0, r0, r2 - add r0, r1, r0 - str r0, [sp, #0x14] - bl SetLCRNGSeed - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - ble _0206B030 -_0206B01E: - bl LCRandom - str r0, [sp, #0x14] - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - add r6, r6, #0x1 - cmp r6, r0 - blt _0206B01E -_0206B030: - ldr r0, [sp, #0x14] - lsl r1, r0, #0x8 - ldr r0, [sp, #0x10] - add r6, r1, r0 - ldrh r1, [r7, #0x0] - mov r0, #0x1f - mul r0, r1 - mov r1, #0xff - bl _s32_div_f - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - lsl r3, r3, #0x18 - str r6, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - ldrh r1, [r7, #0x4] - ldrh r2, [r7, #0x2] - ldr r0, [sp, #0x40] - lsr r3, r3, #0x18 - bl CreateMon - ldr r0, [sp, #0x40] - mov r1, #0x6 - add r2, r7, #0x6 - bl SetMonData - ldr r0, [sp, #0x34] - ldr r1, [sp, #0x40] - ldr r0, [r0, #0x4] - bl AddMonToParty - ldr r0, [sp, #0x1c] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1c] - add r0, r4, r5 - add r0, #0x2b - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x1c] - cmp r0, r1 - blt _0206AFFC -_0206B08A: - b _0206B156 -_0206B08C: - mov r0, #0x0 - str r0, [sp, #0x20] - add r0, r4, r5 - add r0, #0x2b - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - ble _0206B156 - ldr r0, [sp, #0x4c] - str r0, [sp, #0x3c] - add r0, r4, r6 - str r0, [sp, #0x38] -_0206B0A2: - ldr r0, [sp, #0x38] - ldr r2, [sp, #0x3c] - ldr r1, [r0, #0x18] - ldr r0, [sp, #0x3c] - ldrh r3, [r2, #0x0] - ldrh r2, [r2, #0x2] - ldrh r0, [r0, #0x4] - add r2, r3, r2 - add r0, r0, r2 - add r7, r1, r0 - add r0, r7, #0x0 - bl SetLCRNGSeed - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - ble _0206B0DA -_0206B0C8: - bl LCRandom - add r7, r0, #0x0 - add r0, r4, r5 - add r0, #0x29 - ldrb r0, [r0, #0x0] - add r6, r6, #0x1 - cmp r6, r0 - blt _0206B0C8 -_0206B0DA: - ldr r0, [sp, #0x10] - lsl r1, r7, #0x8 - add r6, r1, r0 - ldr r0, [sp, #0x3c] - ldrh r1, [r0, #0x0] - mov r0, #0x1f - mul r0, r1 - mov r1, #0xff - bl _s32_div_f - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - lsl r3, r3, #0x18 - str r6, [sp, #0x4] - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r1, [sp, #0x3c] - ldr r2, [sp, #0x3c] - ldrh r1, [r1, #0x4] - ldrh r2, [r2, #0x2] - ldr r0, [sp, #0x40] - lsr r3, r3, #0x18 - bl CreateMon - ldr r2, [sp, #0x3c] - ldr r0, [sp, #0x40] - mov r1, #0x6 - add r2, r2, #0x6 - bl SetMonData - ldr r7, [sp, #0x3c] - mov r6, #0x0 -_0206B120: - ldrh r1, [r7, #0x8] - lsl r2, r6, #0x18 - ldr r0, [sp, #0x40] - lsr r2, r2, #0x18 - bl MonSetMoveInSlot - add r6, r6, #0x1 - add r7, r7, #0x2 - cmp r6, #0x4 - blt _0206B120 - ldr r0, [sp, #0x38] - ldr r1, [sp, #0x40] - ldr r0, [r0, #0x4] - bl AddMonToParty - ldr r0, [sp, #0x3c] - add r0, #0x10 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x20] - add r0, r0, #0x1 - str r0, [sp, #0x20] - add r0, r4, r5 - add r0, #0x2b - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x20] - cmp r0, r1 - blt _0206B0A2 -_0206B156: - ldr r0, [sp, #0x4c] - bl FreeToHeap - ldr r0, [sp, #0x40] - bl FreeToHeap - ldr r0, [sp, #0x44] - bl SetLCRNGSeed - add sp, #0x50 - pop {r3-r7, pc} diff --git a/arm9/global.inc b/arm9/global.inc index c039fd35..2f9c965b 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4837,13 +4837,13 @@ .extern GetWazaAttr .extern WazaGetMaxPp .extern GetAttrFromWazaTbl -.extern FUN_0206ABC4 +.extern EnemyTrainerSet_Init .extern TrainerData_GetAttr -.extern FUN_0206ACD4 -.extern FUN_0206AD4C +.extern TrainerMessageWithIdPairExists +.extern GetTrainerMessageByIdPair .extern TrainerData_ReadTrData .extern TrainerData_ReadTrPoke -.extern FUN_0206AE00 +.extern TrainerClass_GetGenderOrTrainerCount .extern PCStorage_init .extern PCStorage_sizeof .extern PCStorage_PlaceMonInFirstEmptySlotInAnyBox diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 2af29137..f20313a9 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -5094,7 +5094,7 @@ _0223BC5A: str r0, [r1, #0x20] ldr r0, [sp, #0x2c] ldr r1, [r5, #0xc] - bl FUN_0206ABC4 + bl EnemyTrainerSet_Init add r0, sp, #0x30 str r0, [sp] ldr r1, [sp, #0x20] @@ -5531,7 +5531,7 @@ _0223BFFE: str r0, [r1, #0x20] ldr r0, [sp, #0x24] ldr r1, [r5, #0xc] - bl FUN_0206ABC4 + bl EnemyTrainerSet_Init add r0, sp, #0x28 str r0, [sp] ldr r1, [sp, #0x18] @@ -5841,7 +5841,7 @@ _0223C2A2: str r0, [r1, #0x20] ldr r0, [r4] ldr r1, [r5, #0xc] - bl FUN_0206ABC4 + bl EnemyTrainerSet_Init add r0, sp, #0x28 str r0, [sp] ldr r1, [sp, #0x1c] diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 2659dd5c..05283e3d 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -5049,7 +5049,7 @@ MOD07_02214720: ; 0x02214720 add r0, r1, r0 add r0, #0x29 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0x10] ldr r0, [r4, #0x24] mov r1, #0x10 @@ -5101,7 +5101,7 @@ _022147BC: add r0, r1, r0 add r0, #0x29 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0x14] ldr r0, [r4, #0x24] mov r1, #0x10 @@ -5134,7 +5134,7 @@ _02214808: add r0, r1, r0 add r0, #0x29 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0x18] ldr r0, [r4, #0x24] mov r1, #0x10 @@ -5167,7 +5167,7 @@ _02214854: add r0, r1, r0 add r0, #0x29 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0x1c] ldr r0, [r4, #0x24] mov r1, #0x10 @@ -5205,12 +5205,12 @@ _022148A0: bne _022148EA add r0, #0x5d ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #8] ldr r0, [r4] add r0, #0xc5 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0xc] ldr r0, [r4, #0x18] add r1, r5, #0 @@ -5224,12 +5224,12 @@ _022148A0: _022148EA: add r0, #0x29 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #8] ldr r0, [r4] add r0, #0x91 ldrb r0, [r0] - bl FUN_0206AE00 + bl TrainerClass_GetGenderOrTrainerCount str r0, [sp, #0xc] ldr r0, [r4, #0x14] add r1, r5, #0 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index a962fbf2..0c87c27f 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -4914,7 +4914,7 @@ _0223174C: add r0, r4, #0 add r1, r7, #0 mov r3, #5 - bl FUN_0206AD4C + bl GetTrainerMessageByIdPair add r0, r6, #0 mov r1, #0xff bl FUN_02019620 @@ -45181,7 +45181,7 @@ _022452F8: ldr r0, [sp, #8] mov r1, #0xd mov r2, #5 - bl FUN_0206ACD4 + bl TrainerMessageWithIdPairExists cmp r0, #0 beq _02245334 mov r1, #0x85 @@ -45219,7 +45219,7 @@ _0224533C: ldr r0, [sp, #8] mov r1, #0xe mov r2, #5 - bl FUN_0206ACD4 + bl TrainerMessageWithIdPairExists cmp r0, #0 beq _0224537C ldr r1, _0224548C ; =0x00002E7D @@ -45276,7 +45276,7 @@ _022453C6: ldr r0, [sp, #8] mov r1, #0xf mov r2, #5 - bl FUN_0206ACD4 + bl TrainerMessageWithIdPairExists cmp r0, #0 beq _022453F0 ldr r1, _0224548C ; =0x00002E7D @@ -45340,7 +45340,7 @@ _0224543A: ldr r0, [sp, #8] mov r1, #0x10 mov r2, #5 - bl FUN_0206ACD4 + bl TrainerMessageWithIdPairExists cmp r0, #0 beq _02245472 ldr r1, _0224548C ; =0x00002E7D diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 48b1a225..7931ba51 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -3711,7 +3711,7 @@ int FUN_0206AA30(int x) case TRAINER_CLASS_PKMN_TRAINER_POKEKID: return x - TRAINER_CLASS_COMMANDER_JUPITER; default: - if (FUN_0206AE00(x) == 1) + if (TrainerClass_GetGenderOrTrainerCount(x) == 1) return 1; else return 0; diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c new file mode 100644 index 00000000..7c52a78f --- /dev/null +++ b/arm9/src/trainer_data.c @@ -0,0 +1,403 @@ +#include "global.h" +#include "heap.h" +#include "trainer_data.h" +#include "math_util.h" +#include "party.h" +#include "proto.h" +#include "msgdata.h" +#include "constants/trainer_classes.h" + +#pragma thumb on + +extern void * FUN_02024EC0(struct SaveBlock2 *); +extern u16 * FUN_02024EE8(void *); + +// Loads all battle opponents, including multi-battle partner if exists. +void EnemyTrainerSet_Init(struct EnemyTrainerSet * enemies, struct SaveBlock2 * sav2, u32 heap_id) +{ + struct TrainerDataLoaded trdata; + struct MsgData * msgData; + u16 * rivalName; + s32 i; + struct String * str; + + // FIXME: String formatting in files/msgdata/msg/narc_0559.txt is abnormal. + msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, heap_id); + rivalName = FUN_02024EE8(FUN_02024EC0(sav2)); + for (i = 0; i < 4; i++) + { + if (enemies->trainer_idxs[i] != 0) + { + TrainerData_ReadTrData(enemies->trainer_idxs[i], &trdata.data); + enemies->datas[i] = trdata; + if (trdata.data.trainerClass == TRAINER_CLASS_PKMN_TRAINER_BARRY) + { + CopyU16StringArray(enemies->datas[i].name, rivalName); + } + else + { + str = NewString_ReadMsgData(msgData, enemies->trainer_idxs[i]); + CopyStringToU16Array(str, enemies->datas[i].name, OT_NAME_LENGTH + 1); + String_dtor(str); + } + CreateNPCTrainerParty(enemies, i, heap_id); + } + } + enemies->flags |= trdata.data.doubleBattle; + DestroyMsgData(msgData); +} + +s32 TrainerData_GetAttr(u32 tr_idx, u32 attr_no) +{ + struct TrainerDataLoaded trainer; + s32 ret; + + TrainerData_ReadTrData(tr_idx, &trainer.data); + switch (attr_no) + { + case 0: + ret = trainer.data.trainerType; + break; + case 1: + ret = trainer.data.trainerClass; + break; + case 2: + ret = trainer.data.unk_2; + break; + case 3: + ret = trainer.data.npoke; + break; + case 4: + case 5: + case 6: + case 7: + attr_no -= 4; + ret = trainer.data.items[attr_no]; + break; + case 8: + ret = (s32)trainer.data.unk_C; + break; + case 9: + ret = (s32)trainer.data.doubleBattle; + break; + } + return ret; // UB: uninitialized in event of invalid attr +} + +// Relevant files: +// files/poketool/trmsg/trtbl.narc +// files/poketool/trmsg/trtblofs.narc +// files/msgdata/msg/narc_0558.txt +// trtbl is a single-member NARC whose entries are two shorts each. The first short +// designates the trainer ID and the second the message ID. They are ordered the same +// as the corresponding msgdata file. All messages for a given trainer are found together, +// however the trainers are not in order in this file. trtblofs gives a pointer into trtbl +// for each trainer. trtblofs is also a single-member NARC whose entries are shorts, one +// per NPC trainer. +BOOL TrainerMessageWithIdPairExists(u32 trainer_idx, u32 msg_id, u32 heap_id) +{ + u16 rdbuf[3]; + struct NARC * trTblNarc; + BOOL ret = FALSE; + u32 trTblSize; + + trTblSize = GetNarcMemberSizeByIdPair(NARC_POKETOOL_TRMSG_TRTBL, 0); + ReadFromNarcMemberByIdPair(&rdbuf[0], NARC_POKETOOL_TRMSG_TRTBLOFS, 0, trainer_idx * 2, 2); + trTblNarc = NARC_ctor(NARC_POKETOOL_TRMSG_TRTBL, heap_id); + while (rdbuf[0] != trTblSize) + { + NARC_ReadFromMember(trTblNarc, 0, rdbuf[0], 4, &rdbuf[1]); + if (rdbuf[1] == trainer_idx && rdbuf[2] == msg_id) + { + ret = TRUE; + break; + } + if (rdbuf[1] != trainer_idx) + break; + rdbuf[0] += 4; + } + NARC_dtor(trTblNarc); + return ret; +} + +void GetTrainerMessageByIdPair(u32 trainer_idx, u32 msg_id, struct String * str, u32 heap_id) +{ + u16 rdbuf[3]; + u32 trTblSize; + struct NARC * trTblNarc; + + trTblSize = GetNarcMemberSizeByIdPair(NARC_POKETOOL_TRMSG_TRTBL, 0); + ReadFromNarcMemberByIdPair(&rdbuf[0], NARC_POKETOOL_TRMSG_TRTBLOFS, 0, trainer_idx * 2, 2); + trTblNarc = NARC_ctor(NARC_POKETOOL_TRMSG_TRTBL, heap_id); + while (rdbuf[0] != trTblSize) + { + NARC_ReadFromMember(trTblNarc, 0, rdbuf[0], 4, &rdbuf[1]); + if (rdbuf[1] == trainer_idx && rdbuf[2] == msg_id) + { + ReadMsgData_NewNarc_ExistingString(NARC_MSGDATA_MSG, 558, (u32)(rdbuf[0] / 4), heap_id, str); + break; + } + rdbuf[0] += 4; + } + NARC_dtor(trTblNarc); + if (rdbuf[0] == trTblSize) + StringSetEmpty(str); +} + +void TrainerData_ReadTrData(u32 idx, struct TrainerData * dest) +{ + ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_TRAINER_TRDATA, (s32)idx); +} + +void TrainerData_ReadTrPoke(u32 idx, union TrainerMon * dest) +{ + ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_TRAINER_TRPOKE, (s32)idx); +} + +const u8 sTrainerClassGenderCountTbl[] = { + /*TRAINER_CLASS_PKMN_TRAINER_M*/ 0, + /*TRAINER_CLASS_PKMN_TRAINER_F*/ 1, + /*TRAINER_CLASS_YOUNGSTER*/ 0, + /*TRAINER_CLASS_LASS*/ 1, + /*TRAINER_CLASS_CAMPER*/ 0, + /*TRAINER_CLASS_PICNICKER*/ 1, + /*TRAINER_CLASS_BUG_CATCHER*/ 0, + /*TRAINER_CLASS_AROMA_LADY*/ 1, + /*TRAINER_CLASS_TWINS*/ 1, + /*TRAINER_CLASS_HIKER*/ 0, + /*TRAINER_CLASS_BATTLE_GIRL*/ 1, + /*TRAINER_CLASS_FISHERMAN*/ 0, + /*TRAINER_CLASS_CYCLIST_M*/ 0, + /*TRAINER_CLASS_CYCLIST_F*/ 1, + /*TRAINER_CLASS_BLACK_BELT*/ 0, + /*TRAINER_CLASS_ARTIST*/ 0, + /*TRAINER_CLASS_PKMN_BREEDER_M*/ 0, + /*TRAINER_CLASS_PKMN_BREEDER_F*/ 1, + /*TRAINER_CLASS_COWGIRL*/ 1, + /*TRAINER_CLASS_JOGGER*/ 0, + /*TRAINER_CLASS_POKEFAN_M*/ 0, + /*TRAINER_CLASS_POKEFAN_F*/ 1, + /*TRAINER_CLASS_POKE_KID*/ 1, + /*TRAINER_CLASS_YOUNG_COUPLE*/ 2, + /*TRAINER_CLASS_ACE_TRAINER_M*/ 0, + /*TRAINER_CLASS_ACE_TRAINER_F*/ 1, + /*TRAINER_CLASS_WAITRESS*/ 1, + /*TRAINER_CLASS_VETERAN*/ 0, + /*TRAINER_CLASS_NINJA_BOY*/ 0, + /*TRAINER_CLASS_DRAGON_TAMER*/ 0, + /*TRAINER_CLASS_BIRD_KEEPER*/ 1, + /*TRAINER_CLASS_DOUBLE_TEAM*/ 2, + /*TRAINER_CLASS_RICH_BOY*/ 0, + /*TRAINER_CLASS_LADY*/ 1, + /*TRAINER_CLASS_GENTLEMAN*/ 0, + /*TRAINER_CLASS_SOCIALITE*/ 1, + /*TRAINER_CLASS_BEAUTY*/ 1, + /*TRAINER_CLASS_COLLECTOR*/ 0, + /*TRAINER_CLASS_POLICEMAN*/ 0, + /*TRAINER_CLASS_PKMN_RANGER_M*/ 0, + /*TRAINER_CLASS_PKMN_RANGER_F*/ 1, + /*TRAINER_CLASS_SCIENTIST*/ 0, + /*TRAINER_CLASS_SWIMMER_M*/ 0, + /*TRAINER_CLASS_SWIMMER_F*/ 1, + /*TRAINER_CLASS_TUBER_M*/ 0, + /*TRAINER_CLASS_TUBER_F*/ 1, + /*TRAINER_CLASS_SAILOR*/ 0, + /*TRAINER_CLASS_SIS_AND_BRO*/ 2, + /*TRAINER_CLASS_RUIN_MANIAC*/ 0, + /*TRAINER_CLASS_PSYCHIC_M*/ 0, + /*TRAINER_CLASS_PSYCHIC_F*/ 1, + /*TRAINER_CLASS_PI*/ 0, + /*TRAINER_CLASS_GUITARIST*/ 0, + /*TRAINER_CLASS_ACE_TRAINER_SNOW_M*/ 0, + /*TRAINER_CLASS_ACE_TRAINER_SNOW_F*/ 1, + /*TRAINER_CLASS_SKIER_M*/ 0, + /*TRAINER_CLASS_SKIER_F*/ 1, + /*TRAINER_CLASS_ROUGHNECK*/ 0, + /*TRAINER_CLASS_CLOWN*/ 0, + /*TRAINER_CLASS_WORKER*/ 0, + /*TRAINER_CLASS_SCHOOL_KID_M*/ 0, + /*TRAINER_CLASS_SCHOOL_KID_F*/ 1, + /*TRAINER_CLASS_LEADER_ROARK*/ 0, + /*TRAINER_CLASS_PKMN_TRAINER_BARRY*/ 0, + /*TRAINER_CLASS_LEADER_BYRON*/ 0, + /*TRAINER_CLASS_ELITE_FOUR_AARON*/ 0, + /*TRAINER_CLASS_ELITE_FOUR_BERTHA*/ 1, + /*TRAINER_CLASS_ELITE_FOUR_FLINT*/ 0, + /*TRAINER_CLASS_ELITE_FOUR_LUCIEN*/ 0, + /*TRAINER_CLASS_CHAMPION*/ 1, + /*TRAINER_CLASS_BELLE__PA*/ 2, + /*TRAINER_CLASS_RANCHER*/ 0, + /*TRAINER_CLASS_COMMANDER_MARS*/ 1, + /*TRAINER_CLASS_GALACTIC*/ 0, + /*TRAINER_CLASS_LEADER_GARDENIA*/ 1, + /*TRAINER_CLASS_LEADER_WAKE*/ 0, + /*TRAINER_CLASS_LEADER_MAYLENE*/ 1, + /*TRAINER_CLASS_LEADER_FANTINA*/ 1, + /*TRAINER_CLASS_LEADER_CANDICE*/ 1, + /*TRAINER_CLASS_LEADER_VOLKNER*/ 0, + /*TRAINER_CLASS_PARASOL_LADY*/ 1, + /*TRAINER_CLASS_WAITER*/ 0, + /*TRAINER_CLASS_INTERVIEWERS*/ 2, + /*TRAINER_CLASS_CAMERAMAN*/ 0, + /*TRAINER_CLASS_REPORTER*/ 1, + /*TRAINER_CLASS_IDOL*/ 1, + /*TRAINER_CLASS_GALACTIC_BOSS*/ 0, + /*TRAINER_CLASS_COMMANDER_JUPITER*/ 1, + /*TRAINER_CLASS_COMMANDER_SATURN*/ 1, + /*TRAINER_CLASS_GALACTIC_F*/ 1, + /*TRAINER_CLASS_PKMN_TRAINER_AROMA_LADY*/ 1, + /*TRAINER_CLASS_PKMN_TRAINER_RICH_BOY*/ 0, + /*TRAINER_CLASS_PKMN_TRAINER_PICNICKER*/ 1, + /*TRAINER_CLASS_PKMN_TRAINER_CAMPER*/ 0, + /*TRAINER_CLASS_PKMN_TRAINER_POKEKID*/ 1, + /*TRAINER_CLASS_PKMN_TRAINER_LUCAS*/ 0, + /*TRAINER_CLASS_PKMN_TRAINER_DAWN*/ 1, + /*TRAINER_CLASS_TOWER_TYCOON*/ 0 +}; + +// Returns 0 for male, 1 for female, 2 for doubles. See above vector. +int TrainerClass_GetGenderOrTrainerCount(int a0) +{ + return sTrainerClassGenderCountTbl[a0]; +} + +void CreateNPCTrainerParty(struct EnemyTrainerSet * enemies, s32 party_id, u32 heap_id) +{ + union TrainerMon * data; + s32 i; + s32 j; + u32 seed_bak; + struct Pokemon * pokemon; + struct TrainerMonSpeciesItemMoves * monSpeciesItemMoves; + struct TrainerMonSpeciesItem * monSpeciesItem; + struct TrainerMonSpeciesMoves * monSpeciesMoves; + struct TrainerMonSpecies * monSpecies; + u32 seed; + u32 personality; + u8 iv; + u32 pid_gender; + + // We abuse the RNG for personality value generation, so back up the overworld + // state + seed_bak = GetLCRNGSeed(); + InitPartyWithMaxSize(enemies->parties[party_id], PARTY_SIZE); + data = (union TrainerMon *)AllocFromHeap(heap_id, sizeof(union TrainerMon) * PARTY_SIZE); + pokemon = AllocMonZeroed(heap_id); + TrainerData_ReadTrPoke(enemies->trainer_idxs[party_id], data); + + // If a Pokemon's gender ratio is 50/50, the generated Pokemon will be the same + // gender as its trainer. Otherwise, it will assume the more abundant gender + // according to its species gender ratio. In double battles, the behavior is + // identical to that of a solitary male opponent. + pid_gender = (u32)((TrainerClass_GetGenderOrTrainerCount(enemies->datas[party_id].data.trainerClass) == 1) ? 0x78 : 0x88); + + // The trainer types can be more efficiently and expandibly treated as a flag + // array, with bit 0 being custom moveset and bit 1 being held item. + // Nintendo didn't do it that way, instead using a switch statement and a lot + // of code duplication. This has been the case since the 2nd generation games. + switch (enemies->datas[party_id].data.trainerType) + { + case TRTYPE_MON: + { + monSpecies = &data->species; + for (i = 0; i < enemies->datas[party_id].data.npoke; i++) + { + // Generate personality by seeding with a value based on the difficulty, + // level, species, and opponent ID. Roll the RNG N times, where N is + // the index of its trainer class. Finally, left shift the 16-bit + // pseudorandom value and add the gender selector. + // This guarantees that NPC trainers' Pokemon are generated in a + // consistent manner between attempts. + seed = monSpecies[i].difficulty + monSpecies[i].level + monSpecies[i].species + enemies->trainer_idxs[party_id]; + SetLCRNGSeed(seed); + for (j = 0; j < enemies->datas[party_id].data.trainerClass; j++) + { + seed = LCRandom(); + } + personality = (seed << 8); + personality += pid_gender; + + // Difficulty is a number between 0 and 250 which directly corresponds + // to the (uniform) IV spread of the generated Pokemon. + iv = (u8)((monSpecies[i].difficulty * 31) / 255); + CreateMon(pokemon, monSpecies[i].species, monSpecies[i].level, iv, 1, (s32)personality, 2, 0); + + // If you were treating the trainer type as a bitfield, you'd put the + // checks for held item and moves here. You'd also treat the trpoke + // data as a flat u16 array rather than an array of fixed-width structs. + AddMonToParty(enemies->parties[party_id], pokemon); + } + break; + } + case TRTYPE_MON_MOVES: + { + monSpeciesMoves = &data->species_moves; + for (i = 0; i < enemies->datas[party_id].data.npoke; i++) + { + seed = monSpeciesMoves[i].difficulty + monSpeciesMoves[i].level + monSpeciesMoves[i].species + enemies->trainer_idxs[party_id]; + SetLCRNGSeed(seed); + for (j = 0; j < enemies->datas[party_id].data.trainerClass; j++) + { + seed = LCRandom(); + } + personality = (seed << 8); + personality += pid_gender; + iv = (u8)((monSpeciesMoves[i].difficulty * 31) / 255); + CreateMon(pokemon, monSpeciesMoves[i].species, monSpeciesMoves[i].level, iv, 1, (s32)personality, 2, 0); + for (j = 0; j < 4; j++) + { + MonSetMoveInSlot(pokemon, monSpeciesMoves[i].moves[j], (u8)j); + } + AddMonToParty(enemies->parties[party_id], pokemon); + } + break; + } + case TRTYPE_MON_ITEM: + { + monSpeciesItem = &data->species_item; + for (i = 0; i < enemies->datas[party_id].data.npoke; i++) + { + seed = monSpeciesItem[i].difficulty + monSpeciesItem[i].level + monSpeciesItem[i].species + enemies->trainer_idxs[party_id]; + SetLCRNGSeed(seed); + for (j = 0; j < enemies->datas[party_id].data.trainerClass; j++) + { + seed = LCRandom(); + } + personality = (seed << 8); + personality += pid_gender; + iv = (u8)((monSpeciesItem[i].difficulty * 31) / 255); + CreateMon(pokemon, monSpeciesItem[i].species, monSpeciesItem[i].level, iv, 1, (s32)personality, 2, 0); + SetMonData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItem[i].item); + AddMonToParty(enemies->parties[party_id], pokemon); + } + break; + } + case TRTYPE_MON_ITEM_MOVES: + { + monSpeciesItemMoves = &data->species_item_moves; + for (i = 0; i < enemies->datas[party_id].data.npoke; i++) + { + seed = monSpeciesItemMoves[i].difficulty + monSpeciesItemMoves[i].level + monSpeciesItemMoves[i].species + enemies->trainer_idxs[party_id]; + SetLCRNGSeed(seed); + for (j = 0; j < enemies->datas[party_id].data.trainerClass; j++) + { + seed = LCRandom(); + } + personality = (seed << 8); + personality += pid_gender; + iv = (u8)((monSpeciesItemMoves[i].difficulty * 31) / 255); + CreateMon(pokemon, monSpeciesItemMoves[i].species, monSpeciesItemMoves[i].level, iv, 1, (s32)personality, 2, 0); + SetMonData(pokemon, MON_DATA_HELD_ITEM, &monSpeciesItemMoves[i].item); + for (j = 0; j < 4; j++) + { + MonSetMoveInSlot(pokemon, monSpeciesItemMoves[i].moves[j], (u8)j); + } + AddMonToParty(enemies->parties[party_id], pokemon); + } + break; + } + } + FreeToHeap(data); + FreeToHeap(pokemon); + SetLCRNGSeed(seed_bak); +} diff --git a/files/poketool/trainer/trdata.json b/files/poketool/trainer/trdata.json index 81b05ddd..e666bb53 100644 --- a/files/poketool/trainer/trdata.json +++ b/files/poketool/trainer/trdata.json @@ -7,7 +7,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -23,7 +23,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -39,7 +39,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -60,7 +60,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -81,7 +81,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -97,7 +97,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -113,7 +113,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -129,7 +129,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -145,7 +145,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -161,7 +161,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -182,7 +182,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -198,7 +198,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -214,7 +214,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -235,7 +235,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -256,7 +256,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -277,7 +277,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -297,7 +297,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -327,7 +327,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -358,7 +358,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -374,7 +374,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -390,7 +390,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -406,7 +406,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -447,7 +447,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -463,7 +463,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -489,7 +489,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -505,7 +505,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -521,7 +521,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -542,7 +542,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -558,7 +558,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -574,7 +574,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -595,7 +595,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -611,7 +611,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -632,7 +632,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -658,7 +658,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -679,7 +679,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -700,7 +700,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -731,7 +731,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -752,7 +752,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -773,7 +773,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -794,7 +794,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -820,7 +820,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -836,7 +836,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -852,7 +852,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -873,7 +873,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -894,7 +894,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -915,7 +915,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -941,7 +941,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -967,7 +967,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1003,7 +1003,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1019,7 +1019,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1035,7 +1035,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1051,7 +1051,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1067,7 +1067,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1083,7 +1083,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1099,7 +1099,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -1120,7 +1120,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1146,7 +1146,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1172,7 +1172,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1188,7 +1188,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1204,7 +1204,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1220,7 +1220,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1236,7 +1236,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1252,7 +1252,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1268,7 +1268,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1284,7 +1284,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -1305,7 +1305,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1347,7 +1347,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1378,7 +1378,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -1421,7 +1421,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -1437,7 +1437,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1468,7 +1468,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1489,7 +1489,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1505,7 +1505,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1521,7 +1521,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1542,7 +1542,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 50, @@ -1563,7 +1563,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1579,7 +1579,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1595,7 +1595,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1621,7 +1621,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -1647,7 +1647,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1668,7 +1668,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1686,7 +1686,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1704,7 +1704,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1722,7 +1722,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1740,7 +1740,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1756,7 +1756,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1772,7 +1772,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1788,7 +1788,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1809,7 +1809,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1830,7 +1830,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1851,7 +1851,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1867,7 +1867,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1888,7 +1888,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1919,7 +1919,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1940,7 +1940,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1961,7 +1961,7 @@ "unk2": 0, "items": [], "unkC": 0, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -1982,7 +1982,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -1998,7 +1998,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2014,7 +2014,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2036,7 +2036,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2052,7 +2052,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2068,7 +2068,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2089,7 +2089,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2115,7 +2115,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2136,7 +2136,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2157,7 +2157,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2178,7 +2178,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2204,7 +2204,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2226,7 +2226,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2242,7 +2242,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2263,7 +2263,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2289,7 +2289,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -2310,7 +2310,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2336,7 +2336,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2352,7 +2352,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2368,7 +2368,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2384,7 +2384,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2400,7 +2400,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2416,7 +2416,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2437,7 +2437,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2463,7 +2463,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -2501,7 +2501,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2517,7 +2517,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2533,7 +2533,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2549,7 +2549,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2565,7 +2565,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2581,7 +2581,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -2607,7 +2607,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -2623,7 +2623,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -2649,7 +2649,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2665,7 +2665,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2681,7 +2681,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2714,7 +2714,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2758,7 +2758,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2780,7 +2780,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2824,7 +2824,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2850,7 +2850,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2866,7 +2866,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2887,7 +2887,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -2903,7 +2903,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2947,7 +2947,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -2980,7 +2980,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3011,7 +3011,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3032,7 +3032,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3053,7 +3053,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3069,7 +3069,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3100,7 +3100,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3121,7 +3121,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -3147,7 +3147,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3163,7 +3163,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3179,7 +3179,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3195,7 +3195,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3211,7 +3211,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3232,7 +3232,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3268,7 +3268,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -3289,7 +3289,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3305,7 +3305,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3321,7 +3321,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3337,7 +3337,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3363,7 +3363,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3379,7 +3379,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3400,7 +3400,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3431,7 +3431,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3452,7 +3452,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3496,7 +3496,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -3517,7 +3517,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3538,7 +3538,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3554,7 +3554,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3580,7 +3580,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3596,7 +3596,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -3628,7 +3628,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -3669,7 +3669,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3695,7 +3695,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3716,7 +3716,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3747,7 +3747,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3773,7 +3773,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3789,7 +3789,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3805,7 +3805,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3821,7 +3821,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3837,7 +3837,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3863,7 +3863,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3879,7 +3879,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -3900,7 +3900,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3921,7 +3921,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3937,7 +3937,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3958,7 +3958,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -3984,7 +3984,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4000,7 +4000,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4026,7 +4026,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4042,7 +4042,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4063,7 +4063,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4089,7 +4089,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4110,7 +4110,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4131,7 +4131,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4147,7 +4147,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4178,7 +4178,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4198,7 +4198,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4214,7 +4214,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4230,7 +4230,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4246,7 +4246,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4262,7 +4262,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4288,7 +4288,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4314,7 +4314,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4335,7 +4335,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4351,7 +4351,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4370,7 +4370,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4389,7 +4389,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -4410,7 +4410,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4426,7 +4426,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4442,7 +4442,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4458,7 +4458,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4474,7 +4474,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4490,7 +4490,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4506,7 +4506,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4522,7 +4522,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4538,7 +4538,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4554,7 +4554,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4570,7 +4570,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4586,7 +4586,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4602,7 +4602,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4618,7 +4618,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4634,7 +4634,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4650,7 +4650,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -4671,7 +4671,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4715,7 +4715,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4737,7 +4737,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4770,7 +4770,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4803,7 +4803,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -4847,7 +4847,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -4880,7 +4880,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4896,7 +4896,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -4922,7 +4922,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -4955,7 +4955,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -4976,7 +4976,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5002,7 +5002,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5023,7 +5023,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -5044,7 +5044,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -5065,7 +5065,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5081,7 +5081,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5097,7 +5097,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -5141,7 +5141,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5157,7 +5157,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5173,7 +5173,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5189,7 +5189,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5209,7 +5209,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5242,7 +5242,7 @@ "ITEM_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -5282,7 +5282,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -5311,7 +5311,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -5340,7 +5340,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -5372,7 +5372,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -5419,7 +5419,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5435,7 +5435,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5451,7 +5451,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5467,7 +5467,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5483,7 +5483,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5499,7 +5499,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5540,7 +5540,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5561,7 +5561,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -5577,7 +5577,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5618,7 +5618,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5641,7 +5641,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -5715,7 +5715,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -5789,7 +5789,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -5863,7 +5863,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -5934,7 +5934,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -5950,7 +5950,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -5996,7 +5996,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -6079,7 +6079,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6112,7 +6112,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6134,7 +6134,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6178,7 +6178,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6210,7 +6210,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6236,7 +6236,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6262,7 +6262,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6288,7 +6288,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6314,7 +6314,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6340,7 +6340,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -6361,7 +6361,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -6392,7 +6392,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6425,7 +6425,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6469,7 +6469,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6501,7 +6501,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -6533,7 +6533,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6555,7 +6555,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6588,7 +6588,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -6621,7 +6621,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -6643,7 +6643,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -6675,7 +6675,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6696,7 +6696,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6717,7 +6717,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -6738,7 +6738,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6754,7 +6754,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6780,7 +6780,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -6821,7 +6821,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -6842,7 +6842,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -6875,7 +6875,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -6904,7 +6904,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -6924,7 +6924,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -6945,7 +6945,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -6966,7 +6966,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -6982,7 +6982,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7003,7 +7003,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7035,7 +7035,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7057,7 +7057,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7078,7 +7078,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7094,7 +7094,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7110,7 +7110,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7136,7 +7136,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7152,7 +7152,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -7190,7 +7190,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -7228,7 +7228,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -7250,7 +7250,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -7281,7 +7281,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -7302,7 +7302,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 40, @@ -7327,7 +7327,7 @@ "ITEM_SUPER_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -7377,7 +7377,7 @@ "ITEM_SUPER_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -7427,7 +7427,7 @@ "ITEM_HYPER_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -7477,7 +7477,7 @@ "ITEM_HYPER_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -7527,7 +7527,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -7589,7 +7589,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -7648,7 +7648,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7664,7 +7664,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7685,7 +7685,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7711,7 +7711,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7741,7 +7741,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7762,7 +7762,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7783,7 +7783,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7804,7 +7804,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7820,7 +7820,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7850,7 +7850,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7881,7 +7881,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -7912,7 +7912,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7933,7 +7933,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7954,7 +7954,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7970,7 +7970,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -7986,7 +7986,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8002,7 +8002,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8018,7 +8018,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8039,7 +8039,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8070,7 +8070,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8092,7 +8092,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8114,7 +8114,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -8133,7 +8133,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8165,7 +8165,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8187,7 +8187,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -8206,7 +8206,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8222,7 +8222,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8238,7 +8238,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8259,7 +8259,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8275,7 +8275,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8291,7 +8291,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8307,7 +8307,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8323,7 +8323,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8339,7 +8339,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8355,7 +8355,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8371,7 +8371,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8391,7 +8391,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8424,7 +8424,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8445,7 +8445,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8461,7 +8461,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8482,7 +8482,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8498,7 +8498,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -8542,7 +8542,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8558,7 +8558,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8574,7 +8574,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8590,7 +8590,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8606,7 +8606,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -8637,7 +8637,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -8658,7 +8658,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8674,7 +8674,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8690,7 +8690,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8711,7 +8711,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -8727,7 +8727,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8748,7 +8748,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8764,7 +8764,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8780,7 +8780,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8796,7 +8796,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8816,7 +8816,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8848,7 +8848,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8878,7 +8878,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8908,7 +8908,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8934,7 +8934,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8960,7 +8960,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -8986,7 +8986,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9002,7 +9002,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9018,7 +9018,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9039,7 +9039,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9055,7 +9055,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9099,7 +9099,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9143,7 +9143,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9176,7 +9176,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9192,7 +9192,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9225,7 +9225,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9269,7 +9269,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -9313,7 +9313,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9329,7 +9329,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9345,7 +9345,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9361,7 +9361,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9382,7 +9382,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9403,7 +9403,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9424,7 +9424,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -9445,7 +9445,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9464,7 +9464,7 @@ "ITEM_SUPER_POTION" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -9514,7 +9514,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -9573,7 +9573,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -9620,7 +9620,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -9654,7 +9654,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -9701,7 +9701,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -9748,7 +9748,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -9795,7 +9795,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9826,7 +9826,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9842,7 +9842,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9872,7 +9872,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -9888,7 +9888,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9908,7 +9908,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9924,7 +9924,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9945,7 +9945,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9966,7 +9966,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -9992,7 +9992,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10008,7 +10008,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10029,7 +10029,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10050,7 +10050,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10071,7 +10071,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10111,7 +10111,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10127,7 +10127,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10148,7 +10148,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10191,7 +10191,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10212,7 +10212,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10228,7 +10228,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10244,7 +10244,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10265,7 +10265,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10286,7 +10286,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10302,7 +10302,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10318,7 +10318,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10334,7 +10334,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10350,7 +10350,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10366,7 +10366,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10382,7 +10382,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10398,7 +10398,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10414,7 +10414,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10430,7 +10430,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10446,7 +10446,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10462,7 +10462,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10483,7 +10483,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10499,7 +10499,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10515,7 +10515,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10536,7 +10536,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -10557,7 +10557,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10573,7 +10573,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10589,7 +10589,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10605,7 +10605,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10626,7 +10626,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10652,7 +10652,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10673,7 +10673,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10694,7 +10694,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10710,7 +10710,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10730,7 +10730,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10762,7 +10762,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10792,7 +10792,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10812,7 +10812,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10828,7 +10828,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10844,7 +10844,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10860,7 +10860,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10876,7 +10876,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10892,7 +10892,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10913,7 +10913,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10929,7 +10929,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10945,7 +10945,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10961,7 +10961,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -10977,7 +10977,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -11032,7 +11032,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -11087,7 +11087,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -11142,7 +11142,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 80, @@ -11197,7 +11197,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 80, @@ -11252,7 +11252,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 80, @@ -11307,7 +11307,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -11373,7 +11373,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -11439,7 +11439,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -11505,7 +11505,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -11582,7 +11582,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -11659,7 +11659,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 200, @@ -11736,7 +11736,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11762,7 +11762,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -11803,7 +11803,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11819,7 +11819,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11835,7 +11835,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11865,7 +11865,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11881,7 +11881,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11907,7 +11907,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11928,7 +11928,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11944,7 +11944,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11960,7 +11960,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11976,7 +11976,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -11992,7 +11992,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12008,7 +12008,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12024,7 +12024,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12050,7 +12050,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -12072,7 +12072,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -12104,7 +12104,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -12148,7 +12148,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -12192,7 +12192,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12208,7 +12208,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12224,7 +12224,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12245,7 +12245,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12261,7 +12261,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12282,7 +12282,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12308,7 +12308,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12324,7 +12324,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12345,7 +12345,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12361,7 +12361,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12387,7 +12387,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12403,7 +12403,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12424,7 +12424,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12445,7 +12445,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12466,7 +12466,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12482,7 +12482,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12508,7 +12508,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12529,7 +12529,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12555,7 +12555,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12571,7 +12571,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12592,7 +12592,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12613,7 +12613,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12639,7 +12639,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12655,7 +12655,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12681,7 +12681,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12702,7 +12702,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12728,7 +12728,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -12749,7 +12749,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -12796,7 +12796,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12812,7 +12812,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12838,7 +12838,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12854,7 +12854,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12880,7 +12880,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -12901,7 +12901,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -12922,7 +12922,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12938,7 +12938,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12954,7 +12954,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12975,7 +12975,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -12996,7 +12996,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13022,7 +13022,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13043,7 +13043,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -13072,7 +13072,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13095,7 +13095,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13116,7 +13116,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13137,7 +13137,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13153,7 +13153,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13174,7 +13174,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13190,7 +13190,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13212,7 +13212,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13228,7 +13228,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13244,7 +13244,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13260,7 +13260,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -13291,7 +13291,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13317,7 +13317,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13338,7 +13338,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13359,7 +13359,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -13385,7 +13385,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13406,7 +13406,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13422,7 +13422,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13438,7 +13438,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13459,7 +13459,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13485,7 +13485,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13506,7 +13506,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13539,7 +13539,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13561,7 +13561,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13594,7 +13594,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13627,7 +13627,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13660,7 +13660,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13682,7 +13682,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13715,7 +13715,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13748,7 +13748,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13781,7 +13781,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13803,7 +13803,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13836,7 +13836,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13880,7 +13880,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13913,7 +13913,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13957,7 +13957,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -13990,7 +13990,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14012,7 +14012,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14045,7 +14045,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14067,7 +14067,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14111,7 +14111,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14144,7 +14144,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14165,7 +14165,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14186,7 +14186,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14207,7 +14207,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14228,7 +14228,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14254,7 +14254,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14275,7 +14275,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14301,7 +14301,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14317,7 +14317,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14338,7 +14338,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14359,7 +14359,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14375,7 +14375,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14396,7 +14396,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14417,7 +14417,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -14438,7 +14438,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14459,7 +14459,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14475,7 +14475,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14496,7 +14496,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14522,7 +14522,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14543,7 +14543,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14564,7 +14564,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14585,7 +14585,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14611,7 +14611,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -14627,7 +14627,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -14671,7 +14671,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -14748,7 +14748,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14769,7 +14769,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14791,7 +14791,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14813,7 +14813,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14835,7 +14835,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14857,7 +14857,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14877,7 +14877,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14897,7 +14897,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14917,7 +14917,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14937,7 +14937,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14957,7 +14957,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -14977,7 +14977,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -15054,7 +15054,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 150, @@ -15131,7 +15131,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15175,7 +15175,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15219,7 +15219,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15263,7 +15263,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15307,7 +15307,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15351,7 +15351,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 60, @@ -15395,7 +15395,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15411,7 +15411,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15427,7 +15427,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15443,7 +15443,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15464,7 +15464,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15485,7 +15485,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15506,7 +15506,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -15527,7 +15527,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -15548,7 +15548,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -15569,7 +15569,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -15590,7 +15590,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -15611,7 +15611,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15632,7 +15632,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15658,7 +15658,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15684,7 +15684,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15710,7 +15710,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15736,7 +15736,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15762,7 +15762,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15788,7 +15788,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15810,7 +15810,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15832,7 +15832,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15854,7 +15854,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -15898,7 +15898,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -15931,7 +15931,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15957,7 +15957,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15973,7 +15973,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -15989,7 +15989,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16010,7 +16010,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16031,7 +16031,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16052,7 +16052,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16068,7 +16068,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16084,7 +16084,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16100,7 +16100,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16116,7 +16116,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16132,7 +16132,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16153,7 +16153,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16174,7 +16174,7 @@ "unk2": 0, "items": [], "unkC": 0, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16207,7 +16207,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16251,7 +16251,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16295,7 +16295,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16328,7 +16328,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16350,7 +16350,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16394,7 +16394,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16427,7 +16427,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16460,7 +16460,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16493,7 +16493,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -16537,7 +16537,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16558,7 +16558,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16579,7 +16579,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16600,7 +16600,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16621,7 +16621,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16647,7 +16647,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16673,7 +16673,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16694,7 +16694,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16715,7 +16715,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16741,7 +16741,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16767,7 +16767,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16783,7 +16783,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16799,7 +16799,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16820,7 +16820,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16841,7 +16841,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -16862,7 +16862,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -16883,7 +16883,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -16921,7 +16921,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 10, @@ -16961,7 +16961,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16979,7 +16979,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -16997,7 +16997,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17013,7 +17013,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17029,7 +17029,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17045,7 +17045,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17061,7 +17061,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17087,7 +17087,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17113,7 +17113,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -17129,7 +17129,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -17157,7 +17157,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17175,7 +17175,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17191,7 +17191,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17207,7 +17207,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17223,7 +17223,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17239,7 +17239,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17260,7 +17260,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17281,7 +17281,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17302,7 +17302,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17323,7 +17323,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17344,7 +17344,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17365,7 +17365,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17386,7 +17386,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17407,7 +17407,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17428,7 +17428,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17449,7 +17449,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17470,7 +17470,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17491,7 +17491,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17513,7 +17513,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17535,7 +17535,7 @@ "unk2": 0, "items": [], "unkC": 0, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17557,7 +17557,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17573,7 +17573,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17589,7 +17589,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17605,7 +17605,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17626,7 +17626,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17647,7 +17647,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17668,7 +17668,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17684,7 +17684,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17702,7 +17702,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17720,7 +17720,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17738,7 +17738,7 @@ "ITEM_FULL_RESTORE" ], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17754,7 +17754,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17775,7 +17775,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17796,7 +17796,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17817,7 +17817,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17838,7 +17838,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17859,7 +17859,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17880,7 +17880,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17901,7 +17901,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -17922,7 +17922,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17943,7 +17943,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17964,7 +17964,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -17990,7 +17990,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18011,7 +18011,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18032,7 +18032,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18053,7 +18053,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18079,7 +18079,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18105,7 +18105,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18131,7 +18131,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18147,7 +18147,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18163,7 +18163,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18179,7 +18179,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18195,7 +18195,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18216,7 +18216,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18237,7 +18237,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18253,7 +18253,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18269,7 +18269,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18285,7 +18285,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18301,7 +18301,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18322,7 +18322,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18343,7 +18343,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18364,7 +18364,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18380,7 +18380,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18401,7 +18401,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18422,7 +18422,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18438,7 +18438,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18454,7 +18454,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18470,7 +18470,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18486,7 +18486,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18502,7 +18502,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18518,7 +18518,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18544,7 +18544,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18570,7 +18570,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18592,7 +18592,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -18636,7 +18636,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18658,7 +18658,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -18702,7 +18702,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 100, @@ -18746,7 +18746,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18762,7 +18762,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18778,7 +18778,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18794,7 +18794,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18810,7 +18810,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18826,7 +18826,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18842,7 +18842,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18858,7 +18858,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18874,7 +18874,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18890,7 +18890,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18906,7 +18906,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18922,7 +18922,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18938,7 +18938,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18954,7 +18954,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18970,7 +18970,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -18986,7 +18986,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19002,7 +19002,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19018,7 +19018,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -19039,7 +19039,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -19060,7 +19060,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -19081,7 +19081,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 2, + "doubleBattle": 2, "party": [ { "difficulty": 0, @@ -19102,7 +19102,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19118,7 +19118,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19134,7 +19134,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19150,7 +19150,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19166,7 +19166,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19182,7 +19182,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19198,7 +19198,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19214,7 +19214,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19230,7 +19230,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19246,7 +19246,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19262,7 +19262,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19278,7 +19278,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19294,7 +19294,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19310,7 +19310,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19326,7 +19326,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19342,7 +19342,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19358,7 +19358,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19374,7 +19374,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19390,7 +19390,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19411,7 +19411,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19441,7 +19441,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19462,7 +19462,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19483,7 +19483,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19516,7 +19516,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19537,7 +19537,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19558,7 +19558,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19579,7 +19579,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19612,7 +19612,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19628,7 +19628,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -19649,7 +19649,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 50, @@ -19670,7 +19670,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19691,7 +19691,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19724,7 +19724,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19744,7 +19744,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -19765,7 +19765,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -19808,7 +19808,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -19834,7 +19834,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -19860,7 +19860,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -19886,7 +19886,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -19963,7 +19963,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -20040,7 +20040,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -20117,7 +20117,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -20194,7 +20194,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -20271,7 +20271,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 250, @@ -20348,7 +20348,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -20364,7 +20364,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -20385,7 +20385,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -20401,7 +20401,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 0, @@ -20417,7 +20417,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -20433,7 +20433,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, @@ -20454,7 +20454,7 @@ "unk2": 0, "items": [], "unkC": 1, - "unk10": 0, + "doubleBattle": 0, "party": [ { "difficulty": 30, diff --git a/files/poketool/trainer/trdata.json.txt b/files/poketool/trainer/trdata.json.txt index c85e80e4..9c02c7db 100644 --- a/files/poketool/trainer/trdata.json.txt +++ b/files/poketool/trainer/trdata.json.txt @@ -17,7 +17,7 @@ const struct TrainerData __data[] = { {{ length(trainer.party) }}, { {% for item in trainer.items %}{{ item }},{% endfor %} }, {{ trainer.unkC }}, - {{ trainer.unk10 }} + {{ trainer.doubleBattle }} }, ## endfor }; diff --git a/include/proto.h b/include/proto.h index 365c0ecd..7af3f19d 100644 --- a/include/proto.h +++ b/include/proto.h @@ -7,7 +7,7 @@ #include "string16.h" // for struct definitions #include "player_data.h" // for struct definitions -int FUN_0206AE00(int x); +int TrainerClass_GetGenderOrTrainerCount(int x); int FUN_02014C3C(u8); void FUN_02014C54(int, int, struct UnkStruct_02069038 *, u8); u32 IsNighttime(void); // is day or night diff --git a/include/trainer_data.h b/include/trainer_data.h index 6a5b69a4..0951a5dd 100644 --- a/include/trainer_data.h +++ b/include/trainer_data.h @@ -2,6 +2,8 @@ #define POKEDIAMOND_TRAINER_DATA_H #include "global.h" +#include "save_block_2.h" +#include "string16.h" #include "constants/pokemon.h" struct TrainerMonSpecies @@ -57,7 +59,7 @@ struct TrainerData u8 npoke; u16 items[4]; u32 unk_C; - u32 unk_10; + u32 doubleBattle; }; struct TrainerDataLoaded @@ -76,4 +78,13 @@ struct EnemyTrainerSet struct TrainerDataLoaded datas[4]; }; +void EnemyTrainerSet_Init(struct EnemyTrainerSet * sp0, struct SaveBlock2 * r4, u32 sp4); +s32 TrainerData_GetAttr(u32 tr_idx, u32 attr_no); +BOOL TrainerMessageWithIdPairExists(u32 pos, u32 idx, u32 heap_id); +void GetTrainerMessageByIdPair(u32 pos, u32 idx, struct String * str, u32 heap_id); +void TrainerData_ReadTrData(u32 idx, struct TrainerData * dest); +void TrainerData_ReadTrPoke(u32 idx, union TrainerMon * dest); +int TrainerClass_GetGenderOrTrainerCount(int a0); +void CreateNPCTrainerParty(struct EnemyTrainerSet * enemies, s32 party_id, u32 heap_id); + #endif //POKEDIAMOND_TRAINER_DATA_H -- cgit v1.2.3 From 3a44aee33dc6fb6efd38c9f301deb56ad8aef01d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 Sep 2020 14:49:30 -0400 Subject: Decompile unk_0206B688 in poketool --- arm9/asm/unk_0206B688.s | 357 ------------------------------------------------ arm9/src/unk_0206B688.c | 185 +++++++++++++++++++++++++ include/pokemon.h | 1 + include/unk_0206B688.h | 21 +++ 4 files changed, 207 insertions(+), 357 deletions(-) delete mode 100644 arm9/asm/unk_0206B688.s create mode 100644 arm9/src/unk_0206B688.c create mode 100644 include/unk_0206B688.h diff --git a/arm9/asm/unk_0206B688.s b/arm9/asm/unk_0206B688.s deleted file mode 100644 index c92d347d..00000000 --- a/arm9/asm/unk_0206B688.s +++ /dev/null @@ -1,357 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F8074 -UNK_020F8074: ; 0x020F8074 - .byte 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x00, 0x01, 0x02, 0x02 - .byte 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 - .byte 0x02, 0x02, 0x00, 0x02, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 - .byte 0x02, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01 - .byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x02, 0x01, 0x00, 0x02 - .byte 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02 - .byte 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01 - .byte 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x02 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x02 - .byte 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x02, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02 - .byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00 - .byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 - .byte 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00 - .byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x01, 0x00 - .byte 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02 - .byte 0x02, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01 - .byte 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x00, 0x02, 0x02, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00 - .byte 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .text - - thumb_func_start FUN_0206B688 -FUN_0206B688: ; 0x0206B688 - push {r3-r7, lr} - add r5, r0, #0x0 - bl AcquireBoxMonLock - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonData - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl GetBoxMonData - add r6, r0, #0x0 - add r0, r5, #0x0 - bl BoxMon_GetAlternateForme - add r2, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - bl FUN_0206B6D4 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl ReleaseBoxMonLock - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0206B6C8 -FUN_0206B6C8: ; 0x0206B6C8 - push {r3, lr} - bl FUN_020690E4 - bl FUN_0206B688 - pop {r3, pc} - - thumb_func_start FUN_0206B6D4 -FUN_0206B6D4: ; 0x0206B6D4 - cmp r1, #0x1 - bne _0206B6E8 - ldr r1, _0206B748 ; =0x000001EA - cmp r0, r1 - bne _0206B6E2 - add r1, #0xc - b _0206B6E4 -_0206B6E2: - add r1, #0xb -_0206B6E4: - add r0, r1, #0x0 - bx lr -_0206B6E8: - cmp r2, #0x0 - beq _0206B73A - ldr r3, _0206B74C ; =0x00000182 - cmp r0, r3 - bne _0206B6F8 - add r3, #0x74 - add r0, r2, r3 - bx lr -_0206B6F8: - cmp r0, #0xc9 - bne _0206B702 - add r3, #0x78 - add r0, r2, r3 - bx lr -_0206B702: - add r1, r3, #0x0 - add r1, #0x1a - cmp r0, r1 - bne _0206B710 - add r3, #0x93 - add r0, r2, r3 - bx lr -_0206B710: - add r1, r3, #0x0 - add r1, #0x1b - cmp r0, r1 - bne _0206B71E - add r3, #0x95 - add r0, r2, r3 - bx lr -_0206B71E: - add r1, r3, #0x0 - add r1, #0x24 - cmp r0, r1 - bne _0206B72C - add r3, #0x97 - add r0, r2, r3 - bx lr -_0206B72C: - add r1, r3, #0x0 - add r1, #0x25 - cmp r0, r1 - bne _0206B73A - add r3, #0x98 - add r0, r2, r3 - bx lr -_0206B73A: - ldr r1, _0206B750 ; =0x000001ED - cmp r0, r1 - bls _0206B742 - mov r0, #0x0 -_0206B742: - add r0, r0, #0x7 - bx lr - nop -_0206B748: .word 0x000001EA -_0206B74C: .word 0x00000182 -_0206B750: .word 0x000001ED - - thumb_func_start BoxMon_GetAlternateForme -BoxMon_GetAlternateForme: ; 0x0206B754 - push {r4, lr} - mov r1, #0xad - mov r2, #0x0 - add r4, r0, #0x0 - bl GetBoxMonData - ldr r2, _0206B7B8 ; =0x0000019D - cmp r0, r2 - bhi _0206B784 - sub r1, r2, #0x1 - cmp r0, r1 - blo _0206B774 - beq _0206B7A4 - cmp r0, r2 - beq _0206B7A4 - b _0206B7B4 -_0206B774: - cmp r0, #0xc9 - bhi _0206B77C - beq _0206B79C - b _0206B7B4 -_0206B77C: - sub r2, #0x1b - cmp r0, r2 - beq _0206B7A4 - b _0206B7B4 -_0206B784: - add r1, r2, #0x0 - add r1, #0x9 - cmp r0, r1 - bhi _0206B794 - add r2, #0x9 - cmp r0, r2 - beq _0206B7A4 - b _0206B7B4 -_0206B794: - add r2, #0xa - cmp r0, r2 - beq _0206B7A4 - b _0206B7B4 -_0206B79C: - add r0, r4, #0x0 - bl GetBoxMonUnownLetter - pop {r4, pc} -_0206B7A4: - add r0, r4, #0x0 - mov r1, #0x70 - mov r2, #0x0 - bl GetBoxMonData - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - pop {r4, pc} -_0206B7B4: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_0206B7B8: .word 0x0000019D - - thumb_func_start FUN_0206B7BC -FUN_0206B7BC: ; 0x0206B7BC - cmp r2, #0x1 - bne _0206B7CE - ldr r1, _0206B830 ; =0x000001EA - cmp r0, r1 - bne _0206B7CA - add r0, r1, #0x5 - b _0206B82A -_0206B7CA: - add r0, r1, #0x4 - b _0206B82A -_0206B7CE: - ldr r3, _0206B834 ; =0x000001ED - cmp r0, r3 - bls _0206B7D8 - mov r0, #0x0 - b _0206B82A -_0206B7D8: - cmp r1, #0x0 - beq _0206B82A - add r2, r3, #0x0 - sub r2, #0x6b - cmp r0, r2 - bne _0206B7EA - add r0, r3, #0x2 - add r0, r1, r0 - b _0206B82A -_0206B7EA: - cmp r0, #0xc9 - bne _0206B7F4 - add r0, r3, #0x5 - add r0, r1, r0 - b _0206B82A -_0206B7F4: - add r2, r3, #0x0 - sub r2, #0x51 - cmp r0, r2 - bne _0206B802 - add r3, #0x21 - add r0, r1, r3 - b _0206B82A -_0206B802: - add r2, r3, #0x0 - sub r2, #0x50 - cmp r0, r2 - bne _0206B810 - add r3, #0x23 - add r0, r1, r3 - b _0206B82A -_0206B810: - add r2, r3, #0x0 - sub r2, #0x47 - cmp r0, r2 - bne _0206B81E - add r3, #0x25 - add r0, r1, r3 - b _0206B82A -_0206B81E: - add r2, r3, #0x0 - sub r2, #0x46 - cmp r0, r2 - bne _0206B82A - add r3, #0x26 - add r0, r1, r3 -_0206B82A: - ldr r1, _0206B838 ; =UNK_020F8074 - ldrb r0, [r1, r0] - bx lr - .balign 4 -_0206B830: .word 0x000001EA -_0206B834: .word 0x000001ED -_0206B838: .word UNK_020F8074 - - thumb_func_start FUN_0206B83C -FUN_0206B83C: ; 0x0206B83C - push {r3-r7, lr} - add r5, r0, #0x0 - bl AcquireBoxMonLock - add r4, r0, #0x0 - add r0, r5, #0x0 - bl BoxMon_GetAlternateForme - add r6, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - mov r2, #0x0 - bl GetBoxMonData - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x4c - mov r2, #0x0 - bl GetBoxMonData - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl ReleaseBoxMonLock - ldr r2, [sp, #0x0] - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_0206B7BC - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0206B87C -FUN_0206B87C: ; 0x0206B87C - push {r3, lr} - bl FUN_020690E4 - bl FUN_0206B83C - pop {r3, pc} - - thumb_func_start FUN_0206B888 -FUN_0206B888: ; 0x0206B888 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_0206B88C -FUN_0206B88C: ; 0x0206B88C - mov r0, #0x2 - bx lr - - thumb_func_start FUN_0206B890 -FUN_0206B890: ; 0x0206B890 - mov r0, #0x4 - bx lr - - thumb_func_start FUN_0206B894 -FUN_0206B894: ; 0x0206B894 - mov r0, #0x6 - bx lr - - thumb_func_start FUN_0206B898 -FUN_0206B898: ; 0x0206B898 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_0206B89C -FUN_0206B89C: ; 0x0206B89C - mov r0, #0x3 - bx lr - - thumb_func_start FUN_0206B8A0 -FUN_0206B8A0: ; 0x0206B8A0 - mov r0, #0x5 - bx lr diff --git a/arm9/src/unk_0206B688.c b/arm9/src/unk_0206B688.c new file mode 100644 index 00000000..465fa842 --- /dev/null +++ b/arm9/src/unk_0206B688.c @@ -0,0 +1,185 @@ +#include "global.h" +#include "pokemon.h" +#include "unk_0206B688.h" + +#pragma thumb on + +u16 BoxMon_GetAlternateForme(struct BoxPokemon * boxmon); +u32 FUN_0206B6D4(u32 species, u32 is_egg, u32 forme); + +u32 FUN_0206B688(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u32 is_egg = GetBoxMonData(boxmon, MON_DATA_IS_EGG, NULL); + u32 forme = BoxMon_GetAlternateForme(boxmon); + u32 ret = FUN_0206B6D4(species, is_egg, forme); + ReleaseBoxMonLock(boxmon, decry); + return ret; +} + +u32 FUN_0206B6C8(struct Pokemon * pokemon) +{ + return FUN_0206B688(FUN_020690E4(pokemon)); +} + +u32 FUN_0206B6D4(u32 species, u32 is_egg, u32 forme) +{ + if (is_egg == TRUE) + { + if (species == SPECIES_MANAPHY) + return 502; + else + return 501; + } + if (forme != 0) + { + if (species == SPECIES_DEOXYS) + return 502 + forme; + if (species == SPECIES_UNOWN) + return 506 + forme; + if (species == SPECIES_BURMY) + return 533 + forme; + if (species == SPECIES_WORMADAM) + return 535 + forme; + if (species == SPECIES_SHELLOS) + return 537 + forme; + if (species == SPECIES_GASTRODON) + return 538 + forme; + } + return (species <= SPECIES_ARCEUS ? species : 0) + 7; +} + +u16 BoxMon_GetAlternateForme(struct BoxPokemon * boxmon) +{ + u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL); + switch (species) + { + case SPECIES_UNOWN: + return GetBoxMonUnownLetter(boxmon); + case SPECIES_DEOXYS: + case SPECIES_BURMY: + case SPECIES_WORMADAM: + case SPECIES_SHELLOS: + case SPECIES_GASTRODON: + return (u16) GetBoxMonData(boxmon, MON_DATA_FORME, NULL); + default: + return 0; + } +} + +const u8 UNK_020F8074[] = { + 0, 1, 1, 1, 0, 0, 0, 0, 2, 2, 1, 1, 0, 1, 2, 2, + 0, 0, 0, 2, 1, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 0, 2, 1, 0, 0, 2, 2, 1, 0, 0, 0, 0, + 0, 2, 2, 2, 1, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 2, + 2, 2, 0, 2, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 1, 2, 2, 1, + 1, 0, 0, 1, 0, 0, 0, 0, 2, 2, 0, 1, 2, 1, 0, 2, + 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 1, + 0, 0, 0, 0, 0, 2, 2, 0, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 1, 0, 2, 2, 0, 0, 0, 1, 2, + 2, 0, 0, 2, 0, 0, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, + 1, 1, 0, 0, 2, 2, 2, 0, 0, 0, 0, 1, 0, 2, 2, 2, + 0, 0, 2, 0, 0, 1, 2, 0, 0, 2, 0, 0, 2, 2, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 1, + 1, 1, 1, 0, 2, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 1, 1, 1, + 1, 1, 1, 0, 2, 2, 0, 0, 1, 1, 1, 2, 0, 1, 1, 2, + 2, 1, 1, 1, 1, 0, 2, 2, 2, 1, 2, 0, 0, 2, 2, 2, + 2, 2, 2, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 2, 0, 0, + 2, 0, 1, 0, 1, 0, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 2, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2, 0, 0, + 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, + 0, 1, 0, 2, 2, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, + 1, 0, 0, 1, 1, 1, 1, 0, 0, 2, 2, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 2, 2, 2, 2, 2, 0, 1, 0, + 2, 0, 2, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, + 2, 1, 1, 0, 2, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, + 0, 2, 1, 0, 2, 1, 1, 0, 2, 2, 0, 1, 0, 2, 2, 0, + 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 0, 0, 0, 0, 0, 0 +}; + +u32 FUN_0206B7BC(u32 species, u32 forme, u32 is_egg) +{ + if (is_egg == TRUE) + { + if (species == SPECIES_MANAPHY) + species = 495; + else + species = 494; + } + else if (species > SPECIES_ARCEUS) + species = 0; + else if (forme != 0) + { + if (species == SPECIES_DEOXYS) + species = 495 + forme; + else if (species == SPECIES_UNOWN) + species = 498 + forme; + else if (species == SPECIES_BURMY) + species = 526 + forme; + else if (species == SPECIES_WORMADAM) + species = 528 + forme; + else if (species == SPECIES_SHELLOS) + species = 530 + forme; + else if (species == SPECIES_GASTRODON) + species = 531 + forme; + } + return UNK_020F8074[species]; +} + +u32 FUN_0206B83C(struct BoxPokemon * boxmon) +{ + BOOL decry = AcquireBoxMonLock(boxmon); + u32 forme = BoxMon_GetAlternateForme(boxmon); + u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); + u32 is_egg = GetBoxMonData(boxmon, MON_DATA_IS_EGG, NULL); + ReleaseBoxMonLock(boxmon, decry); + return FUN_0206B7BC(species, forme, is_egg); +} + +u32 FUN_0206B87C(struct Pokemon * pokemon) +{ + return FUN_0206B83C(FUN_020690E4(pokemon)); +} + +u32 FUN_0206B888(void) +{ + return 0; +} + +u32 FUN_0206B88C(void) +{ + return 2; +} + +u32 FUN_0206B890(void) +{ + return 4; +} + +u32 FUN_0206B894(void) +{ + return 6; +} + +u32 FUN_0206B898(void) +{ + return 1; +} + +u32 FUN_0206B89C(void) +{ + return 3; +} + +u32 FUN_0206B8A0(void) +{ + return 5; +} diff --git a/include/pokemon.h b/include/pokemon.h index 097df9e0..a089652d 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -263,6 +263,7 @@ 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 GetBoxMonUnownLetter(struct BoxPokemon * boxmon); u8 GetMonUnownLetter(struct Pokemon * pokemon); struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon); diff --git a/include/unk_0206B688.h b/include/unk_0206B688.h new file mode 100644 index 00000000..cf8136b1 --- /dev/null +++ b/include/unk_0206B688.h @@ -0,0 +1,21 @@ +#ifndef POKEDIAMOND_UNK_0206B688_H +#define POKEDIAMOND_UNK_0206B688_H + +#include "pokemon.h" + +u32 FUN_0206B688(struct BoxPokemon * boxmon); +u32 FUN_0206B6C8(struct Pokemon * pokemon); +u32 FUN_0206B6D4(u32 species, u32 is_egg, u32 forme); +u16 BoxMon_GetAlternateForme(struct BoxPokemon * boxmon); +u32 FUN_0206B7BC(u32 species, u32 forme, u32 is_egg); +u32 FUN_0206B83C(struct BoxPokemon * boxmon); +u32 FUN_0206B87C(struct Pokemon * pokemon); +u32 FUN_0206B888(void); +u32 FUN_0206B88C(void); +u32 FUN_0206B890(void); +u32 FUN_0206B894(void); +u32 FUN_0206B898(void); +u32 FUN_0206B89C(void); +u32 FUN_0206B8A0(void); + +#endif //POKEDIAMOND_UNK_0206B688_H -- cgit v1.2.3 From 45c27a8336f4c87f637104fdcee41abbe29d00c2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 Sep 2020 14:55:30 -0400 Subject: add msys2 libpng note to INSTALL.md --- INSTALL.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index 4d4f038b..35eb054d 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -46,6 +46,8 @@ You will still require the following packages: Install them using either the Cygwin package manager or using pacman on Msys2. +**NOTE FOR MSYS2:** You will need to compile and install [libpng](https://www.libpng.org/pub/png/libpng.html) from source. + ### 4. Build ROM Run `make` to build the ROM. The ROM will be output as `build/diamond.us/pokediamond.us.nds` -- cgit v1.2.3 From 9f78a9adb195635f0e6fd76141cbf51e65114629 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 Sep 2020 15:00:51 -0400 Subject: Decompile unk_0206BB28 --- arm9/asm/unk_0206BB28.s | 37 ------------------------------------- arm9/src/unk_0206BB28.c | 25 +++++++++++++++++++++++++ include/pokedex.h | 2 ++ include/unk_0206BB28.h | 12 ++++++++++++ 4 files changed, 39 insertions(+), 37 deletions(-) delete mode 100644 arm9/asm/unk_0206BB28.s create mode 100644 arm9/src/unk_0206BB28.c create mode 100644 include/unk_0206BB28.h diff --git a/arm9/asm/unk_0206BB28.s b/arm9/asm/unk_0206BB28.s deleted file mode 100644 index 15f4469e..00000000 --- a/arm9/asm/unk_0206BB28.s +++ /dev/null @@ -1,37 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0206BB28 -FUN_0206BB28: ; 0x0206BB28 - push {r3, lr} - bl Sav2_Pokedex_get - bl FUN_0206BB34 - pop {r3, pc} - - thumb_func_start FUN_0206BB34 -FUN_0206BB34: ; 0x0206BB34 - push {r3, lr} - bl Pokedex_GetNatDexFlag - cmp r0, #0x1 - bne _0206BB42 - mov r0, #0x1 - pop {r3, pc} -_0206BB42: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0206BB48 -FUN_0206BB48: ; 0x0206BB48 - push {r3, lr} - cmp r0, #0x0 - bne _0206BB58 - lsl r0, r1, #0x10 - lsr r0, r0, #0x10 - bl SpeciesToSinnohDexNo - add r1, r0, #0x0 -_0206BB58: - add r0, r1, #0x0 - pop {r3, pc} diff --git a/arm9/src/unk_0206BB28.c b/arm9/src/unk_0206BB28.c new file mode 100644 index 00000000..baaecc6a --- /dev/null +++ b/arm9/src/unk_0206BB28.c @@ -0,0 +1,25 @@ +#include "global.h" +#include "save_block_2.h" +#include "pokedex.h" +#include "pokemon.h" +#include "unk_0206BB28.h" + +#pragma thumb on + +BOOL FUN_0206BB28(struct SaveBlock2 * sav2) +{ + return FUN_0206BB34(Sav2_Pokedex_get(sav2)); +} + +BOOL FUN_0206BB34(struct Pokedex * pokedex) +{ + return Pokedex_GetNatDexFlag(pokedex) == TRUE; +} + +u32 FUN_0206BB48(BOOL isNationalDex, u32 species) +{ + if (!isNationalDex) + species = SpeciesToSinnohDexNo((u16)species); + return species; +} + diff --git a/include/pokedex.h b/include/pokedex.h index 11058569..891fddb5 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -2,6 +2,8 @@ #define POKEDIAMOND_POKEDEX_H #include "global.h" +#include "pokemon.h" +#include "save_block_2.h" struct Pokedex { diff --git a/include/unk_0206BB28.h b/include/unk_0206BB28.h new file mode 100644 index 00000000..ff60e220 --- /dev/null +++ b/include/unk_0206BB28.h @@ -0,0 +1,12 @@ +#ifndef POKEDIAMOND_UNK_0206BB28_H +#define POKEDIAMOND_UNK_0206BB28_H + +#include "save_block_2.h" +#include "pokedex.h" +#include "pokemon.h" + +BOOL FUN_0206BB28(struct SaveBlock2 * sav2); +BOOL FUN_0206BB34(struct Pokedex * pokedex); +u32 FUN_0206BB48(BOOL isNationalDex, u32 species); + +#endif //POKEDIAMOND_UNK_0206BB28_H -- cgit v1.2.3 From 95e2d6975c0fc3579a9fffd8e20399d1dc408d62 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 Sep 2020 16:20:09 -0400 Subject: Rename routines in pokemon.c --- arm9/asm/scrcmd_12.s | 2 +- arm9/asm/unk_0202BE98.s | 4 +- arm9/asm/unk_020377F0.s | 2 +- arm9/asm/unk_020476CC.s | 4 +- arm9/asm/unk_0204B0A0.s | 2 +- arm9/asm/unk_0206C700.s | 4 +- arm9/asm/unk_0206F3FC.s | 4 +- arm9/asm/unk_02073DA8.s | 6 +- arm9/asm/unk_02079C70.s | 10 +- arm9/asm/unk_0207D5BC.s | 2 +- arm9/asm/unk_0207FD00.s | 12 +- arm9/asm/unk_02080C38.s | 2 +- arm9/global.inc | 36 +++--- arm9/modules/05/asm/module_05.s | 10 +- arm9/modules/06/asm/module_06.s | 6 +- arm9/modules/11/asm/module_11_thumb2.s | 52 ++++----- arm9/modules/14/asm/module_14.s | 8 +- arm9/modules/23/asm/module_23.s | 2 +- arm9/modules/62/asm/module_62.s | 4 +- arm9/modules/71/asm/module_71.s | 14 +-- arm9/modules/80/asm/module_80.s | 12 +- arm9/src/pokemon.c | 199 ++++++++++++++++----------------- include/pokemon.h | 34 +++--- include/seal.h | 24 ++++ 24 files changed, 239 insertions(+), 216 deletions(-) create mode 100644 include/seal.h diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index 137140a8..a434a5cb 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -625,7 +625,7 @@ _020431D4: add r7, r0, #0x0 add r0, r4, #0x0 add r1, r7, #0x0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add r0, r7, #0x0 mov r1, #0x90 add r2, r5, #0x0 diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s index 2b1b2f16..37bc1c4e 100644 --- a/arm9/asm/unk_0202BE98.s +++ b/arm9/asm/unk_0202BE98.s @@ -133,10 +133,10 @@ FUN_0202BF7C: ; 0x0202BF7C mov r1, #0xec mul r1, r2 add r1, r3, r1 - ldr r3, _0202BF8C ; =FUN_02069A64 + ldr r3, _0202BF8C ; =CopyBoxPokemonToPokemon bx r3 nop -_0202BF8C: .word FUN_02069A64 +_0202BF8C: .word CopyBoxPokemonToPokemon thumb_func_start FUN_0202BF90 FUN_0202BF90: ; 0x0202BF90 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index d0d60821..e7d630f6 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -1687,7 +1687,7 @@ _02038386: bl GetPartyMonByIndex add r1, r0, #0x0 ldr r0, [r4, #0x44] - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [r4, #0x60] bl FUN_0206C92C mov r0, #0x1a diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 374ab418..568c4b5d 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -663,7 +663,7 @@ _02047C40: add r1, r4, #0x0 bl GetPartyMonByIndex add r1, r5, #0x0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 @@ -858,7 +858,7 @@ _02047DEE: sub r1, r1, #0x1 bl GetPartyMonByIndex ldr r1, [sp, #0x8] - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r1, [sp, #0x8] add r0, r5, #0x0 mov r2, #0x0 diff --git a/arm9/asm/unk_0204B0A0.s b/arm9/asm/unk_0204B0A0.s index f2e46ab6..a78c13d0 100644 --- a/arm9/asm/unk_0204B0A0.s +++ b/arm9/asm/unk_0204B0A0.s @@ -149,7 +149,7 @@ FUN_0204B1DC: ; 0x0204B1DC ldr r0, [r5, #0xc] bl SavArray_PlayerParty_get add r1, r4, #0x0 - bl FUN_02069D50 + bl Party_UpdatePokerus ldr r0, [r5, #0xc] bl SavArray_Flags_get add r6, r0, #0x0 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index c42b766a..f5a0873e 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -2096,7 +2096,7 @@ _0206D86E: add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 - bl FUN_02069B88 + bl CopyPokemonToPokemon mov r0, #0x49 lsl r0, r0, #0x2 str r0, [sp, #0x0] @@ -2576,7 +2576,7 @@ FUN_0206DC80: ; 0x0206DC80 add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add r2, r4, #0x0 add r0, r5, #0x0 mov r1, #0x5 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index db3328a4..212030cc 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -5672,7 +5672,7 @@ FUN_02072080: ; 0x02072080 add r2, sp, #0x0 bl SetMonData add r0, r5, #0x0 - bl FUN_02069EC4 + bl Pokemon_UpdateArceusForme ldr r1, _020720D8 ; =0x00000B25 ldr r0, _020720D4 ; =0x000005A4 ldrb r3, [r4, r1] @@ -5715,7 +5715,7 @@ FUN_020720E0: ; 0x020720E0 add r2, sp, #0x1c bl SetMonData add r0, r5, #0x0 - bl FUN_02069EC4 + bl Pokemon_UpdateArceusForme ldr r1, _02072138 ; =0x00000B25 mov r2, #0x2c ldrb r3, [r4, r1] diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 8b8442a3..6635b399 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -246,7 +246,7 @@ _02073F66: add r2, sp, #0x0 bl SetMonData add r0, r6, #0x0 - bl FUN_02069EC4 + bl Pokemon_UpdateArceusForme ldr r2, _02074058 ; =0x0000069C mov r1, #0x52 ldr r0, [r5, r2] @@ -633,7 +633,7 @@ FUN_020742A8: ; 0x020742A8 add r2, sp, #0x0 bl SetMonData add r0, r5, #0x0 - bl FUN_02069EC4 + bl Pokemon_UpdateArceusForme ldr r1, _02074330 ; =0x00000B25 mov r2, #0x2c ldrb r3, [r4, r1] @@ -790,7 +790,7 @@ FUN_02074428: ; 0x02074428 ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl GetPartyMonByIndex - bl FUN_0206AA84 + bl Pokemon_RemoveCapsule ldr r0, _0207444C ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index c701f1a8..33c0a040 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -1536,7 +1536,7 @@ _0207A896: add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon b _0207A8C0 _0207A8BA: bl FUN_0207B628 @@ -1825,7 +1825,7 @@ FUN_0207AAE0: ; 0x0207AAE0 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 @@ -2163,7 +2163,7 @@ _0207AD26: _0207ADE0: add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_02069BC8 + bl MonGetFlavorPreference cmp r0, #0x1 bne _0207ADF4 add r0, r5, #0x0 @@ -2202,7 +2202,7 @@ _0207ADFE: orr r0, r2 str r0, [r5, #0x50] add r0, r6, #0x0 - bl FUN_02069E94 + bl Pokemon_IsImmuneToPokerus cmp r0, #0x1 bne _0207AE4E ldr r1, [r5, #0x50] @@ -2215,7 +2215,7 @@ _0207ADFE: b _0207AE84 _0207AE4E: add r0, r6, #0x0 - bl FUN_02069E74 + bl Pokemon_HasPokerus cmp r0, #0x1 bne _0207AE7C ldr r2, [r5, #0x50] diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index ca5fef37..2546b905 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -1540,7 +1540,7 @@ FUN_0207E190: ; 0x0207E190 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s index 294b8bfc..e48ad6f9 100644 --- a/arm9/asm/unk_0207FD00.s +++ b/arm9/asm/unk_0207FD00.s @@ -5,14 +5,14 @@ .global UNK_020FBB48 UNK_020FBB48: ; 0x020FBB48 - .byte 0x46, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, 0x00 + .short 0x0046, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045 .global UNK_020FBB54 UNK_020FBB54: ; 0x020FBB54 - .byte 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4A, 0x00, 0x4B, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x4E, 0x00 - .byte 0x4F, 0x00, 0x50, 0x00, 0x51, 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00 - .byte 0x57, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00, 0x5B, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x5E, 0x00 - .byte 0x5F, 0x00, 0x60, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x64, 0x00 + .short 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E + .short 0x004F, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056 + .short 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E + .short 0x005F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064 .text @@ -1171,7 +1171,7 @@ FUN_02080678: ; 0x02080678 _0208068A: ldr r0, [r5, #0xc] add r1, r4, #0x0 - bl FUN_02069BC8 + bl MonGetFlavorPreference cmp r0, #0x1 bne _02080698 add r6, r4, #0x1 diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 458d4420..0f1630ed 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -930,7 +930,7 @@ _02081304: bl FUN_02029F9C ldr r0, [r6, #0x8] ldr r1, [r4, #0x0] - bl FUN_02069B88 + bl CopyPokemonToPokemon mov r0, #0x8 mov r1, #0x14 bl String_ctor diff --git a/arm9/global.inc b/arm9/global.inc index 2f9c965b..fa50aacb 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4797,24 +4797,24 @@ .extern FUN_020698E0 .extern FUN_020698E8 .extern FUN_020699A4 -.extern FUN_02069A64 -.extern FUN_02069AEC +.extern CopyBoxPokemonToPokemon +.extern Party_GetMaxLevel .extern SpeciesToSinnohDexNo -.extern FUN_02069B60 -.extern FUN_02069B88 -.extern FUN_02069BA0 -.extern FUN_02069BB4 -.extern FUN_02069BC8 -.extern FUN_02069BE4 -.extern FUN_02069BFC -.extern FUN_02069C4C -.extern FUN_02069CF4 -.extern FUN_02069D50 -.extern FUN_02069DC8 -.extern FUN_02069E74 -.extern FUN_02069E94 -.extern FUN_02069EC4 -.extern FUN_02069ECC +.extern SinnohDexNoToSpecies +.extern CopyPokemonToPokemon +.extern CopyPokemonToBoxPokemon +.extern CopyBoxPokemonToBoxPokemon +.extern MonGetFlavorPreference +.extern GetFlavorPreferenceFromPID +.extern Species_LoadLearnsetTable +.extern Party_GivePokerusAtRandom +.extern Party_MaskMonsWithPokerus +.extern Party_UpdatePokerus +.extern Party_SpreadPokerus +.extern Pokemon_HasPokerus +.extern Pokemon_IsImmuneToPokerus +.extern Pokemon_UpdateArceusForme +.extern BoxMon_UpdateArceusForme .extern GetArceusTypeByHeldItemEffect .extern LoadWotbl_HandleAlternateForme .extern FUN_02069FB0 @@ -4831,7 +4831,7 @@ .extern FUN_0206A998 .extern FUN_0206A9AC .extern FUN_0206AA30 -.extern FUN_0206AA84 +.extern Pokemon_RemoveCapsule .extern RestoreBoxMonPP .extern LoadAllWazaTbl .extern GetWazaAttr diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index f9672ea0..b665a9b3 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -14436,7 +14436,7 @@ MOD05_021EC4F0: ; 0x021EC4F0 _021EC544: ldr r1, [sp, #4] add r0, r4, #0 - bl FUN_02069BB4 + bl CopyBoxPokemonToBoxPokemon add r0, r5, #0 mov r1, #0 bl DayCareMon_SetSteps @@ -14599,7 +14599,7 @@ MOD05_021EC668: ; 0x021EC668 lsr r7, r0, #0x10 add r0, r5, #0 add r1, r4, #0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon add r0, r4, #0 mov r1, #0xa0 mov r2, #0 @@ -14680,7 +14680,7 @@ MOD05_021EC744: ; 0x021EC744 add r4, r0, #0 add r0, r6, #0 add r1, r4, #0 - bl FUN_02069BA0 + bl CopyPokemonToBoxPokemon add r0, r4, #0 mov r1, #8 mov r2, #0 @@ -15240,7 +15240,7 @@ MOD05_021ECB6C: ; 0x021ECB6C ldr r0, [sp, #0x18] ldr r1, [sp, #0xc] add r2, #0x30 - bl FUN_02069BFC + bl Species_LoadLearnsetTable lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] @@ -16911,7 +16911,7 @@ _021ED7CE: bl SetMonData add r0, r6, #0 add r1, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [sp, #0x10] bl String_dtor add r0, r6, #0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index f20313a9..02bc8f52 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -22218,7 +22218,7 @@ _022445A6: ldr r0, [sp, #4] bl GetPartyMonByIndex add r1, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add r0, r4, #0 mov r1, #0xa0 mov r2, #0 @@ -31096,10 +31096,10 @@ MOD06_0224891C: ; 0x0224891C bl CreateInGameTradeMon ldr r1, [sp, #0x20] add r0, r7, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [r5, #4] ldr r1, [sp, #0x24] - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [sp, #0x20] bl FUN_020690E4 str r0, [r4] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 0c87c27f..6b184294 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -4694,7 +4694,7 @@ MOD11_0223158C: ; 0x0223158C lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0 - bl FUN_02069AEC + bl Party_GetMaxLevel ldr r1, _022315BC ; =MOD11_0225DC1C lsl r0, r0, #2 ldrb r1, [r1, r4] @@ -24749,7 +24749,7 @@ _0223B414: lsl r1, r1, #0x18 ldr r0, [sp] lsr r1, r1, #0x18 - bl FUN_02069CF4 + bl Party_MaskMonsWithPokerus cmp r0, #0 beq _0223B42E lsl r0, r4, #0x11 @@ -38100,9 +38100,9 @@ MOD11_02241CF0: ; 0x02241CF0 mov r1, #0 bl MOD11_0222FF88 add r6, r0, #0 - bl FUN_02069C4C + bl Party_GivePokerusAtRandom add r0, r6, #0 - bl FUN_02069DC8 + bl Party_SpreadPokerus _02241D16: cmp r4, #0 beq _02241D20 @@ -52971,7 +52971,7 @@ _02248E3A: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -53002,7 +53002,7 @@ _02248E76: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -53033,7 +53033,7 @@ _02248EB2: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -53067,7 +53067,7 @@ _02248EFC: str r1, [r4, r0] ldr r0, _02248F68 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -53108,7 +53108,7 @@ _02248F64: .word 0x00002DB0 _02248F68: .word 0x00002DA8 _02248F6C: ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -54103,7 +54103,7 @@ _02249708: .word 0x00002DCC _0224970C: .word 0x00002DA8 _02249710: ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -54135,7 +54135,7 @@ _0224972C: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -54167,7 +54167,7 @@ _0224976A: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -54199,7 +54199,7 @@ _022497A8: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -54234,7 +54234,7 @@ _022497F4: str r1, [r4, r0] ldr r0, _02249A5C ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID mov r1, #0 mvn r1, r1 cmp r0, r1 @@ -55536,7 +55536,7 @@ _0224A1B6: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r6, #1 cmp r0, r1 bne _0224A1F6 @@ -55572,7 +55572,7 @@ _0224A1FC: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r6, #1 cmp r0, r1 bne _0224A23C @@ -55608,7 +55608,7 @@ _0224A242: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r6, #1 cmp r0, r1 bne _0224A282 @@ -55644,7 +55644,7 @@ _0224A288: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r6, #1 cmp r0, r1 bne _0224A2C8 @@ -55680,7 +55680,7 @@ _0224A2CE: add r2, r4, r0 ldr r0, _0224A344 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r6, #1 cmp r0, r1 bne _0224A30E @@ -56300,7 +56300,7 @@ _0224A77A: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -56333,7 +56333,7 @@ _0224A7BC: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -56366,7 +56366,7 @@ _0224A7FE: add r2, r4, r0 ldr r0, _0224A874 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r5, #1 cmp r0, r1 ldr r0, _0224A850 ; =0x00003118 @@ -56413,7 +56413,7 @@ _0224A878: add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 @@ -56446,7 +56446,7 @@ _0224A8B0: add r2, r4, r0 ldr r0, _0224AB18 ; =0x00002DA8 ldr r0, [r2, r0] - bl FUN_02069BE4 + bl GetFlavorPreferenceFromPID sub r1, r5, #1 cmp r0, r1 ldr r0, _0224AB1C ; =0x00003118 @@ -71782,7 +71782,7 @@ _022521DC: bl GetPartyMonByIndex add r1, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r6 @@ -71822,7 +71822,7 @@ _02252232: bl GetPartyMonByIndex add r1, r0, #0 ldr r0, [sp, #0x20] - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [r4, #4] ldrb r1, [r5, #0x1c] add r0, r0, r7 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 7b1720cb..53969b45 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -8885,7 +8885,7 @@ _021DBC56: lsl r1, r1, #4 ldr r0, [r4] ldr r1, [r5, r1] - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon mov r1, #0x49 lsl r1, r1, #2 ldr r0, [r5, r1] @@ -9038,7 +9038,7 @@ _021DBD8E: lsl r1, r1, #4 ldr r1, [r5, r1] add r0, r7, r6 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon b _021DBDB0 _021DBDA2: mov r1, #0x1a @@ -9367,7 +9367,7 @@ _021DC034: lsl r1, r1, #4 ldr r0, [sp] ldr r1, [r5, r1] - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r5, r0] @@ -9633,7 +9633,7 @@ _021DC254: cmp r0, r1 bne _021DC26A ldr r0, [r4] - bl FUN_02069ECC + bl BoxMon_UpdateArceusForme _021DC26A: add sp, #4 pop {r3, r4, r5, r6} diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index f3a4f14c..5550c76b 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -1032,7 +1032,7 @@ MOD23_02254F94: ; 0x02254F94 _02254FCE: lsl r0, r4, #0x10 lsr r0, r0, #0x10 - bl FUN_02069B60 + bl SinnohDexNoToSpecies add r4, r0, #0 _02254FD8: cmp r4, #0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 79190f60..73025559 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -4466,7 +4466,7 @@ MOD62_0222F80C: ; 0x0222F80C add r1, #0x64 ldr r0, [r0, #4] ldr r1, [r5, r1] - bl FUN_02069B88 + bl CopyPokemonToPokemon pop {r3, r4, r5, r6, r7, pc} _0222F832: ldr r1, [r5] @@ -4487,7 +4487,7 @@ _0222F83E: ldr r1, _0222F86C ; =0x00000428 add r0, r7, #0 ldr r1, [r5, r1] - bl FUN_02069B88 + bl CopyPokemonToPokemon pop {r3, r4, r5, r6, r7, pc} _0222F85C: ldr r1, [r5] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 4f418110..b77c8662 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -6329,12 +6329,12 @@ MOD71_022309E8: ; 0x022309E8 add r1, r6, #0 bl GetPartyMonByIndex add r1, r7, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [sp, #8] ldr r1, [sp, #0xc] bl GetPartyMonByIndex add r1, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add r0, r4, #0 mov r1, #0x4c mov r2, #0 @@ -6359,13 +6359,13 @@ _02230A40: mov r3, #0 bl FUN_0208089C add r0, r4, #0 - bl FUN_0206AA84 + bl Pokemon_RemoveCapsule ldr r1, [r5, #0x3c] add r0, r7, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r1, [r5, #0x40] add r0, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon bl FUN_02031190 mov r1, #1 eor r0, r1 @@ -6390,13 +6390,13 @@ _02230A98: bl GetPartyMonByIndex add r1, r0, #0 add r0, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [sp, #8] ldr r1, [sp, #0xc] bl GetPartyMonByIndex add r1, r0, #0 add r0, r7, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon ldr r0, [r5, #0x1c] add r1, r4, #0 bl MOD71_02230AE4 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 8e74df8f..667a4ae1 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -13583,7 +13583,7 @@ _022342B0: add r0, #0xbc ldr r0, [r0] add r1, r5, #0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon _022342BC: ldr r0, [r4] ldr r0, [r0, #0x1c] @@ -14618,7 +14618,7 @@ MOD80_02234AC0: ; 0x02234AC0 push {r4, lr} add r4, r0, #0 add r0, #0xd4 - bl FUN_0206AA84 + bl Pokemon_RemoveCapsule add r0, r4, #0 add r0, #0xd4 bl MOD80_0222DBC4 @@ -14939,7 +14939,7 @@ MOD80_02234CFC: ; 0x02234CFC push {r4, lr} add r4, r0, #0 add r0, #0xd4 - bl FUN_0206AA84 + bl Pokemon_RemoveCapsule add r0, r4, #0 add r0, #0xc4 ldr r1, [r0] @@ -16076,7 +16076,7 @@ MOD80_02235534: ; 0x02235534 ldr r0, [r0, #0xc] bl PCStorage_GetMonByIndexPair add r1, r4, #0 - bl FUN_02069A64 + bl CopyBoxPokemonToPokemon add r2, r5, #0 ldr r0, [r5] add r2, #0xb8 @@ -16104,7 +16104,7 @@ _02235590: ldr r0, [r0, #8] bl GetPartyMonByIndex add r4, r0, #0 - bl FUN_0206AA84 + bl Pokemon_RemoveCapsule add r2, r5, #0 ldr r0, [r5] add r2, #0xb8 @@ -17720,7 +17720,7 @@ MOD80_02236218: ; 0x02236218 bl GetPartyMonByIndex add r1, r0, #0 add r0, r4, #0 - bl FUN_02069B88 + bl CopyPokemonToPokemon add sp, #8 pop {r3, r4, r5, pc} _02236248: diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 7931ba51..7fe8191a 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -10,7 +10,7 @@ #include "math_util.h" #include "move_data.h" #include "string_util.h" -#include "text.h" +#include "seal.h" #include "msgdata.h" #include "itemtool.h" #include "constants/abilities.h" @@ -21,8 +21,6 @@ #pragma thumb on -extern void FUN_02029C74(const u8 *, u8 *); - 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); @@ -39,12 +37,12 @@ u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move); void FUN_02069718(struct BoxPokemon * boxmon, u16 move); void BoxMonSetMoveInSlot(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); +s8 BoxMonGetFlavorPreference(struct BoxPokemon * boxmon, int flavor); +s8 GetFlavorPreferenceFromPID(u32 personality, int flavor); +u8 Party_MaskMonsWithPokerus(struct PlayerParty * party_p, u8 mask); +BOOL BoxMon_HasPokerus(struct BoxPokemon * boxmon); +BOOL BoxMon_IsImmuneToPokerus(struct BoxPokemon * boxmon); +void BoxMon_UpdateArceusForme(struct BoxPokemon * boxmon); void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl); void FUN_0206A054(struct BoxPokemon * boxmon, struct PlayerData * a1, u32 pokeball, u32 a3, u32 encounterType, u32 heap_id); BOOL MonHasMove(struct Pokemon * pokemon, u16 move); @@ -118,61 +116,62 @@ const u16 sLegendaryMonsList[] = { 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 sFlavorPreferencesByNature[][5] = { + // Spicy, Dry, Sweet, Bitter, Sour + { 0, 0, 0, 0, 0 }, // NATURE_HARDY + { 1, 0, 0, 0, -1 }, // NATURE_LONELY + { 1, 0, -1, 0, 0 }, // NATURE_BRAVE + { 1, -1, 0, 0, 0 }, // NATURE_ADAMANT + { 1, 0, 0, -1, 0 }, // NATURE_NAUGHTY + { -1, 0, 0, 0, 1 }, // NATURE_BOLD + { 0, 0, 0, 0, 0 }, // NATURE_DOCILE + { 0, 0, -1, 0, 1 }, // NATURE_RELAXED + { 0, -1, 0, 0, 1 }, // NATURE_IMPISH + { 0, 0, 0, -1, 1 }, // NATURE_LAX + { -1, 0, 1, 0, 0 }, // NATURE_TIMID + { 0, 0, 1, 0, -1 }, // NATURE_HASTY + { 0, 0, 0, 0, 0 }, // NATURE_SERIOUS + { 0, -1, 1, 0, 0 }, // NATURE_JOLLY + { 0, 0, 1, -1, 0 }, // NATURE_NAIVE + { -1, 1, 0, 0, 0 }, // NATURE_MODEST + { 0, 1, 0, 0, -1 }, // NATURE_MILD + { 0, 1, -1, 0, 0 }, // NATURE_QUIET + { 0, 0, 0, 0, 0 }, // NATURE_BASHFUL + { 0, 1, 0, -1, 0 }, // NATURE_RASH + { -1, 0, 0, 1, 0 }, // NATURE_CALM + { 0, 0, 0, 1, -1 }, // NATURE_GENTLE + { 0, 0, -1, 1, 0 }, // NATURE_SASSY + { 0, -1, 0, 1, 0 }, // NATURE_CAREFUL + { 0, 0, 0, 0, 0 }, // NATURE_QUIRKY }; 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 }, + // Atk, Def, Speed, SpAtk, SpDef + { 0, 0, 0, 0, 0 }, // NATURE_HARDY + { 1, -1, 0, 0, 0 }, // NATURE_LONELY + { 1, 0, -1, 0, 0 }, // NATURE_BRAVE + { 1, 0, 0, -1, 0 }, // NATURE_ADAMANT + { 1, 0, 0, 0, -1 }, // NATURE_NAUGHTY + { -1, 1, 0, 0, 0 }, // NATURE_BOLD + { 0, 0, 0, 0, 0 }, // NATURE_DOCILE + { 0, 1, -1, 0, 0 }, // NATURE_RELAXED + { 0, 1, 0, -1, 0 }, // NATURE_IMPISH + { 0, 1, 0, 0, -1 }, // NATURE_LAX + { -1, 0, 1, 0, 0 }, // NATURE_TIMID + { 0, -1, 1, 0, 0 }, // NATURE_HASTY + { 0, 0, 0, 0, 0 }, // NATURE_SERIOUS + { 0, 0, 1, -1, 0 }, // NATURE_JOLLY + { 0, 0, 1, 0, -1 }, // NATURE_NAIVE + { -1, 0, 0, 1, 0 }, // NATURE_MODEST + { 0, -1, 0, 1, 0 }, // NATURE_MILD + { 0, 0, -1, 1, 0 }, // NATURE_QUIET + { 0, 0, 0, 0, 0 }, // NATURE_BASHFUL + { 0, 0, 0, 1, -1 }, // NATURE_RASH + { -1, 0, 0, 0, 1 }, // NATURE_CALM + { 0, -1, 0, 0, 1 }, // NATURE_GENTLE + { 0, 0, -1, 0, 1 }, // NATURE_SASSY + { 0, 0, 0, -1, 1 }, // NATURE_CAREFUL + { 0, 0, 0, 0, 0 }, // NATURE_QUIRKY }; void ZeroMonData(struct Pokemon * pokemon) @@ -563,10 +562,10 @@ u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest) case MON_DATA_SPDEF: return pokemon->party.spdef; case MON_DATA_MAIL_STRUCT: - Mail_copy(&pokemon->party.seal_something, dest); + Mail_copy(&pokemon->party.mail, dest); return 1; case MON_DATA_SEAL_COORDS: - FUN_02029C74(pokemon->party.sealCoords, dest); + FUN_02029C74(&pokemon->party.sealCoords, dest); return 1; default: return GetBoxMonDataInternal(&pokemon->box, attr, dest); @@ -1051,10 +1050,10 @@ void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value) pokemon->party.spdef = VALUE(u16); break; case MON_DATA_MAIL_STRUCT: - Mail_copy((const struct Mail *)value, &pokemon->party.seal_something); + Mail_copy((const struct Mail *)value, &pokemon->party.mail); break; case MON_DATA_SEAL_COORDS: - FUN_02029C74((const u8 *)value, pokemon->party.sealCoords); + FUN_02029C74((CapsuleArray *)value, &pokemon->party.sealCoords); break; default: SetBoxMonDataInternal(&pokemon->box, attr, value); @@ -2990,10 +2989,10 @@ BOOL MonHasMove(struct Pokemon * pokemon, u16 move) return FALSE; } -void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest) +void CopyBoxPokemonToPokemon(struct BoxPokemon * src, struct Pokemon * dest) { u32 sp0 = 0; - u8 sp4[12][2]; + CapsuleArray sp4; struct Mail * mail; dest->box = *src; if (dest->box.box_lock) @@ -3005,12 +3004,12 @@ void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest) SetMonData(dest, MON_DATA_MAIL_STRUCT, mail); FreeToHeap(mail); SetMonData(dest, MON_DATA_CAPSULE, &sp0); - MIi_CpuClearFast(0, sp4, sizeof(sp4)); - SetMonData(dest, MON_DATA_SEAL_COORDS, sp4); + MIi_CpuClearFast(0, &sp4, sizeof(sp4)); + SetMonData(dest, MON_DATA_SEAL_COORDS, &sp4); CalcMonLevelAndStats(dest); } -u8 FUN_02069AEC(struct PlayerParty * party) +u8 Party_GetMaxLevel(struct PlayerParty * party) { int i; int r7 = GetPartyCount(party); @@ -3037,7 +3036,7 @@ u16 SpeciesToSinnohDexNo(u16 species) return ret; } -u16 FUN_02069B60(u16 sinnoh_dex) +u16 SinnohDexNoToSpecies(u16 sinnoh_dex) { u16 ret = SPECIES_NONE; if (sinnoh_dex <= SINNOH_DEX_COUNT) @@ -3045,38 +3044,38 @@ u16 FUN_02069B60(u16 sinnoh_dex) return ret; } -void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest) +void CopyPokemonToPokemon(struct Pokemon * src, struct Pokemon * dest) { *dest = *src; } -void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest) +void CopyPokemonToBoxPokemon(struct Pokemon * src, struct BoxPokemon * dest) { *dest = src->box; } -void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest) +void CopyBoxPokemonToBoxPokemon(struct BoxPokemon * src, struct BoxPokemon * dest) { *dest = *src; } -s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor) +s8 MonGetFlavorPreference(struct Pokemon * pokemon, int flavor) { - return FUN_02069BD0(&pokemon->box, flavor); + return BoxMonGetFlavorPreference(&pokemon->box, flavor); } -s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor) +s8 BoxMonGetFlavorPreference(struct BoxPokemon * boxmon, int flavor) { u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL); - return FUN_02069BE4(personality, flavor); + return GetFlavorPreferenceFromPID(personality, flavor); } -s8 FUN_02069BE4(u32 personality, int flavor) +s8 GetFlavorPreferenceFromPID(u32 personality, int flavor) { - return UNK_020F7F16[GetNatureFromPersonality(personality)][flavor]; + return sFlavorPreferencesByNature[GetNatureFromPersonality(personality)][flavor]; } -int FUN_02069BFC(u16 species, u32 forme, u16 * dest) +int Species_LoadLearnsetTable(u16 species, u32 forme, u16 * dest) { int i; u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16)); @@ -3089,7 +3088,7 @@ int FUN_02069BFC(u16 species, u32 forme, u16 * dest) return i; } -void FUN_02069C4C(struct PlayerParty * party) +void Party_GivePokerusAtRandom(struct PlayerParty * party) { int count = GetPartyCount(party); int idx; @@ -3105,7 +3104,7 @@ void FUN_02069C4C(struct PlayerParty * party) idx = LCRandom() % 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))) + if (!Party_MaskMonsWithPokerus(party, (u8)MaskOfFlagNo(idx))) { do { @@ -3121,7 +3120,7 @@ void FUN_02069C4C(struct PlayerParty * party) } } -u8 FUN_02069CF4(struct PlayerParty * party, u8 mask) +u8 Party_MaskMonsWithPokerus(struct PlayerParty * party, u8 mask) { int i = 0; u32 flag = 1; @@ -3152,7 +3151,7 @@ u8 FUN_02069CF4(struct PlayerParty * party, u8 mask) return ret; } -void FUN_02069D50(struct PlayerParty * party, int r5) +void Party_UpdatePokerus(struct PlayerParty * party, int r5) { int i; u8 pokerus; @@ -3178,7 +3177,7 @@ void FUN_02069D50(struct PlayerParty * party, int r5) } } -void FUN_02069DC8(struct PlayerParty * party) +void Party_SpreadPokerus(struct PlayerParty * party) { int count = GetPartyCount(party); int i; @@ -3215,22 +3214,22 @@ void FUN_02069DC8(struct PlayerParty * party) } } -BOOL FUN_02069E74(struct Pokemon * pokemon) +BOOL Pokemon_HasPokerus(struct Pokemon * pokemon) { - return FUN_02069E7C(&pokemon->box); + return BoxMon_HasPokerus(&pokemon->box); } -BOOL FUN_02069E7C(struct BoxPokemon * boxmon) +BOOL BoxMon_HasPokerus(struct BoxPokemon * boxmon) { return !!(GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL) & 0xF); } -BOOL FUN_02069E94(struct Pokemon * pokemon) +BOOL Pokemon_IsImmuneToPokerus(struct Pokemon * pokemon) { - return FUN_02069E9C(&pokemon->box); + return BoxMon_IsImmuneToPokerus(&pokemon->box); } -BOOL FUN_02069E9C(struct BoxPokemon * boxmon) +BOOL BoxMon_IsImmuneToPokerus(struct BoxPokemon * boxmon) { u8 pokerus = (u8)GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL); if (pokerus & 0xF) @@ -3240,12 +3239,12 @@ BOOL FUN_02069E9C(struct BoxPokemon * boxmon) return FALSE; } -void FUN_02069EC4(struct Pokemon * pokemon) +void Pokemon_UpdateArceusForme(struct Pokemon * pokemon) { - FUN_02069ECC(&pokemon->box); + BoxMon_UpdateArceusForme(&pokemon->box); } -void FUN_02069ECC(struct BoxPokemon * boxmon) +void BoxMon_UpdateArceusForme(struct BoxPokemon * boxmon) { u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL); u32 ability = GetBoxMonData(boxmon, MON_DATA_ABILITY, NULL); @@ -3460,7 +3459,7 @@ void FUN_0206A23C(struct Pokemon * r5, u32 personality) struct Pokemon * sp4; sp4 = AllocMonZeroed(0); - FUN_02069B88(r5, sp4); + CopyPokemonToPokemon(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; @@ -3721,13 +3720,13 @@ int FUN_0206AA30(int x) } } -void FUN_0206AA84(struct Pokemon * pokemon) +void Pokemon_RemoveCapsule(struct Pokemon * pokemon) { u8 sp0 = 0; - u8 sp1[12][2]; - MIi_CpuClearFast(0, sp1, sizeof(sp1)); + CapsuleArray sp1; + MIi_CpuClearFast(0, &sp1, sizeof(sp1)); SetMonData(pokemon, MON_DATA_CAPSULE, &sp0); - SetMonData(pokemon, MON_DATA_SEAL_COORDS, sp1); + SetMonData(pokemon, MON_DATA_SEAL_COORDS, &sp1); } void RestoreBoxMonPP(struct BoxPokemon * boxmon) diff --git a/include/pokemon.h b/include/pokemon.h index a089652d..d107bf85 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -142,8 +142,8 @@ struct PartyPokemon /* 0x096 */ u16 speed; /* 0x098 */ u16 spatk; /* 0x09A */ u16 spdef; - /* 0x09C */ struct Mail seal_something; // a struct? - /* 0x0D4 */ u8 sealCoords[0x18]; // u8 pairs? + /* 0x09C */ struct Mail mail; + /* 0x0D4 */ u8 sealCoords[8][3]; // seal coords }; struct Pokemon { @@ -279,21 +279,21 @@ 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); +void CopyBoxPokemonToPokemon(struct BoxPokemon * src, struct Pokemon * dest); +u8 Party_GetMaxLevel(struct PlayerParty * party); u16 SpeciesToSinnohDexNo(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); +u16 SinnohDexNoToSpecies(u16 sinnoh_dex); +void CopyPokemonToPokemon(struct Pokemon * src, struct Pokemon * dest); +void CopyPokemonToBoxPokemon(struct Pokemon * src, struct BoxPokemon * dest); +void CopyBoxPokemonToBoxPokemon(struct BoxPokemon * src, struct BoxPokemon * dest); +s8 MonGetFlavorPreference(struct Pokemon * pokemon, int flavor); +int Species_LoadLearnsetTable(u16 species, u32 forme, u16 * dest); +void Party_GivePokerusAtRandom(struct PlayerParty * party); +void Party_UpdatePokerus(struct PlayerParty * party, int r5); +void Party_SpreadPokerus(struct PlayerParty * party); +BOOL Pokemon_HasPokerus(struct Pokemon * pokemon); +BOOL Pokemon_IsImmuneToPokerus(struct Pokemon * pokemon); +void Pokemon_UpdateArceusForme(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, struct PlayerData * a1, u32 pokeball, u32 a3, u32 encounterType, u32 heap_id); void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2); @@ -305,7 +305,7 @@ BOOL IsPokemonLegendaryOrMythical(u16 species); u16 GetLegendaryMon(u32 idx); BOOL FUN_0206A998(struct Pokemon * pokemon); BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct PlayerData * sb2, u32 heap_id); -void FUN_0206AA84(struct Pokemon * pokemon); +void Pokemon_RemoveCapsule(struct Pokemon * pokemon); void RestoreBoxMonPP(struct BoxPokemon * boxmon); #endif //POKEDIAMOND_POKEMON_H diff --git a/include/seal.h b/include/seal.h new file mode 100644 index 00000000..9e31e2e4 --- /dev/null +++ b/include/seal.h @@ -0,0 +1,24 @@ +#ifndef POKEDIAMOND_SEAL_H +#define POKEDIAMOND_SEAL_H + +typedef u8 Coords8[3]; +typedef Coords8 CapsuleArray[8]; + +struct SealCase +{ + CapsuleArray coords[12]; + u8 padding_120[0x50]; +}; + +u32 FUN_02029C58(void); +void FUN_02029C60(struct SealCase * sealCase); +void FUN_02029C74(const CapsuleArray * a0, CapsuleArray * a1); +struct SealCase * FUN_02029C80(struct SaveBlock2 * sav2); +CapsuleArray * FUN_02029C8C(struct SealCase * sealCase, s32 idx); +void FUN_02029CA4(struct SealCase * sealCase, const CapsuleArray * src, s32 idx); +Coords8 * FUN_02029CC8(CapsuleArray * a0, s32 a1); +u8 FUN_02029CE0(Coords8 * a0); +u8 FUN_02029CE4(Coords8 * a0); +u8 FUN_02029CE8(Coords8 * a0); + +#endif //POKEDIAMOND_SEAL_H -- cgit v1.2.3 From 6622578d04d0e0711ef6ce405312e2edc085d377 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 08:24:44 -0400 Subject: Decode trainer names --- arm9/asm/unk_020023C0.s | 2 +- arm9/src/trainer_data.c | 4 +- files/msgdata/msg/narc_0559.txt | 1700 +++++++++++++++++++-------------------- include/trainer_data.h | 6 +- tools/msgenc/msgenc.cpp | 27 +- 5 files changed, 882 insertions(+), 857 deletions(-) diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index a84fda87..604c7211 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -180,7 +180,7 @@ _020024DA: beq _0200251A b _02002700 _020024E4: - add r0, r0, #0x1 + add r0, r0, #0x1 ; =0x0000FFFF EOS cmp r5, r0 beq _020024EC b _02002700 diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c index 7c52a78f..7af4b2ce 100644 --- a/arm9/src/trainer_data.c +++ b/arm9/src/trainer_data.c @@ -13,7 +13,7 @@ extern void * FUN_02024EC0(struct SaveBlock2 *); extern u16 * FUN_02024EE8(void *); // Loads all battle opponents, including multi-battle partner if exists. -void EnemyTrainerSet_Init(struct EnemyTrainerSet * enemies, struct SaveBlock2 * sav2, u32 heap_id) +void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 * sav2, u32 heap_id) { struct TrainerDataLoaded trdata; struct MsgData * msgData; @@ -261,7 +261,7 @@ int TrainerClass_GetGenderOrTrainerCount(int a0) return sTrainerClassGenderCountTbl[a0]; } -void CreateNPCTrainerParty(struct EnemyTrainerSet * enemies, s32 party_id, u32 heap_id) +void CreateNPCTrainerParty(struct BattleSetupStruct * enemies, s32 party_id, u32 heap_id) { union TrainerMon * data; s32 i; diff --git a/files/msgdata/msg/narc_0559.txt b/files/msgdata/msg/narc_0559.txt index 7368b8c4..aaa781cf 100644 --- a/files/msgdata/msg/narc_0559.txt +++ b/files/msgdata/msg/narc_0559.txt @@ -1,850 +1,850 @@ -{F100}{7DDE}{7FFE} -{F100}{2D3E}{7A6D}{562A}{2545}{7FFD} -{F100}{2736}{5A5D}{54A8} -{F100}춈{5AC5}{5428}{134D}{7FFD} -{F100}{1B37}{4A3D}{5169}{2149}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{3B3E}{1A85}{55A9} -{F100}춤{5A8D}{54A8}{1958}{7A2D} -{F100}춤{5AB5}{5328} -{F100}{2D2C}{2A2D}{522A}{2553}{7FFD} -{F100}춥찔{54EA}{7F56} -{F100}{1B36}{6AD5}{70BB}{6DDE}{6A6C}{7FEB} -{F100}쵭{3A3D}{51AA} -{F100}{1B3D}{2A4D}{516A} -{F100}촬{5A95}{5269}{7F50} -{F100}{1B38}{4A3D}{54E9}츙{7ABD} -{F100}{1335}{7A85}{526A}{7F5D} -{F100}{212F}{6A6D}{516B}{1346}{4AC5}{7FE9} -{F100}{252B}{6A45}{526A}{7F5B} -{F100}{2734}{1ABD}{5529}{7F4C} -{F100}췐{4A3D}{5169}{3B56}{7FFD} -{F100}{392B}젼{7FEA} -{F100}쵭{1A8D}{55E9} -{F100}{2734}{2A65}{7FEA} -{F100}{3B3C}{2A2D}{7FEA} -{F100}{1337}{5A5D}{54A8} -{F100}{1B38}{3A3D}{542A}{7F49} -{F100}쵯찔{516A} -{F100}출{4A3D}{5269}{7F50} -{F100}{332B}쩝{536B}{7F52} -{F100}{252B}{4AC5}{54E9}{3B52}{7FFD} -{F100}쵱{6ACD}{526A}{7F52} -{F100}{1335}{5AD5}{54A9} -{F100}{3334}쩝{536B}{7F52} -{F100}{1332}{1A85}{54A9} -{F100}{273C}{1A35}{55A9}{7F58} -{F100}{212B}{4A4D}{516B}{1152}{6A4D}{7FEA} -{F100}{2734}{5A95}{5628}츄{7A95} -{F100}{3B35}{1A85}{7FE9} -{F100}{272D}{5A45}{7FEB} -{F100}쵤{2A95}{516A}{7F4C} -{F100}{1B41}쥠{536A}{2345}{7FFD} -{F100}{212B}{1A35}{55A9}{7F58} -{F100}{1334}{2A95}{536A}{134A}{7AB5} -{F100}{193D}젼{542A}{3B49}{7FFD} -{F100}{1B3C}{4A3D}{5169}{1156}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}촬{5A95}{5269}{2150}{7A4D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{3B3E}{2EF5}{77B8}{333D}{7A4D} -{F100}쵯좡{536A}{7F50} -{F100}{232B}{1A35}{55A9} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{133E}{5AB5}{77A9}{3DC2}{59F7}{5169} -{F100}{2D2F}{1A95}{55E9}{7F58} -{F100}{212B}{7AED}{55EA}{7F45} -{F100}{2D2C}{5A6D}{54A8} -{F100}{112B}{1A2D}{7FEA} -{F100}{2734}젼{7FEA} -{F100}춈{4AC5}{5169}{7F52} -{F100}촬{5AD5}{5229}{7F53} -{F100}축{6AC5}{536A}{1F47}{7FFD} -{F100}{2D2C}{5A6D}{54A8}측{7FFD} -{F100}췐{6A3D}{70BB}{69DE}{2A4C}{7FEA} -{F100}{212B}{4A4D}{516B}{1152}{5AB5}{7FE8} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}췐{4A3D}{7FE9} -{F100}{133D}{2A2D}{7FEA} -{F100}{1B38}{7A3D}{7FE9} -{F100}쵯{4AC5}{5269}{1B56}{1A95}{7FE9} -{F100}쵭{3ABD}{54AA} -{F100}{1337}{5A85}{55E9}츳{7FFD} -{F100}{1334}{1AB5}{5469}{7F5D} -{F100}{133C}{2A6D}{516A} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{272C}{6A35}{5768} -{F100}{212B}{4A4D}{7FEB} -{F100}{3B2E}{5A85}{54A8} -{F100}{3334}{2A2D}{7FEA} -{F100}촨{1A8D}{55A9}{2553}{7FFD} -{F100}{2D3E}{2A2D}{536B}{7F57} -{F100}춥찔{54EA}{7F56} -{F100}{1334}{2A55}{55A9}{3B49}{7FFD} -{F100}{212B}{5A85}{55E9}{2553}{7FFD} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{313D}{2A4D}{5169}{2752}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}촨{1A85}{51A9} -{F100}{193D}젼{562A}{254D}{7FFD} -{F100}{352F}{2A2D}{7FEA} -{F100}쵤{1A85}{5769} -{F100}쵸{5AB5}{7FEB} -{F100}쵭{1AB5}{5229} -{F100}{192D}젼{55EA}췹{7FFD} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}축쫓{7FEA} -{F100}{1335}{2A95}{526A}{1958}{7FFD} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{2D2C}{5AED}{54A8} -{F100}{3332}직{526B}{7F56} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7AC5}{5328}{2149}{7A85} -{F100}힘{3A6D}{5169}{214D}{7FFD} -{F100}촨쨔{54EA}{7F57} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{2D31}{3A4D}{54E9}{3B56}{7FFD} -{F100}{132E}{1AB5}{53E9} -{F100}춈{4AC5}{5169}{1B52}젼{7FEA} -{F100}{0F3D}징{562B} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{212C}{7A2D}{5269} -{F100}쵠{6AB5}{526A}{3158}{7FFD} -{F100}쵱{6ACD}{516A} -{F100}쵸{5AB5}{5169} -{F100}{2D2C}잿{5429}{3B49}{7FFD} -{F100}{112F}{5ADD}{55A8}{7F48} -{F100}쵯죕{542B}{255D}{7FFD} -{F100}{252B}{6A45}{526A}{7F45} -{F100}촬쥠{54EB}{7F52} -{F100}{2139}{2A6D}{536B}{7F45} -{F100}{193D}{3A2D}{54AB} -{F100}{1D2C}{6A9D}{54AA} -{F100}{1336}{5AE5}{5269} -{F100}쵸{5A45}{55E9}{2553}{7FFD} -{F100}{252B}{3AC5}{54AA}{274D}{7FFD} -{F100}{312F}{5A65}{54A8} -{F100}{3336}{1A7D}{7FE9} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{1A5D}{526B}{7F50} -{F100}{3336}{7A3D} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{112B}{5AB5}{5169}{7F52} -{F100}{2D2F}{7A6D}{7FE9} -{F100}{1B40}{7A95}{5268}{3152}{7FFD} -{F100}{1334}{7ABD}{536A}췰{7FFD} -{F100}{2D2F}{7A6D}{5168} -{F100}쵯{1AC5}{5429}{255D}{7FFD} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{1B2E}쥠{54EA}{7F52} -{F100}충{1A95}{55E9}츳{7FFD} -{F100}{272D}{5AB5}{7FEB} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵭{1A7D}{7FE9} -{F100}{193D}{2A2D}{54AA}{2553}{7FFD} -{F100}{2D2C}젼{562B} -{F100}{212B}{7A4D}{7FE8} -{F100}{1331}{6A9D}{52EA}{7F49} -{F100}{272D}{1A85}{7FE9} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{3336}{4AC5}{5269}{7F56} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{1341}쩝{526A}{7F5D} -{F100}{1B3C}{5A3D}{55A8}{2748}{7FFD} -{F100}{2D30}{2A2D}{51EA}{2F4D}{3A3D}{7FEA} -{F100}{272D}쥠{54EB}{7F52} -{F100}{2D3E}{5A9D}{7FEB} -{F100}{2F39}{5A3D}{55A8} -{F100}{1B37}{5AB5}{54A8}췸{7FFD} -{F100}{332B}{6A35}{526A}{7F49} -{F100}축{3A6D}{5269} -{F100}{2D2D}{7AED}{562A}{2145}{7FFD} -{F100}촨{7ABD}{516A}{1152}{5AB5}{7FE8} -{F100}쵠{6A35}{536A}{2149}{1A85}{7FE9} -{F100}{272D}{5A85}{54A9} -{F100}쵸{3ABD}{54AA} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵭{7A3D}{7FE9} -{F100}{193A}죕{542A}{294D}{7FFD} -{F100}{272E}{5A95}{5428}{7F48} -{F100}{2D2C}{5A6D}{54A8}{7F45} -{F100}{212F}{6A6D}{5169}{7F4C} -{F100}{1B36}직{55E9}{3B49}{7FFD} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{2339}{6A2D}{7FEA} -{F100}{1332}{6A95}{576A} -{F100}쵸{5AB5}{5169}{7F4C} -{F100}{3B3D}{2A45}{526A}{7F5D} -{F100}{112F}{5A5D}{55A8} -{F100}{212D}{5A2D}{562B}{2553}{7FFD} -{F100}{2539}{6A45}{526A}{7F4E} -{F100}{212D}{2A6D}{562A}{2553}{7FFD} -{F100}촬{5AD5}{5229} -{F100}쵤{5A95}{7FE8} -{F100}{2D2C}{7AED}{5268} -{F100}충{1A85}{54A9}{1B47}{7A2D} -{F100}{2734}{2EF5}{77B8}축{7AC5} -{F100}{212B}{2EF5}{77B8}쵯{7AED} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{2D31}{2A2D}{562A} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{2734}{5A95}{5628}{274C}{7A95} -{F100}촬{5AB5}{5669}{7F57} -{F100}{273C}{6A2D}{53EA} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{3B2C}{3AB5}{54AA} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵭{7A3D}{55E9}{2553}{7FFD} -{F100}쵠{5AB5}{7FEB} -{F100}{193A}죕{536A}{7F54} -{F100}{1334}{2A95}{516A} -{F100}{252B}{1A5D}{5429}{7F45} -{F100}총{3AB5}{54AA} -{F100}{132C}쨔{532B}{7F45} -{F100}{2130}{2A6D}{562A} -{F100}{3336}{5A3D}{5169}{7F52} -{F100}{332D}쨔{536B}{7F57} -{F100}{2D2E}{3A4D}{7FEB} -{F100}{3B2D}직{532B}츈{7FFD} -{F100}{133D}{3AB5}{5369}{7F53} -{F100}{2F33}{5A2D}{5169}{7F4C} -{F100}춤{5AD5}{54A8}측{7A65} -{F100}{212B}{7A6D}{5368}{7F45} -{F100}{272E}{3ACD}{5429}{2F45}{7FFD} -{F100}{2D2C}잿{5769} -{F100}{3533}{2A2D}{7FEA} -{F100}{1330}{2AB5}{516A}{1152}{7A9D} -{F100}{112F}{5ADD}{54A9} -{F100}쵤찔{5269}{7F52} -{F100}{132E}{2A95}{536A}{7F57} -{F100}{132D}{5ABD}{55A8} -{F100}{212B}{1A85}{54A9} -{F100}췐{4A3D}{5269}{3B56}{7FFD} -{F100}{333C}{1A35}{54A9} -{F100}{2D2C}{5A4D}{54A8}측{7FFD} -{F100}촨{4AC5}{5269}{1B56}{1A95}{7FE9} -{F100}{132E}쩝{536B}{3B52}{7FFD} -{F100}쵭{5A8D}{5269} -{F100}쵸{5AED}{7FE8} -{F100}쵸{3AE5}{526B}{2150}{7FFD} -{F100}{2D2C}죕{562B}{1352}{7AED} -{F100}{352B}{6A2D}{70BB}{6FDE}잽{562B} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵸{7AB5}{54E8} -{F100}{2D2F}{7A6D}{53E8} -{F100}{232F}{5A8D}{77A8}{3DC2}{59B7}{5429} -{F100}쵸{7AB5}{7FEA} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{273E}{5A95}{7FEB} -{F100}{1334}{6AB5}{576A} -{F100}{2D3A}{7A4D}{562A}{2553}{7FFD} -{F100}{2736}{2A95}{536A}{7F49} -{F100}촨{2A85}{536B}{7F52} -{F100}쵱{6AB5}{576A} -{F100}{3B41}잿{562B} -{F100}{2D2D}{5A2D}{52E9} -{F100}출쫓{7FEA} -{F100}{272D}{6A85}{5768} -{F100}촬{6AB5}{526A}{7F52} -{F100}출{5A55}{5268}{7F50} -{F100}{1334}{2A55}{5269}{3B56}{7FFD} -{F100}촨쨔{7FEA} -{F100}{1B3C}{7A3D}{5769} -{F100}쵠쨔{5269}{1B52}{7A2D} -{F100}춰{1A7D}{7FE9} -{F100}쵸찔{526A}{1352}{7FFD} -{F100}최직{536B}측{7FFD} -{F100}촨직{5369}{1347}{7FFD} -{F100}{2740}{7A85}{54A9}{2D49}{7FFD} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}쵸{1A45}{5429}{254D}{7A4D} -{F100}쵯죕{542B}{254D}{7FFD} -{F100}촨{3AB5}{542A}{254D}{7A4D} -{F100}{2737}쥠{576A} -{F100}{2736}{5ACD}{55E9} -{F100}{212B}{4A4D}{516B} -{F100}춤{6A35}{536A}측{7FFD} -{F100}{1B2E}{2A2D}{516A} -{F100}{192D}{5A4D}{526B}{2552}{7A4D} -{F100}{1337}{4A5D}{5169}{7F52} -{F100}촬{2A95}{576A} -{F100}{193E}{1A9D}{516A}{7F57} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{2D3E}{5A4D}{7FEB} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}쵸{7AB5}{7FE8} -{F100}{1F3D}찔{526A}{7F56} -{F100}촬{5A8D}{5169}{7F52} -{F100}{192D}{2A2D}{51EA}{7F49} -{F100}{2730}{6AB5}{526A}{3157}{7FFD} -{F100}쵤{6AB5}{536A}{2757}{7A95} -{F100}쵸{7A3D}{5269}{3D52}{1A6D}{7FE9} -{F100}{1B3E}{6A4D}{516A} -{F100}{192D}{5AB5}{55E9}{1B58}{1A95}{7FE9} -{F100}{3B2D}직{5769} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B36}직{55E9}{3B45}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}촬쥠{516A}{7F57} -{F100}{133D}{5A35}{55E8}{1B58}{2A2D}{7FEA} -{F100}{272E}{2A95}{576A} -{F100}{2D3E}{2A4D}{562A}{2553}{7FFD} -{F100}{272D}{2A95}{526A}{7F56} -{F100}쵸{5AB5}{5269}{7F50} -{F100}{2732}쥠{576A} -{F100}{2D2B}{5A8D}{54A8}{2748}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵯{5AC5}{7FE9} -{F100}{1331}{5AB5}{55A8}{2748}{7FFD} -{F100}{273C}{5AE5}{77AB}{3DC2}욱{536A} -{F100}{133E}{5AD5}{54A9} -{F100}{1B35}{7A95}{526A}{7F5D} -{F100}{2D31}{7A2D}{5268} -{F100}{3B3E}{1A85}{55A9} -{F100}{332B}{1AC5}{546B}{7F52} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}췐{7A3D}{5169}{3B56}{7FFD} -{F100}쵱{6ADD}{526A}{0F52}{7A4D} -{F100}{1B2E}{3A4D}{54E9} -{F100}축{7AB5}{5269}{7F56} -{F100}{272E}{5A8D}{54A9}{2B4D}{1ACD}{7FE9} -{F100}쵭{5A8D}{5428} -{F100}{133E}{6AB5}{576A} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{2734}{7A4D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{2734}{5A95}{5328} -{F100}{1B37}{5A3D}{5328} -{F100}{2D2B}{4AC5}{5669}{7F56} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{2D2C}{2A4D}{522A}{7F45} -{F100}{2D2C}{2A2D}{522A}{7F4D} -{F100}{212D}{6A2D}{536A}{1347}{7FFD} -{F100}{2735}{5A45}{7FEB} -{F100}쵱직{54E9}{7F52} -{F100}{132E}{2A2D}{522A}{1356}{7FFD} -{F100}출{4A3D}{5169}{2149}{7FFD} -{F100}{132E}{5ABD}{55A9}{1349}{7FFD} -{F100}{1335}직{55A9}{7F45} -{F100}춰쥠{526B}{7F56} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{3B2D}{1AB5}{55EB} -{F100}{3B2D}{1AB5}{55EB} -{F100}쵸{7AB5}{7FEA} -{F100}{3334}{5AA5}{5629}{2D49}{7FFD} -{F100}{3334}{5AA5}{5629}{2D49}{7FFD} -{F100}춤{1AC5}{55AB}{7F52} -{F100}춤{1AC5}{55AB}{7F52} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D2B}{1AC5}{55AB}{7F53} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵤{6AB5}{576A} -{F100}{1331}{5AB5}{5428}{7F48} -{F100}{1B37}{1A85}{55E9} -{F100}{1335}직{5169}{7F50} -{F100}{112F}{5A45}{5269} -{F100}{1B41}쥠{536A}{7F49} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}촨{7ABD}{536A}{3B48}{7FFD} -{F100}{193E}{3A4D}{522A}{2D53}{7A4D} -{F100}촬{3A8D}{54AA} -{F100}쵸{6ACD}{536A}{1347}{7FFD} -{F100}{133C}{5A5D}{54A9}{2145}{7A45} -{F100}{2736}{1AB5}{54A9}{275E}{7FFD} -{F100}쵯{5AB5}{54A9}{7F45} -{F100}{333D}{1A8D}{526A}{7F56} -{F100}{273E}{5AB5}{7FE9} -{F100}{252B}{7A2D} -{F100}{1336}{7A4D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{2D2B}{1A6D}{5429} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}췐{4A3D}{5169}{1B56}{4A2D}{7FE9} -{F100}춤{7A8D}{54EA}{7F52} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{193D}{1A2D}{54AB} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}최{5A35}{5169}{7F52} -{F100}{2D2C}{2A4D}{54AA}{2545}{7FFD} -{F100}{2D2C}{7ACD}{5268} -{F100}{132E}{3AD5}{54AA} -{F100}{1B38}{3A3D}{542A}{7F45} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{212D}{5A2D}{55A9}{7F49} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}춰{2AED}{526A} -{F100}쵭{7A3D}{5769} -{F100}촨죕{542B}{255D}{7FFD} -{F100}{133E}{6AB5}{526A}{2150}{7FFD} -{F100}{2D2C}{2A4D}{522A}{2549}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B41}쥠{576A} -{F100}{2D2C}잿{5269}{7F52} -{F100}{2D2C}{2A4D}{522A}{2553}{7FFD} -{F100}{333B}{2A4D}{562A}{254D}{7FFD} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}쵸{7AB5}{7FEA} -{F100}{1B35}{6AB5}{5768} -{F100}{1336}{2A9D}{516A}{1156}{7FFD} -{F100}{133C}{1A35}{53E9}{1945}{7FFD} -{F100}{2139}{2A6D}{526B}{7F56} -{F100}{132C}{4AC5}{77A9}{3DC2}{3967}{51AA} -{F100}{1B37}{1A7D}{77A9}{3DC2}{59C7}{5628} -{F100}{212B}{7A6D}{54EA}{7F52} -{F100}{2F33}{5A8D}{5268}{7F50} -{F100}쵯찔{526A}{7F49} -{F100}촬{6AB5}{576A}{7F50} -{F100}{332F}{1A5D}{54A9}{7F49} -{F100}{1337}{1AB5}{5229}{314D}{7A65} -{F100}{1335}직{55A9}{0F4D}{7A7D} -{F100}{1336}{2A9D}{516A}{1156}{7A9D} -{F100}{133C}{1A35}{51E9}췰{7FFD} -{F100}{212C}찔{532B}{7F49} -{F100}{273C}{5A8D}{54A8} -{F100}{3B35}{5A85}{5269} -{F100}충{1A85}{55A9}{134D}{7FFD} -{F100}{2F2F}{1AC5}{51A9}{2545}{7FFD} -{F100}{232F}죕{536A}{7F53} -{F100}쵠{6A35}{536A}{2149}{5A85}{7FE8} -{F100}쵤쨔{526A}{7F5D} -{F100}{232F}{2A2D}{566A}{2149}{7FFD} -{F100}쵯쨔{7FEA} -{F100}{332B}{6A45}{526A}{7F5D} -{F100}{1331}{1A95}{56A9}{7F45} -{F100}{2D35}{7AED}{562A}{2145}{7FFD} -{F100}{1331}{2A9D}{52A9}{1356}{7AED} -{F100}촬{5AB5}{5269}{7F52} -{F100}{1335}{3A4D}{5169}{7F52} -{F100}{313D}{2A2D}{542A}{3B49}{7FFD} -{F100}{2D2E}{7A2D}{5269} -{F100}{1335}{2A95}{576A} -{F100}{273C}{3A45}{542A}{274A}{7FFD} -{F100}춤쫓{7FEA} -{F100}{2734}{1ABD}{7FE9} -{F100}{1330}{5A85}{5729} -{F100}{333B}{2A6D}{54AA} -{F100}{2D31}{4A2D}{5169}{7F51} -{F100}{1335}{2A4D}{516A}{7F52} -{F100}{313D}{2A4D}{5169}{7F52} -{F100}{1F3D}찔{516A}{7F56} -{F100}힘젼{7FEA} -{F100}{132E}{2A2D}{54AA}{7F45} -{F100}{2D2B}{5A6D}{54A8}{7F45} -{F100}촬{5A95}{7FE8} -{F100}{1B37}{5A7D}{5768}츙{7FFD} -{F100}{1337}{3A2D}{5169}{7F52} -{F100}춤직{55A9}{7F45} -{F100}쵯{7ABD}{516A}{1152}{5AB5}{7FE8} -{F100}쵭{1ABD}{536A}{7F52} -{F100}춈{5AC5}{55E8}츄{7FFD} -{F100}{2737}{5A95}{5569}{1359}{7FFD} -{F100}{272D}{6AB5}{5368}{7F52} -{F100}{313D}{6A4D}{542A}{254D}{7A5D} -{F100}촬{7A6D}{576A} -{F100}{192D}젼{55EA}{3B49}{7FFD} -{F100}촬{3AD5}{54AA} -{F100}{2D31}{2A6D}{52A9}{254D}{7FFD} -{F100}출{7AED} -{F100}쵭{6AB5}{526A}{3158}{7FFD} -{F100}{3B35}{1A85}{55A9} -{F100}{132E}{4ABD}{5169}{255B}{7FFD} -{F100}{372E}{5A2D}{54AB}{7F49} -{F100}{2F2B}좡{526A}{7F49} -{F100}{1330}{5A85}{51E9}츈{7FFD} -{F100}{2D35}{7A6D}{562A}{7F45} -{F100}{2131}{2A4D}{54AA} -{F100}{3335}쨔{7FEB} -{F100}춤{7A8D} -{F100}춰{1A45}{7FE9} -{F100}{2734}{2A2D}{54AA}{7F45} -{F100}{273D}{4AA5}{5369}{7F45} -{F100}쵸쥠{54EA}{3B56}{7FFD} -{F100}{3B36}{5A45}{5169} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}쵤쨔{516A}{7F52} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{192D}{6A4D}{576A}{7F50} -{F100}{1B3C}{1A85}{5769} -{F100}쵸쨔{526A}{7F5D} -{F100}{332C}{7A3D}{7FE9} -{F100}{1B37}{5AB5}{7FE8} -{F100}{3336}{5A3D}{55E8} -{F100}{3336}{5A3D}{55E8} -{F100}{3336}{5A3D}{55E8} -{F100}촬{2ADD}{7FEA} -{F100}촬{2ADD}{7FEA} -{F100}촬{2ADD}{7FEA} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{3336}{5A3D}{55E8} -{F100}{3336}{5A3D}{55E8} -{F100}{3336}{5A3D}{55E8} -{F100}촬{2ADD}{7FEA} -{F100}촬{2ADD}{7FEA} -{F100}촬{2ADD}{7FEA} -{F100}{212F}{6A6D}{516B}{1346}{4AC5}{7FE9} -{F100}{212F}{6A6D}{516B}{1346}{4AC5}{7FE9} -{F100}{212F}{6A6D}{516B}{1346}{4AC5}{7FE9} -{F100}{1335}{5AD5}{54A9} -{F100}{1335}{5AD5}{54A9} -{F100}{1335}{5AD5}{54A9} -{F100}{1332}{1A85}{54A9} -{F100}{1332}{1A85}{54A9} -{F100}{1332}{1A85}{54A9} -{F100}{2D2C}{5A6D}{54A8}측{7FFD} -{F100}{2D2C}{5A6D}{54A8}측{7FFD} -{F100}{332B}{6A45}{526A}{7F5D} -{F100}{212B}{1A35}{55A9}{7F58} -{F100}{212B}{1A35}{55A9}{7F58} -{F100}{212B}{1A35}{55A9}{7F58} -{F100}{1334}{2A95}{536A}{134A}{7AB5} -{F100}{1334}{2A95}{536A}{134A}{7AB5} -{F100}{1334}{2A95}{536A}{134A}{7AB5} -{F100}췐{7A3D}{5169}{3B56}{7FFD} -{F100}췐{7A3D}{5169}{3B56}{7FFD} -{F100}췐{7A3D}{5169}{3B56}{7FFD} -{F100}촬쥠{54EB}{7F52} -{F100}{2139}{2A6D}{536B}{7F45} -{F100}{3533}{2A2D}{7FEA} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{2734}{2A65}{7FEA} -{F100}{2734}{2A65}{7FEA} -{F100}{2734}{2A65}{7FEA} -{F100}쵯찔{516A} -{F100}쵯찔{516A} -{F100}쵯찔{516A} -{F100}축{6AC5}{536A}{1F47}{7FFD} -{F100}축{6AC5}{536A}{1F47}{7FFD} -{F100}쵤찔{5269}{7F52} -{F100}{1331}{2A9D}{52A9}{1356}{7AED} -{F100}쵭{1A7D}{7FE9} -{F100}{132E}{2A95}{536A}{7F57} -{F100}{132E}{2A95}{536A}{7F57} -{F100}{273C}{3A45}{542A}{274A}{7FFD} -{F100}춤쫓{7FEA} -{F100}{193D}{2A2D}{54AA}{2553}{7FFD} -{F100}쵸{5AED}{7FE8} -{F100}쵸{5AED}{7FE8} -{F100}{132E}{2A2D}{54AA}{7F45} -{F100}{2D2B}{5A6D}{54A8}{7F45} -{F100}{1B37}{7AC5}{5328}{2149}{7A85} -{F100}{1B37}{7AC5}{5328}{2149}{7A85} -{F100}쵸{3AE5}{526B}{2150}{7FFD} -{F100}{272D}{6AB5}{5368}{7F52} -{F100}힘{3A6D}{5169}{214D}{7FFD} -{F100}힘{3A6D}{5169}{214D}{7FFD} -{F100}{2D2C}죕{562B}{1352}{7AED} -{F100}촬{7A6D}{576A} -{F100}쵸{7AB5}{54E8} -{F100}쵸{7AB5}{54E8} -{F100}{2734}{1ABD}{5529}{7F4C} -{F100}{2734}{1ABD}{5529}{7F4C} -{F100}{1B37}{1A5D}{526B}{7F50} -{F100}{212B}{7A4D}{7FE8} -{F100}{133E}{5AB5}{77A9}{3DC2}{59F7}{5169} -{F100}{133E}{5AB5}{77A9}{3DC2}{59F7}{5169} -{F100}촨쨔{54EA}{7F57} -{F100}촨쨔{54EA}{7F57} -{F100}{1334}{1AB5}{5469}{7F5D} -{F100}{1334}{1AB5}{5469}{7F5D} -{F100}{1334}{1AB5}{5469}{7F5D} -{F100}{273E}{5A95}{7FEB} -{F100}쵤{6AB5}{576A} -{F100}쵤{6AB5}{576A} -{F100}{2D2D}{5A2D}{52E9} -{F100}{2D2D}{5A2D}{52E9} -{F100}{193A}죕{536A}{7F54} -{F100}촬{3AD5}{54AA} -{F100}{133C}{2A6D}{516A} -{F100}{133C}{2A6D}{516A} -{F100}춤{5A8D}{54A8}{1958}{7A2D} -{F100}춤{5A8D}{54A8}{1958}{7A2D} -{F100}춤{5A8D}{54A8}{1958}{7A2D} -{F100}쵸{1A45}{5429}{254D}{7A4D} -{F100}쵸{1A45}{5429}{254D}{7A4D} -{F100}쵸{1A45}{5429}{254D}{7A4D} -{F100}{193E}{3A4D}{522A}{2D53}{7A4D} -{F100}{193E}{3A4D}{522A}{2D53}{7A4D} -{F100}{193E}{3A4D}{522A}{2D53}{7A4D} -{F100}{2D2C}{2A2D}{522A}{2553}{7FFD} -{F100}{2D2C}{2A2D}{522A}{2553}{7FFD} -{F100}{2D2C}{2A2D}{522A}{2553}{7FFD} -{F100}{212B}{4A4D}{516B} -{F100}{212B}{4A4D}{516B} -{F100}{212B}{4A4D}{516B} -{F100}쵯{5AB5}{54A9}{7F45} -{F100}쵯{5AB5}{54A9}{7F45} -{F100}쵯{5AB5}{54A9}{7F45} -{F100}촬{5A95}{5269}{2150}{7A4D} -{F100}촬{5A95}{5269}{2150}{7A4D} -{F100}촬{5A95}{5269}{2150}{7A4D} -{F100}촬{2A95}{576A} -{F100}촬{2A95}{576A} -{F100}촬{2A95}{576A} -{F100}{2D3E}{5A4D}{7FEB} -{F100}{2D3E}{5A4D}{7FEB} -{F100}{1337}{5A85}{55E9}츳{7FFD} -{F100}{1337}{5A85}{55E9}츳{7FFD} -{F100}{1337}{5A85}{55E9}츳{7FFD} -{F100}춥찔{54EA}{7F56} -{F100}춥찔{54EA}{7F56} -{F100}춥찔{54EA}{7F56} -{F100}{3B35}{1A85}{55A9} -{F100}{212B}{5A85}{55E9}{2553}{7FFD} -{F100}{212B}{5A85}{55E9}{2553}{7FFD} -{F100}{212B}{5A85}{55E9}{2553}{7FFD} -{F100}{2F2B}좡{526A}{7F49} -{F100}쵸{7AB5}{7FE8} -{F100}쵸{7AB5}{7FE8} -{F100}췐{4A3D}{5169}{1B56}{4A2D}{7FE9} -{F100}{193D}{1A2D}{54AB} -{F100}{193D}{1A2D}{54AB} -{F100}{193D}{1A2D}{54AB} -{F100}췐{4A3D}{7FE9} -{F100}췐{4A3D}{7FE9} -{F100}췐{4A3D}{7FE9} -{F100}{3B2D}직{5769} -{F100}{3B2D}직{5769} -{F100}{112F}{5ADD}{55A8}{7F48} -{F100}{112F}{5ADD}{55A8}{7F48} -{F100}{1D2C}{6A9D}{54AA} -{F100}{1D2C}{6A9D}{54AA} -{F100}{252B}{6A45}{526A}{7F45} -{F100}{252B}{6A45}{526A}{7F45} -{F100}쵸{5A45}{55E9}{2553}{7FFD} -{F100}쵸{5A45}{55E9}{2553}{7FFD} -{F100}{1341}쩝{526A}{7F5D} -{F100}{2D30}{2A2D}{51EA}{2F4D}{3A3D}{7FEA} -{F100}{2131}{2A4D}{54AA} -{F100}{1B37}{5AB5}{54A8}췸{7FFD} -{F100}{2D2D}{7AED}{562A}{2145}{7FFD} -{F100}{2734}{2A2D}{54AA}{7F45} -{F100}{2D3E}{7A6D}{562A}{2545}{7FFD} -{F100}{2D3E}{7A6D}{562A}{2545}{7FFD} -{F100}{2D3E}{7A6D}{562A}{2545}{7FFD} -{F100}촬쥠{516A}{7F57} -{F100}촬쥠{516A}{7F57} -{F100}촬쥠{516A}{7F57} -{F100}쵭{1AB5}{5229} -{F100}쵭{1AB5}{5229} -{F100}{192D}젼{55EA}췹{7FFD} -{F100}{2D2C}{5A6D}{54A8} -{F100}{192D}젼{55EA}췹{7FFD} -{F100}{2D2C}{5A6D}{54A8} -{F100}{2D2B}{5A8D}{54A8}{2748}{7FFD} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{2D2B}{1AC5}{55AB}{7F53} -{F100}{2D2B}{1AC5}{55AB}{7F53} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}춥{5AB5}{77A8}{3DC2}{59F7}{5469} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{252B}{1A5D}{5429}{0F4D}{7A2D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{1B37}{7A3D}{5269}{7F5D} -{F100}{273C}{5A85}{54A8}{7F48} -{F100}촨{6AB5}{536A}{7F49} -{F100}{2738}{1AB5}{516A}{7F52} -{F100}{273C}{5A85}{54A8}{7F48} -{F100}촨{6AB5}{536A}{7F49} -{F100}{2738}{1AB5}{516A}{7F52} -{F100}{273C}{5A85}{54A8}{7F48} -{F100}촨{6AB5}{536A}{7F49} -{F100}{2738}{1AB5}{516A}{7F52} -{F100}축{1A85}{526A}{7F56} -{F100}{252B}{3AC5}{54AA} -{F100}{2D2C}{2A4D}{54AA}{7F45} -{F100}촬{6AB5}{536A}{2F59}{7FFD} -{F100}{2D30}젼{55A9}{0F4D}{7A7D} -{F100}{2D3E}{2A2D}{54EB}{7F52} -{F100}쵭{1A95}{5629} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{132D}{6A45}{536A}{7F47} -{F100}{2D31}{2ACD}{562A} -{F100}{1B2E}쥠{516A}{7F52} -{F100}{2732}쥠{5269}{7F52} -{F100}{272D}{6A95}{516A}{7F48} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} -{F100}{2D31}{2ACD}{562A} +{TRNAME} - +{TRNAME}Tristan +{TRNAME}Logan +{TRNAME}Natalie +{TRNAME}Michael +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Tyler +{TRNAME}Samantha +{TRNAME}Sarah +{TRNAME}Brandon +{TRNAME}Taylor +{TRNAME}Liv & Liz +{TRNAME}Jacob +{TRNAME}Siena +{TRNAME}Daniel +{TRNAME}Nicholas +{TRNAME}Kelsey +{TRNAME}Elizabeth +{TRNAME}Andrew +{TRNAME}Joseph +{TRNAME}Zachary +{TRNAME}Axel +{TRNAME}James +{TRNAME}John +{TRNAME}Ryan +{TRNAME}Megan +{TRNAME}Nicole +{TRNAME}Kayla +{TRNAME}Rachel +{TRNAME}Austin +{TRNAME}Anthony +{TRNAME}Lauren +{TRNAME}Kevin +{TRNAME}Justin +{TRNAME}Helen +{TRNAME}Robert +{TRNAME}Alexander +{TRNAME}Jonathan +{TRNAME}Kyle +{TRNAME}Cody +{TRNAME}Hannah +{TRNAME}William +{TRNAME}Albert +{TRNAME}Jennifer +{TRNAME}Shelley +{TRNAME}Richard +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Danielle +{TRNAME}Mickey +{TRNAME}Ty & Sue +{TRNAME}Kahlil +{TRNAME}Amber +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Teri & Tia +{TRNAME}Ernest +{TRNAME}Alyssa +{TRNAME}Brian +{TRNAME}Adam +{TRNAME}Joel +{TRNAME}Nathan +{TRNAME}Davido +{TRNAME}Patrick +{TRNAME}Brianna +{TRNAME}Zac & Jen +{TRNAME}Alexandra +{TRNAME}Angelica +{TRNAME}Zach +{TRNAME}Sean +{TRNAME}Nick +{TRNAME}Katherine +{TRNAME}Jason +{TRNAME}Melissa +{TRNAME}Jeremy +{TRNAME}Reina +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Bobby +{TRNAME}Alex +{TRNAME}Dylan +{TRNAME}Juan +{TRNAME}Cameron +{TRNAME}Travis +{TRNAME}Taylor +{TRNAME}Jeffrey +{TRNAME}Allison +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Stefano +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Caleb +{TRNAME}Sheltin +{TRNAME}Evan +{TRNAME}Haley +{TRNAME}Mary +{TRNAME}Jared +{TRNAME}Chelsea +{TRNAME}Angelica +{TRNAME}Paul +{TRNAME}Kenneth +{TRNAME}Tara & Tim +{TRNAME}Bryan +{TRNAME}Hunter +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mitchell +{TRNAME}Abigail +{TRNAME}Carlos +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Gregory +{TRNAME}Derek +{TRNAME}Nathaniel +{TRNAME}Scott +{TRNAME}Angelica +{TRNAME}Blake +{TRNAME}Garrett +{TRNAME}Laura +{TRNAME}Maria +{TRNAME}Bradley +{TRNAME}Edward +{TRNAME}Kaitlyn +{TRNAME}Andrea +{TRNAME}Dalton +{TRNAME}Olivia +{TRNAME}Shawn +{TRNAME}Bjorn +{TRNAME}Lexie +{TRNAME}Madison +{TRNAME}Antonio +{TRNAME}Ethan +{TRNAME}Luke +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Miguel +{TRNAME}Luc +{TRNAME}Tara & Tim +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Adrian +{TRNAME}Erik +{TRNAME}Vincent +{TRNAME}Jessica +{TRNAME}Erica +{TRNAME}Katelyn +{TRNAME}Tara & Tim +{TRNAME}Dillon +{TRNAME}Vanessa +{TRNAME}Cory +{TRNAME}Mickey +{TRNAME}Jake +{TRNAME}Shannon +{TRNAME}Brett +{TRNAME}Alec +{TRNAME}George +{TRNAME}Cole +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Luther +{TRNAME}Mickey +{TRNAME}Tara & Tim +{TRNAME}Wesley +{TRNAME}Ricardo +{TRNAME}Francisco +{TRNAME}Colton +{TRNAME}Troy +{TRNAME}Oscar +{TRNAME}Miranda +{TRNAME}Aubree +{TRNAME}Paige +{TRNAME}Crystal +{TRNAME}Cassandra +{TRNAME}Gabrielle +{TRNAME}Colin +{TRNAME}Mason +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Jack +{TRNAME}Phillip +{TRNAME}Donald +{TRNAME}Briana +{TRNAME}Elijah +{TRNAME}Lindsey +{TRNAME}Tara & Tim +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Tara & Tim +{TRNAME}Omar +{TRNAME}Henry +{TRNAME}Mariah +{TRNAME}Sydney +{TRNAME}Edgar +{TRNAME}Clayton +{TRNAME}Ondrej +{TRNAME}Clinton +{TRNAME}David +{TRNAME}Hana +{TRNAME}Bryce +{TRNAME}Valencia +{TRNAME}Jo & Pat +{TRNAME}Al & Kay +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Grant +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Jonathon +{TRNAME}Darius +{TRNAME}Roark +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Byron +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Jackson +{TRNAME}Gary +{TRNAME}Philip +{TRNAME}Jenna +{TRNAME}Angela +{TRNAME}Aaron +{TRNAME}Bertha +{TRNAME}Flint +{TRNAME}Lucian +{TRNAME}Curtis +{TRNAME}Drew +{TRNAME}Cynthia +{TRNAME}Sergio +{TRNAME}Isaiah +{TRNAME}Savannah +{TRNAME}Alicia +{TRNAME}Douglas +{TRNAME}Brady +{TRNAME}Ivan +{TRNAME}Fernando +{TRNAME}Edwin +{TRNAME}Hayden +{TRNAME}Dennis +{TRNAME}Cesar +{TRNAME}Allen +{TRNAME}Zachery +{TRNAME}Ruben +{TRNAME}Breanna +{TRNAME}Catherine +{TRNAME}Destiny +{TRNAME}Jamie +{TRNAME}Maya +{TRNAME}Maxwell +{TRNAME}Brittney +{TRNAME}Ava & Matt +{TRNAME}Mickey +{TRNAME}Marco +{TRNAME}Erick +{TRNAME}Emma & Lil +{TRNAME}Mars +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Tony +{TRNAME}Jerry +{TRNAME}Preston +{TRNAME}Lonnie +{TRNAME}Calvin +{TRNAME}Larry +{TRNAME}Wyatt +{TRNAME}Craig +{TRNAME}Raul +{TRNAME}Colby +{TRNAME}Darren +{TRNAME}Rafael +{TRNAME}Jeffery +{TRNAME}Carl +{TRNAME}Ricky +{TRNAME}Gardenia +{TRNAME}Wake +{TRNAME}Maylene +{TRNAME}Fantina +{TRNAME}Candice +{TRNAME}Volkner +{TRNAME}Angelica +{TRNAME}Madeline +{TRNAME}Kaitlin +{TRNAME}Caroline +{TRNAME}Molly +{TRNAME}Louis +{TRNAME}Alexa +{TRNAME}Sabrina +{TRNAME}Diana +{TRNAME}Cheyenne +{TRNAME}Meghan +{TRNAME}Danny +{TRNAME}Thomas +{TRNAME}Mickey +{TRNAME}Trey +{TRNAME}Angelica +{TRNAME}Marc +{TRNAME}Skyler +{TRNAME}Damian +{TRNAME}Chance +{TRNAME}Forrest +{TRNAME}Harrison +{TRNAME}Mackenzie +{TRNAME}Tiera +{TRNAME}Christine +{TRNAME}Cyndy +{TRNAME}Angelica +{TRNAME}Lindsay +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Dallas +{TRNAME}Sebastian +{TRNAME}Donny +{TRNAME}Trenton +{TRNAME}Conner +{TRNAME}Mariel +{TRNAME}Holly +{TRNAME}Armando +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Kati +{TRNAME}Gerardo +{TRNAME}Roxy & Oli +{TRNAME}Tevin +{TRNAME}Kinsey +{TRNAME}Grace +{TRNAME}Tyler +{TRNAME}Autumn +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Zackary +{TRNAME}Lawrence +{TRNAME}Diego +{TRNAME}Parker +{TRNAME}Dominique +{TRNAME}Jamal +{TRNAME}Terry +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Joe +{TRNAME}Mickey +{TRNAME}Jonah +{TRNAME}Micah +{TRNAME}Arthur +{TRNAME}Angelica +{TRNAME}Brenda +{TRNAME}Brandi +{TRNAME}Clarice +{TRNAME}Kody +{TRNAME}Landon +{TRNAME}Deandre +{TRNAME}Rachael +{TRNAME}Desiree +{TRNAME}Kendra +{TRNAME}Walter +{TRNAME}Mickey +{TRNAME}Cyrus +{TRNAME}Cyrus +{TRNAME}Mars +{TRNAME}Jupiter +{TRNAME}Jupiter +{TRNAME}Saturn +{TRNAME}Saturn +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Arturo +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Harry +{TRNAME}Gerald +{TRNAME}Miles +{TRNAME}Kendal +{TRNAME}Eddie +{TRNAME}Willie +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Cassidy +{TRNAME}Theodore +{TRNAME}Damon +{TRNAME}Maurice +{TRNAME}Reginald +{TRNAME}Lorenzo +{TRNAME}Karina +{TRNAME}Summer +{TRNAME}Tori +{TRNAME}Ana +{TRNAME}Lee +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Ariel +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Zachariah +{TRNAME}Samson +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Shaun +{TRNAME}Mickey +{TRNAME}Fabian +{TRNAME}Brennan +{TRNAME}Bruce +{TRNAME}Devon +{TRNAME}Nicola +{TRNAME}Mickey +{TRNAME}Claire +{TRNAME}Mickey +{TRNAME}Wayne +{TRNAME}Jacky +{TRNAME}Caitlyn +{TRNAME}Terrell +{TRNAME}Brenden +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Willy +{TRNAME}Braden +{TRNAME}Brendon +{TRNAME}Quentin +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Mars +{TRNAME}Kirby +{TRNAME}Leonard +{TRNAME}Rebekah +{TRNAME}Oliver +{TRNAME}Beth & Bob +{TRNAME}Mike & Nat +{TRNAME}Alison +{TRNAME}Ismael +{TRNAME}Kaylee +{TRNAME}Darryl +{TRNAME}Eugene +{TRNAME}Meredith +{TRNAME}Kendrick +{TRNAME}Leonardo +{TRNAME}Rebecca +{TRNAME}Blythe +{TRNAME}Roman +{TRNAME}Kylie +{TRNAME}Valerie +{TRNAME}Esteban +{TRNAME}Emilio +{TRNAME}Gabriella +{TRNAME}Harley +{TRNAME}Emanuel +{TRNAME}Karl +{TRNAME}Audrey +{TRNAME}Geneva +{TRNAME}Krystal +{TRNAME}Geoffrey +{TRNAME}Darien +{TRNAME}Keegan +{TRNAME}Stanley +{TRNAME}Drake +{TRNAME}Kenny +{TRNAME}Rodolfo +{TRNAME}Saul +{TRNAME}Jose +{TRNAME}Felix +{TRNAME}Quinn +{TRNAME}Graham +{TRNAME}Keenan +{TRNAME}Stefan +{TRNAME}Skylar +{TRNAME}Abel +{TRNAME}Deanna +{TRNAME}Ariana +{TRNAME}Dana +{TRNAME}Mikayla +{TRNAME}Meagan +{TRNAME}Sandra +{TRNAME}Kassandra +{TRNAME}Jasmin +{TRNAME}Natasha +{TRNAME}Monique +{TRNAME}Corbin +{TRNAME}Sterling +{TRNAME}Daisy +{TRNAME}Chelsey +{TRNAME}Davon +{TRNAME}Griffin +{TRNAME}Ray +{TRNAME}Jarrett +{TRNAME}Kyler +{TRNAME}Deshawn +{TRNAME}Dwayne +{TRNAME}Ashlee +{TRNAME}Felicia +{TRNAME}Krista +{TRNAME}Glenn +{TRNAME}Kurt +{TRNAME}Sam +{TRNAME}Wade +{TRNAME}Joanna +{TRNAME}Sophia +{TRNAME}Mallory +{TRNAME}Lydia +{TRNAME}Mickey +{TRNAME}Harlan +{TRNAME}Cedric +{TRNAME}Cheryl +{TRNAME}Riley +{TRNAME}Marley +{TRNAME}Buck +{TRNAME}Mira +{TRNAME}Lucas +{TRNAME}Lucas +{TRNAME}Lucas +{TRNAME}Dawn +{TRNAME}Dawn +{TRNAME}Dawn +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Lucas +{TRNAME}Lucas +{TRNAME}Lucas +{TRNAME}Dawn +{TRNAME}Dawn +{TRNAME}Dawn +{TRNAME}Elizabeth +{TRNAME}Elizabeth +{TRNAME}Elizabeth +{TRNAME}Kevin +{TRNAME}Kevin +{TRNAME}Kevin +{TRNAME}Helen +{TRNAME}Helen +{TRNAME}Helen +{TRNAME}Brianna +{TRNAME}Brianna +{TRNAME}Audrey +{TRNAME}Albert +{TRNAME}Albert +{TRNAME}Albert +{TRNAME}Jennifer +{TRNAME}Jennifer +{TRNAME}Jennifer +{TRNAME}Zackary +{TRNAME}Zackary +{TRNAME}Zackary +{TRNAME}Dalton +{TRNAME}Olivia +{TRNAME}Ivan +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}John +{TRNAME}John +{TRNAME}John +{TRNAME}Kayla +{TRNAME}Kayla +{TRNAME}Kayla +{TRNAME}Patrick +{TRNAME}Patrick +{TRNAME}Hayden +{TRNAME}Geoffrey +{TRNAME}Jake +{TRNAME}Dennis +{TRNAME}Dennis +{TRNAME}Rodolfo +{TRNAME}Saul +{TRNAME}Shannon +{TRNAME}Maya +{TRNAME}Maya +{TRNAME}Deanna +{TRNAME}Ariana +{TRNAME}Mitchell +{TRNAME}Mitchell +{TRNAME}Maxwell +{TRNAME}Corbin +{TRNAME}Abigail +{TRNAME}Abigail +{TRNAME}Brittney +{TRNAME}Daisy +{TRNAME}Marco +{TRNAME}Marco +{TRNAME}Joseph +{TRNAME}Joseph +{TRNAME}Miguel +{TRNAME}Alec +{TRNAME}Teri & Tia +{TRNAME}Teri & Tia +{TRNAME}Carlos +{TRNAME}Carlos +{TRNAME}Jeremy +{TRNAME}Jeremy +{TRNAME}Jeremy +{TRNAME}Tony +{TRNAME}Harry +{TRNAME}Harry +{TRNAME}Craig +{TRNAME}Craig +{TRNAME}Philip +{TRNAME}Davon +{TRNAME}Reina +{TRNAME}Reina +{TRNAME}Samantha +{TRNAME}Samantha +{TRNAME}Samantha +{TRNAME}Madeline +{TRNAME}Madeline +{TRNAME}Madeline +{TRNAME}Theodore +{TRNAME}Theodore +{TRNAME}Theodore +{TRNAME}Brandon +{TRNAME}Brandon +{TRNAME}Brandon +{TRNAME}Alexa +{TRNAME}Alexa +{TRNAME}Alexa +{TRNAME}Karina +{TRNAME}Karina +{TRNAME}Karina +{TRNAME}Danielle +{TRNAME}Danielle +{TRNAME}Danielle +{TRNAME}Danny +{TRNAME}Danny +{TRNAME}Danny +{TRNAME}Trey +{TRNAME}Trey +{TRNAME}Melissa +{TRNAME}Melissa +{TRNAME}Melissa +{TRNAME}Taylor +{TRNAME}Taylor +{TRNAME}Taylor +{TRNAME}Kyler +{TRNAME}Allison +{TRNAME}Allison +{TRNAME}Allison +{TRNAME}Ashlee +{TRNAME}Marc +{TRNAME}Marc +{TRNAME}Zachariah +{TRNAME}Shaun +{TRNAME}Shaun +{TRNAME}Shaun +{TRNAME}Zach +{TRNAME}Zach +{TRNAME}Zach +{TRNAME}Cyndy +{TRNAME}Cyndy +{TRNAME}Edward +{TRNAME}Edward +{TRNAME}Bjorn +{TRNAME}Bjorn +{TRNAME}Andrea +{TRNAME}Andrea +{TRNAME}Madison +{TRNAME}Madison +{TRNAME}Wesley +{TRNAME}Francisco +{TRNAME}Glenn +{TRNAME}Miranda +{TRNAME}Crystal +{TRNAME}Joanna +{TRNAME}Tristan +{TRNAME}Tristan +{TRNAME}Tristan +{TRNAME}Dallas +{TRNAME}Dallas +{TRNAME}Dallas +{TRNAME}Jared +{TRNAME}Jared +{TRNAME}Chelsea +{TRNAME}Brian +{TRNAME}Chelsea +{TRNAME}Brian +{TRNAME}Armando +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Arturo +{TRNAME}Arturo +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Tara & Tim +{TRNAME}Tara & Tim +{TRNAME}Tara & Tim +{TRNAME}Tara & Tim +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Angelica +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Mickey +{TRNAME}Roland +{TRNAME}Carrie +{TRNAME}Norman +{TRNAME}Roland +{TRNAME}Carrie +{TRNAME}Norman +{TRNAME}Roland +{TRNAME}Carrie +{TRNAME}Norman +{TRNAME}Palmer +{TRNAME}Anton +{TRNAME}Brenna +{TRNAME}Darrius +{TRNAME}Fredrick +{TRNAME}Travon +{TRNAME}Janet +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Cedric +{TRNAME}Grunt +{TRNAME}Dillan +{TRNAME}Holden +{TRNAME}Conrad +{TRNAME}Grunt +{TRNAME}Grunt +{TRNAME}Grunt diff --git a/include/trainer_data.h b/include/trainer_data.h index 0951a5dd..8a63e290 100644 --- a/include/trainer_data.h +++ b/include/trainer_data.h @@ -69,7 +69,7 @@ struct TrainerDataLoaded u8 padding[16]; }; -struct EnemyTrainerSet +struct BattleSetupStruct { u32 flags; struct PlayerParty * parties[4]; @@ -78,13 +78,13 @@ struct EnemyTrainerSet struct TrainerDataLoaded datas[4]; }; -void EnemyTrainerSet_Init(struct EnemyTrainerSet * sp0, struct SaveBlock2 * r4, u32 sp4); +void EnemyTrainerSet_Init(struct BattleSetupStruct * sp0, struct SaveBlock2 * r4, u32 sp4); s32 TrainerData_GetAttr(u32 tr_idx, u32 attr_no); BOOL TrainerMessageWithIdPairExists(u32 pos, u32 idx, u32 heap_id); void GetTrainerMessageByIdPair(u32 pos, u32 idx, struct String * str, u32 heap_id); void TrainerData_ReadTrData(u32 idx, struct TrainerData * dest); void TrainerData_ReadTrPoke(u32 idx, union TrainerMon * dest); int TrainerClass_GetGenderOrTrainerCount(int a0); -void CreateNPCTrainerParty(struct EnemyTrainerSet * enemies, s32 party_id, u32 heap_id); +void CreateNPCTrainerParty(struct BattleSetupStruct * enemies, s32 party_id, u32 heap_id); #endif //POKEDIAMOND_TRAINER_DATA_H diff --git a/tools/msgenc/msgenc.cpp b/tools/msgenc/msgenc.cpp index 232a3bee..9ec21ed2 100644 --- a/tools/msgenc/msgenc.cpp +++ b/tools/msgenc/msgenc.cpp @@ -115,6 +115,9 @@ void encode_messages() { for (auto message : files) { u16string encoded; uint16_t seed = i * 596947; + bool is_trname = false; + uint32_t trnamebuf = 0; + int bit = 0; for (size_t j = 0; j < message.size(); j++) { if (message[j] == '{') { size_t k = message.find('}', j); @@ -144,6 +147,9 @@ void encode_messages() { for (auto num_i : args) { encoded += enc_short(num_i, seed); } + } else if (command == "TRNAME") { + is_trname = true; + encoded += enc_short(0xF100, seed); } else { encoded += enc_short(stoi(enclosed, nullptr, 16), seed); } @@ -162,10 +168,29 @@ void encode_messages() { ss << "unrecognized character: file " << i << " pos " << (j + 1); throw runtime_error(ss.str()); } - encoded += enc_short(code, seed); + if (is_trname) { + if (code & ~0x1FF) { + stringstream ss; + ss << "invalid character for bitpacked string: " << substr; + throw runtime_error(ss.str()); + } + trnamebuf |= code << bit; + bit += 9; + if (bit >= 15) { + bit -= 15; + encoded += enc_short(trnamebuf & 0x7FFF, seed); + trnamebuf >>= 15; + } + } else { + encoded += enc_short(code, seed); + } j += k; } } + if (is_trname && bit > 1) { + trnamebuf |= 0xFFFF << bit; + encoded += enc_short(trnamebuf & 0x7FFF, seed); + } encoded += enc_short(0xFFFF, seed); MsgAlloc alloc {0, 0}; if (i > 1) { -- cgit v1.2.3 From a6a28d52879cac2088a91cfa269d42bea775dde9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 08:36:45 -0400 Subject: Define trainer IDs --- include/constants/trainers.h | 854 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 854 insertions(+) create mode 100644 include/constants/trainers.h diff --git a/include/constants/trainers.h b/include/constants/trainers.h new file mode 100644 index 00000000..d8f48017 --- /dev/null +++ b/include/constants/trainers.h @@ -0,0 +1,854 @@ +#ifndef POKEDIAMOND_CONSTANTS_TRAINERS_H +#define POKEDIAMOND_CONSTANTS_TRAINERS_H + +#define TRAINER_YOUNGSTER_TRISTAN 1 +#define TRAINER_YOUNGSTER_LOGAN 2 +#define TRAINER_LASS_NATALIE 3 +#define TRAINER_YOUNGSTER_MICHAEL 4 +#define TRAINER_CAMPER_MICKEY 5 +#define TRAINER_CAMPER_MICKEY_2 6 +#define TRAINER_PICNICKER_ANGELICA 7 +#define TRAINER_PICNICKER_ANGELICA_2 8 +#define TRAINER_YOUNGSTER_MICKEY 9 +#define TRAINER_YOUNGSTER_TYLER 10 +#define TRAINER_LASS_SAMANTHA 11 +#define TRAINER_LASS_SARAH 12 +#define TRAINER_BUG_CATCHER_BRANDON 13 +#define TRAINER_AROMA_LADY_TAYLOR 14 +#define TRAINER_TWINS_LIV_LIZ 15 +#define TRAINER_CAMPER_JACOB 16 +#define TRAINER_PICNICKER_SIENA 17 +#define TRAINER_HIKER_DANIEL 18 +#define TRAINER_HIKER_NICHOLAS 19 +#define TRAINER_BATTLE_GIRL_KELSEY 20 +#define TRAINER_AROMA_LADY_ELIZABETH 21 +#define TRAINER_FISHERMAN_ANDREW 22 +#define TRAINER_FISHERMAN_JOSEPH 23 +#define TRAINER_FISHERMAN_ZACHARY 24 +#define TRAINER_CYCLIST_M_AXEL 25 +#define TRAINER_CYCLIST_M_JAMES 26 +#define TRAINER_CYCLIST_M_JOHN 27 +#define TRAINER_CYCLIST_M_RYAN 28 +#define TRAINER_CYCLIST_F_MEGAN 29 +#define TRAINER_CYCLIST_F_NICOLE 30 +#define TRAINER_CYCLIST_F_KAYLA 31 +#define TRAINER_CYCLIST_F_RACHEL 32 +#define TRAINER_YOUNGSTER_AUSTIN 33 +#define TRAINER_CAMPER_ANTHONY 34 +#define TRAINER_PICNICKER_LAUREN 35 +#define TRAINER_HIKER_KEVIN 36 +#define TRAINER_HIKER_JUSTIN 37 +#define TRAINER_BATTLE_GIRL_HELEN 38 +#define TRAINER_HIKER_ROBERT 39 +#define TRAINER_HIKER_ALEXANDER 40 +#define TRAINER_HIKER_JONATHAN 41 +#define TRAINER_BLACK_BELT_KYLE 42 +#define TRAINER_FISHERMAN_CODY 43 +#define TRAINER_AROMA_LADY_HANNAH 44 +#define TRAINER_ARTIST_WILLIAM 45 +#define TRAINER_PKMN_BREEDER_M_ALBERT 46 +#define TRAINER_PKMN_BREEDER_F_JENNIFER 47 +#define TRAINER_COWGIRL_SHELLEY 48 +#define TRAINER_JOGGER_RICHARD 49 +#define TRAINER_POKEFAN_M_MICKEY 50 +#define TRAINER_POKEFAN_F_ANGELICA 51 +#define TRAINER_YOUNGSTER_MICKEY_2 52 +#define TRAINER_POKE_KID_DANIELLE 53 +#define TRAINER_FISHERMAN_MICKEY 54 +#define TRAINER_YOUNG_COUPLE_TY_SUE 55 +#define TRAINER_PKMN_BREEDER_M_KAHLIL 56 +#define TRAINER_PKMN_BREEDER_F_AMBER 57 +#define TRAINER_COWGIRL_ANGELICA 58 +#define TRAINER_JOGGER_MICKEY 59 +#define TRAINER_POKEFAN_M_MICKEY_2 60 +#define TRAINER_POKEFAN_F_ANGELICA_2 61 +#define TRAINER_ACE_TRAINER_M_MICKEY 62 +#define TRAINER_ACE_TRAINER_F_ANGELICA 63 +#define TRAINER_WAITRESS_ANGELICA 64 +#define TRAINER_TWINS_TERI_TIA 65 +#define TRAINER_ACE_TRAINER_M_ERNEST 66 +#define TRAINER_ACE_TRAINER_F_ALYSSA 67 +#define TRAINER_VETERAN_BRIAN 68 +#define TRAINER_BLACK_BELT_ADAM 69 +#define TRAINER_NINJA_BOY_JOEL 70 +#define TRAINER_NINJA_BOY_NATHAN 71 +#define TRAINER_NINJA_BOY_DAVIDO 72 +#define TRAINER_DRAGON_TAMER_PATRICK 73 +#define TRAINER_BIRD_KEEPER_BRIANNA 74 +#define TRAINER_DOUBLE_TEAM_ZAC_JEN 75 +#define TRAINER_BIRD_KEEPER_ALEXANDRA 76 +#define TRAINER_BATTLE_GIRL_ANGELICA 77 +#define TRAINER_NINJA_BOY_ZACH 78 +#define TRAINER_BLACK_BELT_SEAN 79 +#define TRAINER_NINJA_BOY_NICK 80 +#define TRAINER_BIRD_KEEPER_KATHERINE 81 +#define TRAINER_RICH_BOY_JASON 82 +#define TRAINER_LADY_MELISSA 83 +#define TRAINER_GENTLEMAN_JEREMY 84 +#define TRAINER_SOCIALITE_REINA 85 +#define TRAINER_BEAUTY_ANGELICA 86 +#define TRAINER_COLLECTOR_MICKEY 87 +#define TRAINER_POLICEMAN_BOBBY 88 +#define TRAINER_POLICEMAN_ALEX 89 +#define TRAINER_POLICEMAN_DYLAN 90 +#define TRAINER_FISHERMAN_JUAN 91 +#define TRAINER_FISHERMAN_CAMERON 92 +#define TRAINER_FISHERMAN_TRAVIS 93 +#define TRAINER_PKMN_RANGER_M_TAYLOR 94 +#define TRAINER_PKMN_RANGER_M_JEFFREY 95 +#define TRAINER_PKMN_RANGER_F_ALLISON 96 +#define TRAINER_PKMN_RANGER_F_ANGELICA 97 +#define TRAINER_SCIENTIST_MICKEY 98 +#define TRAINER_SCIENTIST_STEFANO 99 +#define TRAINER_YOUNGSTER_MICKEY_3 100 +#define TRAINER_YOUNGSTER_MICKEY_4 101 +#define TRAINER_POLICEMAN_CALEB 102 +#define TRAINER_SWIMMER_M_SHELTIN 103 +#define TRAINER_SWIMMER_M_EVAN 104 +#define TRAINER_SWIMMER_F_HALEY 105 +#define TRAINER_SWIMMER_F_MARY 106 +#define TRAINER_TUBER_M_JARED 107 +#define TRAINER_TUBER_F_CHELSEA 108 +#define TRAINER_BATTLE_GIRL_ANGELICA_2 109 +#define TRAINER_SAILOR_PAUL 110 +#define TRAINER_FISHERMAN_KENNETH 111 +#define TRAINER_SIS_AND_BRO_TARA_TIM 112 +#define TRAINER_RUIN_MANIAC_BRYAN 113 +#define TRAINER_RUIN_MANIAC_HUNTER 114 +#define TRAINER_HIKER_MICKEY 115 +#define TRAINER_VETERAN_MICKEY 116 +#define TRAINER_CAMPER_MICKEY_3 117 +#define TRAINER_PICNICKER_ANGELICA_3 118 +#define TRAINER_PSYCHIC_M_MITCHELL 119 +#define TRAINER_PSYCHIC_F_ABIGAIL 120 +#define TRAINER_PI_CARLOS 121 +#define TRAINER_GUITARIST_MICKEY 122 +#define TRAINER_PI_MICKEY 123 +#define TRAINER_BEAUTY_ANGELICA_2 124 +#define TRAINER_BEAUTY_ANGELICA_3 125 +#define TRAINER_BLACK_BELT_MICKEY 126 +#define TRAINER_BLACK_BELT_GREGORY 127 +#define TRAINER_BLACK_BELT_DEREK 128 +#define TRAINER_BLACK_BELT_NATHANIEL 129 +#define TRAINER_JOGGER_SCOTT 130 +#define TRAINER_BIRD_KEEPER_ANGELICA 131 +#define TRAINER_ACE_TRAINER_SNOW_M_BLAKE 132 +#define TRAINER_ACE_TRAINER_SNOW_M_GARRETT 133 +#define TRAINER_ACE_TRAINER_SNOW_F_LAURA 134 +#define TRAINER_ACE_TRAINER_SNOW_F_MARIA 135 +#define TRAINER_SKIER_M_BRADLEY 136 +#define TRAINER_SKIER_M_EDWARD 137 +#define TRAINER_SKIER_F_KAITLYN 138 +#define TRAINER_SKIER_F_ANDREA 139 +#define TRAINER_ACE_TRAINER_SNOW_M_DALTON 140 +#define TRAINER_ACE_TRAINER_SNOW_F_OLIVIA 141 +#define TRAINER_SKIER_M_SHAWN 142 +#define TRAINER_SKIER_M_BJORN 143 +#define TRAINER_SKIER_F_LEXIE 144 +#define TRAINER_SKIER_F_MADISON 145 +#define TRAINER_NINJA_BOY_ANTONIO 146 +#define TRAINER_NINJA_BOY_ETHAN 147 +#define TRAINER_BLACK_BELT_LUKE 148 +#define TRAINER_SWIMMER_M_MICKEY 149 +#define TRAINER_SWIMMER_M_MICKEY_2 150 +#define TRAINER_SWIMMER_F_ANGELICA 151 +#define TRAINER_SWIMMER_F_ANGELICA_2 152 +#define TRAINER_FISHERMAN_MIGUEL 153 +#define TRAINER_FISHERMAN_LUC 154 +#define TRAINER_SIS_AND_BRO_TARA_TIM_2 155 +#define TRAINER_SWIMMER_M_MICKEY_3 156 +#define TRAINER_SWIMMER_M_MICKEY_4 157 +#define TRAINER_SWIMMER_F_ANGELICA_3 158 +#define TRAINER_SWIMMER_M_ADRIAN 159 +#define TRAINER_SWIMMER_M_ERIK 160 +#define TRAINER_SWIMMER_M_VINCENT 161 +#define TRAINER_SWIMMER_F_JESSICA 162 +#define TRAINER_SWIMMER_F_ERICA 163 +#define TRAINER_SWIMMER_F_KATELYN 164 +#define TRAINER_SIS_AND_BRO_TARA_TIM_3 165 +#define TRAINER_SWIMMER_M_DILLON 166 +#define TRAINER_SWIMMER_F_VANESSA 167 +#define TRAINER_FISHERMAN_CORY 168 +#define TRAINER_RUIN_MANIAC_MICKEY 169 +#define TRAINER_ACE_TRAINER_M_JAKE 170 +#define TRAINER_ACE_TRAINER_F_SHANNON 171 +#define TRAINER_FISHERMAN_BRETT 172 +#define TRAINER_FISHERMAN_ALEC 173 +#define TRAINER_FISHERMAN_GEORGE 174 +#define TRAINER_FISHERMAN_COLE 175 +#define TRAINER_ROUGHNECK_MICKEY 176 +#define TRAINER_ROUGHNECK_MICKEY_2 177 +#define TRAINER_GUITARIST_MICKEY_2 178 +#define TRAINER_CLOWN_MICKEY 179 +#define TRAINER_SAILOR_LUTHER 180 +#define TRAINER_ARTIST_MICKEY 181 +#define TRAINER_YOUNG_COUPLE_TARA_TIM 182 +#define TRAINER_SWIMMER_M_WESLEY 183 +#define TRAINER_SWIMMER_M_RICARDO 184 +#define TRAINER_SWIMMER_M_FRANCISCO 185 +#define TRAINER_SWIMMER_M_COLTON 186 +#define TRAINER_SWIMMER_M_TROY 187 +#define TRAINER_SWIMMER_M_OSCAR 188 +#define TRAINER_SWIMMER_F_MIRANDA 189 +#define TRAINER_SWIMMER_F_AUBREE 190 +#define TRAINER_SWIMMER_F_PAIGE 191 +#define TRAINER_SWIMMER_F_CRYSTAL 192 +#define TRAINER_SWIMMER_F_CASSANDRA 193 +#define TRAINER_SWIMMER_F_GABRIELLE 194 +#define TRAINER_WORKER_COLIN 195 +#define TRAINER_WORKER_MASON 196 +#define TRAINER_WORKER_MICKEY 197 +#define TRAINER_SCIENTIST_MICKEY_2 198 +#define TRAINER_SCIENTIST_MICKEY_3 199 +#define TRAINER_SCIENTIST_MICKEY_4 200 +#define TRAINER_BUG_CATCHER_JACK 201 +#define TRAINER_BUG_CATCHER_PHILLIP 202 +#define TRAINER_BUG_CATCHER_DONALD 203 +#define TRAINER_LASS_BRIANA 204 +#define TRAINER_PSYCHIC_M_ELIJAH 205 +#define TRAINER_PSYCHIC_F_LINDSEY 206 +#define TRAINER_YOUNG_COUPLE_TARA_TIM_2 207 +#define TRAINER_WORKER_MICKEY_2 208 +#define TRAINER_WORKER_MICKEY_3 209 +#define TRAINER_WORKER_MICKEY_4 210 +#define TRAINER_ACE_TRAINER_SNOW_M_MICKEY 211 +#define TRAINER_ACE_TRAINER_SNOW_M_MICKEY_2 212 +#define TRAINER_ACE_TRAINER_SNOW_F_ANGELICA 213 +#define TRAINER_ACE_TRAINER_SNOW_F_ANGELICA_2 214 +#define TRAINER_VETERAN_MICKEY_2 215 +#define TRAINER_VETERAN_MICKEY_3 216 +#define TRAINER_PSYCHIC_M_MICKEY 217 +#define TRAINER_PSYCHIC_F_ANGELICA 218 +#define TRAINER_DRAGON_TAMER_MICKEY 219 +#define TRAINER_SAILOR_MICKEY 220 +#define TRAINER_SCHOOL_KID_M_MICKEY 221 +#define TRAINER_SCHOOL_KID_F_ANGELICA 222 +#define TRAINER_YOUNG_COUPLE_TARA_TIM_3 223 +#define TRAINER_ACE_TRAINER_M_OMAR 224 +#define TRAINER_ACE_TRAINER_M_HENRY 225 +#define TRAINER_ACE_TRAINER_F_MARIAH 226 +#define TRAINER_ACE_TRAINER_F_SYDNEY 227 +#define TRAINER_VETERAN_EDGAR 228 +#define TRAINER_VETERAN_CLAYTON 229 +#define TRAINER_DRAGON_TAMER_ONDREJ 230 +#define TRAINER_DRAGON_TAMER_CLINTON 231 +#define TRAINER_BLACK_BELT_DAVID 232 +#define TRAINER_BIRD_KEEPER_HANA 233 +#define TRAINER_PSYCHIC_M_BRYCE 234 +#define TRAINER_PSYCHIC_F_VALENCIA 235 +#define TRAINER_DOUBLE_TEAM_JO_PAT 236 +#define TRAINER_DOUBLE_TEAM_AL_KAY 237 +#define TRAINER_YOUNGSTER_MICKEY_5 238 +#define TRAINER_LASS_ANGELICA 239 +#define TRAINER_VETERAN_GRANT 240 +#define TRAINER_FISHERMAN_MICKEY_2 241 +#define TRAINER_SAILOR_MICKEY_2 242 +#define TRAINER_BEAUTY_ANGELICA_4 243 +#define TRAINER_YOUNGSTER_JONATHON 244 +#define TRAINER_YOUNGSTER_DARIUS 245 +#define TRAINER_LEADER_ROARK_ROARK 246 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC 247 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_2 248 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_3 249 +#define TRAINER_LEADER_BYRON_BYRON 250 +#define TRAINER_ACE_TRAINER_F_ANGELICA_2 251 +#define TRAINER_CAMPER_MICKEY_4 252 +#define TRAINER_CAMPER_MICKEY_5 253 +#define TRAINER_CAMPER_MICKEY_6 254 +#define TRAINER_CAMPER_MICKEY_7 255 +#define TRAINER_WORKER_JACKSON 256 +#define TRAINER_WORKER_GARY 257 +#define TRAINER_BLACK_BELT_PHILIP 258 +#define TRAINER_AROMA_LADY_JENNA 259 +#define TRAINER_AROMA_LADY_ANGELA 260 +#define TRAINER_ELITE_FOUR_AARON_AARON 261 +#define TRAINER_ELITE_FOUR_BERTHA_BERTHA 262 +#define TRAINER_ELITE_FOUR_FLINT_FLINT 263 +#define TRAINER_ELITE_FOUR_LUCIEN_LUCIAN 264 +#define TRAINER_CAMPER_CURTIS 265 +#define TRAINER_CAMPER_DREW 266 +#define TRAINER_CHAMPION_CYNTHIA 267 +#define TRAINER_ACE_TRAINER_SNOW_M_SERGIO 268 +#define TRAINER_ACE_TRAINER_SNOW_M_ISAIAH 269 +#define TRAINER_ACE_TRAINER_SNOW_F_SAVANNAH 270 +#define TRAINER_ACE_TRAINER_SNOW_F_ALICIA 271 +#define TRAINER_COLLECTOR_DOUGLAS 272 +#define TRAINER_COLLECTOR_BRADY 273 +#define TRAINER_COLLECTOR_IVAN 274 +#define TRAINER_COLLECTOR_FERNANDO 275 +#define TRAINER_COLLECTOR_EDWIN 276 +#define TRAINER_DRAGON_TAMER_HAYDEN 277 +#define TRAINER_ACE_TRAINER_M_DENNIS 278 +#define TRAINER_ACE_TRAINER_M_CESAR 279 +#define TRAINER_ACE_TRAINER_M_ALLEN 280 +#define TRAINER_ACE_TRAINER_M_ZACHERY 281 +#define TRAINER_ACE_TRAINER_M_RUBEN 282 +#define TRAINER_ACE_TRAINER_F_BREANNA 283 +#define TRAINER_ACE_TRAINER_F_CATHERINE 284 +#define TRAINER_ACE_TRAINER_F_DESTINY 285 +#define TRAINER_ACE_TRAINER_F_JAMIE 286 +#define TRAINER_ACE_TRAINER_F_MAYA 287 +#define TRAINER_PSYCHIC_M_MAXWELL 288 +#define TRAINER_PSYCHIC_F_BRITTNEY 289 +#define TRAINER_BELLE__PA_AVA_MATT 290 +#define TRAINER_RANCHER_MICKEY 291 +#define TRAINER_RANCHER_MARCO 292 +#define TRAINER_FISHERMAN_ERICK 293 +#define TRAINER_TWINS_EMMA_LIL 294 +#define TRAINER_COMMANDER_MARS_MARS 295 +#define TRAINER_GALACTIC_GRUNT 296 +#define TRAINER_GALACTIC_GRUNT_2 297 +#define TRAINER_GALACTIC_GRUNT_3 298 +#define TRAINER_GALACTIC_GRUNT_4 299 +#define TRAINER_GUITARIST_TONY 300 +#define TRAINER_GUITARIST_JERRY 301 +#define TRAINER_GUITARIST_PRESTON 302 +#define TRAINER_GUITARIST_LONNIE 303 +#define TRAINER_RUIN_MANIAC_CALVIN 304 +#define TRAINER_RUIN_MANIAC_LARRY 305 +#define TRAINER_JOGGER_WYATT 306 +#define TRAINER_JOGGER_CRAIG 307 +#define TRAINER_JOGGER_RAUL 308 +#define TRAINER_BLACK_BELT_COLBY 309 +#define TRAINER_BLACK_BELT_DARREN 310 +#define TRAINER_BLACK_BELT_RAFAEL 311 +#define TRAINER_BLACK_BELT_JEFFERY 312 +#define TRAINER_BLACK_BELT_CARL 313 +#define TRAINER_BLACK_BELT_RICKY 314 +#define TRAINER_LEADER_GARDENIA_GARDENIA 315 +#define TRAINER_LEADER_WAKE_WAKE 316 +#define TRAINER_LEADER_MAYLENE_MAYLENE 317 +#define TRAINER_LEADER_FANTINA_FANTINA 318 +#define TRAINER_LEADER_CANDICE_CANDICE 319 +#define TRAINER_LEADER_VOLKNER_VOLKNER 320 +#define TRAINER_LASS_ANGELICA_2 321 +#define TRAINER_LASS_MADELINE 322 +#define TRAINER_LASS_KAITLIN 323 +#define TRAINER_LASS_CAROLINE 324 +#define TRAINER_LASS_MOLLY 325 +#define TRAINER_HIKER_LOUIS 326 +#define TRAINER_PARASOL_LADY_ALEXA 327 +#define TRAINER_PARASOL_LADY_SABRINA 328 +#define TRAINER_PICNICKER_DIANA 329 +#define TRAINER_PICNICKER_CHEYENNE 330 +#define TRAINER_POKE_KID_MEGHAN 331 +#define TRAINER_POLICEMAN_DANNY 332 +#define TRAINER_POLICEMAN_THOMAS 333 +#define TRAINER_RICH_BOY_MICKEY 334 +#define TRAINER_RICH_BOY_TREY 335 +#define TRAINER_LADY_ANGELICA 336 +#define TRAINER_SAILOR_MARC 337 +#define TRAINER_SAILOR_SKYLER 338 +#define TRAINER_SAILOR_DAMIAN 339 +#define TRAINER_SCHOOL_KID_M_CHANCE 340 +#define TRAINER_SCHOOL_KID_M_FORREST 341 +#define TRAINER_SCHOOL_KID_M_HARRISON 342 +#define TRAINER_SCHOOL_KID_F_MACKENZIE 343 +#define TRAINER_SCHOOL_KID_F_TIERA 344 +#define TRAINER_SCHOOL_KID_F_CHRISTINE 345 +#define TRAINER_BEAUTY_CYNDY 346 +#define TRAINER_BEAUTY_ANGELICA_5 347 +#define TRAINER_BEAUTY_LINDSAY 348 +#define TRAINER_SKIER_M_MICKEY 349 +#define TRAINER_SKIER_F_ANGELICA 350 +#define TRAINER_SWIMMER_M_MICKEY_5 351 +#define TRAINER_SWIMMER_M_MICKEY_6 352 +#define TRAINER_SWIMMER_F_ANGELICA_4 353 +#define TRAINER_SWIMMER_F_ANGELICA_5 354 +#define TRAINER_YOUNGSTER_DALLAS 355 +#define TRAINER_YOUNGSTER_SEBASTIAN 356 +#define TRAINER_YOUNGSTER_DONNY 357 +#define TRAINER_TUBER_M_TRENTON 358 +#define TRAINER_TUBER_M_CONNER 359 +#define TRAINER_TUBER_F_MARIEL 360 +#define TRAINER_TUBER_F_HOLLY 361 +#define TRAINER_VETERAN_ARMANDO 362 +#define TRAINER_WAITER_MICKEY 363 +#define TRAINER_WAITER_MICKEY_2 364 +#define TRAINER_WAITER_MICKEY_3 365 +#define TRAINER_WAITRESS_KATI 366 +#define TRAINER_WORKER_GERARDO 367 +#define TRAINER_INTERVIEWERS_ROXY_OLI 368 +#define TRAINER_CAMERAMAN_TEVIN 369 +#define TRAINER_REPORTER_KINSEY 370 +#define TRAINER_IDOL_GRACE 371 +#define TRAINER_BATTLE_GIRL_TYLER 372 +#define TRAINER_BIRD_KEEPER_AUTUMN 373 +#define TRAINER_PKMN_BREEDER_M_MICKEY 374 +#define TRAINER_PKMN_BREEDER_F_ANGELICA 375 +#define TRAINER_CAMERAMAN_MICKEY 376 +#define TRAINER_CAMPER_ZACKARY 377 +#define TRAINER_CAMPER_LAWRENCE 378 +#define TRAINER_CAMPER_DIEGO 379 +#define TRAINER_CAMPER_PARKER 380 +#define TRAINER_COLLECTOR_DOMINIQUE 381 +#define TRAINER_COLLECTOR_JAMAL 382 +#define TRAINER_COLLECTOR_TERRY 383 +#define TRAINER_POKEFAN_M_MICKEY_3 384 +#define TRAINER_POKEFAN_F_ANGELICA_3 385 +#define TRAINER_DRAGON_TAMER_JOE 386 +#define TRAINER_ACE_TRAINER_M_MICKEY_2 387 +#define TRAINER_ACE_TRAINER_M_JONAH 388 +#define TRAINER_ACE_TRAINER_M_MICAH 389 +#define TRAINER_ACE_TRAINER_M_ARTHUR 390 +#define TRAINER_ACE_TRAINER_F_ANGELICA_3 391 +#define TRAINER_ACE_TRAINER_F_BRENDA 392 +#define TRAINER_ACE_TRAINER_F_BRANDI 393 +#define TRAINER_ACE_TRAINER_F_CLARICE 394 +#define TRAINER_PSYCHIC_M_KODY 395 +#define TRAINER_PSYCHIC_M_LANDON 396 +#define TRAINER_PSYCHIC_M_DEANDRE 397 +#define TRAINER_PSYCHIC_F_RACHAEL 398 +#define TRAINER_PSYCHIC_F_DESIREE 399 +#define TRAINER_PSYCHIC_F_KENDRA 400 +#define TRAINER_FISHERMAN_WALTER 401 +#define TRAINER_GENTLEMAN_MICKEY 402 +#define TRAINER_GALACTIC_BOSS_CYRUS 403 +#define TRAINER_GALACTIC_BOSS_CYRUS_2 404 +#define TRAINER_COMMANDER_MARS_MARS_2 405 +#define TRAINER_COMMANDER_JUPITER_JUPITER 406 +#define TRAINER_COMMANDER_JUPITER_JUPITER_2 407 +#define TRAINER_COMMANDER_SATURN_SATURN 408 +#define TRAINER_COMMANDER_SATURN_SATURN_2 409 +#define TRAINER_GALACTIC_GRUNT_5 410 +#define TRAINER_GALACTIC_GRUNT_6 411 +#define TRAINER_GALACTIC_GRUNT_7 412 +#define TRAINER_GALACTIC_GRUNT_8 413 +#define TRAINER_GALACTIC_GRUNT_9 414 +#define TRAINER_GALACTIC_GRUNT_10 415 +#define TRAINER_GALACTIC_GRUNT_11 416 +#define TRAINER_GALACTIC_GRUNT_12 417 +#define TRAINER_GALACTIC_GRUNT_13 418 +#define TRAINER_GALACTIC_GRUNT_14 419 +#define TRAINER_GALACTIC_GRUNT_15 420 +#define TRAINER_GALACTIC_F_GRUNT 421 +#define TRAINER_GALACTIC_F_GRUNT_2 422 +#define TRAINER_GALACTIC_F_GRUNT_3 423 +#define TRAINER_GALACTIC_F_GRUNT_4 424 +#define TRAINER_GALACTIC_F_GRUNT_5 425 +#define TRAINER_GALACTIC_F_GRUNT_6 426 +#define TRAINER_GALACTIC_F_GRUNT_7 427 +#define TRAINER_GALACTIC_F_GRUNT_8 428 +#define TRAINER_GALACTIC_F_GRUNT_9 429 +#define TRAINER_GALACTIC_F_GRUNT_10 430 +#define TRAINER_GUITARIST_ARTURO 431 +#define TRAINER_GUITARIST_MICKEY_3 432 +#define TRAINER_GUITARIST_MICKEY_4 433 +#define TRAINER_GUITARIST_MICKEY_5 434 +#define TRAINER_GUITARIST_MICKEY_6 435 +#define TRAINER_GUITARIST_MICKEY_7 436 +#define TRAINER_IDOL_ANGELICA 437 +#define TRAINER_IDOL_ANGELICA_2 438 +#define TRAINER_IDOL_ANGELICA_3 439 +#define TRAINER_IDOL_ANGELICA_4 440 +#define TRAINER_RUIN_MANIAC_MICKEY_2 441 +#define TRAINER_RUIN_MANIAC_HARRY 442 +#define TRAINER_RUIN_MANIAC_GERALD 443 +#define TRAINER_BLACK_BELT_MILES 444 +#define TRAINER_BLACK_BELT_KENDAL 445 +#define TRAINER_BLACK_BELT_EDDIE 446 +#define TRAINER_BLACK_BELT_WILLIE 447 +#define TRAINER_SOCIALITE_ANGELICA 448 +#define TRAINER_LASS_ANGELICA_3 449 +#define TRAINER_LASS_CASSIDY 450 +#define TRAINER_HIKER_THEODORE 451 +#define TRAINER_HIKER_DAMON 452 +#define TRAINER_HIKER_MAURICE 453 +#define TRAINER_HIKER_REGINALD 454 +#define TRAINER_HIKER_LORENZO 455 +#define TRAINER_PICNICKER_KARINA 456 +#define TRAINER_PICNICKER_SUMMER 457 +#define TRAINER_PICNICKER_TORI 458 +#define TRAINER_PICNICKER_ANA 459 +#define TRAINER_CLOWN_LEE 460 +#define TRAINER_CLOWN_MICKEY_2 461 +#define TRAINER_CLOWN_MICKEY_3 462 +#define TRAINER_CLOWN_MICKEY_4 463 +#define TRAINER_CLOWN_MICKEY_5 464 +#define TRAINER_POKE_KID_ARIEL 465 +#define TRAINER_POLICEMAN_MICKEY 466 +#define TRAINER_RICH_BOY_MICKEY_2 467 +#define TRAINER_RICH_BOY_MICKEY_3 468 +#define TRAINER_LADY_ANGELICA_2 469 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_4 470 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_5 471 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_6 472 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_7 473 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_8 474 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_9 475 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_10 476 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_11 477 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_12 478 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_13 479 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_14 480 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_15 481 +#define TRAINER_SAILOR_ZACHARIAH 482 +#define TRAINER_SAILOR_SAMSON 483 +#define TRAINER_SCHOOL_KID_M_MICKEY_2 484 +#define TRAINER_SCHOOL_KID_F_ANGELICA_2 485 +#define TRAINER_SCIENTIST_SHAUN 486 +#define TRAINER_SCIENTIST_MICKEY_5 487 +#define TRAINER_NINJA_BOY_FABIAN 488 +#define TRAINER_NINJA_BOY_BRENNAN 489 +#define TRAINER_NINJA_BOY_BRUCE 490 +#define TRAINER_BEAUTY_DEVON 491 +#define TRAINER_BEAUTY_NICOLA 492 +#define TRAINER_SWIMMER_M_MICKEY_7 493 +#define TRAINER_SWIMMER_F_CLAIRE 494 +#define TRAINER_YOUNGSTER_MICKEY_6 495 +#define TRAINER_YOUNGSTER_WAYNE 496 +#define TRAINER_TUBER_M_JACKY 497 +#define TRAINER_TUBER_F_CAITLYN 498 +#define TRAINER_VETERAN_TERRELL 499 +#define TRAINER_VETERAN_BRENDEN 500 +#define TRAINER_WAITER_MICKEY_4 501 +#define TRAINER_WORKER_MICKEY_5 502 +#define TRAINER_WORKER_WILLY 503 +#define TRAINER_WORKER_BRADEN 504 +#define TRAINER_WORKER_BRENDON 505 +#define TRAINER_WORKER_QUENTIN 506 +#define TRAINER_GALACTIC_GRUNT_16 507 +#define TRAINER_GALACTIC_GRUNT_17 508 +#define TRAINER_GALACTIC_GRUNT_18 509 +#define TRAINER_GALACTIC_GRUNT_19 510 +#define TRAINER_GALACTIC_GRUNT_20 511 +#define TRAINER_GALACTIC_GRUNT_21 512 +#define TRAINER_GALACTIC_GRUNT_22 513 +#define TRAINER_GALACTIC_GRUNT_23 514 +#define TRAINER_GALACTIC_GRUNT_24 515 +#define TRAINER_GALACTIC_GRUNT_25 516 +#define TRAINER_GALACTIC_GRUNT_26 517 +#define TRAINER_GALACTIC_GRUNT_27 518 +#define TRAINER_GALACTIC_GRUNT_28 519 +#define TRAINER_GALACTIC_GRUNT_29 520 +#define TRAINER_GALACTIC_GRUNT_30 521 +#define TRAINER_GALACTIC_F_GRUNT_11 522 +#define TRAINER_GALACTIC_F_GRUNT_12 523 +#define TRAINER_GALACTIC_F_GRUNT_13 524 +#define TRAINER_GALACTIC_F_GRUNT_14 525 +#define TRAINER_GALACTIC_F_GRUNT_15 526 +#define TRAINER_GALACTIC_F_GRUNT_16 527 +#define TRAINER_COMMANDER_MARS_MARS_3 528 +#define TRAINER_ROUGHNECK_KIRBY 529 +#define TRAINER_POKEFAN_M_LEONARD 530 +#define TRAINER_POKEFAN_F_REBEKAH 531 +#define TRAINER_YOUNGSTER_OLIVER 532 +#define TRAINER_BELLE__PA_BETH_BOB 533 +#define TRAINER_YOUNG_COUPLE_MIKE_NAT 534 +#define TRAINER_AROMA_LADY_ALISON 535 +#define TRAINER_ARTIST_ISMAEL 536 +#define TRAINER_PKMN_BREEDER_F_KAYLEE 537 +#define TRAINER_CAMERAMAN_DARRYL 538 +#define TRAINER_COLLECTOR_EUGENE 539 +#define TRAINER_POKEFAN_F_MEREDITH 540 +#define TRAINER_PI_KENDRICK 541 +#define TRAINER_GENTLEMAN_LEONARDO 542 +#define TRAINER_SOCIALITE_REBECCA 543 +#define TRAINER_LASS_BLYTHE 544 +#define TRAINER_RICH_BOY_ROMAN 545 +#define TRAINER_LADY_KYLIE 546 +#define TRAINER_REPORTER_VALERIE 547 +#define TRAINER_SCHOOL_KID_M_ESTEBAN 548 +#define TRAINER_SCIENTIST_EMILIO 549 +#define TRAINER_BEAUTY_GABRIELLA 550 +#define TRAINER_BEAUTY_HARLEY 551 +#define TRAINER_VETERAN_EMANUEL 552 +#define TRAINER_RUIN_MANIAC_KARL 553 +#define TRAINER_BIRD_KEEPER_AUDREY 554 +#define TRAINER_BIRD_KEEPER_GENEVA 555 +#define TRAINER_BIRD_KEEPER_KRYSTAL 556 +#define TRAINER_DRAGON_TAMER_GEOFFREY 557 +#define TRAINER_DRAGON_TAMER_DARIEN 558 +#define TRAINER_DRAGON_TAMER_KEEGAN 559 +#define TRAINER_DRAGON_TAMER_STANLEY 560 +#define TRAINER_DRAGON_TAMER_DRAKE 561 +#define TRAINER_DRAGON_TAMER_KENNY 562 +#define TRAINER_ACE_TRAINER_M_RODOLFO 563 +#define TRAINER_ACE_TRAINER_M_SAUL 564 +#define TRAINER_ACE_TRAINER_M_JOSE 565 +#define TRAINER_ACE_TRAINER_M_FELIX 566 +#define TRAINER_ACE_TRAINER_M_QUINN 567 +#define TRAINER_ACE_TRAINER_M_GRAHAM 568 +#define TRAINER_ACE_TRAINER_M_KEENAN 569 +#define TRAINER_ACE_TRAINER_M_STEFAN 570 +#define TRAINER_ACE_TRAINER_M_SKYLAR 571 +#define TRAINER_ACE_TRAINER_M_ABEL 572 +#define TRAINER_ACE_TRAINER_F_DEANNA 573 +#define TRAINER_ACE_TRAINER_F_ARIANA 574 +#define TRAINER_ACE_TRAINER_F_DANA 575 +#define TRAINER_ACE_TRAINER_F_MIKAYLA 576 +#define TRAINER_ACE_TRAINER_F_MEAGAN 577 +#define TRAINER_ACE_TRAINER_F_SANDRA 578 +#define TRAINER_ACE_TRAINER_F_KASSANDRA 579 +#define TRAINER_ACE_TRAINER_F_JASMIN 580 +#define TRAINER_ACE_TRAINER_F_NATASHA 581 +#define TRAINER_ACE_TRAINER_F_MONIQUE 582 +#define TRAINER_PSYCHIC_M_CORBIN 583 +#define TRAINER_PSYCHIC_M_STERLING 584 +#define TRAINER_PSYCHIC_F_DAISY 585 +#define TRAINER_PSYCHIC_F_CHELSEY 586 +#define TRAINER_BLACK_BELT_DAVON 587 +#define TRAINER_BLACK_BELT_GRIFFIN 588 +#define TRAINER_BLACK_BELT_RAY 589 +#define TRAINER_BLACK_BELT_JARRETT 590 +#define TRAINER_PKMN_RANGER_M_KYLER 591 +#define TRAINER_PKMN_RANGER_M_DESHAWN 592 +#define TRAINER_PKMN_RANGER_M_DWAYNE 593 +#define TRAINER_PKMN_RANGER_F_ASHLEE 594 +#define TRAINER_PKMN_RANGER_F_FELICIA 595 +#define TRAINER_PKMN_RANGER_F_KRISTA 596 +#define TRAINER_SWIMMER_M_GLENN 597 +#define TRAINER_SWIMMER_M_KURT 598 +#define TRAINER_SWIMMER_M_SAM 599 +#define TRAINER_SWIMMER_M_WADE 600 +#define TRAINER_SWIMMER_F_JOANNA 601 +#define TRAINER_SWIMMER_F_SOPHIA 602 +#define TRAINER_SWIMMER_F_MALLORY 603 +#define TRAINER_SWIMMER_F_LYDIA 604 +#define TRAINER_VETERAN_MICKEY_4 605 +#define TRAINER_VETERAN_HARLAN 606 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_16 607 +#define TRAINER_PKMN_TRAINER_AROMA_LADY_CHERYL 608 +#define TRAINER_PKMN_TRAINER_RICH_BOY_RILEY 609 +#define TRAINER_PKMN_TRAINER_PICNICKER_MARLEY 610 +#define TRAINER_PKMN_TRAINER_CAMPER_BUCK 611 +#define TRAINER_PKMN_TRAINER_POKEKID_MIRA 612 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS 613 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS_2 614 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS_3 615 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN 616 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN_2 617 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN_3 618 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_17 619 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_18 620 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS_4 621 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS_5 622 +#define TRAINER_PKMN_TRAINER_LUCAS_LUCAS_6 623 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN_4 624 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN_5 625 +#define TRAINER_PKMN_TRAINER_DAWN_DAWN_6 626 +#define TRAINER_AROMA_LADY_ELIZABETH_2 627 +#define TRAINER_AROMA_LADY_ELIZABETH_3 628 +#define TRAINER_AROMA_LADY_ELIZABETH_4 629 +#define TRAINER_ARTIST_KEVIN 630 +#define TRAINER_ARTIST_KEVIN_2 631 +#define TRAINER_ARTIST_KEVIN_3 632 +#define TRAINER_BATTLE_GIRL_HELEN_2 633 +#define TRAINER_BATTLE_GIRL_HELEN_3 634 +#define TRAINER_BATTLE_GIRL_HELEN_4 635 +#define TRAINER_BIRD_KEEPER_BRIANNA_2 636 +#define TRAINER_BIRD_KEEPER_BRIANNA_3 637 +#define TRAINER_BIRD_KEEPER_AUDREY_2 638 +#define TRAINER_PKMN_BREEDER_M_ALBERT_2 639 +#define TRAINER_PKMN_BREEDER_M_ALBERT_3 640 +#define TRAINER_PKMN_BREEDER_M_ALBERT_4 641 +#define TRAINER_PKMN_BREEDER_F_JENNIFER_2 642 +#define TRAINER_PKMN_BREEDER_F_JENNIFER_3 643 +#define TRAINER_PKMN_BREEDER_F_JENNIFER_4 644 +#define TRAINER_CAMPER_ZACKARY_2 645 +#define TRAINER_CAMPER_ZACKARY_3 646 +#define TRAINER_CAMPER_ZACKARY_4 647 +#define TRAINER_ACE_TRAINER_SNOW_M_DALTON_2 648 +#define TRAINER_ACE_TRAINER_SNOW_F_OLIVIA_2 649 +#define TRAINER_COLLECTOR_IVAN_2 650 +#define TRAINER_COWGIRL_ANGELICA_2 651 +#define TRAINER_COWGIRL_ANGELICA_3 652 +#define TRAINER_CYCLIST_M_JOHN_2 653 +#define TRAINER_CYCLIST_M_JOHN_3 654 +#define TRAINER_CYCLIST_M_JOHN_4 655 +#define TRAINER_CYCLIST_F_KAYLA_2 656 +#define TRAINER_CYCLIST_F_KAYLA_3 657 +#define TRAINER_CYCLIST_F_KAYLA_4 658 +#define TRAINER_DRAGON_TAMER_PATRICK_2 659 +#define TRAINER_DRAGON_TAMER_PATRICK_3 660 +#define TRAINER_DRAGON_TAMER_HAYDEN_2 661 +#define TRAINER_DRAGON_TAMER_GEOFFREY_2 662 +#define TRAINER_ACE_TRAINER_M_JAKE_2 663 +#define TRAINER_ACE_TRAINER_M_DENNIS_2 664 +#define TRAINER_ACE_TRAINER_M_DENNIS_3 665 +#define TRAINER_ACE_TRAINER_M_RODOLFO_2 666 +#define TRAINER_ACE_TRAINER_M_SAUL_2 667 +#define TRAINER_ACE_TRAINER_F_SHANNON_2 668 +#define TRAINER_ACE_TRAINER_F_MAYA_2 669 +#define TRAINER_ACE_TRAINER_F_MAYA_3 670 +#define TRAINER_ACE_TRAINER_F_DEANNA_2 671 +#define TRAINER_ACE_TRAINER_F_ARIANA_2 672 +#define TRAINER_PSYCHIC_M_MITCHELL_2 673 +#define TRAINER_PSYCHIC_M_MITCHELL_3 674 +#define TRAINER_PSYCHIC_M_MAXWELL_2 675 +#define TRAINER_PSYCHIC_M_CORBIN_2 676 +#define TRAINER_PSYCHIC_F_ABIGAIL_2 677 +#define TRAINER_PSYCHIC_F_ABIGAIL_3 678 +#define TRAINER_PSYCHIC_F_BRITTNEY_2 679 +#define TRAINER_PSYCHIC_F_DAISY_2 680 +#define TRAINER_RANCHER_MARCO_2 681 +#define TRAINER_RANCHER_MARCO_3 682 +#define TRAINER_FISHERMAN_JOSEPH_2 683 +#define TRAINER_FISHERMAN_JOSEPH_3 684 +#define TRAINER_FISHERMAN_MIGUEL_2 685 +#define TRAINER_FISHERMAN_ALEC_2 686 +#define TRAINER_TWINS_TERI_TIA_2 687 +#define TRAINER_TWINS_TERI_TIA_3 688 +#define TRAINER_PI_CARLOS_2 689 +#define TRAINER_PI_CARLOS_3 690 +#define TRAINER_GENTLEMAN_JEREMY_2 691 +#define TRAINER_GENTLEMAN_JEREMY_3 692 +#define TRAINER_GENTLEMAN_JEREMY_4 693 +#define TRAINER_GUITARIST_TONY_2 694 +#define TRAINER_RUIN_MANIAC_HARRY_2 695 +#define TRAINER_RUIN_MANIAC_HARRY_3 696 +#define TRAINER_JOGGER_CRAIG_2 697 +#define TRAINER_JOGGER_CRAIG_3 698 +#define TRAINER_BLACK_BELT_PHILIP_2 699 +#define TRAINER_BLACK_BELT_DAVON_2 700 +#define TRAINER_SOCIALITE_REINA_2 701 +#define TRAINER_SOCIALITE_REINA_3 702 +#define TRAINER_LASS_SAMANTHA_2 703 +#define TRAINER_LASS_SAMANTHA_3 704 +#define TRAINER_LASS_SAMANTHA_4 705 +#define TRAINER_LASS_MADELINE_2 706 +#define TRAINER_LASS_MADELINE_3 707 +#define TRAINER_LASS_MADELINE_4 708 +#define TRAINER_HIKER_THEODORE_2 709 +#define TRAINER_HIKER_THEODORE_3 710 +#define TRAINER_HIKER_THEODORE_4 711 +#define TRAINER_BUG_CATCHER_BRANDON_2 712 +#define TRAINER_BUG_CATCHER_BRANDON_3 713 +#define TRAINER_BUG_CATCHER_BRANDON_4 714 +#define TRAINER_PARASOL_LADY_ALEXA_2 715 +#define TRAINER_PARASOL_LADY_ALEXA_3 716 +#define TRAINER_PARASOL_LADY_ALEXA_4 717 +#define TRAINER_PICNICKER_KARINA_2 718 +#define TRAINER_PICNICKER_KARINA_3 719 +#define TRAINER_PICNICKER_KARINA_4 720 +#define TRAINER_POKE_KID_DANIELLE_2 721 +#define TRAINER_POKE_KID_DANIELLE_3 722 +#define TRAINER_POKE_KID_DANIELLE_4 723 +#define TRAINER_POLICEMAN_DANNY_2 724 +#define TRAINER_POLICEMAN_DANNY_3 725 +#define TRAINER_POLICEMAN_DANNY_4 726 +#define TRAINER_RICH_BOY_TREY_2 727 +#define TRAINER_RICH_BOY_TREY_3 728 +#define TRAINER_LADY_MELISSA_2 729 +#define TRAINER_LADY_MELISSA_3 730 +#define TRAINER_LADY_MELISSA_4 731 +#define TRAINER_PKMN_RANGER_M_TAYLOR_2 732 +#define TRAINER_PKMN_RANGER_M_TAYLOR_3 733 +#define TRAINER_PKMN_RANGER_M_TAYLOR_4 734 +#define TRAINER_PKMN_RANGER_M_KYLER_2 735 +#define TRAINER_PKMN_RANGER_F_ALLISON_2 736 +#define TRAINER_PKMN_RANGER_F_ALLISON_3 737 +#define TRAINER_PKMN_RANGER_F_ALLISON_4 738 +#define TRAINER_PKMN_RANGER_F_ASHLEE_2 739 +#define TRAINER_SAILOR_MARC_2 740 +#define TRAINER_SAILOR_MARC_3 741 +#define TRAINER_SAILOR_ZACHARIAH_2 742 +#define TRAINER_SCIENTIST_SHAUN_2 743 +#define TRAINER_SCIENTIST_SHAUN_3 744 +#define TRAINER_SCIENTIST_SHAUN_4 745 +#define TRAINER_NINJA_BOY_ZACH_2 746 +#define TRAINER_NINJA_BOY_ZACH_3 747 +#define TRAINER_NINJA_BOY_ZACH_4 748 +#define TRAINER_BEAUTY_CYNDY_2 749 +#define TRAINER_BEAUTY_CYNDY_3 750 +#define TRAINER_SKIER_M_EDWARD_2 751 +#define TRAINER_SKIER_M_EDWARD_3 752 +#define TRAINER_SKIER_M_BJORN_2 753 +#define TRAINER_SKIER_M_BJORN_3 754 +#define TRAINER_SKIER_F_ANDREA_2 755 +#define TRAINER_SKIER_F_ANDREA_3 756 +#define TRAINER_SKIER_F_MADISON_2 757 +#define TRAINER_SKIER_F_MADISON_3 758 +#define TRAINER_SWIMMER_M_WESLEY_2 759 +#define TRAINER_SWIMMER_M_FRANCISCO_2 760 +#define TRAINER_SWIMMER_M_GLENN_2 761 +#define TRAINER_SWIMMER_F_MIRANDA_2 762 +#define TRAINER_SWIMMER_F_CRYSTAL_2 763 +#define TRAINER_SWIMMER_F_JOANNA_2 764 +#define TRAINER_YOUNGSTER_TRISTAN_2 765 +#define TRAINER_YOUNGSTER_TRISTAN_3 766 +#define TRAINER_YOUNGSTER_TRISTAN_4 767 +#define TRAINER_YOUNGSTER_DALLAS_2 768 +#define TRAINER_YOUNGSTER_DALLAS_3 769 +#define TRAINER_YOUNGSTER_DALLAS_4 770 +#define TRAINER_TUBER_M_JARED_2 771 +#define TRAINER_TUBER_M_JARED_3 772 +#define TRAINER_TUBER_F_CHELSEA_2 773 +#define TRAINER_VETERAN_BRIAN_2 774 +#define TRAINER_TUBER_F_CHELSEA_3 775 +#define TRAINER_VETERAN_BRIAN_3 776 +#define TRAINER_VETERAN_ARMANDO_2 777 +#define TRAINER_VETERAN_MICKEY_5 778 +#define TRAINER_CAMERAMAN_MICKEY_2 779 +#define TRAINER_CAMERAMAN_MICKEY_3 780 +#define TRAINER_CAMERAMAN_MICKEY_4 781 +#define TRAINER_CAMERAMAN_MICKEY_5 782 +#define TRAINER_CAMERAMAN_MICKEY_6 783 +#define TRAINER_GUITARIST_MICKEY_8 784 +#define TRAINER_GUITARIST_ARTURO_2 785 +#define TRAINER_GUITARIST_ARTURO_3 786 +#define TRAINER_GUITARIST_MICKEY_9 787 +#define TRAINER_GUITARIST_MICKEY_10 788 +#define TRAINER_GUITARIST_MICKEY_11 789 +#define TRAINER_IDOL_ANGELICA_5 790 +#define TRAINER_IDOL_ANGELICA_6 791 +#define TRAINER_IDOL_ANGELICA_7 792 +#define TRAINER_IDOL_ANGELICA_8 793 +#define TRAINER_IDOL_ANGELICA_9 794 +#define TRAINER_INTERVIEWERS_TARA_TIM 795 +#define TRAINER_INTERVIEWERS_TARA_TIM_2 796 +#define TRAINER_INTERVIEWERS_TARA_TIM_3 797 +#define TRAINER_INTERVIEWERS_TARA_TIM_4 798 +#define TRAINER_CLOWN_MICKEY_6 799 +#define TRAINER_CLOWN_MICKEY_7 800 +#define TRAINER_CLOWN_MICKEY_8 801 +#define TRAINER_CLOWN_MICKEY_9 802 +#define TRAINER_CLOWN_MICKEY_10 803 +#define TRAINER_POKE_KID_ANGELICA 804 +#define TRAINER_POKE_KID_ANGELICA_2 805 +#define TRAINER_POKE_KID_ANGELICA_3 806 +#define TRAINER_POKE_KID_ANGELICA_4 807 +#define TRAINER_POLICEMAN_MICKEY_2 808 +#define TRAINER_REPORTER_ANGELICA 809 +#define TRAINER_REPORTER_ANGELICA_2 810 +#define TRAINER_REPORTER_ANGELICA_3 811 +#define TRAINER_REPORTER_ANGELICA_4 812 +#define TRAINER_SCIENTIST_MICKEY_6 813 +#define TRAINER_SWIMMER_M_MICKEY_8 814 +#define TRAINER_WAITER_MICKEY_5 815 +#define TRAINER_WORKER_MICKEY_6 816 +#define TRAINER_YOUNGSTER_ROLAND 817 +#define TRAINER_LASS_CARRIE 818 +#define TRAINER_YOUNGSTER_NORMAN 819 +#define TRAINER_YOUNGSTER_ROLAND_2 820 +#define TRAINER_LASS_CARRIE_2 821 +#define TRAINER_YOUNGSTER_NORMAN_2 822 +#define TRAINER_YOUNGSTER_ROLAND_3 823 +#define TRAINER_LASS_CARRIE_3 824 +#define TRAINER_YOUNGSTER_NORMAN_3 825 +#define TRAINER_TOWER_TYCOON_PALMER 826 +#define TRAINER_ACE_TRAINER_SNOW_M_ANTON 827 +#define TRAINER_ACE_TRAINER_SNOW_F_BRENNA 828 +#define TRAINER_SCIENTIST_DARRIUS 829 +#define TRAINER_SCIENTIST_FREDRICK 830 +#define TRAINER_SCIENTIST_TRAVON 831 +#define TRAINER_POKE_KID_JANET 832 +#define TRAINER_GALACTIC_GRUNT_31 833 +#define TRAINER_GALACTIC_GRUNT_32 834 +#define TRAINER_GALACTIC_GRUNT_33 835 +#define TRAINER_GALACTIC_GRUNT_34 836 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_19 837 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_20 838 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_21 839 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_22 840 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_23 841 +#define TRAINER_PKMN_TRAINER_BARRY_CEDRIC_24 842 +#define TRAINER_GALACTIC_GRUNT_35 843 +#define TRAINER_WORKER_DILLAN 844 +#define TRAINER_WORKER_HOLDEN 845 +#define TRAINER_WORKER_CONRAD 846 +#define TRAINER_GALACTIC_GRUNT_36 847 +#define TRAINER_GALACTIC_GRUNT_37 848 +#define TRAINER_GALACTIC_GRUNT_38 849 + +#endif //POKEDIAMOND_CONSTANTS_TRAINERS_H -- cgit v1.2.3 From f6a2e70835d549685d6a6ebf6b861c7582234878 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 10:33:08 -0400 Subject: Move trainer names to trdata.json --- files/msgdata/msg/.gitignore | 1 + files/msgdata/msg/narc_0559.txt | 850 ----------- files/poketool/trainer/trdata.json | 2547 +++++++++++++++++++++----------- files/poketool/trainer/trdata.json.txt | 1 + files/poketool/trainer/trpoke.json.txt | 16 +- filesystem.mk | 4 + 6 files changed, 1712 insertions(+), 1707 deletions(-) delete mode 100644 files/msgdata/msg/narc_0559.txt diff --git a/files/msgdata/msg/.gitignore b/files/msgdata/msg/.gitignore index a8a0dcec..74ed169b 100644 --- a/files/msgdata/msg/.gitignore +++ b/files/msgdata/msg/.gitignore @@ -1 +1,2 @@ *.bin +narc_0559.txt diff --git a/files/msgdata/msg/narc_0559.txt b/files/msgdata/msg/narc_0559.txt deleted file mode 100644 index aaa781cf..00000000 --- a/files/msgdata/msg/narc_0559.txt +++ /dev/null @@ -1,850 +0,0 @@ -{TRNAME} - -{TRNAME}Tristan -{TRNAME}Logan -{TRNAME}Natalie -{TRNAME}Michael -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Tyler -{TRNAME}Samantha -{TRNAME}Sarah -{TRNAME}Brandon -{TRNAME}Taylor -{TRNAME}Liv & Liz -{TRNAME}Jacob -{TRNAME}Siena -{TRNAME}Daniel -{TRNAME}Nicholas -{TRNAME}Kelsey -{TRNAME}Elizabeth -{TRNAME}Andrew -{TRNAME}Joseph -{TRNAME}Zachary -{TRNAME}Axel -{TRNAME}James -{TRNAME}John -{TRNAME}Ryan -{TRNAME}Megan -{TRNAME}Nicole -{TRNAME}Kayla -{TRNAME}Rachel -{TRNAME}Austin -{TRNAME}Anthony -{TRNAME}Lauren -{TRNAME}Kevin -{TRNAME}Justin -{TRNAME}Helen -{TRNAME}Robert -{TRNAME}Alexander -{TRNAME}Jonathan -{TRNAME}Kyle -{TRNAME}Cody -{TRNAME}Hannah -{TRNAME}William -{TRNAME}Albert -{TRNAME}Jennifer -{TRNAME}Shelley -{TRNAME}Richard -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Danielle -{TRNAME}Mickey -{TRNAME}Ty & Sue -{TRNAME}Kahlil -{TRNAME}Amber -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Teri & Tia -{TRNAME}Ernest -{TRNAME}Alyssa -{TRNAME}Brian -{TRNAME}Adam -{TRNAME}Joel -{TRNAME}Nathan -{TRNAME}Davido -{TRNAME}Patrick -{TRNAME}Brianna -{TRNAME}Zac & Jen -{TRNAME}Alexandra -{TRNAME}Angelica -{TRNAME}Zach -{TRNAME}Sean -{TRNAME}Nick -{TRNAME}Katherine -{TRNAME}Jason -{TRNAME}Melissa -{TRNAME}Jeremy -{TRNAME}Reina -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Bobby -{TRNAME}Alex -{TRNAME}Dylan -{TRNAME}Juan -{TRNAME}Cameron -{TRNAME}Travis -{TRNAME}Taylor -{TRNAME}Jeffrey -{TRNAME}Allison -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Stefano -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Caleb -{TRNAME}Sheltin -{TRNAME}Evan -{TRNAME}Haley -{TRNAME}Mary -{TRNAME}Jared -{TRNAME}Chelsea -{TRNAME}Angelica -{TRNAME}Paul -{TRNAME}Kenneth -{TRNAME}Tara & Tim -{TRNAME}Bryan -{TRNAME}Hunter -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mitchell -{TRNAME}Abigail -{TRNAME}Carlos -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Gregory -{TRNAME}Derek -{TRNAME}Nathaniel -{TRNAME}Scott -{TRNAME}Angelica -{TRNAME}Blake -{TRNAME}Garrett -{TRNAME}Laura -{TRNAME}Maria -{TRNAME}Bradley -{TRNAME}Edward -{TRNAME}Kaitlyn -{TRNAME}Andrea -{TRNAME}Dalton -{TRNAME}Olivia -{TRNAME}Shawn -{TRNAME}Bjorn -{TRNAME}Lexie -{TRNAME}Madison -{TRNAME}Antonio -{TRNAME}Ethan -{TRNAME}Luke -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Miguel -{TRNAME}Luc -{TRNAME}Tara & Tim -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Adrian -{TRNAME}Erik -{TRNAME}Vincent -{TRNAME}Jessica -{TRNAME}Erica -{TRNAME}Katelyn -{TRNAME}Tara & Tim -{TRNAME}Dillon -{TRNAME}Vanessa -{TRNAME}Cory -{TRNAME}Mickey -{TRNAME}Jake -{TRNAME}Shannon -{TRNAME}Brett -{TRNAME}Alec -{TRNAME}George -{TRNAME}Cole -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Luther -{TRNAME}Mickey -{TRNAME}Tara & Tim -{TRNAME}Wesley -{TRNAME}Ricardo -{TRNAME}Francisco -{TRNAME}Colton -{TRNAME}Troy -{TRNAME}Oscar -{TRNAME}Miranda -{TRNAME}Aubree -{TRNAME}Paige -{TRNAME}Crystal -{TRNAME}Cassandra -{TRNAME}Gabrielle -{TRNAME}Colin -{TRNAME}Mason -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Jack -{TRNAME}Phillip -{TRNAME}Donald -{TRNAME}Briana -{TRNAME}Elijah -{TRNAME}Lindsey -{TRNAME}Tara & Tim -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Tara & Tim -{TRNAME}Omar -{TRNAME}Henry -{TRNAME}Mariah -{TRNAME}Sydney -{TRNAME}Edgar -{TRNAME}Clayton -{TRNAME}Ondrej -{TRNAME}Clinton -{TRNAME}David -{TRNAME}Hana -{TRNAME}Bryce -{TRNAME}Valencia -{TRNAME}Jo & Pat -{TRNAME}Al & Kay -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Grant -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Jonathon -{TRNAME}Darius -{TRNAME}Roark -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Byron -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Jackson -{TRNAME}Gary -{TRNAME}Philip -{TRNAME}Jenna -{TRNAME}Angela -{TRNAME}Aaron -{TRNAME}Bertha -{TRNAME}Flint -{TRNAME}Lucian -{TRNAME}Curtis -{TRNAME}Drew -{TRNAME}Cynthia -{TRNAME}Sergio -{TRNAME}Isaiah -{TRNAME}Savannah -{TRNAME}Alicia -{TRNAME}Douglas -{TRNAME}Brady -{TRNAME}Ivan -{TRNAME}Fernando -{TRNAME}Edwin -{TRNAME}Hayden -{TRNAME}Dennis -{TRNAME}Cesar -{TRNAME}Allen -{TRNAME}Zachery -{TRNAME}Ruben -{TRNAME}Breanna -{TRNAME}Catherine -{TRNAME}Destiny -{TRNAME}Jamie -{TRNAME}Maya -{TRNAME}Maxwell -{TRNAME}Brittney -{TRNAME}Ava & Matt -{TRNAME}Mickey -{TRNAME}Marco -{TRNAME}Erick -{TRNAME}Emma & Lil -{TRNAME}Mars -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Tony -{TRNAME}Jerry -{TRNAME}Preston -{TRNAME}Lonnie -{TRNAME}Calvin -{TRNAME}Larry -{TRNAME}Wyatt -{TRNAME}Craig -{TRNAME}Raul -{TRNAME}Colby -{TRNAME}Darren -{TRNAME}Rafael -{TRNAME}Jeffery -{TRNAME}Carl -{TRNAME}Ricky -{TRNAME}Gardenia -{TRNAME}Wake -{TRNAME}Maylene -{TRNAME}Fantina -{TRNAME}Candice -{TRNAME}Volkner -{TRNAME}Angelica -{TRNAME}Madeline -{TRNAME}Kaitlin -{TRNAME}Caroline -{TRNAME}Molly -{TRNAME}Louis -{TRNAME}Alexa -{TRNAME}Sabrina -{TRNAME}Diana -{TRNAME}Cheyenne -{TRNAME}Meghan -{TRNAME}Danny -{TRNAME}Thomas -{TRNAME}Mickey -{TRNAME}Trey -{TRNAME}Angelica -{TRNAME}Marc -{TRNAME}Skyler -{TRNAME}Damian -{TRNAME}Chance -{TRNAME}Forrest -{TRNAME}Harrison -{TRNAME}Mackenzie -{TRNAME}Tiera -{TRNAME}Christine -{TRNAME}Cyndy -{TRNAME}Angelica -{TRNAME}Lindsay -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Dallas -{TRNAME}Sebastian -{TRNAME}Donny -{TRNAME}Trenton -{TRNAME}Conner -{TRNAME}Mariel -{TRNAME}Holly -{TRNAME}Armando -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Kati -{TRNAME}Gerardo -{TRNAME}Roxy & Oli -{TRNAME}Tevin -{TRNAME}Kinsey -{TRNAME}Grace -{TRNAME}Tyler -{TRNAME}Autumn -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Zackary -{TRNAME}Lawrence -{TRNAME}Diego -{TRNAME}Parker -{TRNAME}Dominique -{TRNAME}Jamal -{TRNAME}Terry -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Joe -{TRNAME}Mickey -{TRNAME}Jonah -{TRNAME}Micah -{TRNAME}Arthur -{TRNAME}Angelica -{TRNAME}Brenda -{TRNAME}Brandi -{TRNAME}Clarice -{TRNAME}Kody -{TRNAME}Landon -{TRNAME}Deandre -{TRNAME}Rachael -{TRNAME}Desiree -{TRNAME}Kendra -{TRNAME}Walter -{TRNAME}Mickey -{TRNAME}Cyrus -{TRNAME}Cyrus -{TRNAME}Mars -{TRNAME}Jupiter -{TRNAME}Jupiter -{TRNAME}Saturn -{TRNAME}Saturn -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Arturo -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Harry -{TRNAME}Gerald -{TRNAME}Miles -{TRNAME}Kendal -{TRNAME}Eddie -{TRNAME}Willie -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Cassidy -{TRNAME}Theodore -{TRNAME}Damon -{TRNAME}Maurice -{TRNAME}Reginald -{TRNAME}Lorenzo -{TRNAME}Karina -{TRNAME}Summer -{TRNAME}Tori -{TRNAME}Ana -{TRNAME}Lee -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Ariel -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Zachariah -{TRNAME}Samson -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Shaun -{TRNAME}Mickey -{TRNAME}Fabian -{TRNAME}Brennan -{TRNAME}Bruce -{TRNAME}Devon -{TRNAME}Nicola -{TRNAME}Mickey -{TRNAME}Claire -{TRNAME}Mickey -{TRNAME}Wayne -{TRNAME}Jacky -{TRNAME}Caitlyn -{TRNAME}Terrell -{TRNAME}Brenden -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Willy -{TRNAME}Braden -{TRNAME}Brendon -{TRNAME}Quentin -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Mars -{TRNAME}Kirby -{TRNAME}Leonard -{TRNAME}Rebekah -{TRNAME}Oliver -{TRNAME}Beth & Bob -{TRNAME}Mike & Nat -{TRNAME}Alison -{TRNAME}Ismael -{TRNAME}Kaylee -{TRNAME}Darryl -{TRNAME}Eugene -{TRNAME}Meredith -{TRNAME}Kendrick -{TRNAME}Leonardo -{TRNAME}Rebecca -{TRNAME}Blythe -{TRNAME}Roman -{TRNAME}Kylie -{TRNAME}Valerie -{TRNAME}Esteban -{TRNAME}Emilio -{TRNAME}Gabriella -{TRNAME}Harley -{TRNAME}Emanuel -{TRNAME}Karl -{TRNAME}Audrey -{TRNAME}Geneva -{TRNAME}Krystal -{TRNAME}Geoffrey -{TRNAME}Darien -{TRNAME}Keegan -{TRNAME}Stanley -{TRNAME}Drake -{TRNAME}Kenny -{TRNAME}Rodolfo -{TRNAME}Saul -{TRNAME}Jose -{TRNAME}Felix -{TRNAME}Quinn -{TRNAME}Graham -{TRNAME}Keenan -{TRNAME}Stefan -{TRNAME}Skylar -{TRNAME}Abel -{TRNAME}Deanna -{TRNAME}Ariana -{TRNAME}Dana -{TRNAME}Mikayla -{TRNAME}Meagan -{TRNAME}Sandra -{TRNAME}Kassandra -{TRNAME}Jasmin -{TRNAME}Natasha -{TRNAME}Monique -{TRNAME}Corbin -{TRNAME}Sterling -{TRNAME}Daisy -{TRNAME}Chelsey -{TRNAME}Davon -{TRNAME}Griffin -{TRNAME}Ray -{TRNAME}Jarrett -{TRNAME}Kyler -{TRNAME}Deshawn -{TRNAME}Dwayne -{TRNAME}Ashlee -{TRNAME}Felicia -{TRNAME}Krista -{TRNAME}Glenn -{TRNAME}Kurt -{TRNAME}Sam -{TRNAME}Wade -{TRNAME}Joanna -{TRNAME}Sophia -{TRNAME}Mallory -{TRNAME}Lydia -{TRNAME}Mickey -{TRNAME}Harlan -{TRNAME}Cedric -{TRNAME}Cheryl -{TRNAME}Riley -{TRNAME}Marley -{TRNAME}Buck -{TRNAME}Mira -{TRNAME}Lucas -{TRNAME}Lucas -{TRNAME}Lucas -{TRNAME}Dawn -{TRNAME}Dawn -{TRNAME}Dawn -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Lucas -{TRNAME}Lucas -{TRNAME}Lucas -{TRNAME}Dawn -{TRNAME}Dawn -{TRNAME}Dawn -{TRNAME}Elizabeth -{TRNAME}Elizabeth -{TRNAME}Elizabeth -{TRNAME}Kevin -{TRNAME}Kevin -{TRNAME}Kevin -{TRNAME}Helen -{TRNAME}Helen -{TRNAME}Helen -{TRNAME}Brianna -{TRNAME}Brianna -{TRNAME}Audrey -{TRNAME}Albert -{TRNAME}Albert -{TRNAME}Albert -{TRNAME}Jennifer -{TRNAME}Jennifer -{TRNAME}Jennifer -{TRNAME}Zackary -{TRNAME}Zackary -{TRNAME}Zackary -{TRNAME}Dalton -{TRNAME}Olivia -{TRNAME}Ivan -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}John -{TRNAME}John -{TRNAME}John -{TRNAME}Kayla -{TRNAME}Kayla -{TRNAME}Kayla -{TRNAME}Patrick -{TRNAME}Patrick -{TRNAME}Hayden -{TRNAME}Geoffrey -{TRNAME}Jake -{TRNAME}Dennis -{TRNAME}Dennis -{TRNAME}Rodolfo -{TRNAME}Saul -{TRNAME}Shannon -{TRNAME}Maya -{TRNAME}Maya -{TRNAME}Deanna -{TRNAME}Ariana -{TRNAME}Mitchell -{TRNAME}Mitchell -{TRNAME}Maxwell -{TRNAME}Corbin -{TRNAME}Abigail -{TRNAME}Abigail -{TRNAME}Brittney -{TRNAME}Daisy -{TRNAME}Marco -{TRNAME}Marco -{TRNAME}Joseph -{TRNAME}Joseph -{TRNAME}Miguel -{TRNAME}Alec -{TRNAME}Teri & Tia -{TRNAME}Teri & Tia -{TRNAME}Carlos -{TRNAME}Carlos -{TRNAME}Jeremy -{TRNAME}Jeremy -{TRNAME}Jeremy -{TRNAME}Tony -{TRNAME}Harry -{TRNAME}Harry -{TRNAME}Craig -{TRNAME}Craig -{TRNAME}Philip -{TRNAME}Davon -{TRNAME}Reina -{TRNAME}Reina -{TRNAME}Samantha -{TRNAME}Samantha -{TRNAME}Samantha -{TRNAME}Madeline -{TRNAME}Madeline -{TRNAME}Madeline -{TRNAME}Theodore -{TRNAME}Theodore -{TRNAME}Theodore -{TRNAME}Brandon -{TRNAME}Brandon -{TRNAME}Brandon -{TRNAME}Alexa -{TRNAME}Alexa -{TRNAME}Alexa -{TRNAME}Karina -{TRNAME}Karina -{TRNAME}Karina -{TRNAME}Danielle -{TRNAME}Danielle -{TRNAME}Danielle -{TRNAME}Danny -{TRNAME}Danny -{TRNAME}Danny -{TRNAME}Trey -{TRNAME}Trey -{TRNAME}Melissa -{TRNAME}Melissa -{TRNAME}Melissa -{TRNAME}Taylor -{TRNAME}Taylor -{TRNAME}Taylor -{TRNAME}Kyler -{TRNAME}Allison -{TRNAME}Allison -{TRNAME}Allison -{TRNAME}Ashlee -{TRNAME}Marc -{TRNAME}Marc -{TRNAME}Zachariah -{TRNAME}Shaun -{TRNAME}Shaun -{TRNAME}Shaun -{TRNAME}Zach -{TRNAME}Zach -{TRNAME}Zach -{TRNAME}Cyndy -{TRNAME}Cyndy -{TRNAME}Edward -{TRNAME}Edward -{TRNAME}Bjorn -{TRNAME}Bjorn -{TRNAME}Andrea -{TRNAME}Andrea -{TRNAME}Madison -{TRNAME}Madison -{TRNAME}Wesley -{TRNAME}Francisco -{TRNAME}Glenn -{TRNAME}Miranda -{TRNAME}Crystal -{TRNAME}Joanna -{TRNAME}Tristan -{TRNAME}Tristan -{TRNAME}Tristan -{TRNAME}Dallas -{TRNAME}Dallas -{TRNAME}Dallas -{TRNAME}Jared -{TRNAME}Jared -{TRNAME}Chelsea -{TRNAME}Brian -{TRNAME}Chelsea -{TRNAME}Brian -{TRNAME}Armando -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Arturo -{TRNAME}Arturo -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Tara & Tim -{TRNAME}Tara & Tim -{TRNAME}Tara & Tim -{TRNAME}Tara & Tim -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Angelica -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Mickey -{TRNAME}Roland -{TRNAME}Carrie -{TRNAME}Norman -{TRNAME}Roland -{TRNAME}Carrie -{TRNAME}Norman -{TRNAME}Roland -{TRNAME}Carrie -{TRNAME}Norman -{TRNAME}Palmer -{TRNAME}Anton -{TRNAME}Brenna -{TRNAME}Darrius -{TRNAME}Fredrick -{TRNAME}Travon -{TRNAME}Janet -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Cedric -{TRNAME}Grunt -{TRNAME}Dillan -{TRNAME}Holden -{TRNAME}Conrad -{TRNAME}Grunt -{TRNAME}Grunt -{TRNAME}Grunt diff --git a/files/poketool/trainer/trdata.json b/files/poketool/trainer/trdata.json index e666bb53..336f8469 100644 --- a/files/poketool/trainer/trdata.json +++ b/files/poketool/trainer/trdata.json @@ -2,8 +2,9 @@ "trdata": [ { "index": 1, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Tristan", "unk2": 0, "items": [], "unkC": 1, @@ -18,8 +19,9 @@ }, { "index": 2, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Logan", "unk2": 0, "items": [], "unkC": 1, @@ -34,8 +36,9 @@ }, { "index": 3, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Natalie", "unk2": 0, "items": [], "unkC": 1, @@ -55,8 +58,9 @@ }, { "index": 4, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Michael", "unk2": 0, "items": [], "unkC": 1, @@ -76,8 +80,9 @@ }, { "index": 5, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -92,8 +97,9 @@ }, { "index": 6, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -108,8 +114,9 @@ }, { "index": 7, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PICNICKER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -124,8 +131,9 @@ }, { "index": 8, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PICNICKER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -140,8 +148,9 @@ }, { "index": 9, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -156,8 +165,9 @@ }, { "index": 10, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Tyler", "unk2": 0, "items": [], "unkC": 1, @@ -177,8 +187,9 @@ }, { "index": 11, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Samantha", "unk2": 0, "items": [], "unkC": 1, @@ -193,8 +204,9 @@ }, { "index": 12, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Sarah", "unk2": 0, "items": [], "unkC": 1, @@ -209,8 +221,9 @@ }, { "index": 13, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Brandon", "unk2": 0, "items": [], "unkC": 1, @@ -230,8 +243,9 @@ }, { "index": 14, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Taylor", "unk2": 0, "items": [], "unkC": 1, @@ -251,8 +265,9 @@ }, { "index": 15, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TWINS", + "name": "Liv & Liz", "unk2": 0, "items": [], "unkC": 1, @@ -272,8 +287,9 @@ }, { "index": 16, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Jacob", "unk2": 0, "items": [], "unkC": 1, @@ -292,8 +308,9 @@ }, { "index": 17, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Siena", "unk2": 0, "items": [], "unkC": 1, @@ -322,8 +339,9 @@ }, { "index": 18, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Daniel", "unk2": 0, "items": [], "unkC": 1, @@ -353,8 +371,9 @@ }, { "index": 19, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Nicholas", "unk2": 0, "items": [], "unkC": 1, @@ -369,8 +388,9 @@ }, { "index": 20, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Kelsey", "unk2": 0, "items": [], "unkC": 1, @@ -385,8 +405,9 @@ }, { "index": 21, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Elizabeth", "unk2": 0, "items": [], "unkC": 1, @@ -401,8 +422,9 @@ }, { "index": 22, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Andrew", "unk2": 0, "items": [], "unkC": 1, @@ -442,8 +464,9 @@ }, { "index": 23, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Joseph", "unk2": 0, "items": [], "unkC": 1, @@ -458,8 +481,9 @@ }, { "index": 24, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Zachary", "unk2": 0, "items": [], "unkC": 1, @@ -484,8 +508,9 @@ }, { "index": 25, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "Axel", "unk2": 0, "items": [], "unkC": 1, @@ -500,8 +525,9 @@ }, { "index": 26, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "James", "unk2": 0, "items": [], "unkC": 1, @@ -516,8 +542,9 @@ }, { "index": 27, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "John", "unk2": 0, "items": [], "unkC": 1, @@ -537,8 +564,9 @@ }, { "index": 28, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "Ryan", "unk2": 0, "items": [], "unkC": 1, @@ -553,8 +581,9 @@ }, { "index": 29, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Megan", "unk2": 0, "items": [], "unkC": 1, @@ -569,8 +598,9 @@ }, { "index": 30, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Nicole", "unk2": 0, "items": [], "unkC": 1, @@ -590,8 +620,9 @@ }, { "index": 31, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Kayla", "unk2": 0, "items": [], "unkC": 1, @@ -606,8 +637,9 @@ }, { "index": 32, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Rachel", "unk2": 0, "items": [], "unkC": 1, @@ -627,8 +659,9 @@ }, { "index": 33, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Austin", "unk2": 0, "items": [], "unkC": 1, @@ -653,8 +686,9 @@ }, { "index": 34, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Anthony", "unk2": 0, "items": [], "unkC": 1, @@ -674,8 +708,9 @@ }, { "index": 35, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Lauren", "unk2": 0, "items": [], "unkC": 1, @@ -695,8 +730,9 @@ }, { "index": 36, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Kevin", "unk2": 0, "items": [], "unkC": 1, @@ -726,8 +762,9 @@ }, { "index": 37, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Justin", "unk2": 0, "items": [], "unkC": 1, @@ -747,8 +784,9 @@ }, { "index": 38, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Helen", "unk2": 0, "items": [], "unkC": 1, @@ -768,8 +806,9 @@ }, { "index": 39, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Robert", "unk2": 0, "items": [], "unkC": 1, @@ -789,8 +828,9 @@ }, { "index": 40, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Alexander", "unk2": 0, "items": [], "unkC": 1, @@ -815,8 +855,9 @@ }, { "index": 41, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Jonathan", "unk2": 0, "items": [], "unkC": 1, @@ -831,8 +872,9 @@ }, { "index": 42, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Kyle", "unk2": 0, "items": [], "unkC": 1, @@ -847,8 +889,9 @@ }, { "index": 43, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Cody", "unk2": 0, "items": [], "unkC": 1, @@ -868,8 +911,9 @@ }, { "index": 44, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Hannah", "unk2": 0, "items": [], "unkC": 1, @@ -889,8 +933,9 @@ }, { "index": 45, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "William", "unk2": 0, "items": [], "unkC": 1, @@ -910,8 +955,9 @@ }, { "index": 46, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Albert", "unk2": 0, "items": [], "unkC": 1, @@ -936,8 +982,9 @@ }, { "index": 47, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Jennifer", "unk2": 0, "items": [], "unkC": 1, @@ -962,8 +1009,9 @@ }, { "index": 48, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COWGIRL", + "name": "Shelley", "unk2": 0, "items": [], "unkC": 1, @@ -998,8 +1046,9 @@ }, { "index": 49, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Richard", "unk2": 0, "items": [], "unkC": 1, @@ -1014,8 +1063,9 @@ }, { "index": 50, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1030,8 +1080,9 @@ }, { "index": 51, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1046,8 +1097,9 @@ }, { "index": 52, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1062,8 +1114,9 @@ }, { "index": 53, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Danielle", "unk2": 0, "items": [], "unkC": 1, @@ -1078,8 +1131,9 @@ }, { "index": 54, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1094,8 +1148,9 @@ }, { "index": 55, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNG_COUPLE", + "name": "Ty & Sue", "unk2": 0, "items": [], "unkC": 1, @@ -1115,8 +1170,9 @@ }, { "index": 56, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Kahlil", "unk2": 0, "items": [], "unkC": 1, @@ -1141,8 +1197,9 @@ }, { "index": 57, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Amber", "unk2": 0, "items": [], "unkC": 1, @@ -1167,8 +1224,9 @@ }, { "index": 58, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COWGIRL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1183,8 +1241,9 @@ }, { "index": 59, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1199,8 +1258,9 @@ }, { "index": 60, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1215,8 +1275,9 @@ }, { "index": 61, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1231,8 +1292,9 @@ }, { "index": 62, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1247,8 +1309,9 @@ }, { "index": 63, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1263,8 +1326,9 @@ }, { "index": 64, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITRESS", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1279,8 +1343,9 @@ }, { "index": 65, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TWINS", + "name": "Teri & Tia", "unk2": 0, "items": [], "unkC": 1, @@ -1300,8 +1365,9 @@ }, { "index": 66, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Ernest", "unk2": 0, "items": [], "unkC": 1, @@ -1342,8 +1408,9 @@ }, { "index": 67, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Alyssa", "unk2": 0, "items": [], "unkC": 1, @@ -1373,8 +1440,9 @@ }, { "index": 68, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Brian", "unk2": 0, "items": [], "unkC": 1, @@ -1416,8 +1484,9 @@ }, { "index": 69, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Adam", "unk2": 0, "items": [], "unkC": 1, @@ -1432,8 +1501,9 @@ }, { "index": 70, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Joel", "unk2": 0, "items": [], "unkC": 1, @@ -1463,8 +1533,9 @@ }, { "index": 71, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Nathan", "unk2": 0, "items": [], "unkC": 1, @@ -1484,8 +1555,9 @@ }, { "index": 72, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Davido", "unk2": 0, "items": [], "unkC": 1, @@ -1500,8 +1572,9 @@ }, { "index": 73, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Patrick", "unk2": 0, "items": [], "unkC": 1, @@ -1516,8 +1589,9 @@ }, { "index": 74, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Brianna", "unk2": 0, "items": [], "unkC": 1, @@ -1537,8 +1611,9 @@ }, { "index": 75, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DOUBLE_TEAM", + "name": "Zac & Jen", "unk2": 0, "items": [], "unkC": 1, @@ -1558,8 +1633,9 @@ }, { "index": 76, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Alexandra", "unk2": 0, "items": [], "unkC": 1, @@ -1574,8 +1650,9 @@ }, { "index": 77, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1590,8 +1667,9 @@ }, { "index": 78, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Zach", "unk2": 0, "items": [], "unkC": 1, @@ -1616,8 +1694,9 @@ }, { "index": 79, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Sean", "unk2": 0, "items": [], "unkC": 1, @@ -1642,8 +1721,9 @@ }, { "index": 80, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Nick", "unk2": 0, "items": [], "unkC": 1, @@ -1663,8 +1743,9 @@ }, { "index": 81, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Katherine", "unk2": 0, "items": [], "unkC": 1, @@ -1679,8 +1760,9 @@ }, { "index": 82, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Jason", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -1697,8 +1779,9 @@ }, { "index": 83, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Melissa", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -1715,8 +1798,9 @@ }, { "index": 84, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Jeremy", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -1733,8 +1817,9 @@ }, { "index": 85, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SOCIALITE", + "name": "Reina", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -1751,8 +1836,9 @@ }, { "index": 86, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1767,8 +1853,9 @@ }, { "index": 87, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -1783,8 +1870,9 @@ }, { "index": 88, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Bobby", "unk2": 0, "items": [], "unkC": 1, @@ -1804,8 +1892,9 @@ }, { "index": 89, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Alex", "unk2": 0, "items": [], "unkC": 1, @@ -1825,8 +1914,9 @@ }, { "index": 90, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Dylan", "unk2": 0, "items": [], "unkC": 1, @@ -1846,8 +1936,9 @@ }, { "index": 91, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Juan", "unk2": 0, "items": [], "unkC": 1, @@ -1862,8 +1953,9 @@ }, { "index": 92, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Cameron", "unk2": 0, "items": [], "unkC": 1, @@ -1883,8 +1975,9 @@ }, { "index": 93, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Travis", "unk2": 0, "items": [], "unkC": 1, @@ -1914,8 +2007,9 @@ }, { "index": 94, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Taylor", "unk2": 0, "items": [], "unkC": 1, @@ -1935,8 +2029,9 @@ }, { "index": 95, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Jeffrey", "unk2": 0, "items": [], "unkC": 1, @@ -1956,8 +2051,9 @@ }, { "index": 96, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Allison", "unk2": 0, "items": [], "unkC": 0, @@ -1977,8 +2073,9 @@ }, { "index": 97, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -1993,8 +2090,9 @@ }, { "index": 98, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2009,8 +2107,9 @@ }, { "index": 99, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Stefano", "unk2": 0, "items": [], "unkC": 1, @@ -2031,8 +2130,9 @@ }, { "index": 100, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2047,8 +2147,9 @@ }, { "index": 101, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2063,8 +2164,9 @@ }, { "index": 102, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Caleb", "unk2": 0, "items": [], "unkC": 1, @@ -2084,8 +2186,9 @@ }, { "index": 103, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Sheltin", "unk2": 0, "items": [], "unkC": 1, @@ -2110,8 +2213,9 @@ }, { "index": 104, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Evan", "unk2": 0, "items": [], "unkC": 1, @@ -2131,8 +2235,9 @@ }, { "index": 105, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Haley", "unk2": 0, "items": [], "unkC": 1, @@ -2152,8 +2257,9 @@ }, { "index": 106, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Mary", "unk2": 0, "items": [], "unkC": 1, @@ -2173,8 +2279,9 @@ }, { "index": 107, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_M", + "name": "Jared", "unk2": 0, "items": [], "unkC": 1, @@ -2199,8 +2306,9 @@ }, { "index": 108, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_TUBER_F", + "name": "Chelsea", "unk2": 0, "items": [], "unkC": 1, @@ -2221,8 +2329,9 @@ }, { "index": 109, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -2237,8 +2346,9 @@ }, { "index": 110, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Paul", "unk2": 0, "items": [], "unkC": 1, @@ -2258,8 +2368,9 @@ }, { "index": 111, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Kenneth", "unk2": 0, "items": [], "unkC": 1, @@ -2284,8 +2395,9 @@ }, { "index": 112, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SIS_AND_BRO", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -2305,8 +2417,9 @@ }, { "index": 113, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Bryan", "unk2": 0, "items": [], "unkC": 1, @@ -2331,8 +2444,9 @@ }, { "index": 114, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Hunter", "unk2": 0, "items": [], "unkC": 1, @@ -2347,8 +2461,9 @@ }, { "index": 115, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2363,8 +2478,9 @@ }, { "index": 116, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_VETERAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2379,8 +2495,9 @@ }, { "index": 117, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2395,8 +2512,9 @@ }, { "index": 118, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PICNICKER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -2411,8 +2529,9 @@ }, { "index": 119, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Mitchell", "unk2": 0, "items": [], "unkC": 1, @@ -2432,8 +2551,9 @@ }, { "index": 120, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Abigail", "unk2": 0, "items": [], "unkC": 1, @@ -2458,8 +2578,9 @@ }, { "index": 121, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PI", + "name": "Carlos", "unk2": 0, "items": [], "unkC": 1, @@ -2496,8 +2617,9 @@ }, { "index": 122, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2512,8 +2634,9 @@ }, { "index": 123, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PI", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2528,8 +2651,9 @@ }, { "index": 124, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -2544,8 +2668,9 @@ }, { "index": 125, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -2560,8 +2685,9 @@ }, { "index": 126, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -2576,8 +2702,9 @@ }, { "index": 127, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Gregory", "unk2": 0, "items": [], "unkC": 1, @@ -2602,8 +2729,9 @@ }, { "index": 128, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Derek", "unk2": 0, "items": [], "unkC": 1, @@ -2618,8 +2746,9 @@ }, { "index": 129, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Nathaniel", "unk2": 0, "items": [], "unkC": 1, @@ -2644,8 +2773,9 @@ }, { "index": 130, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Scott", "unk2": 0, "items": [], "unkC": 1, @@ -2660,8 +2790,9 @@ }, { "index": 131, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -2676,8 +2807,9 @@ }, { "index": 132, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Blake", "unk2": 0, "items": [], "unkC": 1, @@ -2709,8 +2841,9 @@ }, { "index": 133, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Garrett", "unk2": 0, "items": [], "unkC": 1, @@ -2753,8 +2886,9 @@ }, { "index": 134, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Laura", "unk2": 0, "items": [], "unkC": 1, @@ -2775,8 +2909,9 @@ }, { "index": 135, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Maria", "unk2": 0, "items": [], "unkC": 1, @@ -2819,8 +2954,9 @@ }, { "index": 136, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Bradley", "unk2": 0, "items": [], "unkC": 1, @@ -2845,8 +2981,9 @@ }, { "index": 137, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Edward", "unk2": 0, "items": [], "unkC": 1, @@ -2861,8 +2998,9 @@ }, { "index": 138, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Kaitlyn", "unk2": 0, "items": [], "unkC": 1, @@ -2882,8 +3020,9 @@ }, { "index": 139, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Andrea", "unk2": 0, "items": [], "unkC": 1, @@ -2898,8 +3037,9 @@ }, { "index": 140, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Dalton", "unk2": 0, "items": [], "unkC": 1, @@ -2942,8 +3082,9 @@ }, { "index": 141, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Olivia", "unk2": 0, "items": [], "unkC": 1, @@ -2975,8 +3116,9 @@ }, { "index": 142, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Shawn", "unk2": 0, "items": [], "unkC": 1, @@ -3006,8 +3148,9 @@ }, { "index": 143, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Bjorn", "unk2": 0, "items": [], "unkC": 1, @@ -3027,8 +3170,9 @@ }, { "index": 144, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Lexie", "unk2": 0, "items": [], "unkC": 1, @@ -3048,8 +3192,9 @@ }, { "index": 145, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Madison", "unk2": 0, "items": [], "unkC": 1, @@ -3064,8 +3209,9 @@ }, { "index": 146, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Antonio", "unk2": 0, "items": [], "unkC": 1, @@ -3095,8 +3241,9 @@ }, { "index": 147, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Ethan", "unk2": 0, "items": [], "unkC": 1, @@ -3116,8 +3263,9 @@ }, { "index": 148, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Luke", "unk2": 0, "items": [], "unkC": 1, @@ -3142,8 +3290,9 @@ }, { "index": 149, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3158,8 +3307,9 @@ }, { "index": 150, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3174,8 +3324,9 @@ }, { "index": 151, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -3190,8 +3341,9 @@ }, { "index": 152, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -3206,8 +3358,9 @@ }, { "index": 153, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Miguel", "unk2": 0, "items": [], "unkC": 1, @@ -3227,8 +3380,9 @@ }, { "index": 154, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Luc", "unk2": 0, "items": [], "unkC": 1, @@ -3263,8 +3417,9 @@ }, { "index": 155, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SIS_AND_BRO", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -3284,8 +3439,9 @@ }, { "index": 156, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3300,8 +3456,9 @@ }, { "index": 157, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3316,8 +3473,9 @@ }, { "index": 158, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -3332,8 +3490,9 @@ }, { "index": 159, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Adrian", "unk2": 0, "items": [], "unkC": 1, @@ -3358,8 +3517,9 @@ }, { "index": 160, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Erik", "unk2": 0, "items": [], "unkC": 1, @@ -3374,8 +3534,9 @@ }, { "index": 161, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Vincent", "unk2": 0, "items": [], "unkC": 1, @@ -3395,8 +3556,9 @@ }, { "index": 162, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Jessica", "unk2": 0, "items": [], "unkC": 1, @@ -3426,8 +3588,9 @@ }, { "index": 163, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Erica", "unk2": 0, "items": [], "unkC": 1, @@ -3447,8 +3610,9 @@ }, { "index": 164, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Katelyn", "unk2": 0, "items": [], "unkC": 1, @@ -3491,8 +3655,9 @@ }, { "index": 165, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SIS_AND_BRO", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -3512,8 +3677,9 @@ }, { "index": 166, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Dillon", "unk2": 0, "items": [], "unkC": 1, @@ -3533,8 +3699,9 @@ }, { "index": 167, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Vanessa", "unk2": 0, "items": [], "unkC": 1, @@ -3549,8 +3716,9 @@ }, { "index": 168, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Cory", "unk2": 0, "items": [], "unkC": 1, @@ -3575,8 +3743,9 @@ }, { "index": 169, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3591,8 +3760,9 @@ }, { "index": 170, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Jake", "unk2": 0, "items": [], "unkC": 1, @@ -3623,8 +3793,9 @@ }, { "index": 171, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Shannon", "unk2": 0, "items": [], "unkC": 1, @@ -3664,8 +3835,9 @@ }, { "index": 172, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Brett", "unk2": 0, "items": [], "unkC": 1, @@ -3690,8 +3862,9 @@ }, { "index": 173, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Alec", "unk2": 0, "items": [], "unkC": 1, @@ -3711,8 +3884,9 @@ }, { "index": 174, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "George", "unk2": 0, "items": [], "unkC": 1, @@ -3742,8 +3916,9 @@ }, { "index": 175, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Cole", "unk2": 0, "items": [], "unkC": 1, @@ -3768,8 +3943,9 @@ }, { "index": 176, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ROUGHNECK", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3784,8 +3960,9 @@ }, { "index": 177, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ROUGHNECK", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3800,8 +3977,9 @@ }, { "index": 178, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3816,8 +3994,9 @@ }, { "index": 179, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3832,8 +4011,9 @@ }, { "index": 180, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Luther", "unk2": 0, "items": [], "unkC": 1, @@ -3858,8 +4038,9 @@ }, { "index": 181, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -3874,8 +4055,9 @@ }, { "index": 182, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNG_COUPLE", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -3895,8 +4077,9 @@ }, { "index": 183, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Wesley", "unk2": 0, "items": [], "unkC": 1, @@ -3916,8 +4099,9 @@ }, { "index": 184, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Ricardo", "unk2": 0, "items": [], "unkC": 1, @@ -3932,8 +4116,9 @@ }, { "index": 185, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Francisco", "unk2": 0, "items": [], "unkC": 1, @@ -3953,8 +4138,9 @@ }, { "index": 186, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Colton", "unk2": 0, "items": [], "unkC": 1, @@ -3979,8 +4165,9 @@ }, { "index": 187, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Troy", "unk2": 0, "items": [], "unkC": 1, @@ -3995,8 +4182,9 @@ }, { "index": 188, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Oscar", "unk2": 0, "items": [], "unkC": 1, @@ -4021,8 +4209,9 @@ }, { "index": 189, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Miranda", "unk2": 0, "items": [], "unkC": 1, @@ -4037,8 +4226,9 @@ }, { "index": 190, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Aubree", "unk2": 0, "items": [], "unkC": 1, @@ -4058,8 +4248,9 @@ }, { "index": 191, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Paige", "unk2": 0, "items": [], "unkC": 1, @@ -4084,8 +4275,9 @@ }, { "index": 192, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Crystal", "unk2": 0, "items": [], "unkC": 1, @@ -4105,8 +4297,9 @@ }, { "index": 193, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Cassandra", "unk2": 0, "items": [], "unkC": 1, @@ -4126,8 +4319,9 @@ }, { "index": 194, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Gabrielle", "unk2": 0, "items": [], "unkC": 1, @@ -4142,8 +4336,9 @@ }, { "index": 195, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_WORKER", + "name": "Colin", "unk2": 0, "items": [], "unkC": 1, @@ -4173,8 +4368,9 @@ }, { "index": 196, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_WORKER", + "name": "Mason", "unk2": 0, "items": [], "unkC": 1, @@ -4193,8 +4389,9 @@ }, { "index": 197, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4209,8 +4406,9 @@ }, { "index": 198, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4225,8 +4423,9 @@ }, { "index": 199, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4241,8 +4440,9 @@ }, { "index": 200, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4257,8 +4457,9 @@ }, { "index": 201, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Jack", "unk2": 0, "items": [], "unkC": 1, @@ -4283,8 +4484,9 @@ }, { "index": 202, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Phillip", "unk2": 0, "items": [], "unkC": 1, @@ -4309,8 +4511,9 @@ }, { "index": 203, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Donald", "unk2": 0, "items": [], "unkC": 1, @@ -4330,8 +4533,9 @@ }, { "index": 204, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Briana", "unk2": 0, "items": [], "unkC": 1, @@ -4346,8 +4550,9 @@ }, { "index": 205, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Elijah", "unk2": 0, "items": [], "unkC": 1, @@ -4365,8 +4570,9 @@ }, { "index": 206, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Lindsey", "unk2": 0, "items": [], "unkC": 1, @@ -4384,8 +4590,9 @@ }, { "index": 207, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNG_COUPLE", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -4405,8 +4612,9 @@ }, { "index": 208, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4421,8 +4629,9 @@ }, { "index": 209, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4437,8 +4646,9 @@ }, { "index": 210, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4453,8 +4663,9 @@ }, { "index": 211, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4469,8 +4680,9 @@ }, { "index": 212, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4485,8 +4697,9 @@ }, { "index": 213, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -4501,8 +4714,9 @@ }, { "index": 214, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -4517,8 +4731,9 @@ }, { "index": 215, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_VETERAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4533,8 +4748,9 @@ }, { "index": 216, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_VETERAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4549,8 +4765,9 @@ }, { "index": 217, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4565,8 +4782,9 @@ }, { "index": 218, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -4581,8 +4799,9 @@ }, { "index": 219, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4597,8 +4816,9 @@ }, { "index": 220, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4613,8 +4833,9 @@ }, { "index": 221, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -4629,8 +4850,9 @@ }, { "index": 222, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCHOOL_KID_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -4645,8 +4867,9 @@ }, { "index": 223, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNG_COUPLE", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -4666,8 +4889,9 @@ }, { "index": 224, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Omar", "unk2": 0, "items": [], "unkC": 1, @@ -4710,8 +4934,9 @@ }, { "index": 225, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Henry", "unk2": 0, "items": [], "unkC": 1, @@ -4732,8 +4957,9 @@ }, { "index": 226, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Mariah", "unk2": 0, "items": [], "unkC": 1, @@ -4765,8 +4991,9 @@ }, { "index": 227, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Sydney", "unk2": 0, "items": [], "unkC": 1, @@ -4798,8 +5025,9 @@ }, { "index": 228, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Edgar", "unk2": 0, "items": [], "unkC": 1, @@ -4842,8 +5070,9 @@ }, { "index": 229, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Clayton", "unk2": 0, "items": [], "unkC": 1, @@ -4875,8 +5104,9 @@ }, { "index": 230, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Ondrej", "unk2": 0, "items": [], "unkC": 1, @@ -4891,8 +5121,9 @@ }, { "index": 231, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Clinton", "unk2": 0, "items": [], "unkC": 1, @@ -4917,8 +5148,9 @@ }, { "index": 232, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "David", "unk2": 0, "items": [], "unkC": 1, @@ -4950,8 +5182,9 @@ }, { "index": 233, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Hana", "unk2": 0, "items": [], "unkC": 1, @@ -4971,8 +5204,9 @@ }, { "index": 234, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Bryce", "unk2": 0, "items": [], "unkC": 1, @@ -4997,8 +5231,9 @@ }, { "index": 235, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Valencia", "unk2": 0, "items": [], "unkC": 1, @@ -5018,8 +5253,9 @@ }, { "index": 236, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DOUBLE_TEAM", + "name": "Jo & Pat", "unk2": 0, "items": [], "unkC": 1, @@ -5039,8 +5275,9 @@ }, { "index": 237, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DOUBLE_TEAM", + "name": "Al & Kay", "unk2": 0, "items": [], "unkC": 1, @@ -5060,8 +5297,9 @@ }, { "index": 238, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5076,8 +5314,9 @@ }, { "index": 239, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -5092,8 +5331,9 @@ }, { "index": 240, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Grant", "unk2": 0, "items": [], "unkC": 1, @@ -5136,8 +5376,9 @@ }, { "index": 241, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5152,8 +5393,9 @@ }, { "index": 242, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5168,8 +5410,9 @@ }, { "index": 243, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -5184,8 +5427,9 @@ }, { "index": 244, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Jonathon", "unk2": 0, "items": [], "unkC": 1, @@ -5204,8 +5448,9 @@ }, { "index": 245, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Darius", "unk2": 0, "items": [], "unkC": 1, @@ -5234,8 +5479,9 @@ }, { "index": 246, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_LEADER_ROARK", + "name": "Roark", "unk2": 0, "items": [ "ITEM_POTION", @@ -5277,8 +5523,9 @@ }, { "index": 247, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -5306,8 +5553,9 @@ }, { "index": 248, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -5335,8 +5583,9 @@ }, { "index": 249, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -5364,8 +5613,9 @@ }, { "index": 250, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_BYRON", + "name": "Byron", "unk2": 0, "items": [ "ITEM_HYPER_POTION", @@ -5414,8 +5664,9 @@ }, { "index": 251, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -5430,8 +5681,9 @@ }, { "index": 252, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5446,8 +5698,9 @@ }, { "index": 253, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5462,8 +5715,9 @@ }, { "index": 254, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5478,8 +5732,9 @@ }, { "index": 255, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -5494,8 +5749,9 @@ }, { "index": 256, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_WORKER", + "name": "Jackson", "unk2": 0, "items": [], "unkC": 1, @@ -5535,8 +5791,9 @@ }, { "index": 257, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_WORKER", + "name": "Gary", "unk2": 0, "items": [], "unkC": 1, @@ -5556,8 +5813,9 @@ }, { "index": 258, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Philip", "unk2": 0, "items": [], "unkC": 1, @@ -5572,8 +5830,9 @@ }, { "index": 259, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Jenna", "unk2": 0, "items": [], "unkC": 1, @@ -5613,8 +5872,9 @@ }, { "index": 260, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Angela", "unk2": 0, "items": [], "unkC": 1, @@ -5633,8 +5893,9 @@ }, { "index": 261, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_ELITE_FOUR_AARON", + "name": "Aaron", "unk2": 0, "items": [ "ITEM_FULL_RESTORE", @@ -5707,8 +5968,9 @@ }, { "index": 262, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_ELITE_FOUR_BERTHA", + "name": "Bertha", "unk2": 0, "items": [ "ITEM_FULL_RESTORE", @@ -5781,8 +6043,9 @@ }, { "index": 263, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_ELITE_FOUR_FLINT", + "name": "Flint", "unk2": 0, "items": [ "ITEM_FULL_RESTORE", @@ -5855,8 +6118,9 @@ }, { "index": 264, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_ELITE_FOUR_LUCIEN", + "name": "Lucian", "unk2": 0, "items": [ "ITEM_FULL_RESTORE", @@ -5929,8 +6193,9 @@ }, { "index": 265, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMPER", + "name": "Curtis", "unk2": 0, "items": [], "unkC": 1, @@ -5945,8 +6210,9 @@ }, { "index": 266, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Drew", "unk2": 0, "items": [], "unkC": 1, @@ -5986,8 +6252,9 @@ }, { "index": 267, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_CHAMPION", + "name": "Cynthia", "unk2": 0, "items": [ "ITEM_FULL_RESTORE", @@ -6074,8 +6341,9 @@ }, { "index": 268, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Sergio", "unk2": 0, "items": [], "unkC": 1, @@ -6107,8 +6375,9 @@ }, { "index": 269, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Isaiah", "unk2": 0, "items": [], "unkC": 1, @@ -6129,8 +6398,9 @@ }, { "index": 270, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Savannah", "unk2": 0, "items": [], "unkC": 1, @@ -6173,8 +6443,9 @@ }, { "index": 271, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Alicia", "unk2": 0, "items": [], "unkC": 1, @@ -6205,8 +6476,9 @@ }, { "index": 272, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Douglas", "unk2": 0, "items": [], "unkC": 1, @@ -6231,8 +6503,9 @@ }, { "index": 273, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Brady", "unk2": 0, "items": [], "unkC": 1, @@ -6257,8 +6530,9 @@ }, { "index": 274, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Ivan", "unk2": 0, "items": [], "unkC": 1, @@ -6283,8 +6557,9 @@ }, { "index": 275, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Fernando", "unk2": 0, "items": [], "unkC": 1, @@ -6309,8 +6584,9 @@ }, { "index": 276, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Edwin", "unk2": 0, "items": [], "unkC": 1, @@ -6335,8 +6611,9 @@ }, { "index": 277, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Hayden", "unk2": 0, "items": [], "unkC": 1, @@ -6356,8 +6633,9 @@ }, { "index": 278, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Dennis", "unk2": 0, "items": [], "unkC": 1, @@ -6387,8 +6665,9 @@ }, { "index": 279, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Cesar", "unk2": 0, "items": [], "unkC": 1, @@ -6420,8 +6699,9 @@ }, { "index": 280, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Allen", "unk2": 0, "items": [], "unkC": 1, @@ -6464,8 +6744,9 @@ }, { "index": 281, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Zachery", "unk2": 0, "items": [], "unkC": 1, @@ -6496,8 +6777,9 @@ }, { "index": 282, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Ruben", "unk2": 0, "items": [], "unkC": 1, @@ -6528,8 +6810,9 @@ }, { "index": 283, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Breanna", "unk2": 0, "items": [], "unkC": 1, @@ -6550,8 +6833,9 @@ }, { "index": 284, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Catherine", "unk2": 0, "items": [], "unkC": 1, @@ -6583,8 +6867,9 @@ }, { "index": 285, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Destiny", "unk2": 0, "items": [], "unkC": 1, @@ -6616,8 +6901,9 @@ }, { "index": 286, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Jamie", "unk2": 0, "items": [], "unkC": 1, @@ -6638,8 +6924,9 @@ }, { "index": 287, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Maya", "unk2": 0, "items": [], "unkC": 1, @@ -6670,8 +6957,9 @@ }, { "index": 288, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Maxwell", "unk2": 0, "items": [], "unkC": 1, @@ -6691,8 +6979,9 @@ }, { "index": 289, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Brittney", "unk2": 0, "items": [], "unkC": 1, @@ -6712,8 +7001,9 @@ }, { "index": 290, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BELLE__PA", + "name": "Ava & Matt", "unk2": 0, "items": [], "unkC": 1, @@ -6733,8 +7023,9 @@ }, { "index": 291, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RANCHER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -6749,8 +7040,9 @@ }, { "index": 292, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RANCHER", + "name": "Marco", "unk2": 0, "items": [], "unkC": 1, @@ -6775,8 +7067,9 @@ }, { "index": 293, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Erick", "unk2": 0, "items": [], "unkC": 1, @@ -6816,8 +7109,9 @@ }, { "index": 294, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TWINS", + "name": "Emma & Lil", "unk2": 0, "items": [], "unkC": 1, @@ -6837,8 +7131,9 @@ }, { "index": 295, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_MARS", + "name": "Mars", "unk2": 0, "items": [], "unkC": 1, @@ -6870,8 +7165,9 @@ }, { "index": 296, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -6899,8 +7195,9 @@ }, { "index": 297, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -6919,8 +7216,9 @@ }, { "index": 298, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -6940,8 +7238,9 @@ }, { "index": 299, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -6961,8 +7260,9 @@ }, { "index": 300, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Tony", "unk2": 0, "items": [], "unkC": 1, @@ -6977,8 +7277,9 @@ }, { "index": 301, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GUITARIST", + "name": "Jerry", "unk2": 0, "items": [], "unkC": 1, @@ -6998,8 +7299,9 @@ }, { "index": 302, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GUITARIST", + "name": "Preston", "unk2": 0, "items": [], "unkC": 1, @@ -7030,8 +7332,9 @@ }, { "index": 303, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GUITARIST", + "name": "Lonnie", "unk2": 0, "items": [], "unkC": 1, @@ -7052,8 +7355,9 @@ }, { "index": 304, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Calvin", "unk2": 0, "items": [], "unkC": 1, @@ -7073,8 +7377,9 @@ }, { "index": 305, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Larry", "unk2": 0, "items": [], "unkC": 1, @@ -7089,8 +7394,9 @@ }, { "index": 306, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Wyatt", "unk2": 0, "items": [], "unkC": 1, @@ -7105,8 +7411,9 @@ }, { "index": 307, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Craig", "unk2": 0, "items": [], "unkC": 1, @@ -7131,8 +7438,9 @@ }, { "index": 308, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Raul", "unk2": 0, "items": [], "unkC": 1, @@ -7147,8 +7455,9 @@ }, { "index": 309, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Colby", "unk2": 0, "items": [], "unkC": 1, @@ -7185,8 +7494,9 @@ }, { "index": 310, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Darren", "unk2": 0, "items": [], "unkC": 1, @@ -7223,8 +7533,9 @@ }, { "index": 311, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Rafael", "unk2": 0, "items": [], "unkC": 1, @@ -7245,8 +7556,9 @@ }, { "index": 312, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Jeffery", "unk2": 0, "items": [], "unkC": 1, @@ -7276,8 +7588,9 @@ }, { "index": 313, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Carl", "unk2": 0, "items": [], "unkC": 1, @@ -7297,8 +7610,9 @@ }, { "index": 314, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Ricky", "unk2": 0, "items": [], "unkC": 1, @@ -7319,8 +7633,9 @@ }, { "index": 315, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_GARDENIA", + "name": "Gardenia", "unk2": 0, "items": [ "ITEM_SUPER_POTION", @@ -7369,8 +7684,9 @@ }, { "index": 316, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_WAKE", + "name": "Wake", "unk2": 0, "items": [ "ITEM_SUPER_POTION", @@ -7419,8 +7735,9 @@ }, { "index": 317, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_MAYLENE", + "name": "Maylene", "unk2": 0, "items": [ "ITEM_HYPER_POTION", @@ -7469,8 +7786,9 @@ }, { "index": 318, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_FANTINA", + "name": "Fantina", "unk2": 0, "items": [ "ITEM_HYPER_POTION", @@ -7519,8 +7837,9 @@ }, { "index": 319, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_CANDICE", + "name": "Candice", "unk2": 0, "items": [ "ITEM_HYPER_POTION", @@ -7581,8 +7900,9 @@ }, { "index": 320, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_LEADER_VOLKNER", + "name": "Volkner", "unk2": 0, "items": [ "ITEM_HYPER_POTION", @@ -7643,8 +7963,9 @@ }, { "index": 321, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -7659,8 +7980,9 @@ }, { "index": 322, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Madeline", "unk2": 0, "items": [], "unkC": 1, @@ -7680,8 +8002,9 @@ }, { "index": 323, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Kaitlin", "unk2": 0, "items": [], "unkC": 1, @@ -7706,8 +8029,9 @@ }, { "index": 324, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_LASS", + "name": "Caroline", "unk2": 0, "items": [], "unkC": 1, @@ -7736,8 +8060,9 @@ }, { "index": 325, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_LASS", + "name": "Molly", "unk2": 0, "items": [], "unkC": 1, @@ -7757,8 +8082,9 @@ }, { "index": 326, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Louis", "unk2": 0, "items": [], "unkC": 1, @@ -7778,8 +8104,9 @@ }, { "index": 327, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PARASOL_LADY", + "name": "Alexa", "unk2": 0, "items": [], "unkC": 1, @@ -7799,8 +8126,9 @@ }, { "index": 328, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PARASOL_LADY", + "name": "Sabrina", "unk2": 0, "items": [], "unkC": 1, @@ -7815,8 +8143,9 @@ }, { "index": 329, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Diana", "unk2": 0, "items": [], "unkC": 1, @@ -7845,8 +8174,9 @@ }, { "index": 330, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Cheyenne", "unk2": 0, "items": [], "unkC": 1, @@ -7876,8 +8206,9 @@ }, { "index": 331, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Meghan", "unk2": 0, "items": [], "unkC": 1, @@ -7907,8 +8238,9 @@ }, { "index": 332, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Danny", "unk2": 0, "items": [], "unkC": 1, @@ -7928,8 +8260,9 @@ }, { "index": 333, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Thomas", "unk2": 0, "items": [], "unkC": 1, @@ -7949,8 +8282,9 @@ }, { "index": 334, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -7965,8 +8299,9 @@ }, { "index": 335, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Trey", "unk2": 0, "items": [], "unkC": 1, @@ -7981,8 +8316,9 @@ }, { "index": 336, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -7997,8 +8333,9 @@ }, { "index": 337, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Marc", "unk2": 0, "items": [], "unkC": 1, @@ -8013,8 +8350,9 @@ }, { "index": 338, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Skyler", "unk2": 0, "items": [], "unkC": 1, @@ -8034,8 +8372,9 @@ }, { "index": 339, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SAILOR", + "name": "Damian", "unk2": 0, "items": [], "unkC": 1, @@ -8065,8 +8404,9 @@ }, { "index": 340, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Chance", "unk2": 0, "items": [], "unkC": 1, @@ -8087,8 +8427,9 @@ }, { "index": 341, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Forrest", "unk2": 0, "items": [], "unkC": 1, @@ -8109,8 +8450,9 @@ }, { "index": 342, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Harrison", "unk2": 0, "items": [], "unkC": 1, @@ -8128,8 +8470,9 @@ }, { "index": 343, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_F", + "name": "Mackenzie", "unk2": 0, "items": [], "unkC": 1, @@ -8160,8 +8503,9 @@ }, { "index": 344, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_F", + "name": "Tiera", "unk2": 0, "items": [], "unkC": 1, @@ -8182,8 +8526,9 @@ }, { "index": 345, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_F", + "name": "Christine", "unk2": 0, "items": [], "unkC": 1, @@ -8201,8 +8546,9 @@ }, { "index": 346, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Cyndy", "unk2": 0, "items": [], "unkC": 1, @@ -8217,8 +8563,9 @@ }, { "index": 347, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -8233,8 +8580,9 @@ }, { "index": 348, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_BEAUTY", + "name": "Lindsay", "unk2": 0, "items": [], "unkC": 1, @@ -8254,8 +8602,9 @@ }, { "index": 349, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8270,8 +8619,9 @@ }, { "index": 350, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -8286,8 +8636,9 @@ }, { "index": 351, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8302,8 +8653,9 @@ }, { "index": 352, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8318,8 +8670,9 @@ }, { "index": 353, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -8334,8 +8687,9 @@ }, { "index": 354, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -8350,8 +8704,9 @@ }, { "index": 355, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Dallas", "unk2": 0, "items": [], "unkC": 1, @@ -8366,8 +8721,9 @@ }, { "index": 356, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Sebastian", "unk2": 0, "items": [], "unkC": 1, @@ -8386,8 +8742,9 @@ }, { "index": 357, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Donny", "unk2": 0, "items": [], "unkC": 1, @@ -8419,8 +8776,9 @@ }, { "index": 358, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_M", + "name": "Trenton", "unk2": 0, "items": [], "unkC": 1, @@ -8440,8 +8798,9 @@ }, { "index": 359, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_M", + "name": "Conner", "unk2": 0, "items": [], "unkC": 1, @@ -8456,8 +8815,9 @@ }, { "index": 360, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_F", + "name": "Mariel", "unk2": 0, "items": [], "unkC": 1, @@ -8477,8 +8837,9 @@ }, { "index": 361, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_F", + "name": "Holly", "unk2": 0, "items": [], "unkC": 1, @@ -8493,8 +8854,9 @@ }, { "index": 362, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Armando", "unk2": 0, "items": [], "unkC": 1, @@ -8537,8 +8899,9 @@ }, { "index": 363, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8553,8 +8916,9 @@ }, { "index": 364, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8569,8 +8933,9 @@ }, { "index": 365, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8585,8 +8950,9 @@ }, { "index": 366, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITRESS", + "name": "Kati", "unk2": 0, "items": [], "unkC": 1, @@ -8601,8 +8967,9 @@ }, { "index": 367, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_WORKER", + "name": "Gerardo", "unk2": 0, "items": [], "unkC": 1, @@ -8632,8 +8999,9 @@ }, { "index": 368, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_INTERVIEWERS", + "name": "Roxy & Oli", "unk2": 0, "items": [], "unkC": 1, @@ -8653,8 +9021,9 @@ }, { "index": 369, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Tevin", "unk2": 0, "items": [], "unkC": 1, @@ -8669,8 +9038,9 @@ }, { "index": 370, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Kinsey", "unk2": 0, "items": [], "unkC": 1, @@ -8685,8 +9055,9 @@ }, { "index": 371, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Grace", "unk2": 0, "items": [], "unkC": 1, @@ -8706,8 +9077,9 @@ }, { "index": 372, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Tyler", "unk2": 0, "items": [], "unkC": 1, @@ -8722,8 +9094,9 @@ }, { "index": 373, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Autumn", "unk2": 0, "items": [], "unkC": 1, @@ -8743,8 +9116,9 @@ }, { "index": 374, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8759,8 +9133,9 @@ }, { "index": 375, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -8775,8 +9150,9 @@ }, { "index": 376, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8791,8 +9167,9 @@ }, { "index": 377, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Zackary", "unk2": 0, "items": [], "unkC": 1, @@ -8811,8 +9188,9 @@ }, { "index": 378, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Lawrence", "unk2": 0, "items": [], "unkC": 1, @@ -8843,8 +9221,9 @@ }, { "index": 379, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Diego", "unk2": 0, "items": [], "unkC": 1, @@ -8873,8 +9252,9 @@ }, { "index": 380, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Parker", "unk2": 0, "items": [], "unkC": 1, @@ -8903,8 +9283,9 @@ }, { "index": 381, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Dominique", "unk2": 0, "items": [], "unkC": 1, @@ -8929,8 +9310,9 @@ }, { "index": 382, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Jamal", "unk2": 0, "items": [], "unkC": 1, @@ -8955,8 +9337,9 @@ }, { "index": 383, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Terry", "unk2": 0, "items": [], "unkC": 1, @@ -8981,8 +9364,9 @@ }, { "index": 384, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -8997,8 +9381,9 @@ }, { "index": 385, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -9013,8 +9398,9 @@ }, { "index": 386, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Joe", "unk2": 0, "items": [], "unkC": 1, @@ -9034,8 +9420,9 @@ }, { "index": 387, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -9050,8 +9437,9 @@ }, { "index": 388, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Jonah", "unk2": 0, "items": [], "unkC": 1, @@ -9094,8 +9482,9 @@ }, { "index": 389, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Micah", "unk2": 0, "items": [], "unkC": 1, @@ -9138,8 +9527,9 @@ }, { "index": 390, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Arthur", "unk2": 0, "items": [], "unkC": 1, @@ -9171,8 +9561,9 @@ }, { "index": 391, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -9187,8 +9578,9 @@ }, { "index": 392, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Brenda", "unk2": 0, "items": [], "unkC": 1, @@ -9220,8 +9612,9 @@ }, { "index": 393, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Brandi", "unk2": 0, "items": [], "unkC": 1, @@ -9264,8 +9657,9 @@ }, { "index": 394, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Clarice", "unk2": 0, "items": [], "unkC": 1, @@ -9308,8 +9702,9 @@ }, { "index": 395, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Kody", "unk2": 0, "items": [], "unkC": 1, @@ -9324,8 +9719,9 @@ }, { "index": 396, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Landon", "unk2": 0, "items": [], "unkC": 1, @@ -9340,8 +9736,9 @@ }, { "index": 397, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Deandre", "unk2": 0, "items": [], "unkC": 1, @@ -9356,8 +9753,9 @@ }, { "index": 398, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Rachael", "unk2": 0, "items": [], "unkC": 1, @@ -9377,8 +9775,9 @@ }, { "index": 399, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Desiree", "unk2": 0, "items": [], "unkC": 1, @@ -9398,8 +9797,9 @@ }, { "index": 400, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Kendra", "unk2": 0, "items": [], "unkC": 1, @@ -9419,8 +9819,9 @@ }, { "index": 401, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Walter", "unk2": 0, "items": [], "unkC": 1, @@ -9440,8 +9841,9 @@ }, { "index": 402, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -9456,8 +9858,9 @@ }, { "index": 403, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_GALACTIC_BOSS", + "name": "Cyrus", "unk2": 0, "items": [ "ITEM_SUPER_POTION", @@ -9506,8 +9909,9 @@ }, { "index": 404, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_GALACTIC_BOSS", + "name": "Cyrus", "unk2": 0, "items": [ "ITEM_SUPER_POTION", @@ -9568,8 +9972,9 @@ }, { "index": 405, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_MARS", + "name": "Mars", "unk2": 0, "items": [], "unkC": 1, @@ -9615,8 +10020,9 @@ }, { "index": 406, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_JUPITER", + "name": "Jupiter", "unk2": 0, "items": [], "unkC": 1, @@ -9649,8 +10055,9 @@ }, { "index": 407, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_JUPITER", + "name": "Jupiter", "unk2": 0, "items": [], "unkC": 1, @@ -9696,8 +10103,9 @@ }, { "index": 408, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_SATURN", + "name": "Saturn", "unk2": 0, "items": [], "unkC": 1, @@ -9743,8 +10151,9 @@ }, { "index": 409, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_SATURN", + "name": "Saturn", "unk2": 0, "items": [], "unkC": 1, @@ -9790,8 +10199,9 @@ }, { "index": 410, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9821,8 +10231,9 @@ }, { "index": 411, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9837,8 +10248,9 @@ }, { "index": 412, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9867,8 +10279,9 @@ }, { "index": 413, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9883,8 +10296,9 @@ }, { "index": 414, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9903,8 +10317,9 @@ }, { "index": 415, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9919,8 +10334,9 @@ }, { "index": 416, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9940,8 +10356,9 @@ }, { "index": 417, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9961,8 +10378,9 @@ }, { "index": 418, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -9987,8 +10405,9 @@ }, { "index": 419, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10003,8 +10422,9 @@ }, { "index": 420, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10024,8 +10444,9 @@ }, { "index": 421, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10045,8 +10466,9 @@ }, { "index": 422, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10066,8 +10488,9 @@ }, { "index": 423, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10106,8 +10529,9 @@ }, { "index": 424, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10122,8 +10546,9 @@ }, { "index": 425, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10143,8 +10568,9 @@ }, { "index": 426, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10186,8 +10612,9 @@ }, { "index": 427, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10207,8 +10634,9 @@ }, { "index": 428, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10223,8 +10651,9 @@ }, { "index": 429, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10239,8 +10668,9 @@ }, { "index": 430, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -10260,8 +10690,9 @@ }, { "index": 431, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Arturo", "unk2": 0, "items": [], "unkC": 1, @@ -10281,8 +10712,9 @@ }, { "index": 432, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10297,8 +10729,9 @@ }, { "index": 433, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10313,8 +10746,9 @@ }, { "index": 434, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10329,8 +10763,9 @@ }, { "index": 435, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10345,8 +10780,9 @@ }, { "index": 436, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10361,8 +10797,9 @@ }, { "index": 437, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10377,8 +10814,9 @@ }, { "index": 438, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10393,8 +10831,9 @@ }, { "index": 439, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10409,8 +10848,9 @@ }, { "index": 440, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10425,8 +10865,9 @@ }, { "index": 441, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10441,8 +10882,9 @@ }, { "index": 442, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Harry", "unk2": 0, "items": [], "unkC": 1, @@ -10457,8 +10899,9 @@ }, { "index": 443, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Gerald", "unk2": 0, "items": [], "unkC": 1, @@ -10478,8 +10921,9 @@ }, { "index": 444, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Miles", "unk2": 0, "items": [], "unkC": 1, @@ -10494,8 +10938,9 @@ }, { "index": 445, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Kendal", "unk2": 0, "items": [], "unkC": 1, @@ -10510,8 +10955,9 @@ }, { "index": 446, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Eddie", "unk2": 0, "items": [], "unkC": 1, @@ -10531,8 +10977,9 @@ }, { "index": 447, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Willie", "unk2": 0, "items": [], "unkC": 1, @@ -10552,8 +10999,9 @@ }, { "index": 448, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SOCIALITE", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10568,8 +11016,9 @@ }, { "index": 449, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10584,8 +11033,9 @@ }, { "index": 450, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Cassidy", "unk2": 0, "items": [], "unkC": 1, @@ -10600,8 +11050,9 @@ }, { "index": 451, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Theodore", "unk2": 0, "items": [], "unkC": 1, @@ -10621,8 +11072,9 @@ }, { "index": 452, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Damon", "unk2": 0, "items": [], "unkC": 1, @@ -10647,8 +11099,9 @@ }, { "index": 453, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Maurice", "unk2": 0, "items": [], "unkC": 1, @@ -10668,8 +11121,9 @@ }, { "index": 454, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Reginald", "unk2": 0, "items": [], "unkC": 1, @@ -10689,8 +11143,9 @@ }, { "index": 455, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Lorenzo", "unk2": 0, "items": [], "unkC": 1, @@ -10705,8 +11160,9 @@ }, { "index": 456, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Karina", "unk2": 0, "items": [], "unkC": 1, @@ -10725,8 +11181,9 @@ }, { "index": 457, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Summer", "unk2": 0, "items": [], "unkC": 1, @@ -10757,8 +11214,9 @@ }, { "index": 458, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Tori", "unk2": 0, "items": [], "unkC": 1, @@ -10787,8 +11245,9 @@ }, { "index": 459, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Ana", "unk2": 0, "items": [], "unkC": 1, @@ -10807,8 +11266,9 @@ }, { "index": 460, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Lee", "unk2": 0, "items": [], "unkC": 1, @@ -10823,8 +11283,9 @@ }, { "index": 461, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10839,8 +11300,9 @@ }, { "index": 462, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10855,8 +11317,9 @@ }, { "index": 463, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10871,8 +11334,9 @@ }, { "index": 464, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10887,8 +11351,9 @@ }, { "index": 465, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Ariel", "unk2": 0, "items": [], "unkC": 1, @@ -10908,8 +11373,9 @@ }, { "index": 466, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10924,8 +11390,9 @@ }, { "index": 467, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10940,8 +11407,9 @@ }, { "index": 468, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -10956,8 +11424,9 @@ }, { "index": 469, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -10972,8 +11441,9 @@ }, { "index": 470, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11027,8 +11497,9 @@ }, { "index": 471, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11082,8 +11553,9 @@ }, { "index": 472, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11137,8 +11609,9 @@ }, { "index": 473, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11192,8 +11665,9 @@ }, { "index": 474, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11247,8 +11721,9 @@ }, { "index": 475, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11302,8 +11777,9 @@ }, { "index": 476, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11368,8 +11844,9 @@ }, { "index": 477, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11434,8 +11911,9 @@ }, { "index": 478, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11500,8 +11978,9 @@ }, { "index": 479, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11577,8 +12056,9 @@ }, { "index": 480, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11654,8 +12134,9 @@ }, { "index": 481, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -11731,8 +12212,9 @@ }, { "index": 482, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Zachariah", "unk2": 0, "items": [], "unkC": 1, @@ -11757,8 +12239,9 @@ }, { "index": 483, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SAILOR", + "name": "Samson", "unk2": 0, "items": [], "unkC": 1, @@ -11798,8 +12281,9 @@ }, { "index": 484, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -11814,8 +12298,9 @@ }, { "index": 485, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCHOOL_KID_F", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -11830,8 +12315,9 @@ }, { "index": 486, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Shaun", "unk2": 0, "items": [], "unkC": 1, @@ -11860,8 +12346,9 @@ }, { "index": 487, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -11876,8 +12363,9 @@ }, { "index": 488, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Fabian", "unk2": 0, "items": [], "unkC": 1, @@ -11902,8 +12390,9 @@ }, { "index": 489, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Brennan", "unk2": 0, "items": [], "unkC": 1, @@ -11923,8 +12412,9 @@ }, { "index": 490, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Bruce", "unk2": 0, "items": [], "unkC": 1, @@ -11939,8 +12429,9 @@ }, { "index": 491, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Devon", "unk2": 0, "items": [], "unkC": 1, @@ -11955,8 +12446,9 @@ }, { "index": 492, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Nicola", "unk2": 0, "items": [], "unkC": 1, @@ -11971,8 +12463,9 @@ }, { "index": 493, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -11987,8 +12480,9 @@ }, { "index": 494, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Claire", "unk2": 0, "items": [], "unkC": 1, @@ -12003,8 +12497,9 @@ }, { "index": 495, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -12019,8 +12514,9 @@ }, { "index": 496, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Wayne", "unk2": 0, "items": [], "unkC": 1, @@ -12045,8 +12541,9 @@ }, { "index": 497, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_TUBER_M", + "name": "Jacky", "unk2": 0, "items": [], "unkC": 1, @@ -12067,8 +12564,9 @@ }, { "index": 498, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_TUBER_F", + "name": "Caitlyn", "unk2": 0, "items": [], "unkC": 1, @@ -12099,8 +12597,9 @@ }, { "index": 499, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Terrell", "unk2": 0, "items": [], "unkC": 1, @@ -12143,8 +12642,9 @@ }, { "index": 500, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Brenden", "unk2": 0, "items": [], "unkC": 1, @@ -12187,8 +12687,9 @@ }, { "index": 501, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -12203,8 +12704,9 @@ }, { "index": 502, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -12219,8 +12721,9 @@ }, { "index": 503, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Willy", "unk2": 0, "items": [], "unkC": 1, @@ -12240,8 +12743,9 @@ }, { "index": 504, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Braden", "unk2": 0, "items": [], "unkC": 1, @@ -12256,8 +12760,9 @@ }, { "index": 505, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Brendon", "unk2": 0, "items": [], "unkC": 1, @@ -12277,8 +12782,9 @@ }, { "index": 506, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Quentin", "unk2": 0, "items": [], "unkC": 1, @@ -12303,8 +12809,9 @@ }, { "index": 507, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12319,8 +12826,9 @@ }, { "index": 508, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12340,8 +12848,9 @@ }, { "index": 509, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12356,8 +12865,9 @@ }, { "index": 510, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12382,8 +12892,9 @@ }, { "index": 511, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12398,8 +12909,9 @@ }, { "index": 512, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12419,8 +12931,9 @@ }, { "index": 513, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12440,8 +12953,9 @@ }, { "index": 514, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12461,8 +12975,9 @@ }, { "index": 515, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12477,8 +12992,9 @@ }, { "index": 516, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12503,8 +13019,9 @@ }, { "index": 517, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12524,8 +13041,9 @@ }, { "index": 518, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12550,8 +13068,9 @@ }, { "index": 519, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12566,8 +13085,9 @@ }, { "index": 520, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12587,8 +13107,9 @@ }, { "index": 521, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12608,8 +13129,9 @@ }, { "index": 522, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12634,8 +13156,9 @@ }, { "index": 523, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12650,8 +13173,9 @@ }, { "index": 524, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12676,8 +13200,9 @@ }, { "index": 525, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12697,8 +13222,9 @@ }, { "index": 526, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12723,8 +13249,9 @@ }, { "index": 527, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC_F", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -12744,8 +13271,9 @@ }, { "index": 528, - "type": 3, + "type": "TRTYPE_MON_ITEM_MOVES", "class": "TRAINER_CLASS_COMMANDER_MARS", + "name": "Mars", "unk2": 0, "items": [], "unkC": 1, @@ -12791,8 +13319,9 @@ }, { "index": 529, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ROUGHNECK", + "name": "Kirby", "unk2": 0, "items": [], "unkC": 1, @@ -12807,8 +13336,9 @@ }, { "index": 530, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_M", + "name": "Leonard", "unk2": 0, "items": [], "unkC": 1, @@ -12833,8 +13363,9 @@ }, { "index": 531, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_F", + "name": "Rebekah", "unk2": 0, "items": [], "unkC": 1, @@ -12849,8 +13380,9 @@ }, { "index": 532, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Oliver", "unk2": 0, "items": [], "unkC": 1, @@ -12875,8 +13407,9 @@ }, { "index": 533, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BELLE__PA", + "name": "Beth & Bob", "unk2": 0, "items": [], "unkC": 1, @@ -12896,8 +13429,9 @@ }, { "index": 534, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNG_COUPLE", + "name": "Mike & Nat", "unk2": 0, "items": [], "unkC": 1, @@ -12917,8 +13451,9 @@ }, { "index": 535, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Alison", "unk2": 0, "items": [], "unkC": 1, @@ -12933,8 +13468,9 @@ }, { "index": 536, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "Ismael", "unk2": 0, "items": [], "unkC": 1, @@ -12949,8 +13485,9 @@ }, { "index": 537, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Kaylee", "unk2": 0, "items": [], "unkC": 1, @@ -12970,8 +13507,9 @@ }, { "index": 538, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Darryl", "unk2": 0, "items": [], "unkC": 1, @@ -12991,8 +13529,9 @@ }, { "index": 539, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Eugene", "unk2": 0, "items": [], "unkC": 1, @@ -13017,8 +13556,9 @@ }, { "index": 540, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKEFAN_F", + "name": "Meredith", "unk2": 0, "items": [], "unkC": 1, @@ -13038,8 +13578,9 @@ }, { "index": 541, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PI", + "name": "Kendrick", "unk2": 0, "items": [], "unkC": 1, @@ -13067,8 +13608,9 @@ }, { "index": 542, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Leonardo", "unk2": 0, "items": [], "unkC": 1, @@ -13088,8 +13630,9 @@ }, { "index": 543, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SOCIALITE", + "name": "Rebecca", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -13111,8 +13654,9 @@ }, { "index": 544, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Blythe", "unk2": 0, "items": [], "unkC": 1, @@ -13132,8 +13676,9 @@ }, { "index": 545, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Roman", "unk2": 0, "items": [], "unkC": 1, @@ -13148,8 +13693,9 @@ }, { "index": 546, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Kylie", "unk2": 0, "items": [], "unkC": 1, @@ -13169,8 +13715,9 @@ }, { "index": 547, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Valerie", "unk2": 0, "items": [], "unkC": 1, @@ -13185,8 +13732,9 @@ }, { "index": 548, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCHOOL_KID_M", + "name": "Esteban", "unk2": 0, "items": [], "unkC": 1, @@ -13207,8 +13755,9 @@ }, { "index": 549, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Emilio", "unk2": 0, "items": [], "unkC": 1, @@ -13223,8 +13772,9 @@ }, { "index": 550, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Gabriella", "unk2": 0, "items": [], "unkC": 1, @@ -13239,8 +13789,9 @@ }, { "index": 551, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Harley", "unk2": 0, "items": [], "unkC": 1, @@ -13255,8 +13806,9 @@ }, { "index": 552, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Emanuel", "unk2": 0, "items": [], "unkC": 1, @@ -13286,8 +13838,9 @@ }, { "index": 553, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Karl", "unk2": 0, "items": [], "unkC": 1, @@ -13312,8 +13865,9 @@ }, { "index": 554, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Audrey", "unk2": 0, "items": [], "unkC": 1, @@ -13333,8 +13887,9 @@ }, { "index": 555, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Geneva", "unk2": 0, "items": [], "unkC": 1, @@ -13354,8 +13909,9 @@ }, { "index": 556, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Krystal", "unk2": 0, "items": [], "unkC": 1, @@ -13380,8 +13936,9 @@ }, { "index": 557, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Geoffrey", "unk2": 0, "items": [], "unkC": 1, @@ -13401,8 +13958,9 @@ }, { "index": 558, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Darien", "unk2": 0, "items": [], "unkC": 1, @@ -13417,8 +13975,9 @@ }, { "index": 559, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Keegan", "unk2": 0, "items": [], "unkC": 1, @@ -13433,8 +13992,9 @@ }, { "index": 560, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Stanley", "unk2": 0, "items": [], "unkC": 1, @@ -13454,8 +14014,9 @@ }, { "index": 561, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Drake", "unk2": 0, "items": [], "unkC": 1, @@ -13480,8 +14041,9 @@ }, { "index": 562, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Kenny", "unk2": 0, "items": [], "unkC": 1, @@ -13501,8 +14063,9 @@ }, { "index": 563, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Rodolfo", "unk2": 0, "items": [], "unkC": 1, @@ -13534,8 +14097,9 @@ }, { "index": 564, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Saul", "unk2": 0, "items": [], "unkC": 1, @@ -13556,8 +14120,9 @@ }, { "index": 565, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Jose", "unk2": 0, "items": [], "unkC": 1, @@ -13589,8 +14154,9 @@ }, { "index": 566, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Felix", "unk2": 0, "items": [], "unkC": 1, @@ -13622,8 +14188,9 @@ }, { "index": 567, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Quinn", "unk2": 0, "items": [], "unkC": 1, @@ -13655,8 +14222,9 @@ }, { "index": 568, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Graham", "unk2": 0, "items": [], "unkC": 1, @@ -13677,8 +14245,9 @@ }, { "index": 569, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Keenan", "unk2": 0, "items": [], "unkC": 1, @@ -13710,8 +14279,9 @@ }, { "index": 570, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Stefan", "unk2": 0, "items": [], "unkC": 1, @@ -13743,8 +14313,9 @@ }, { "index": 571, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Skylar", "unk2": 0, "items": [], "unkC": 1, @@ -13776,8 +14347,9 @@ }, { "index": 572, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Abel", "unk2": 0, "items": [], "unkC": 1, @@ -13798,8 +14370,9 @@ }, { "index": 573, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Deanna", "unk2": 0, "items": [], "unkC": 1, @@ -13831,8 +14404,9 @@ }, { "index": 574, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Ariana", "unk2": 0, "items": [], "unkC": 1, @@ -13875,8 +14449,9 @@ }, { "index": 575, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Dana", "unk2": 0, "items": [], "unkC": 1, @@ -13908,8 +14483,9 @@ }, { "index": 576, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Mikayla", "unk2": 0, "items": [], "unkC": 1, @@ -13952,8 +14528,9 @@ }, { "index": 577, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Meagan", "unk2": 0, "items": [], "unkC": 1, @@ -13985,8 +14562,9 @@ }, { "index": 578, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Sandra", "unk2": 0, "items": [], "unkC": 1, @@ -14007,8 +14585,9 @@ }, { "index": 579, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Kassandra", "unk2": 0, "items": [], "unkC": 1, @@ -14040,8 +14619,9 @@ }, { "index": 580, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Jasmin", "unk2": 0, "items": [], "unkC": 1, @@ -14062,8 +14642,9 @@ }, { "index": 581, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Natasha", "unk2": 0, "items": [], "unkC": 1, @@ -14106,8 +14687,9 @@ }, { "index": 582, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Monique", "unk2": 0, "items": [], "unkC": 1, @@ -14139,8 +14721,9 @@ }, { "index": 583, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Corbin", "unk2": 0, "items": [], "unkC": 1, @@ -14160,8 +14743,9 @@ }, { "index": 584, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Sterling", "unk2": 0, "items": [], "unkC": 1, @@ -14181,8 +14765,9 @@ }, { "index": 585, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Daisy", "unk2": 0, "items": [], "unkC": 1, @@ -14202,8 +14787,9 @@ }, { "index": 586, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Chelsey", "unk2": 0, "items": [], "unkC": 1, @@ -14223,8 +14809,9 @@ }, { "index": 587, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Davon", "unk2": 0, "items": [], "unkC": 1, @@ -14249,8 +14836,9 @@ }, { "index": 588, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Griffin", "unk2": 0, "items": [], "unkC": 1, @@ -14270,8 +14858,9 @@ }, { "index": 589, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Ray", "unk2": 0, "items": [], "unkC": 1, @@ -14296,8 +14885,9 @@ }, { "index": 590, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Jarrett", "unk2": 0, "items": [], "unkC": 1, @@ -14312,8 +14902,9 @@ }, { "index": 591, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Kyler", "unk2": 0, "items": [], "unkC": 1, @@ -14333,8 +14924,9 @@ }, { "index": 592, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Deshawn", "unk2": 0, "items": [], "unkC": 1, @@ -14354,8 +14946,9 @@ }, { "index": 593, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Dwayne", "unk2": 0, "items": [], "unkC": 1, @@ -14370,8 +14963,9 @@ }, { "index": 594, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Ashlee", "unk2": 0, "items": [], "unkC": 1, @@ -14391,8 +14985,9 @@ }, { "index": 595, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Felicia", "unk2": 0, "items": [], "unkC": 1, @@ -14412,8 +15007,9 @@ }, { "index": 596, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Krista", "unk2": 0, "items": [], "unkC": 1, @@ -14433,8 +15029,9 @@ }, { "index": 597, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Glenn", "unk2": 0, "items": [], "unkC": 1, @@ -14454,8 +15051,9 @@ }, { "index": 598, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Kurt", "unk2": 0, "items": [], "unkC": 1, @@ -14470,8 +15068,9 @@ }, { "index": 599, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Sam", "unk2": 0, "items": [], "unkC": 1, @@ -14491,8 +15090,9 @@ }, { "index": 600, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Wade", "unk2": 0, "items": [], "unkC": 1, @@ -14517,8 +15117,9 @@ }, { "index": 601, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Joanna", "unk2": 0, "items": [], "unkC": 1, @@ -14538,8 +15139,9 @@ }, { "index": 602, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Sophia", "unk2": 0, "items": [], "unkC": 1, @@ -14559,8 +15161,9 @@ }, { "index": 603, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Mallory", "unk2": 0, "items": [], "unkC": 1, @@ -14580,8 +15183,9 @@ }, { "index": 604, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Lydia", "unk2": 0, "items": [], "unkC": 1, @@ -14606,8 +15210,9 @@ }, { "index": 605, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_VETERAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -14622,8 +15227,9 @@ }, { "index": 606, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Harlan", "unk2": 0, "items": [], "unkC": 1, @@ -14666,8 +15272,9 @@ }, { "index": 607, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -14743,8 +15350,9 @@ }, { "index": 608, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_AROMA_LADY", + "name": "Cheryl", "unk2": 0, "items": [], "unkC": 1, @@ -14764,8 +15372,9 @@ }, { "index": 609, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_RICH_BOY", + "name": "Riley", "unk2": 0, "items": [], "unkC": 1, @@ -14786,8 +15395,9 @@ }, { "index": 610, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_PICNICKER", + "name": "Marley", "unk2": 0, "items": [], "unkC": 1, @@ -14808,8 +15418,9 @@ }, { "index": 611, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_CAMPER", + "name": "Buck", "unk2": 0, "items": [], "unkC": 1, @@ -14830,8 +15441,9 @@ }, { "index": 612, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_POKEKID", + "name": "Mira", "unk2": 0, "items": [], "unkC": 1, @@ -14852,8 +15464,9 @@ }, { "index": 613, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -14872,8 +15485,9 @@ }, { "index": 614, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -14892,8 +15506,9 @@ }, { "index": 615, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -14912,8 +15527,9 @@ }, { "index": 616, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -14932,8 +15548,9 @@ }, { "index": 617, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -14952,8 +15569,9 @@ }, { "index": 618, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -14972,8 +15590,9 @@ }, { "index": 619, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -15049,8 +15668,9 @@ }, { "index": 620, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -15126,8 +15746,9 @@ }, { "index": 621, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -15170,8 +15791,9 @@ }, { "index": 622, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -15214,8 +15836,9 @@ }, { "index": 623, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_LUCAS", + "name": "Lucas", "unk2": 0, "items": [], "unkC": 1, @@ -15258,8 +15881,9 @@ }, { "index": 624, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -15302,8 +15926,9 @@ }, { "index": 625, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -15346,8 +15971,9 @@ }, { "index": 626, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_DAWN", + "name": "Dawn", "unk2": 0, "items": [], "unkC": 1, @@ -15390,8 +16016,9 @@ }, { "index": 627, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Elizabeth", "unk2": 0, "items": [], "unkC": 1, @@ -15406,8 +16033,9 @@ }, { "index": 628, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Elizabeth", "unk2": 0, "items": [], "unkC": 1, @@ -15422,8 +16050,9 @@ }, { "index": 629, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_AROMA_LADY", + "name": "Elizabeth", "unk2": 0, "items": [], "unkC": 1, @@ -15438,8 +16067,9 @@ }, { "index": 630, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "Kevin", "unk2": 0, "items": [], "unkC": 1, @@ -15459,8 +16089,9 @@ }, { "index": 631, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "Kevin", "unk2": 0, "items": [], "unkC": 1, @@ -15480,8 +16111,9 @@ }, { "index": 632, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_ARTIST", + "name": "Kevin", "unk2": 0, "items": [], "unkC": 1, @@ -15501,8 +16133,9 @@ }, { "index": 633, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Helen", "unk2": 0, "items": [], "unkC": 1, @@ -15522,8 +16155,9 @@ }, { "index": 634, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Helen", "unk2": 0, "items": [], "unkC": 1, @@ -15543,8 +16177,9 @@ }, { "index": 635, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BATTLE_GIRL", + "name": "Helen", "unk2": 0, "items": [], "unkC": 1, @@ -15564,8 +16199,9 @@ }, { "index": 636, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Brianna", "unk2": 0, "items": [], "unkC": 1, @@ -15585,8 +16221,9 @@ }, { "index": 637, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Brianna", "unk2": 0, "items": [], "unkC": 1, @@ -15606,8 +16243,9 @@ }, { "index": 638, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BIRD_KEEPER", + "name": "Audrey", "unk2": 0, "items": [], "unkC": 1, @@ -15627,8 +16265,9 @@ }, { "index": 639, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Albert", "unk2": 0, "items": [], "unkC": 1, @@ -15653,8 +16292,9 @@ }, { "index": 640, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Albert", "unk2": 0, "items": [], "unkC": 1, @@ -15679,8 +16319,9 @@ }, { "index": 641, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_M", + "name": "Albert", "unk2": 0, "items": [], "unkC": 1, @@ -15705,8 +16346,9 @@ }, { "index": 642, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Jennifer", "unk2": 0, "items": [], "unkC": 1, @@ -15731,8 +16373,9 @@ }, { "index": 643, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Jennifer", "unk2": 0, "items": [], "unkC": 1, @@ -15757,8 +16400,9 @@ }, { "index": 644, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_BREEDER_F", + "name": "Jennifer", "unk2": 0, "items": [], "unkC": 1, @@ -15783,8 +16427,9 @@ }, { "index": 645, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Zackary", "unk2": 0, "items": [], "unkC": 1, @@ -15805,8 +16450,9 @@ }, { "index": 646, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Zackary", "unk2": 0, "items": [], "unkC": 1, @@ -15827,8 +16473,9 @@ }, { "index": 647, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_CAMPER", + "name": "Zackary", "unk2": 0, "items": [], "unkC": 1, @@ -15849,8 +16496,9 @@ }, { "index": 648, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Dalton", "unk2": 0, "items": [], "unkC": 1, @@ -15893,8 +16541,9 @@ }, { "index": 649, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Olivia", "unk2": 0, "items": [], "unkC": 1, @@ -15926,8 +16575,9 @@ }, { "index": 650, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COLLECTOR", + "name": "Ivan", "unk2": 0, "items": [], "unkC": 1, @@ -15952,8 +16602,9 @@ }, { "index": 651, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COWGIRL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -15968,8 +16619,9 @@ }, { "index": 652, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_COWGIRL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -15984,8 +16636,9 @@ }, { "index": 653, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "John", "unk2": 0, "items": [], "unkC": 1, @@ -16005,8 +16658,9 @@ }, { "index": 654, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "John", "unk2": 0, "items": [], "unkC": 1, @@ -16026,8 +16680,9 @@ }, { "index": 655, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_M", + "name": "John", "unk2": 0, "items": [], "unkC": 1, @@ -16047,8 +16702,9 @@ }, { "index": 656, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Kayla", "unk2": 0, "items": [], "unkC": 1, @@ -16063,8 +16719,9 @@ }, { "index": 657, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Kayla", "unk2": 0, "items": [], "unkC": 1, @@ -16079,8 +16736,9 @@ }, { "index": 658, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CYCLIST_F", + "name": "Kayla", "unk2": 0, "items": [], "unkC": 1, @@ -16095,8 +16753,9 @@ }, { "index": 659, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Patrick", "unk2": 0, "items": [], "unkC": 1, @@ -16111,8 +16770,9 @@ }, { "index": 660, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Patrick", "unk2": 0, "items": [], "unkC": 1, @@ -16127,8 +16787,9 @@ }, { "index": 661, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Hayden", "unk2": 0, "items": [], "unkC": 1, @@ -16148,8 +16809,9 @@ }, { "index": 662, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_DRAGON_TAMER", + "name": "Geoffrey", "unk2": 0, "items": [], "unkC": 1, @@ -16169,8 +16831,9 @@ }, { "index": 663, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Jake", "unk2": 0, "items": [], "unkC": 0, @@ -16202,8 +16865,9 @@ }, { "index": 664, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Dennis", "unk2": 0, "items": [], "unkC": 1, @@ -16246,8 +16910,9 @@ }, { "index": 665, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Dennis", "unk2": 0, "items": [], "unkC": 1, @@ -16290,8 +16955,9 @@ }, { "index": 666, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Rodolfo", "unk2": 0, "items": [], "unkC": 1, @@ -16323,8 +16989,9 @@ }, { "index": 667, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_M", + "name": "Saul", "unk2": 0, "items": [], "unkC": 1, @@ -16345,8 +17012,9 @@ }, { "index": 668, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Shannon", "unk2": 0, "items": [], "unkC": 1, @@ -16389,8 +17057,9 @@ }, { "index": 669, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Maya", "unk2": 0, "items": [], "unkC": 1, @@ -16422,8 +17091,9 @@ }, { "index": 670, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Maya", "unk2": 0, "items": [], "unkC": 1, @@ -16455,8 +17125,9 @@ }, { "index": 671, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Deanna", "unk2": 0, "items": [], "unkC": 1, @@ -16488,8 +17159,9 @@ }, { "index": 672, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_F", + "name": "Ariana", "unk2": 0, "items": [], "unkC": 1, @@ -16532,8 +17204,9 @@ }, { "index": 673, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Mitchell", "unk2": 0, "items": [], "unkC": 1, @@ -16553,8 +17226,9 @@ }, { "index": 674, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Mitchell", "unk2": 0, "items": [], "unkC": 1, @@ -16574,8 +17248,9 @@ }, { "index": 675, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Maxwell", "unk2": 0, "items": [], "unkC": 1, @@ -16595,8 +17270,9 @@ }, { "index": 676, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_M", + "name": "Corbin", "unk2": 0, "items": [], "unkC": 1, @@ -16616,8 +17292,9 @@ }, { "index": 677, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Abigail", "unk2": 0, "items": [], "unkC": 1, @@ -16642,8 +17319,9 @@ }, { "index": 678, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Abigail", "unk2": 0, "items": [], "unkC": 1, @@ -16668,8 +17346,9 @@ }, { "index": 679, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Brittney", "unk2": 0, "items": [], "unkC": 1, @@ -16689,8 +17368,9 @@ }, { "index": 680, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PSYCHIC_F", + "name": "Daisy", "unk2": 0, "items": [], "unkC": 1, @@ -16710,8 +17390,9 @@ }, { "index": 681, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RANCHER", + "name": "Marco", "unk2": 0, "items": [], "unkC": 1, @@ -16736,8 +17417,9 @@ }, { "index": 682, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RANCHER", + "name": "Marco", "unk2": 0, "items": [], "unkC": 1, @@ -16762,8 +17444,9 @@ }, { "index": 683, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Joseph", "unk2": 0, "items": [], "unkC": 1, @@ -16778,8 +17461,9 @@ }, { "index": 684, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Joseph", "unk2": 0, "items": [], "unkC": 1, @@ -16794,8 +17478,9 @@ }, { "index": 685, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Miguel", "unk2": 0, "items": [], "unkC": 1, @@ -16815,8 +17500,9 @@ }, { "index": 686, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_FISHERMAN", + "name": "Alec", "unk2": 0, "items": [], "unkC": 1, @@ -16836,8 +17522,9 @@ }, { "index": 687, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TWINS", + "name": "Teri & Tia", "unk2": 0, "items": [], "unkC": 1, @@ -16857,8 +17544,9 @@ }, { "index": 688, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TWINS", + "name": "Teri & Tia", "unk2": 0, "items": [], "unkC": 1, @@ -16878,8 +17566,9 @@ }, { "index": 689, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PI", + "name": "Carlos", "unk2": 0, "items": [], "unkC": 1, @@ -16916,8 +17605,9 @@ }, { "index": 690, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PI", + "name": "Carlos", "unk2": 0, "items": [], "unkC": 1, @@ -16954,8 +17644,9 @@ }, { "index": 691, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Jeremy", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -16972,8 +17663,9 @@ }, { "index": 692, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Jeremy", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -16990,8 +17682,9 @@ }, { "index": 693, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GENTLEMAN", + "name": "Jeremy", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17008,8 +17701,9 @@ }, { "index": 694, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Tony", "unk2": 0, "items": [], "unkC": 1, @@ -17024,8 +17718,9 @@ }, { "index": 695, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Harry", "unk2": 0, "items": [], "unkC": 1, @@ -17040,8 +17735,9 @@ }, { "index": 696, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RUIN_MANIAC", + "name": "Harry", "unk2": 0, "items": [], "unkC": 1, @@ -17056,8 +17752,9 @@ }, { "index": 697, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Craig", "unk2": 0, "items": [], "unkC": 1, @@ -17082,8 +17779,9 @@ }, { "index": 698, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_JOGGER", + "name": "Craig", "unk2": 0, "items": [], "unkC": 1, @@ -17108,8 +17806,9 @@ }, { "index": 699, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Philip", "unk2": 0, "items": [], "unkC": 1, @@ -17124,8 +17823,9 @@ }, { "index": 700, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BLACK_BELT", + "name": "Davon", "unk2": 0, "items": [], "unkC": 1, @@ -17150,8 +17850,9 @@ }, { "index": 701, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SOCIALITE", + "name": "Reina", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17168,8 +17869,9 @@ }, { "index": 702, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SOCIALITE", + "name": "Reina", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17186,8 +17888,9 @@ }, { "index": 703, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Samantha", "unk2": 0, "items": [], "unkC": 1, @@ -17202,8 +17905,9 @@ }, { "index": 704, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Samantha", "unk2": 0, "items": [], "unkC": 1, @@ -17218,8 +17922,9 @@ }, { "index": 705, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Samantha", "unk2": 0, "items": [], "unkC": 1, @@ -17234,8 +17939,9 @@ }, { "index": 706, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Madeline", "unk2": 0, "items": [], "unkC": 1, @@ -17255,8 +17961,9 @@ }, { "index": 707, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Madeline", "unk2": 0, "items": [], "unkC": 1, @@ -17276,8 +17983,9 @@ }, { "index": 708, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Madeline", "unk2": 0, "items": [], "unkC": 1, @@ -17297,8 +18005,9 @@ }, { "index": 709, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Theodore", "unk2": 0, "items": [], "unkC": 1, @@ -17318,8 +18027,9 @@ }, { "index": 710, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Theodore", "unk2": 0, "items": [], "unkC": 1, @@ -17339,8 +18049,9 @@ }, { "index": 711, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_HIKER", + "name": "Theodore", "unk2": 0, "items": [], "unkC": 1, @@ -17360,8 +18071,9 @@ }, { "index": 712, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Brandon", "unk2": 0, "items": [], "unkC": 1, @@ -17381,8 +18093,9 @@ }, { "index": 713, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Brandon", "unk2": 0, "items": [], "unkC": 1, @@ -17402,8 +18115,9 @@ }, { "index": 714, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BUG_CATCHER", + "name": "Brandon", "unk2": 0, "items": [], "unkC": 1, @@ -17423,8 +18137,9 @@ }, { "index": 715, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PARASOL_LADY", + "name": "Alexa", "unk2": 0, "items": [], "unkC": 1, @@ -17444,8 +18159,9 @@ }, { "index": 716, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PARASOL_LADY", + "name": "Alexa", "unk2": 0, "items": [], "unkC": 1, @@ -17465,8 +18181,9 @@ }, { "index": 717, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PARASOL_LADY", + "name": "Alexa", "unk2": 0, "items": [], "unkC": 1, @@ -17486,8 +18203,9 @@ }, { "index": 718, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Karina", "unk2": 0, "items": [], "unkC": 1, @@ -17508,8 +18226,9 @@ }, { "index": 719, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Karina", "unk2": 0, "items": [], "unkC": 1, @@ -17530,8 +18249,9 @@ }, { "index": 720, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PICNICKER", + "name": "Karina", "unk2": 0, "items": [], "unkC": 0, @@ -17552,8 +18272,9 @@ }, { "index": 721, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Danielle", "unk2": 0, "items": [], "unkC": 1, @@ -17568,8 +18289,9 @@ }, { "index": 722, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Danielle", "unk2": 0, "items": [], "unkC": 1, @@ -17584,8 +18306,9 @@ }, { "index": 723, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Danielle", "unk2": 0, "items": [], "unkC": 1, @@ -17600,8 +18323,9 @@ }, { "index": 724, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Danny", "unk2": 0, "items": [], "unkC": 1, @@ -17621,8 +18345,9 @@ }, { "index": 725, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Danny", "unk2": 0, "items": [], "unkC": 1, @@ -17642,8 +18367,9 @@ }, { "index": 726, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Danny", "unk2": 0, "items": [], "unkC": 1, @@ -17663,8 +18389,9 @@ }, { "index": 727, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Trey", "unk2": 0, "items": [], "unkC": 1, @@ -17679,8 +18406,9 @@ }, { "index": 728, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_RICH_BOY", + "name": "Trey", "unk2": 0, "items": [], "unkC": 1, @@ -17695,8 +18423,9 @@ }, { "index": 729, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Melissa", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17713,8 +18442,9 @@ }, { "index": 730, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Melissa", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17731,8 +18461,9 @@ }, { "index": 731, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LADY", + "name": "Melissa", "unk2": 0, "items": [ "ITEM_FULL_RESTORE" @@ -17749,8 +18480,9 @@ }, { "index": 732, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Taylor", "unk2": 0, "items": [], "unkC": 1, @@ -17770,8 +18502,9 @@ }, { "index": 733, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Taylor", "unk2": 0, "items": [], "unkC": 1, @@ -17791,8 +18524,9 @@ }, { "index": 734, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Taylor", "unk2": 0, "items": [], "unkC": 1, @@ -17812,8 +18546,9 @@ }, { "index": 735, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_M", + "name": "Kyler", "unk2": 0, "items": [], "unkC": 1, @@ -17833,8 +18568,9 @@ }, { "index": 736, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Allison", "unk2": 0, "items": [], "unkC": 1, @@ -17854,8 +18590,9 @@ }, { "index": 737, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Allison", "unk2": 0, "items": [], "unkC": 1, @@ -17875,8 +18612,9 @@ }, { "index": 738, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Allison", "unk2": 0, "items": [], "unkC": 1, @@ -17896,8 +18634,9 @@ }, { "index": 739, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_PKMN_RANGER_F", + "name": "Ashlee", "unk2": 0, "items": [], "unkC": 1, @@ -17917,8 +18656,9 @@ }, { "index": 740, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Marc", "unk2": 0, "items": [], "unkC": 1, @@ -17938,8 +18678,9 @@ }, { "index": 741, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Marc", "unk2": 0, "items": [], "unkC": 1, @@ -17959,8 +18700,9 @@ }, { "index": 742, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SAILOR", + "name": "Zachariah", "unk2": 0, "items": [], "unkC": 1, @@ -17985,8 +18727,9 @@ }, { "index": 743, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Shaun", "unk2": 0, "items": [], "unkC": 1, @@ -18006,8 +18749,9 @@ }, { "index": 744, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Shaun", "unk2": 0, "items": [], "unkC": 1, @@ -18027,8 +18771,9 @@ }, { "index": 745, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Shaun", "unk2": 0, "items": [], "unkC": 1, @@ -18048,8 +18793,9 @@ }, { "index": 746, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Zach", "unk2": 0, "items": [], "unkC": 1, @@ -18074,8 +18820,9 @@ }, { "index": 747, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Zach", "unk2": 0, "items": [], "unkC": 1, @@ -18100,8 +18847,9 @@ }, { "index": 748, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_NINJA_BOY", + "name": "Zach", "unk2": 0, "items": [], "unkC": 1, @@ -18126,8 +18874,9 @@ }, { "index": 749, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Cyndy", "unk2": 0, "items": [], "unkC": 1, @@ -18142,8 +18891,9 @@ }, { "index": 750, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_BEAUTY", + "name": "Cyndy", "unk2": 0, "items": [], "unkC": 1, @@ -18158,8 +18908,9 @@ }, { "index": 751, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Edward", "unk2": 0, "items": [], "unkC": 1, @@ -18174,8 +18925,9 @@ }, { "index": 752, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Edward", "unk2": 0, "items": [], "unkC": 1, @@ -18190,8 +18942,9 @@ }, { "index": 753, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Bjorn", "unk2": 0, "items": [], "unkC": 1, @@ -18211,8 +18964,9 @@ }, { "index": 754, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_M", + "name": "Bjorn", "unk2": 0, "items": [], "unkC": 1, @@ -18232,8 +18986,9 @@ }, { "index": 755, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Andrea", "unk2": 0, "items": [], "unkC": 1, @@ -18248,8 +19003,9 @@ }, { "index": 756, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Andrea", "unk2": 0, "items": [], "unkC": 1, @@ -18264,8 +19020,9 @@ }, { "index": 757, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Madison", "unk2": 0, "items": [], "unkC": 1, @@ -18280,8 +19037,9 @@ }, { "index": 758, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SKIER_F", + "name": "Madison", "unk2": 0, "items": [], "unkC": 1, @@ -18296,8 +19054,9 @@ }, { "index": 759, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Wesley", "unk2": 0, "items": [], "unkC": 1, @@ -18317,8 +19076,9 @@ }, { "index": 760, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Francisco", "unk2": 0, "items": [], "unkC": 1, @@ -18338,8 +19098,9 @@ }, { "index": 761, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Glenn", "unk2": 0, "items": [], "unkC": 1, @@ -18359,8 +19120,9 @@ }, { "index": 762, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Miranda", "unk2": 0, "items": [], "unkC": 1, @@ -18375,8 +19137,9 @@ }, { "index": 763, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Crystal", "unk2": 0, "items": [], "unkC": 1, @@ -18396,8 +19159,9 @@ }, { "index": 764, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_F", + "name": "Joanna", "unk2": 0, "items": [], "unkC": 1, @@ -18417,8 +19181,9 @@ }, { "index": 765, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Tristan", "unk2": 0, "items": [], "unkC": 1, @@ -18433,8 +19198,9 @@ }, { "index": 766, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Tristan", "unk2": 0, "items": [], "unkC": 1, @@ -18449,8 +19215,9 @@ }, { "index": 767, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Tristan", "unk2": 0, "items": [], "unkC": 1, @@ -18465,8 +19232,9 @@ }, { "index": 768, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Dallas", "unk2": 0, "items": [], "unkC": 1, @@ -18481,8 +19249,9 @@ }, { "index": 769, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Dallas", "unk2": 0, "items": [], "unkC": 1, @@ -18497,8 +19266,9 @@ }, { "index": 770, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Dallas", "unk2": 0, "items": [], "unkC": 1, @@ -18513,8 +19283,9 @@ }, { "index": 771, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_M", + "name": "Jared", "unk2": 0, "items": [], "unkC": 1, @@ -18539,8 +19310,9 @@ }, { "index": 772, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TUBER_M", + "name": "Jared", "unk2": 0, "items": [], "unkC": 1, @@ -18565,8 +19337,9 @@ }, { "index": 773, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_TUBER_F", + "name": "Chelsea", "unk2": 0, "items": [], "unkC": 1, @@ -18587,8 +19360,9 @@ }, { "index": 774, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Brian", "unk2": 0, "items": [], "unkC": 1, @@ -18631,8 +19405,9 @@ }, { "index": 775, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_TUBER_F", + "name": "Chelsea", "unk2": 0, "items": [], "unkC": 1, @@ -18653,8 +19428,9 @@ }, { "index": 776, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Brian", "unk2": 0, "items": [], "unkC": 1, @@ -18697,8 +19473,9 @@ }, { "index": 777, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_VETERAN", + "name": "Armando", "unk2": 0, "items": [], "unkC": 1, @@ -18741,8 +19518,9 @@ }, { "index": 778, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_VETERAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18757,8 +19535,9 @@ }, { "index": 779, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18773,8 +19552,9 @@ }, { "index": 780, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18789,8 +19569,9 @@ }, { "index": 781, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18805,8 +19586,9 @@ }, { "index": 782, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18821,8 +19603,9 @@ }, { "index": 783, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CAMERAMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18837,8 +19620,9 @@ }, { "index": 784, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18853,8 +19637,9 @@ }, { "index": 785, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Arturo", "unk2": 0, "items": [], "unkC": 1, @@ -18869,8 +19654,9 @@ }, { "index": 786, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Arturo", "unk2": 0, "items": [], "unkC": 1, @@ -18885,8 +19671,9 @@ }, { "index": 787, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18901,8 +19688,9 @@ }, { "index": 788, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18917,8 +19705,9 @@ }, { "index": 789, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GUITARIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -18933,8 +19722,9 @@ }, { "index": 790, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -18949,8 +19739,9 @@ }, { "index": 791, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -18965,8 +19756,9 @@ }, { "index": 792, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -18981,8 +19773,9 @@ }, { "index": 793, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -18997,8 +19790,9 @@ }, { "index": 794, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_IDOL", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19013,8 +19807,9 @@ }, { "index": 795, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_INTERVIEWERS", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -19034,8 +19829,9 @@ }, { "index": 796, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_INTERVIEWERS", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -19055,8 +19851,9 @@ }, { "index": 797, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_INTERVIEWERS", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -19076,8 +19873,9 @@ }, { "index": 798, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_INTERVIEWERS", + "name": "Tara & Tim", "unk2": 0, "items": [], "unkC": 1, @@ -19097,8 +19895,9 @@ }, { "index": 799, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19113,8 +19912,9 @@ }, { "index": 800, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19129,8 +19929,9 @@ }, { "index": 801, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19145,8 +19946,9 @@ }, { "index": 802, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19161,8 +19963,9 @@ }, { "index": 803, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_CLOWN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19177,8 +19980,9 @@ }, { "index": 804, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19193,8 +19997,9 @@ }, { "index": 805, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19209,8 +20014,9 @@ }, { "index": 806, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19225,8 +20031,9 @@ }, { "index": 807, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19241,8 +20048,9 @@ }, { "index": 808, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POLICEMAN", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19257,8 +20065,9 @@ }, { "index": 809, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19273,8 +20082,9 @@ }, { "index": 810, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19289,8 +20099,9 @@ }, { "index": 811, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19305,8 +20116,9 @@ }, { "index": 812, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_REPORTER", + "name": "Angelica", "unk2": 0, "items": [], "unkC": 1, @@ -19321,8 +20133,9 @@ }, { "index": 813, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19337,8 +20150,9 @@ }, { "index": 814, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_SWIMMER_M", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19353,8 +20167,9 @@ }, { "index": 815, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WAITER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19369,8 +20184,9 @@ }, { "index": 816, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Mickey", "unk2": 0, "items": [], "unkC": 1, @@ -19385,8 +20201,9 @@ }, { "index": 817, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Roland", "unk2": 0, "items": [], "unkC": 1, @@ -19406,8 +20223,9 @@ }, { "index": 818, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_LASS", + "name": "Carrie", "unk2": 0, "items": [], "unkC": 1, @@ -19436,8 +20254,9 @@ }, { "index": 819, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Norman", "unk2": 0, "items": [], "unkC": 1, @@ -19457,8 +20276,9 @@ }, { "index": 820, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Roland", "unk2": 0, "items": [], "unkC": 1, @@ -19478,8 +20298,9 @@ }, { "index": 821, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_LASS", + "name": "Carrie", "unk2": 0, "items": [], "unkC": 1, @@ -19511,8 +20332,9 @@ }, { "index": 822, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Norman", "unk2": 0, "items": [], "unkC": 1, @@ -19532,8 +20354,9 @@ }, { "index": 823, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Roland", "unk2": 0, "items": [], "unkC": 1, @@ -19553,8 +20376,9 @@ }, { "index": 824, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_LASS", + "name": "Carrie", "unk2": 0, "items": [], "unkC": 1, @@ -19574,8 +20398,9 @@ }, { "index": 825, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_YOUNGSTER", + "name": "Norman", "unk2": 0, "items": [], "unkC": 1, @@ -19607,8 +20432,9 @@ }, { "index": 826, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_TOWER_TYCOON", + "name": "Palmer", "unk2": 0, "items": [], "unkC": 1, @@ -19623,8 +20449,9 @@ }, { "index": 827, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_M", + "name": "Anton", "unk2": 0, "items": [], "unkC": 1, @@ -19644,8 +20471,9 @@ }, { "index": 828, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_ACE_TRAINER_SNOW_F", + "name": "Brenna", "unk2": 0, "items": [], "unkC": 1, @@ -19665,8 +20493,9 @@ }, { "index": 829, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Darrius", "unk2": 0, "items": [], "unkC": 1, @@ -19686,8 +20515,9 @@ }, { "index": 830, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Fredrick", "unk2": 0, "items": [], "unkC": 1, @@ -19719,8 +20549,9 @@ }, { "index": 831, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_SCIENTIST", + "name": "Travon", "unk2": 0, "items": [], "unkC": 1, @@ -19739,8 +20570,9 @@ }, { "index": 832, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_POKE_KID", + "name": "Janet", "unk2": 0, "items": [], "unkC": 1, @@ -19760,8 +20592,9 @@ }, { "index": 833, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -19803,8 +20636,9 @@ }, { "index": 834, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -19829,8 +20663,9 @@ }, { "index": 835, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -19855,8 +20690,9 @@ }, { "index": 836, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -19881,8 +20717,9 @@ }, { "index": 837, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -19958,8 +20795,9 @@ }, { "index": 838, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -20035,8 +20873,9 @@ }, { "index": 839, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -20112,8 +20951,9 @@ }, { "index": 840, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -20189,8 +21029,9 @@ }, { "index": 841, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -20266,8 +21107,9 @@ }, { "index": 842, - "type": 1, + "type": "TRTYPE_MON_MOVES", "class": "TRAINER_CLASS_PKMN_TRAINER_BARRY", + "name": "Cedric", "unk2": 0, "items": [], "unkC": 1, @@ -20343,8 +21185,9 @@ }, { "index": 843, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -20359,8 +21202,9 @@ }, { "index": 844, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Dillan", "unk2": 0, "items": [], "unkC": 1, @@ -20380,8 +21224,9 @@ }, { "index": 845, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Holden", "unk2": 0, "items": [], "unkC": 1, @@ -20396,8 +21241,9 @@ }, { "index": 846, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_WORKER", + "name": "Conrad", "unk2": 0, "items": [], "unkC": 1, @@ -20412,8 +21258,9 @@ }, { "index": 847, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -20428,8 +21275,9 @@ }, { "index": 848, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, @@ -20449,8 +21297,9 @@ }, { "index": 849, - "type": 0, + "type": "TRTYPE_MON", "class": "TRAINER_CLASS_GALACTIC", + "name": "Grunt", "unk2": 0, "items": [], "unkC": 1, diff --git a/files/poketool/trainer/trdata.json.txt b/files/poketool/trainer/trdata.json.txt index 9c02c7db..1c1c0bf8 100644 --- a/files/poketool/trainer/trdata.json.txt +++ b/files/poketool/trainer/trdata.json.txt @@ -11,6 +11,7 @@ const struct TrainerData __data[] = { {}, ## for trainer in trdata { + // Trainer #{{trainer.index}}, {{ trainer.class }} {{ trainer.name }} {{ trainer.type }}, {{ trainer.class }}, {{ trainer.unk2 }}, diff --git a/files/poketool/trainer/trpoke.json.txt b/files/poketool/trainer/trpoke.json.txt index 09fa70b3..b4e5c1cf 100644 --- a/files/poketool/trainer/trpoke.json.txt +++ b/files/poketool/trainer/trpoke.json.txt @@ -10,20 +10,20 @@ u32 __size[] = { 8, ## for trainer in trdata - (max({{ length(trainer.party) }} * {% if trainer.type == 0 %}6{% else if trainer.type == 1 %}14{% else if trainer.type == 2 %}8{% else %}16{% endif %}, 8) + 3) & ~3, + (max({{ length(trainer.party) }} * {% if trainer.type == "TRTYPE_MON" %}6{% else if trainer.type == "TRTYPE_MON_MOVES" %}14{% else if trainer.type == "TRTYPE_MONE_ITEM" %}8{% else %}16{% endif %}, 8) + 3) & ~3, ## endfor }; const u16 __data[] = { 0, 0, 0, 0, ## for trainer in trdata - // Trainer #{{ trainer.index }} -## if trainer.type == 0 + // Trainer #{{ trainer.index }}, {{ trainer.class }} {{ trainer.name }} +## if trainer.type == "TRTYPE_MON" ## set mon_length = 3 -## else if trainer.type == 1 +## else if trainer.type == "TRTYPE_MON_MOVES" ## set mon_length = 7 -## else if trainer.type == 2 +## else if trainer.type == "TRTYPE_MON_ITEM" ## set mon_length = 4 -## else if trainer.type == 3 +## else if trainer.type == "TRTYPE_MON_ITEM_MOVES" ## set mon_length = 8 ## endif ## set total_length = mon_length * length(trainer.party) @@ -31,10 +31,10 @@ const u16 __data[] = { 0, 0, 0, 0, {{ mon.difficulty }}, // Difficulty 0-255 {{ mon.level }}, // Level {{ mon.species }}, // Species -## if trainer.type == 2 or trainer.type == 3 +## if trainer.type == "TRTYPE_MON_ITEM" or trainer.type == "TRTYPE_MON_ITEM_MOVES" {{ mon.item }}, // Held item ## endif -## if trainer.type == 1 or trainer.type == 3 +## if trainer.type == "TRTYPE_MON_MOVES" or trainer.type == "TRTYPE_MON_ITEM_MOVES" // Moveset ## for i in range(4) ## if i < length(mon.moves) diff --git a/filesystem.mk b/filesystem.mk index 96eafc4b..ec0c9c10 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -3171,6 +3171,10 @@ files/msgdata/msg.narc: \ files/msgdata/msg/narc_0622.bin \ files/msgdata/msg/narc_0623.bin +## Trainer names +files/msgdata/msg/narc_0559.txt: files/poketool/trainer/trdata.json + (echo " -"; $(GREP) -w '"name":' $< | cut -d'"' -f4) | $(SED) 's/^(.+)$$/{TRNAME}\1\r/g' > $@ + CHARMAP = charmap.txt files/msgdata/msg/%.bin: files/msgdata/msg/%.txt files/msgdata/msg/%.key $(CHARMAP) -- cgit v1.2.3 From 2fce2765829380a244a84b5ccf6f08086f820c9a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 15:17:31 -0400 Subject: Decompile seal_case --- arm9/arm9.lsf | 2 +- arm9/asm/scrcmd.s | 6 +- arm9/asm/scrcmd_12.s | 4 +- arm9/asm/scrcmd_4.s | 2 +- arm9/asm/scrcmd_8.s | 4 +- arm9/asm/unk_02029C58.s | 102 ------------- arm9/asm/unk_02060CCC.s | 4 +- arm9/asm/unk_0206E2F0.s | 2 +- arm9/asm/unk_0206F3FC.s | 4 +- arm9/asm/unk_02079C70.s | 4 +- arm9/asm/unk_020859C0.s | 265 ++++++++++++++++++++++----------- arm9/asm/unk_02088F0C.s | 12 +- arm9/global.inc | 44 +++--- arm9/modules/06/asm/module_06.s | 2 +- arm9/modules/07/asm/module_07.s | 4 +- arm9/modules/08/asm/module_08.s | 28 ++-- arm9/modules/09/asm/module_09.s | 10 +- arm9/modules/11/asm/module_11_thumb1.s | 4 +- arm9/modules/11/asm/module_11_thumb2.s | 2 +- arm9/modules/14/asm/module_14.s | 12 +- arm9/modules/15/asm/module_15.s | 2 +- arm9/modules/18/asm/module_18.s | 6 +- arm9/modules/62/asm/module_62.s | 22 +-- arm9/modules/67/asm/module_67.s | 8 +- arm9/modules/68/asm/module_68.s | 4 +- arm9/modules/75/asm/module_75.s | 4 +- arm9/modules/80/asm/module_80.s | 2 +- arm9/src/mail_message.c | 6 +- arm9/src/pokemon.c | 4 +- arm9/src/save_arrays.c | 8 +- arm9/src/script_buffers.c | 21 +-- arm9/src/seal_case.c | 59 ++++++++ arm9/src/unk_020139D8.c | 106 ++++++------- include/constants/seal_constants.h | 87 +++++++++++ include/script_buffers.h | 15 +- include/seal.h | 22 +-- include/unk_020139D8.h | 12 +- 37 files changed, 520 insertions(+), 385 deletions(-) delete mode 100644 arm9/asm/unk_02029C58.s create mode 100644 arm9/src/seal_case.c create mode 100644 include/constants/seal_constants.h diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 6abd904a..274f2ccd 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -104,7 +104,7 @@ Static arm9 Object unk_02028980.o Object unk_02029A84.o Object unk_02029AE0.o - Object unk_02029C58.o + Object seal_case.o Object unk_02029CEC.o Object igt.o Object unk_02029EC4.o diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index affbe1c1..2f0cb3ef 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -3863,7 +3863,7 @@ FUN_0203B7F0: ; 0x0203B7F0 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029C80 + bl Sav2_SealCase_get bl FUN_02029E0C strh r0, [r4, #0x0] mov r0, #0x0 @@ -3892,7 +3892,7 @@ FUN_0203B81C: ; 0x0203B81C add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029C80 + bl Sav2_SealCase_get add r1, r6, #0x0 bl FUN_02029E2C strh r0, [r4, #0x0] @@ -3921,7 +3921,7 @@ FUN_0203B85C: ; 0x0203B85C add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029C80 + bl Sav2_SealCase_get lsl r2, r4, #0x10 add r1, r6, #0x0 asr r2, r2, #0x10 diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index a434a5cb..cc011b0f 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -985,7 +985,7 @@ FUN_020434B0: ; 0x020434B0 b _020434E2 _020434CA: ldr r0, [r5, #0xc] - bl FUN_02029C80 + bl Sav2_SealCase_get add r1, r4, #0x0 mov r2, #0x1 bl FUN_02029DD4 @@ -1017,7 +1017,7 @@ FUN_020434E8: ; 0x020434E8 pop {r3-r5, pc} _02043502: ldr r0, [r5, #0xc] - bl FUN_02029C80 + bl Sav2_SealCase_get add r1, r4, #0x0 mov r2, #0x1 bl FUN_02029D44 diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s index 14d6ef99..3bad9d50 100644 --- a/arm9/asm/scrcmd_4.s +++ b/arm9/asm/scrcmd_4.s @@ -1308,6 +1308,6 @@ FUN_02041174: ; 0x02041174 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] - bl FUN_0200B7A8 + bl ScrStrBufs_UpperFirstChar mov r0, #0x0 pop {r4, pc} diff --git a/arm9/asm/scrcmd_8.s b/arm9/asm/scrcmd_8.s index 84b2eb30..fbb5b223 100644 --- a/arm9/asm/scrcmd_8.s +++ b/arm9/asm/scrcmd_8.s @@ -110,7 +110,7 @@ _02041CF2: ldr r0, [r6, #0x0] add r1, r7, #0x0 add r2, r5, #0x0 - bl FUN_0200B708 + bl BufferEasyChatWord b _02041E38 _02041D28: add r0, r4, #0x0 @@ -133,7 +133,7 @@ _02041D28: ldr r0, [r6, #0x0] add r1, r7, #0x0 add r2, r5, #0x0 - bl FUN_0200B708 + bl BufferEasyChatWord b _02041E38 _02041D5E: mov r1, #0x0 diff --git a/arm9/asm/unk_02029C58.s b/arm9/asm/unk_02029C58.s deleted file mode 100644 index bc21a139..00000000 --- a/arm9/asm/unk_02029C58.s +++ /dev/null @@ -1,102 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02029C58 -FUN_02029C58: ; 0x02029C58 - mov r0, #0x17 - lsl r0, r0, #0x4 - bx lr - .balign 4 - - thumb_func_start FUN_02029C60 -FUN_02029C60: ; 0x02029C60 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02029C58 - add r2, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x0 - bl MI_CpuFill8 - pop {r4, pc} - - thumb_func_start FUN_02029C74 -FUN_02029C74: ; 0x02029C74 - ldr r3, _02029C7C ; =MI_CpuCopy8 - mov r2, #0x18 - bx r3 - nop -_02029C7C: .word MI_CpuCopy8 - - thumb_func_start FUN_02029C80 -FUN_02029C80: ; 0x02029C80 - ldr r3, _02029C88 ; =SavArray_get - mov r1, #0x15 - bx r3 - nop -_02029C88: .word SavArray_get - - thumb_func_start FUN_02029C8C -FUN_02029C8C: ; 0x02029C8C - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0xc - blt _02029C9A - bl ErrorHandling -_02029C9A: - mov r0, #0x18 - mul r0, r4 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029CA4 -FUN_02029CA4: ; 0x02029CA4 - push {r4-r6, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - add r4, r1, #0x0 - cmp r6, #0xc - blt _02029CB4 - bl ErrorHandling -_02029CB4: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02029C8C - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02029C74 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02029CC8 -FUN_02029CC8: ; 0x02029CC8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - cmp r4, #0x8 - blt _02029CD6 - bl ErrorHandling -_02029CD6: - lsl r0, r4, #0x1 - add r0, r4, r0 - add r0, r5, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02029CE0 -FUN_02029CE0: ; 0x02029CE0 - ldrb r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02029CE4 -FUN_02029CE4: ; 0x02029CE4 - ldrb r0, [r0, #0x1] - bx lr - - thumb_func_start FUN_02029CE8 -FUN_02029CE8: ; 0x02029CE8 - ldrb r0, [r0, #0x2] - bx lr diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index 3265d601..44e19c06 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -2783,7 +2783,7 @@ _0206211E: ldr r1, [r1, #0xc] ldr r2, [sp, #0xc] mov r3, #0x0 - bl FUN_0200B708 + bl BufferEasyChatWord mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [sp, #0x4] @@ -2791,7 +2791,7 @@ _0206211E: ldr r1, [r1, #0xc] ldr r2, [sp, #0xc] mov r3, #0x1 - bl FUN_0200B708 + bl BufferEasyChatWord ldr r0, [sp, #0x8] mov r1, #0x2 add r2, r4, #0x0 diff --git a/arm9/asm/unk_0206E2F0.s b/arm9/asm/unk_0206E2F0.s index 6741fd51..ab6068fc 100644 --- a/arm9/asm/unk_0206E2F0.s +++ b/arm9/asm/unk_0206E2F0.s @@ -134,7 +134,7 @@ FUN_0206E39C: ; 0x0206E39C thumb_func_start FUN_0206E3A8 FUN_0206E3A8: ; 0x0206E3A8 push {r4-r6, lr} - bl FUN_02029C80 + bl Sav2_SealCase_get add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 212030cc..d2024491 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1005,7 +1005,7 @@ _0206FAFC: bl DestroyMsgData ldr r0, _0206FB50 ; =0x00000698 ldr r0, [r6, r0] - bl FUN_0200B990 + bl MessagePrinter_delete mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r6, r0] @@ -1438,7 +1438,7 @@ _0206FEC2: mov r0, #0xf mov r1, #0xe mov r3, #0xc - bl FUN_0200B870 + bl MessagePrinter_new ldr r1, _0206FF64 ; =0x00000698 str r0, [r6, r1] mov r0, #0xc diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 33c0a040..8bace89f 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -664,7 +664,7 @@ FUN_0207A1A0: ; 0x0207A1A0 mov r0, #0x1 mov r1, #0x2 mov r3, #0x13 - bl FUN_0200B870 + bl MessagePrinter_new mov r1, #0x67 lsl r1, r1, #0x4 str r0, [r4, r1] @@ -742,7 +742,7 @@ FUN_0207A264: ; 0x0207A264 mov r0, #0x67 lsl r0, r0, #0x4 ldr r0, [r4, r0] - bl FUN_0200B990 + bl MessagePrinter_delete ldr r0, _0207A2D0 ; =0x0000067C ldr r0, [r4, r0] bl ScrStrBufs_delete diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index 7b65b9e5..846e5336 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -11,77 +11,168 @@ UNK_020FCAD8: ; 0x020FCAD8 .global UNK_020FCAE8 UNK_020FCAE8: ; 0x020FCAE8 - .byte 0xB8, 0x00 - - .global UNK_020FCAEA -UNK_020FCAEA: ; 0x020FCAEA - .byte 0x00, 0x25 - - .global UNK_020FCAEC -UNK_020FCAEC: ; 0x020FCAEC - .byte 0x25 - - .global UNK_020FCAED -UNK_020FCAED: ; 0x020FCAED - .byte 0x00 - - .global UNK_020FCAEE -UNK_020FCAEE: ; 0x020FCAEE - .byte 0xE7, 0x03 - - .global UNK_020FCAF0 -UNK_020FCAF0: ; 0x020FCAF0 - .byte 0x00, 0x00, 0xB9, 0x00, 0x01, 0x25, 0x25, 0x00, 0x32, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x02, 0x25 - .byte 0x26, 0x00, 0x32, 0x00, 0x01, 0x00, 0xBB, 0x00, 0x03, 0x25, 0x27, 0x00, 0x32, 0x00, 0x02, 0x00 - .byte 0xBC, 0x00, 0x04, 0x25, 0x28, 0x00, 0x32, 0x00, 0x03, 0x00, 0xBD, 0x00, 0x05, 0x25, 0x29, 0x00 - .byte 0x64, 0x00, 0x04, 0x00, 0xBE, 0x00, 0x06, 0x25, 0x2A, 0x00, 0x64, 0x00, 0x05, 0x00, 0xC0, 0x00 - .byte 0x07, 0x25, 0x2B, 0x00, 0x32, 0x00, 0x06, 0x00, 0xBF, 0x00, 0x08, 0x25, 0x2C, 0x00, 0x32, 0x00 - .byte 0x07, 0x00, 0xC2, 0x00, 0x09, 0x25, 0x2D, 0x00, 0x32, 0x00, 0x08, 0x00, 0xC1, 0x00, 0x0A, 0x25 - .byte 0x2E, 0x00, 0x32, 0x00, 0x09, 0x00, 0xC4, 0x00, 0x0B, 0x25, 0x2F, 0x00, 0x64, 0x00, 0x0A, 0x00 - .byte 0xC3, 0x00, 0x0C, 0x25, 0x30, 0x00, 0x64, 0x00, 0x0B, 0x00, 0xC5, 0x00, 0x0D, 0x25, 0x31, 0x00 - .byte 0x64, 0x00, 0x0C, 0x00, 0xC6, 0x00, 0x0E, 0x25, 0x32, 0x00, 0x64, 0x00, 0x0D, 0x00, 0xC7, 0x00 - .byte 0x0F, 0x25, 0x33, 0x00, 0x64, 0x00, 0x0E, 0x00, 0xC8, 0x00, 0x4D, 0x25, 0x34, 0x00, 0x64, 0x00 - .byte 0x0F, 0x00, 0xC9, 0x00, 0x10, 0x25, 0x39, 0x00, 0x64, 0x00, 0x10, 0x00, 0xCA, 0x00, 0x11, 0x25 - .byte 0x3A, 0x00, 0x64, 0x00, 0x11, 0x00, 0xCB, 0x00, 0x12, 0x25, 0x3B, 0x00, 0x64, 0x00, 0x12, 0x00 - .byte 0xCC, 0x00, 0x13, 0x25, 0x3C, 0x00, 0x64, 0x00, 0x13, 0x00, 0xCD, 0x00, 0x14, 0x25, 0x35, 0x00 - .byte 0x64, 0x00, 0x14, 0x00, 0xCE, 0x00, 0x15, 0x25, 0x36, 0x00, 0x64, 0x00, 0x15, 0x00, 0xCF, 0x00 - .byte 0x16, 0x25, 0x37, 0x00, 0x64, 0x00, 0x16, 0x00, 0xD0, 0x00, 0x17, 0x25, 0x38, 0x00, 0x64, 0x00 - .byte 0x17, 0x00, 0xD1, 0x00, 0x18, 0x25, 0x3D, 0x00, 0x32, 0x00, 0x18, 0x00, 0xD2, 0x00, 0x19, 0x25 - .byte 0x3E, 0x00, 0x32, 0x00, 0x19, 0x00, 0xD3, 0x00, 0x1A, 0x25, 0x3F, 0x00, 0x32, 0x00, 0x1A, 0x00 - .byte 0xD4, 0x00, 0x1B, 0x25, 0x40, 0x00, 0x32, 0x00, 0x1B, 0x00, 0xD6, 0x00, 0x1C, 0x25, 0x41, 0x00 - .byte 0x32, 0x00, 0x1C, 0x00, 0xD5, 0x00, 0x1D, 0x25, 0x42, 0x00, 0x32, 0x00, 0x1D, 0x00, 0xD8, 0x00 - .byte 0x1E, 0x25, 0x43, 0x00, 0x32, 0x00, 0x1E, 0x00, 0xD7, 0x00, 0x1F, 0x25, 0x44, 0x00, 0x32, 0x00 - .byte 0x1F, 0x00, 0xD9, 0x00, 0x20, 0x25, 0x45, 0x00, 0x32, 0x00, 0x20, 0x00, 0xDA, 0x00, 0x21, 0x25 - .byte 0x46, 0x00, 0x32, 0x00, 0x21, 0x00, 0xDB, 0x00, 0x22, 0x25, 0x47, 0x00, 0x64, 0x00, 0x22, 0x00 - .byte 0xDC, 0x00, 0x23, 0x25, 0x48, 0x00, 0x64, 0x00, 0x23, 0x00, 0xDD, 0x00, 0x24, 0x25, 0x49, 0x00 - .byte 0x32, 0x00, 0x24, 0x00, 0xDE, 0x00, 0x25, 0x25, 0x4A, 0x00, 0x32, 0x00, 0x25, 0x00, 0xDF, 0x00 - .byte 0x26, 0x25, 0x4B, 0x00, 0x32, 0x00, 0x26, 0x00, 0xE0, 0x00, 0x27, 0x25, 0x4C, 0x00, 0x32, 0x00 - .byte 0x27, 0x00, 0xE1, 0x00, 0x28, 0x25, 0x4D, 0x00, 0x32, 0x00, 0x28, 0x00, 0xE2, 0x00, 0x29, 0x25 - .byte 0x4E, 0x00, 0x32, 0x00, 0x29, 0x00, 0xE3, 0x00, 0x2A, 0x25, 0x4F, 0x00, 0x32, 0x00, 0x2A, 0x00 - .byte 0xE4, 0x00, 0x2B, 0x25, 0x50, 0x00, 0x32, 0x00, 0x2B, 0x00, 0xE5, 0x00, 0x2C, 0x25, 0x51, 0x00 - .byte 0x32, 0x00, 0x2C, 0x00, 0xE6, 0x00, 0x2D, 0x25, 0x52, 0x00, 0x32, 0x00, 0x2D, 0x00, 0xE7, 0x00 - .byte 0x2E, 0x25, 0x53, 0x00, 0x32, 0x00, 0x2E, 0x00, 0xE8, 0x00, 0x2F, 0x25, 0x54, 0x00, 0x32, 0x00 - .byte 0x2F, 0x00, 0xE9, 0x00, 0x30, 0x25, 0x55, 0x00, 0x32, 0x00, 0x30, 0x00, 0xEA, 0x00, 0x31, 0x25 - .byte 0x56, 0x01, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x00, 0x32, 0x25, 0x57, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0xEC, 0x00, 0x33, 0x25, 0x58, 0x01, 0x00, 0x00, 0x00, 0x00, 0xED, 0x00, 0x34, 0x25, 0x59, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0xEE, 0x00, 0x35, 0x25, 0x5A, 0x01, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x00 - .byte 0x36, 0x25, 0x5B, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x37, 0x25, 0x5C, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0xF1, 0x00, 0x38, 0x25, 0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x39, 0x25 - .byte 0x5E, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x00, 0x3A, 0x25, 0x5F, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0xF4, 0x00, 0x3B, 0x25, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x3C, 0x25, 0x61, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x3D, 0x25, 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00 - .byte 0x3E, 0x25, 0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x3F, 0x25, 0x64, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0xF9, 0x00, 0x40, 0x25, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x41, 0x25 - .byte 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x42, 0x25, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0xFC, 0x00, 0x43, 0x25, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x44, 0x25, 0x69, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x45, 0x25, 0x6A, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00 - .byte 0x46, 0x25, 0x6B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x47, 0x25, 0x6C, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x01, 0x48, 0x25, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x49, 0x25 - .byte 0x6E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x4A, 0x25, 0x6F, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x01, 0x4B, 0x25, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x4C, 0x25, 0x71, 0x01 - .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x4E, 0x25, 0x72, 0x00, 0x00, 0x00, 0x31, 0x00, 0x07, 0x01 - .byte 0x4F, 0x25, 0x73, 0x00, 0x00, 0x00, 0x32, 0x00, 0x08, 0x01, 0x50, 0x25, 0x74, 0x00, 0x00, 0x00 - .byte 0x33, 0x00, 0x00, 0x00 + .short 0x00B8 + .byte 0x00, 0x25, 0x25, 0x00, 0xE7, 0x03, 0x00, 0x00 + .short 0x00B9 + .byte 0x01, 0x25, 0x25, 0x00, 0x32, 0x00, 0x00, 0x00 + .short 0x00BA + .byte 0x02, 0x25, 0x26, 0x00, 0x32, 0x00, 0x01, 0x00 + .short 0x00BB + .byte 0x03, 0x25, 0x27, 0x00, 0x32, 0x00, 0x02, 0x00 + .short 0x00BC + .byte 0x04, 0x25, 0x28, 0x00, 0x32, 0x00, 0x03, 0x00 + .short 0x00BD + .byte 0x05, 0x25, 0x29, 0x00, 0x64, 0x00, 0x04, 0x00 + .short 0x00BE + .byte 0x06, 0x25, 0x2A, 0x00, 0x64, 0x00, 0x05, 0x00 + .short 0x00C0 + .byte 0x07, 0x25, 0x2B, 0x00, 0x32, 0x00, 0x06, 0x00 + .short 0x00BF + .byte 0x08, 0x25, 0x2C, 0x00, 0x32, 0x00, 0x07, 0x00 + .short 0x00C2 + .byte 0x09, 0x25, 0x2D, 0x00, 0x32, 0x00, 0x08, 0x00 + .short 0x00C1 + .byte 0x0A, 0x25, 0x2E, 0x00, 0x32, 0x00, 0x09, 0x00 + .short 0x00C4 + .byte 0x0B, 0x25, 0x2F, 0x00, 0x64, 0x00, 0x0A, 0x00 + .short 0x00C3 + .byte 0x0C, 0x25, 0x30, 0x00, 0x64, 0x00, 0x0B, 0x00 + .short 0x00C5 + .byte 0x0D, 0x25, 0x31, 0x00, 0x64, 0x00, 0x0C, 0x00 + .short 0x00C6 + .byte 0x0E, 0x25, 0x32, 0x00, 0x64, 0x00, 0x0D, 0x00 + .short 0x00C7 + .byte 0x0F, 0x25, 0x33, 0x00, 0x64, 0x00, 0x0E, 0x00 + .short 0x00C8 + .byte 0x4D, 0x25, 0x34, 0x00, 0x64, 0x00, 0x0F, 0x00 + .short 0x00C9 + .byte 0x10, 0x25, 0x39, 0x00, 0x64, 0x00, 0x10, 0x00 + .short 0x00CA + .byte 0x11, 0x25, 0x3A, 0x00, 0x64, 0x00, 0x11, 0x00 + .short 0x00CB + .byte 0x12, 0x25, 0x3B, 0x00, 0x64, 0x00, 0x12, 0x00 + .short 0x00CC + .byte 0x13, 0x25, 0x3C, 0x00, 0x64, 0x00, 0x13, 0x00 + .short 0x00CD + .byte 0x14, 0x25, 0x35, 0x00, 0x64, 0x00, 0x14, 0x00 + .short 0x00CE + .byte 0x15, 0x25, 0x36, 0x00, 0x64, 0x00, 0x15, 0x00 + .short 0x00CF + .byte 0x16, 0x25, 0x37, 0x00, 0x64, 0x00, 0x16, 0x00 + .short 0x00D0 + .byte 0x17, 0x25, 0x38, 0x00, 0x64, 0x00, 0x17, 0x00 + .short 0x00D1 + .byte 0x18, 0x25, 0x3D, 0x00, 0x32, 0x00, 0x18, 0x00 + .short 0x00D2 + .byte 0x19, 0x25, 0x3E, 0x00, 0x32, 0x00, 0x19, 0x00 + .short 0x00D3 + .byte 0x1A, 0x25, 0x3F, 0x00, 0x32, 0x00, 0x1A, 0x00 + .short 0x00D4 + .byte 0x1B, 0x25, 0x40, 0x00, 0x32, 0x00, 0x1B, 0x00 + .short 0x00D6 + .byte 0x1C, 0x25, 0x41, 0x00, 0x32, 0x00, 0x1C, 0x00 + .short 0x00D5 + .byte 0x1D, 0x25, 0x42, 0x00, 0x32, 0x00, 0x1D, 0x00 + .short 0x00D8 + .byte 0x1E, 0x25, 0x43, 0x00, 0x32, 0x00, 0x1E, 0x00 + .short 0x00D7 + .byte 0x1F, 0x25, 0x44, 0x00, 0x32, 0x00, 0x1F, 0x00 + .short 0x00D9 + .byte 0x20, 0x25, 0x45, 0x00, 0x32, 0x00, 0x20, 0x00 + .short 0x00DA + .byte 0x21, 0x25, 0x46, 0x00, 0x32, 0x00, 0x21, 0x00 + .short 0x00DB + .byte 0x22, 0x25, 0x47, 0x00, 0x64, 0x00, 0x22, 0x00 + .short 0x00DC + .byte 0x23, 0x25, 0x48, 0x00, 0x64, 0x00, 0x23, 0x00 + .short 0x00DD + .byte 0x24, 0x25, 0x49, 0x00, 0x32, 0x00, 0x24, 0x00 + .short 0x00DE + .byte 0x25, 0x25, 0x4A, 0x00, 0x32, 0x00, 0x25, 0x00 + .short 0x00DF + .byte 0x26, 0x25, 0x4B, 0x00, 0x32, 0x00, 0x26, 0x00 + .short 0x00E0 + .byte 0x27, 0x25, 0x4C, 0x00, 0x32, 0x00, 0x27, 0x00 + .short 0x00E1 + .byte 0x28, 0x25, 0x4D, 0x00, 0x32, 0x00, 0x28, 0x00 + .short 0x00E2 + .byte 0x29, 0x25, 0x4E, 0x00, 0x32, 0x00, 0x29, 0x00 + .short 0x00E3 + .byte 0x2A, 0x25, 0x4F, 0x00, 0x32, 0x00, 0x2A, 0x00 + .short 0x00E4 + .byte 0x2B, 0x25, 0x50, 0x00, 0x32, 0x00, 0x2B, 0x00 + .short 0x00E5 + .byte 0x2C, 0x25, 0x51, 0x00, 0x32, 0x00, 0x2C, 0x00 + .short 0x00E6 + .byte 0x2D, 0x25, 0x52, 0x00, 0x32, 0x00, 0x2D, 0x00 + .short 0x00E7 + .byte 0x2E, 0x25, 0x53, 0x00, 0x32, 0x00, 0x2E, 0x00 + .short 0x00E8 + .byte 0x2F, 0x25, 0x54, 0x00, 0x32, 0x00, 0x2F, 0x00 + .short 0x00E9 + .byte 0x30, 0x25, 0x55, 0x00, 0x32, 0x00, 0x30, 0x00 + .short 0x00EA + .byte 0x31, 0x25, 0x56, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00EB + .byte 0x32, 0x25, 0x57, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00EC + .byte 0x33, 0x25, 0x58, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00ED + .byte 0x34, 0x25, 0x59, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00EE + .byte 0x35, 0x25, 0x5A, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00EF + .byte 0x36, 0x25, 0x5B, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F0 + .byte 0x37, 0x25, 0x5C, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F1 + .byte 0x38, 0x25, 0x5D, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F2 + .byte 0x39, 0x25, 0x5E, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F3 + .byte 0x3A, 0x25, 0x5F, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F4 + .byte 0x3B, 0x25, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F5 + .byte 0x3C, 0x25, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F6 + .byte 0x3D, 0x25, 0x62, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F7 + .byte 0x3E, 0x25, 0x63, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F8 + .byte 0x3F, 0x25, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00F9 + .byte 0x40, 0x25, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FA + .byte 0x41, 0x25, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FB + .byte 0x42, 0x25, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FC + .byte 0x43, 0x25, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FD + .byte 0x44, 0x25, 0x69, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FE + .byte 0x45, 0x25, 0x6A, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x00FF + .byte 0x46, 0x25, 0x6B, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0100 + .byte 0x47, 0x25, 0x6C, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0101 + .byte 0x48, 0x25, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0102 + .byte 0x49, 0x25, 0x6E, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0103 + .byte 0x4A, 0x25, 0x6F, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0104 + .byte 0x4B, 0x25, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0105 + .byte 0x4C, 0x25, 0x71, 0x01, 0x00, 0x00, 0x00, 0x00 + .short 0x0106 + .byte 0x4E, 0x25, 0x72, 0x00, 0x00, 0x00, 0x31, 0x00 + .short 0x0107 + .byte 0x4F, 0x25, 0x73, 0x00, 0x00, 0x00, 0x32, 0x00 + .short 0x0108 + .byte 0x50, 0x25, 0x74, 0x00, 0x00, 0x00, 0x33, 0x00 .text @@ -160,7 +251,7 @@ _02085A60: ldr r0, [r4, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x20] - bl FUN_02029C8C + bl SealCase_GetCapsuleI str r7, [r5, #0x4] str r0, [r5, #0x8] add r6, r6, #0x1 @@ -565,7 +656,7 @@ _02085DDC: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r6, #0x10] - bl FUN_02029C80 + bl Sav2_SealCase_get str r0, [r7, #0x20] add r0, r7, #0x0 mov r1, #0x0 @@ -679,7 +770,7 @@ _02085EA6: ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 - bl FUN_02029C8C + bl SealCase_GetCapsuleI add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0xaa @@ -687,10 +778,10 @@ _02085EA6: ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 - bl FUN_02029C8C + bl SealCase_GetCapsuleI mov r1, #0x0 - bl FUN_02029CC8 - bl FUN_02029CE0 + bl Capsule_GetSealI + bl Seal_GetId lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02085FD0 @@ -807,12 +898,12 @@ _02085FDE: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 - ldr r0, _02085FF0 ; =UNK_020FCAEA + ldr r0, _02085FF0 ; =UNK_020FCAE8 + 2 ldrb r0, [r0, r1] pop {r4, pc} nop _02085FEC: .word 0x0000032A -_02085FF0: .word UNK_020FCAEA +_02085FF0: .word UNK_020FCAE8 + 2 thumb_func_start FUN_02085FF4 FUN_02085FF4: ; 0x02085FF4 @@ -826,12 +917,12 @@ _02086002: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 - ldr r0, _02086014 ; =UNK_020FCAEC + ldr r0, _02086014 ; =UNK_020FCAE8 + 4 ldrb r0, [r0, r1] pop {r4, pc} nop _02086010: .word 0x0000032A -_02086014: .word UNK_020FCAEC +_02086014: .word UNK_020FCAE8 + 4 thumb_func_start FUN_02086018 FUN_02086018: ; 0x02086018 @@ -845,12 +936,12 @@ _02086026: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 - ldr r0, _02086038 ; =UNK_020FCAED + ldr r0, _02086038 ; =UNK_020FCAE8 + 5 ldrb r0, [r0, r1] pop {r4, pc} nop _02086034: .word 0x0000032A -_02086038: .word UNK_020FCAED +_02086038: .word UNK_020FCAE8 + 5 thumb_func_start FUN_0208603C FUN_0208603C: ; 0x0208603C @@ -864,12 +955,12 @@ _0208604A: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 - ldr r0, _0208605C ; =UNK_020FCAEE + ldr r0, _0208605C ; =UNK_020FCAE8 + 6 ldrh r0, [r0, r1] pop {r4, pc} nop _02086058: .word 0x0000032A -_0208605C: .word UNK_020FCAEE +_0208605C: .word UNK_020FCAE8 + 6 thumb_func_start FUN_02086060 FUN_02086060: ; 0x02086060 @@ -883,9 +974,9 @@ _0208606E: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 - ldr r0, _02086080 ; =UNK_020FCAF0 + ldr r0, _02086080 ; =UNK_020FCAE8 + 8 ldrb r0, [r0, r1] pop {r4, pc} nop _0208607C: .word 0x0000032A -_02086080: .word UNK_020FCAF0 +_02086080: .word UNK_020FCAE8 + 8 diff --git a/arm9/asm/unk_02088F0C.s b/arm9/asm/unk_02088F0C.s index 1c3bc9f2..aab23503 100644 --- a/arm9/asm/unk_02088F0C.s +++ b/arm9/asm/unk_02088F0C.s @@ -552,7 +552,7 @@ FUN_02088F0C: ; 0x02088F0C add r4, r0, #0x0 add r0, r6, #0x0 str r5, [r4, #0x0] - bl FUN_020139D8 + bl EasyChatManager_new str r0, [r4, #0x4] mov r3, #0x0 ldr r0, _02088F48 ; =0x0000189E @@ -579,7 +579,7 @@ FUN_02088F4C: ; 0x02088F4C add r4, r0, #0x0 beq _02088F5E ldr r0, [r4, #0x4] - bl FUN_02013A10 + bl EasyChatManager_delete add r0, r4, #0x0 bl FreeToHeap _02088F5E: @@ -730,7 +730,7 @@ FUN_02089050: ; 0x02089050 str r0, [sp, #0xc] ldr r0, _020890BC ; =0x00000189 mov r1, #0x0 - bl FUN_02013A9C + bl GetECWordIndexByPair str r0, [sp, #0x8] mov r7, #0x0 ldr r0, [sp, #0x4] @@ -789,7 +789,7 @@ FUN_020890C4: ; 0x020890C4 str r0, [sp, #0x10] ldr r0, _02089144 ; =0x00000186 mov r1, #0x0 - bl FUN_02013A9C + bl GetECWordIndexByPair add r6, r0, #0x0 add r0, r6, #0x5 lsl r0, r0, #0x10 @@ -1070,7 +1070,7 @@ FUN_020892CC: ; 0x020892CC add r1, #0x68 ldrh r1, [r1, #0x0] add r2, r3, #0x0 - bl FUN_02013A30 + bl EasyChatManager_ReadWordIntoString pop {r4, pc} .balign 4 @@ -1112,7 +1112,7 @@ FUN_02089310: ; 0x02089310 add r1, r0, #0x0 ldr r0, [r5, #0x4] add r2, r4, #0x0 - bl FUN_02013A30 + bl EasyChatManager_ReadWordIntoString _02089330: pop {r4-r6, pc} nop diff --git a/arm9/global.inc b/arm9/global.inc index fa50aacb..9cf7312a 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -567,8 +567,8 @@ .extern BufferTrainerClassName .extern BufferTrainerClassNameWithArticle .extern BufferTrainerClassName2 -.extern FUN_0200B10C -.extern FUN_0200B144 +.extern BufferTrainerName +.extern BufferTrainerNameFromDataStruct .extern BufferUndergroundItemName .extern BufferUndergroundItemNameWithArticle .extern BufferUndergroundTrapName @@ -594,13 +594,13 @@ .extern BufferFashionName .extern BufferFashionNameWithArticle .extern BufferContestBackgroundName -.extern FUN_0200B708 +.extern BufferEasyChatWord .extern BufferMonthNameAbbr -.extern FUN_0200B7A8 +.extern ScrStrBufs_UpperFirstChar .extern StringExpandPlaceholders -.extern FUN_0200B84C -.extern FUN_0200B870 -.extern FUN_0200B990 +.extern ScrStrBufs_ResetBuffers +.extern MessagePrinter_new +.extern MessagePrinter_delete .extern FUN_0200B9A8 .extern FUN_0200B9EC .extern FUN_0200BA78 @@ -903,11 +903,11 @@ .extern MailMsg_SetMsgBankAndNum .extern MailMsg_SetFieldI .extern MailMsg_SetTrailingFieldsEmpty -.extern FUN_020139D8 -.extern FUN_02013A10 -.extern FUN_02013A30 -.extern FUN_02013A58 -.extern FUN_02013A9C +.extern EasyChatManager_new +.extern EasyChatManager_delete +.extern EasyChatManager_ReadWordIntoString +.extern GetECWordIntoStringByIndex +.extern GetECWordIndexByPair .extern FUN_02013B28 .extern FUN_02013B2C .extern FUN_02013B5C @@ -1959,16 +1959,16 @@ .extern FUN_02029B90 .extern FUN_02029C00 .extern FUN_02029C08 -.extern FUN_02029C58 -.extern FUN_02029C60 -.extern FUN_02029C74 -.extern FUN_02029C80 -.extern FUN_02029C8C -.extern FUN_02029CA4 -.extern FUN_02029CC8 -.extern FUN_02029CE0 -.extern FUN_02029CE4 -.extern FUN_02029CE8 +.extern Sav2_SealCase_sizeof +.extern Sav2_SealCase_init +.extern CapsuleArray_copy +.extern Sav2_SealCase_get +.extern SealCase_GetCapsuleI +.extern SealCase_SetCapsuleI +.extern Capsule_GetSealI +.extern Seal_GetId +.extern Seal_GetXCoord +.extern Seal_GetYCoord .extern FUN_02029CEC .extern FUN_02029CF4 .extern FUN_02029CF8 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 02bc8f52..1337a593 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -8177,7 +8177,7 @@ _0223D456: str r0, [r4, r1] b _0223D472 _0223D468: - bl FUN_02029C80 + bl Sav2_SealCase_get mov r1, #0x21 lsl r1, r1, #4 str r0, [r4, r1] diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 05283e3d..1a91192a 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -4972,7 +4972,7 @@ MOD07_0221469C: ; 0x0221469C mov r0, #0xf mov r1, #0xe mov r2, #0 - bl FUN_0200B870 + bl MessagePrinter_new str r0, [sp, #0xc] ldr r0, [r6] ldr r0, [r0, #0x24] @@ -5008,7 +5008,7 @@ _022146F6: ldr r0, [sp, #0x10] bl DestroyMsgData ldr r0, [sp, #0xc] - bl FUN_0200B990 + bl MessagePrinter_delete ldr r0, [sp, #8] bl ScrStrBufs_delete add sp, #0x14 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index bd4cc319..b6af83a9 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -45124,10 +45124,10 @@ _022282DC: _022282F8: ldr r0, [sp, #0x14] add r1, r5, #0 - bl FUN_02029CC8 + bl Capsule_GetSealI add r7, r0, #0 beq _02228360 - bl FUN_02029CE0 + bl Seal_GetId cmp r0, #0 beq _02228360 cmp r0, #0x51 @@ -45193,10 +45193,10 @@ _02228376: _02228384: ldr r0, [sp, #0x18] add r1, r5, #0 - bl FUN_02029CC8 + bl Capsule_GetSealI add r7, r0, #0 beq _022283EC - bl FUN_02029CE0 + bl Seal_GetId cmp r0, #0 beq _022283EC cmp r0, #0x51 @@ -45262,10 +45262,10 @@ _02228402: _02228410: ldr r0, [sp, #0x1c] add r1, r5, #0 - bl FUN_02029CC8 + bl Capsule_GetSealI add r7, r0, #0 beq _02228478 - bl FUN_02029CE0 + bl Seal_GetId cmp r0, #0 beq _02228478 cmp r0, #0x51 @@ -45331,10 +45331,10 @@ _0222848E: _0222849C: ldr r0, [sp, #0x20] add r1, r5, #0 - bl FUN_02029CC8 + bl Capsule_GetSealI add r7, r0, #0 beq _02228504 - bl FUN_02029CE0 + bl Seal_GetId cmp r0, #0 beq _02228504 cmp r0, #0x51 @@ -45765,13 +45765,13 @@ MOD08_022287C4: ; 0x022287C4 add r1, sp, #0 bl MOD08_02228710 ldr r0, [r4, #0x14] - bl FUN_02029CE0 + bl Seal_GetId bl FUN_02086018 ldr r0, [r4, #0x14] - bl FUN_02029CE4 + bl Seal_GetXCoord add r6, r0, #0 ldr r0, [r4, #0x14] - bl FUN_02029CE8 + bl Seal_GetYCoord sub r6, #0xbe lsl r1, r6, #0x10 asr r3, r1, #0x10 @@ -49049,10 +49049,10 @@ MOD08_0222A02C: ; 0x0222A02C MOD08_0222A058: ; 0x0222A058 push {r3, r4, r5, lr} add r5, r0, #0 - bl FUN_02029CE4 + bl Seal_GetXCoord add r4, r0, #0 add r0, r5, #0 - bl FUN_02029CE8 + bl Seal_GetYCoord add r1, r0, #0 add r0, r4, #0 mov r2, #0xbe @@ -49077,7 +49077,7 @@ _0222A084: sub r1, r1, #1 bne _0222A084 add r0, r4, #0 - bl FUN_02029CE0 + bl Seal_GetId lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02086018 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 59100716..e98eadea 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2368,7 +2368,7 @@ MOD09_02213138: ; 0x02213138 mov r0, #0xf ldr r3, [r3, #0xc] mov r1, #0xe - bl FUN_0200B870 + bl MessagePrinter_new ldr r1, _02213184 ; =0x00001FA4 str r0, [r4, r1] ldr r0, [r4] @@ -2399,7 +2399,7 @@ MOD09_02213190: ; 0x02213190 bl DestroyMsgData ldr r0, _022131BC ; =0x00001FA4 ldr r0, [r4, r0] - bl FUN_0200B990 + bl MessagePrinter_delete ldr r0, _022131C0 ; =0x00001FAC ldr r0, [r4, r0] bl ScrStrBufs_delete @@ -3474,7 +3474,7 @@ MOD09_022139D4: ; 0x022139D4 ldr r0, _02213B74 ; =0x00001FAC mov r1, #0 ldr r0, [r5, r0] - bl FUN_0200B144 + bl BufferTrainerNameFromDataStruct ldr r1, _02213B74 ; =0x00001FAC add r2, r4, #0 ldr r0, [r5, r1] @@ -14095,7 +14095,7 @@ MOD09_022192A4: ; 0x022192A4 ldr r3, [r3, #0xc] mov r1, #0xe mov r2, #0 - bl FUN_0200B870 + bl MessagePrinter_new str r0, [r4, #0xc] ldr r0, [r4] ldr r0, [r0, #0xc] @@ -14117,7 +14117,7 @@ MOD09_022192E4: ; 0x022192E4 ldr r0, [r4, #0x10] bl DestroyMsgData ldr r0, [r4, #0xc] - bl FUN_0200B990 + bl MessagePrinter_delete ldr r0, [r4, #0x14] bl ScrStrBufs_delete ldr r0, [r4, #0x18] diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index bbcb304d..30ee9995 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -706,7 +706,7 @@ MOD11_0222DB50: ; 0x0222DB50 mov r1, #1 mov r2, #0xf mov r3, #5 - bl FUN_0200B870 + bl MessagePrinter_new mov r1, #0x6a lsl r1, r1, #2 str r0, [r4, r1] @@ -1369,7 +1369,7 @@ _0222E1AC: mov r0, #0x6a lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_0200B990 + bl MessagePrinter_delete mov r0, #2 bl FUN_02002CF8 ldr r0, [r4, #0x1c] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 6b184294..46816d64 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -6200,7 +6200,7 @@ MOD11_022321C4: ; 0x022321C4 add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 - bl FUN_0200B144 + bl BufferTrainerNameFromDataStruct pop {r3, r4, r5, pc} thumb_func_start MOD11_022321DC diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 53969b45..ae226da3 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -19435,13 +19435,13 @@ _021E0DAC: mov r1, #6 mov r2, #0xf mov r3, #0xa - bl FUN_0200B870 + bl MessagePrinter_new str r0, [r5, #0x18] mov r0, #1 mov r1, #2 mov r2, #0xf mov r3, #0xa - bl FUN_0200B870 + bl MessagePrinter_new str r0, [r5, #0x1c] mov r0, #0xa add r3, r5, #0 @@ -19516,12 +19516,12 @@ _021E0E72: ldr r0, [r5, #0x18] cmp r0, #0 beq _021E0E7C - bl FUN_0200B990 + bl MessagePrinter_delete _021E0E7C: ldr r0, [r5, #0x1c] cmp r0, #0 beq _021E0E86 - bl FUN_0200B990 + bl MessagePrinter_delete _021E0E86: ldr r0, [r5, #0x44] cmp r0, #0 @@ -21555,7 +21555,7 @@ _021E1DBC: mov r1, #0xd mov r2, #4 mov r3, #0xa - bl FUN_0200B870 + bl MessagePrinter_new str r0, [r5, #0x44] mov r0, #0x7d lsl r0, r0, #2 @@ -21687,7 +21687,7 @@ _021E1F58: ldr r0, [r5, #0x44] cmp r0, #0 beq _021E1F62 - bl FUN_0200B990 + bl MessagePrinter_delete _021E1F62: ldr r0, _021E1F94 ; =0x00004BFC ldr r0, [r5, r0] diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index d8172549..6c23c898 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -5154,7 +5154,7 @@ MOD15_021D9C58: ; 0x021D9C58 bl MOD15_021D9C08 ldr r1, [r5, #0x4c] add r0, r6, #0 - bl FUN_02013A58 + bl GetECWordIntoStringByIndex ldr r1, [r5, #0x4c] mov r0, #1 mov r2, #0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 081a836b..b611c883 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -7720,7 +7720,7 @@ _0223D212: bl BufferUndergroundItemNameWithArticle add r0, r5, #0 mov r1, #2 - bl FUN_0200B7A8 + bl ScrStrBufs_UpperFirstChar bl MOD18_0223D638 bl MOD18_0224DBB4 mov r1, #0x5f @@ -42040,11 +42040,11 @@ MOD18_0224DF40: ; 0x0224DF40 thumb_func_start MOD18_0224DF54 MOD18_0224DF54: ; 0x0224DF54 - ldr r3, _0224DF5C ; =FUN_0200B7A8 + ldr r3, _0224DF5C ; =ScrStrBufs_UpperFirstChar ldr r0, [r0, #0x28] bx r3 nop -_0224DF5C: .word FUN_0200B7A8 +_0224DF5C: .word ScrStrBufs_UpperFirstChar thumb_func_end MOD18_0224DF54 thumb_func_start MOD18_0224DF60 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 73025559..76088322 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -952,7 +952,7 @@ _0222DC90: ldr r0, [r0, #0x20] ldr r2, [r7, r2] add r1, sp, #0 - bl FUN_02029CA4 + bl SealCase_SetCapsuleI add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -3017,18 +3017,18 @@ _0222EC9A: add r7, #8 ldr r0, [r7, r6] add r1, sp, #0x10 - bl FUN_02029C74 + bl CapsuleArray_copy add r0, r5, #0 str r0, [sp, #4] add r0, #8 str r0, [sp, #4] ldr r0, [r0, r4] ldr r1, [r7, r6] - bl FUN_02029C74 + bl CapsuleArray_copy ldr r1, [sp, #4] add r0, sp, #0x10 ldr r1, [r1, r4] - bl FUN_02029C74 + bl CapsuleArray_copy add r0, r5, #0 bl MOD62_0222EC28 add sp, #0x28 @@ -4363,14 +4363,14 @@ MOD62_0222F778: ; 0x0222F778 mov r0, #0xf1 lsl r0, r0, #2 ldr r0, [r1, r0] - ldr r3, _0222F78C ; =FUN_02029C74 + ldr r3, _0222F78C ; =CapsuleArray_copy lsl r0, r0, #3 add r0, r1, r0 ldr r0, [r0, #8] add r1, #0x68 bx r3 .align 2, 0 -_0222F78C: .word FUN_02029C74 +_0222F78C: .word CapsuleArray_copy thumb_func_end MOD62_0222F778 thumb_func_start MOD62_0222F790 @@ -4379,14 +4379,14 @@ MOD62_0222F790: ; 0x0222F790 add r2, r0, #0 lsl r1, r1, #2 ldr r1, [r2, r1] - ldr r3, _0222F7A4 ; =FUN_02029C74 + ldr r3, _0222F7A4 ; =CapsuleArray_copy lsl r1, r1, #3 add r1, r2, r1 add r0, #0x68 ldr r1, [r1, #8] bx r3 .align 2, 0 -_0222F7A4: .word FUN_02029C74 +_0222F7A4: .word CapsuleArray_copy thumb_func_end MOD62_0222F790 thumb_func_start MOD62_0222F7A8 @@ -4512,8 +4512,8 @@ MOD62_0222F870: ; 0x0222F870 _0222F87A: add r0, r6, #0 add r1, r4, #0 - bl FUN_02029CC8 - bl FUN_02029CE0 + bl Capsule_GetSealI + bl Seal_GetId cmp r0, #0 beq _0222F88C add r5, r5, #1 @@ -6516,7 +6516,7 @@ _02230860: add r0, r2, r0 ldr r5, [r0, #4] ldr r0, [r2, #0x20] - bl FUN_02029C8C + bl SealCase_GetCapsuleI add r2, r0, #0 add r0, r5, #0 mov r1, #0xaa diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index d71a7476..a72ccebc 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -1742,7 +1742,7 @@ _021D828A: mov r1, #1 lsl r2, r2, #0x10 lsr r2, r2, #0x11 - bl FUN_0200B10C + bl BufferTrainerName _021D82BA: cmp r5, #0xe bhi _021D82CA @@ -2302,7 +2302,7 @@ MOD67_021D86DC: ; 0x021D86DC ldrh r2, [r4, #4] ldr r0, [r5, #0x54] mov r1, #1 - bl FUN_0200B10C + bl BufferTrainerName ldr r0, [r5, #0x54] ldr r1, [r5, #0x58] add r2, r7, #0 @@ -2343,7 +2343,7 @@ MOD67_021D873C: ; 0x021D873C ldrh r2, [r4, #4] ldr r0, [r5, #0x54] mov r1, #0 - bl FUN_0200B10C + bl BufferTrainerName ldr r0, [r5, #0x54] ldr r1, [r5, #0x58] add r2, r7, #0 @@ -2384,7 +2384,7 @@ MOD67_021D8790: ; 0x021D8790 ldrh r2, [r4, #4] ldr r0, [r5, #0x54] mov r1, #0 - bl FUN_0200B10C + bl BufferTrainerName ldr r0, [r5, #0x54] ldr r1, [r5, #0x58] add r2, r7, #0 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index c201069e..dfab7ef8 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -441,7 +441,7 @@ MOD68_021D7870: ; 0x021D7870 mov r1, #2 mov r2, #0 mov r3, #0x24 - bl FUN_0200B870 + bl MessagePrinter_new add r1, r4, #0 add r1, #0xcc str r0, [r1] @@ -464,7 +464,7 @@ MOD68_021D78A8: ; 0x021D78A8 add r0, r4, #0 add r0, #0xcc ldr r0, [r0] - bl FUN_0200B990 + bl MessagePrinter_delete add r4, #0xc8 ldr r0, [r4] bl ScrStrBufs_delete diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index f6d498ce..63f45d1d 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -446,7 +446,7 @@ MOD75_021E6F00: ; 0x021E6F00 mov r0, #0x11 lsl r0, r0, #4 ldr r0, [r4, r0] - bl FUN_0200B990 + bl MessagePrinter_delete mov r0, #0x46 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -946,7 +946,7 @@ MOD75_021E737C: ; 0x021E737C mov r1, #2 mov r2, #0 mov r3, #6 - bl FUN_0200B870 + bl MessagePrinter_new mov r1, #0x11 lsl r1, r1, #4 str r0, [r4, r1] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 667a4ae1..29a329f0 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -5624,7 +5624,7 @@ MOD80_0223022C: ; 0x0223022C str r0, [r5, r1] sub r1, #0x1c ldr r0, [r5, r1] - bl FUN_0200B84C + bl ScrStrBufs_ResetBuffers ldr r0, _022302B4 ; =0x0000011E ldrb r2, [r4, r0] cmp r2, #0 diff --git a/arm9/src/mail_message.c b/arm9/src/mail_message.c index 4d1b75c6..a5837d89 100644 --- a/arm9/src/mail_message.c +++ b/arm9/src/mail_message.c @@ -16,7 +16,7 @@ struct UnkStruct_020ED556 u16 unk_8; }; -extern u16 FUN_02013A9C(s16 bank, u16 num); +extern u16 GetECWordIndexByPair(s16 bank, u16 num); const u16 UNK_020ED54C[] = { 397, @@ -68,9 +68,9 @@ void MailMsg_init_fromTemplate(struct MailMessage * mailMsg, u32 a1) MailMsg_init_withBank(mailMsg, UNK_020ED556[a1].unk_0); mailMsg->msg_no = UNK_020ED556[a1].unk_1; if (UNK_020ED556[a1].unk_2 != -1) - mailMsg->fields[0] = FUN_02013A9C(UNK_020ED556[a1].unk_2, UNK_020ED556[a1].unk_4); + mailMsg->fields[0] = GetECWordIndexByPair(UNK_020ED556[a1].unk_2, UNK_020ED556[a1].unk_4); if (UNK_020ED556[a1].unk_6 != -1) - mailMsg->fields[1] = FUN_02013A9C(UNK_020ED556[a1].unk_6, UNK_020ED556[a1].unk_8); + mailMsg->fields[1] = GetECWordIndexByPair(UNK_020ED556[a1].unk_6, UNK_020ED556[a1].unk_8); } } diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 7fe8191a..b3e53d1a 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -565,7 +565,7 @@ u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest) Mail_copy(&pokemon->party.mail, dest); return 1; case MON_DATA_SEAL_COORDS: - FUN_02029C74(&pokemon->party.sealCoords, dest); + CapsuleArray_copy(&pokemon->party.sealCoords, dest); return 1; default: return GetBoxMonDataInternal(&pokemon->box, attr, dest); @@ -1053,7 +1053,7 @@ void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value) Mail_copy((const struct Mail *)value, &pokemon->party.mail); break; case MON_DATA_SEAL_COORDS: - FUN_02029C74((CapsuleArray *)value, &pokemon->party.sealCoords); + CapsuleArray_copy((CapsuleArray *)value, &pokemon->party.sealCoords); break; default: SetBoxMonDataInternal(&pokemon->box, attr, value); diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index 43e83403..397f1f69 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -12,6 +12,8 @@ #include "unk_020254B8.h" #include "daycare.h" #include "pokedex.h" +#include "seal.h" +#include "unk_020139D8.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); @@ -24,7 +26,6 @@ extern u32 FUN_02028054(void); extern u32 FUN_02028980(void); extern u32 FUN_02029A84(void); extern u32 FUN_02029FB0(void); -extern u32 FUN_02029C58(void); extern u32 FUN_02029EC4(void); extern u32 FUN_0202A89C(void); extern u32 FUN_0202A8F4(void); @@ -36,7 +37,6 @@ extern u32 FUN_020281E0(void); extern u32 FUN_02029AE0(void); extern u32 FUN_0202BE98(void); extern u32 FUN_0202C0E0(void); -extern u32 FUN_02013B28(void); extern void FUN_0202AC28(void *); extern void FUN_02034D98(void *); extern void FUN_02024E6C(void *); @@ -48,7 +48,6 @@ extern void FUN_0202805C(void *); extern void FUN_02028994(void *); extern void FUN_02029A8C(void *); extern void FUN_02029FB8(void *); -extern void FUN_02029C60(void *); extern void FUN_02029ECC(void *); extern void FUN_0202A8A4(void *); extern void FUN_0202A8F8(void *); @@ -60,7 +59,6 @@ extern void FUN_020281E8(void *); extern void FUN_02029AE8(void *); extern void FUN_0202BEA0(void *); extern void FUN_0202C0E4(void *); -extern void FUN_02013B2C(void *); const struct SaveChunkHeader UNK_020EE6E0[] = { { 0, 32, (SAVSIZEFN)Sav2_HOF_sizeof, (SAVINITFN)Sav2_HOF_init }, @@ -89,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 18, 0, (SAVSIZEFN)FUN_02028980, (SAVINITFN)FUN_02028994 }, { 19, 0, (SAVSIZEFN)FUN_02029A84, (SAVINITFN)FUN_02029A8C }, { 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 }, - { 21, 0, (SAVSIZEFN)FUN_02029C58, (SAVINITFN)FUN_02029C60 }, + { 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init }, { 22, 0, (SAVSIZEFN)FUN_02029EC4, (SAVINITFN)FUN_02029ECC }, { 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 }, { 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 }, diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index c29feed3..10ec9094 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -9,6 +9,7 @@ #include "unk_020286F8.h" #include "filesystem.h" #include "unk_0201B8B8.h" +#include "trainer_data.h" #include "script_buffers.h" #pragma thumb on @@ -16,7 +17,7 @@ extern void * FUN_02024EC0(struct SaveBlock2 * sav2); extern u16 * FUN_02024EE8(void *); extern u32 GetCityNamesMsgdataIdByCountry(u32); -extern void FUN_02013A58(u32 a0, struct String * a1); +extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1); extern void FUN_02022048(struct String * dest, const struct String * src); extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); @@ -374,7 +375,7 @@ void BufferTrainerClassName2(struct ScrStrBufs * mgr, u32 idx, struct Trainer * } } -void FUN_0200B10C(struct ScrStrBufs * mgr, u32 idx, u32 msgno) +void BufferTrainerName(struct ScrStrBufs * mgr, u32 idx, u32 msgno) { struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 559, mgr->heap_id); if (msgData != NULL) @@ -385,9 +386,9 @@ void FUN_0200B10C(struct ScrStrBufs * mgr, u32 idx, u32 msgno) } } -void FUN_0200B144(struct ScrStrBufs * mgr, u32 idx, void * unk_struct) +void BufferTrainerNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * trdata) { - CopyU16ArrayToString(mgr->tmpbuf, (u16 *)((char *)unk_struct + 20)); + CopyU16ArrayToString(mgr->tmpbuf, trdata->name); SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL); } @@ -587,7 +588,7 @@ void BufferCityName(struct ScrStrBufs * mgr, u32 idx, u32 a2, u32 a3) void FUN_0200B518(struct ScrStrBufs * mgr, u32 idx, u32 a2) { - FUN_02013A58(a2, mgr->tmpbuf); + GetECWordIntoStringByIndex(a2, mgr->tmpbuf); SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL); } @@ -684,7 +685,7 @@ void BufferContestBackgroundName(struct ScrStrBufs * mgr, u32 idx, u32 bg) } } -void FUN_0200B708(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28) +void BufferEasyChatWord(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28) { void * r6 = FUN_0202881C(sav2); u8 sp10 = FUN_020287F8(r6, r5); @@ -708,7 +709,7 @@ void BufferMonthNameAbbr(struct ScrStrBufs * mgr, u32 idx, u32 month) } } -void FUN_0200B7A8(struct ScrStrBufs * mgr, u32 idx) +void ScrStrBufs_UpperFirstChar(struct ScrStrBufs * mgr, u32 idx) { StrUpperFirstChar(mgr->array[idx].msg); } @@ -741,13 +742,13 @@ void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, str } } -void FUN_0200B84C(struct ScrStrBufs * mgr) +void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr) { for (int i = 0; i < mgr->count; i++) StringSetEmpty(mgr->array[i].msg); } -struct UnkStruct_0200B870 * FUN_0200B870(u32 r5, u32 r6, u32 sp4, u32 r4) +struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4) { struct UnkStruct_0200B870 * sp8 = AllocFromHeap(r4, sizeof(struct UnkStruct_0200B870)); if (sp8 != NULL) @@ -793,7 +794,7 @@ struct UnkStruct_0200B870 * FUN_0200B870(u32 r5, u32 r6, u32 sp4, u32 r4) return sp8; } -void FUN_0200B990(struct UnkStruct_0200B870 * a0) +void MessagePrinter_delete(struct UnkStruct_0200B870 * a0) { if (a0 != NULL) { diff --git a/arm9/src/seal_case.c b/arm9/src/seal_case.c new file mode 100644 index 00000000..b1359a02 --- /dev/null +++ b/arm9/src/seal_case.c @@ -0,0 +1,59 @@ +#include "global.h" +#include "save_block_2.h" +#include "MI_memory.h" +#include "seal.h" + +#pragma thumb on + +u32 Sav2_SealCase_sizeof(void) +{ + return sizeof(struct SealCase); +} + +void Sav2_SealCase_init(struct SealCase * sealCase) +{ + MI_CpuClear8(sealCase, Sav2_SealCase_sizeof()); +} + +void CapsuleArray_copy(const CapsuleArray * a0, CapsuleArray * a1) +{ + MI_CpuCopy8(a0, a1, sizeof(CapsuleArray)); +} + +struct SealCase * Sav2_SealCase_get(struct SaveBlock2 * sav2) +{ + return (struct SealCase *)SavArray_get(sav2, 21); +} + +CapsuleArray * SealCase_GetCapsuleI(struct SealCase * sealCase, s32 idx) +{ + GF_ASSERT(idx < 12); + return &sealCase->coords[idx]; +} + +void SealCase_SetCapsuleI(struct SealCase * sealCase, const CapsuleArray * src, s32 idx) +{ + GF_ASSERT(idx < 12); + CapsuleArray_copy(src, SealCase_GetCapsuleI(sealCase, idx)); +} + +Coords8 * Capsule_GetSealI(CapsuleArray * a0, s32 a1) +{ + GF_ASSERT(a1 < 8); + return &(*a0)[a1]; +} + +s32 Seal_GetId(Coords8 * a0) +{ + return (*a0)[0]; +} + +s32 Seal_GetXCoord(Coords8 * a0) +{ + return (*a0)[1]; +} + +s32 Seal_GetYCoord(Coords8 * a0) +{ + return (*a0)[2]; +} diff --git a/arm9/src/unk_020139D8.c b/arm9/src/unk_020139D8.c index 82c96ea9..796190b2 100644 --- a/arm9/src/unk_020139D8.c +++ b/arm9/src/unk_020139D8.c @@ -7,7 +7,7 @@ #pragma thumb on -const u8 UNK_020ED5B4[][2] = { +const u8 sNarcLanguages[][2] = { { LANGUAGE_JAPANESE, 0 }, { LANGUAGE_ENGLISH, 1 }, { LANGUAGE_FRENCH, 2 }, @@ -16,32 +16,32 @@ const u8 UNK_020ED5B4[][2] = { { LANGUAGE_SPANISH, 5 }, }; -const u16 UNK_020ED5C0[] = { - 362, - 589, - 565, - 553, - 388, - 389, - 390, - 391, - 392, - 393, - 394 +const u16 sNarcMsgBanks[] = { + 362, // Species names + 589, // Move names + 565, // Type names + 553, // Ability names + 388, // Trainer + 389, // People + 390, // Greetings + 391, // Lifestyle + 392, // Feelings + 393, // Tough words + 394 // Union }; -const u16 UNK_020ED5D6[] = { - 496, - 468, - 18, - 124, - 38, - 38, - 107, - 104, - 47, - 32, - 23 +const u16 sNarcMsgCounts[] = { + 496, // Species names + 468, // Move names + 18, // Type names + 124, // Ability names + 38, // Trainer + 38, // People + 107, // Greetings + 104, // Lifestyle + 47, // Feelings + 32, // Tough words + 23 // Union }; const u16 UNK_020ED580[] = { 0x04C0, 0x04F0 }; @@ -76,19 +76,19 @@ const struct UnkStruct_020ED5EC { UNK_020ED594, NELEMS(UNK_020ED594) }, }; -struct UnkStruct_020139D8 * FUN_020139D8(u32 heap_id) +struct UnkStruct_020139D8 * EasyChatManager_new(u32 heap_id) { struct UnkStruct_020139D8 * ret = (struct UnkStruct_020139D8 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_020139D8)); s32 i; for (i = 0; i < 11; i++) { ret->heap_id = heap_id; // inadvertently inside the loop - ret->msgDatas[i] = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, UNK_020ED5C0[i], heap_id); + ret->msgDatas[i] = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, sNarcMsgBanks[i], heap_id); } return ret; } -void FUN_02013A10(struct UnkStruct_020139D8 * unk) +void EasyChatManager_delete(struct UnkStruct_020139D8 * unk) { s32 i; for (i = 0; i < 11; i++) @@ -98,61 +98,61 @@ void FUN_02013A10(struct UnkStruct_020139D8 * unk) FreeToHeap(unk); } -void FUN_02013A30(struct UnkStruct_020139D8 * unk, u16 a1, struct String * str) +void EasyChatManager_ReadWordIntoString(struct UnkStruct_020139D8 * unk, u16 wordIdx, struct String * str) { - s32 sp4; - s32 sp0; - FUN_02013AEC(a1, &sp4, &sp0); - ReadMsgDataIntoString(unk->msgDatas[sp4], (u32)sp0, str); + s32 msgBank; + s32 msgNo; + GetCategoryAndMsgNoByECWordIdx(wordIdx, &msgBank, &msgNo); + ReadMsgDataIntoString(unk->msgDatas[msgBank], (u32)msgNo, str); } -void FUN_02013A58(u16 a0, struct String * a1) +void GetECWordIntoStringByIndex(u16 wordIdx, struct String * a1) { - s32 sp8; - s32 sp4; - if (a0 != 0xFFFF) + s32 msgBank; + s32 msgNo; + if (wordIdx != 0xFFFF) { - FUN_02013AEC(a0, &sp8, &sp4); - sp8 = UNK_020ED5C0[sp8]; - ReadMsgData_NewNarc_ExistingString(NARC_MSGDATA_MSG, (u32)sp8, (u32)sp4, 0, a1); + GetCategoryAndMsgNoByECWordIdx(wordIdx, &msgBank, &msgNo); + msgBank = sNarcMsgBanks[msgBank]; + ReadMsgData_NewNarc_ExistingString(NARC_MSGDATA_MSG, (u32)msgBank, (u32)msgNo, 0, a1); } else StringSetEmpty(a1); } -u16 FUN_02013A9C(u16 a0, u16 a1) +u16 GetECWordIndexByPair(u16 msgBank, u16 msgNo) { u32 i; u16 k; u16 j; for (i = 0; i < 11; i++) { - if (a0 == UNK_020ED5C0[i]) + if (msgBank == sNarcMsgBanks[i]) { for (j = 0, k = 0; j < i; j++) - k += UNK_020ED5D6[j]; - return (u16)(k + a1); + k += sNarcMsgCounts[j]; + return (u16)(k + msgNo); } } return 0xFFFF; } -void FUN_02013AEC(u32 a0, s32 * a1, s32 * a2) +void GetCategoryAndMsgNoByECWordIdx(u32 wordIdx, s32 * msgBank_p, s32 * msgNo_p) { s32 i; s32 j; u32 r3; - r3 = a0 & 0xFFF; + r3 = wordIdx & 0xFFF; j = 0; - for (i = 0; i < NELEMS(UNK_020ED5D6); i++) + for (i = 0; i < NELEMS(sNarcMsgCounts); i++) { - j += UNK_020ED5D6[i]; + j += sNarcMsgCounts[i]; if (r3 < j) { - *a1 = i; - *a2 = (s32)(r3 - (j - UNK_020ED5D6[i])); + *msgBank_p = i; + *msgNo_p = (s32)(r3 - (j - sNarcMsgCounts[i])); return; } } @@ -170,9 +170,9 @@ void FUN_02013B2C(struct UnkStruct_02013B28 * unk) unk->unk_4 = 0; for (i = 0; i < 6; i++) { - if (UNK_020ED5B4[i][0] == GAME_LANGUAGE) + if (sNarcLanguages[i][0] == GAME_LANGUAGE) { - FUN_02013C18(unk, UNK_020ED5B4[i][1]); + FUN_02013C18(unk, sNarcLanguages[i][1]); break; } } @@ -233,7 +233,7 @@ u16 FUN_02013BE4(u16 a0) s32 i; u16 skip = 0; for (i = 0; i < 9; i++) - skip += UNK_020ED5D6[i]; + skip += sNarcMsgCounts[i]; return (u16)(skip + a0); } diff --git a/include/constants/seal_constants.h b/include/constants/seal_constants.h new file mode 100644 index 00000000..c246195b --- /dev/null +++ b/include/constants/seal_constants.h @@ -0,0 +1,87 @@ +#ifndef POKEDIAMOND_CONSTANTS_SEAL_CONSTANTS_H +#define POKEDIAMOND_CONSTANTS_SEAL_CONSTANTS_H + +// The different kinds of seals you can have +#define SEAL_NONE 0 +#define SEAL_HEART_A 1 +#define SEAL_HEART_B 2 +#define SEAL_HEART_C 3 +#define SEAL_HEART_D 4 +#define SEAL_HEART_E 5 +#define SEAL_HEART_F 6 +#define SEAL_STAR_A 7 +#define SEAL_STAR_B 8 +#define SEAL_STAR_C 9 +#define SEAL_STAR_D 10 +#define SEAL_STAR_E 11 +#define SEAL_STAR_F 12 +#define SEAL_LINE_A 13 +#define SEAL_LINE_B 14 +#define SEAL_LINE_C 15 +#define SEAL_SMOKE_A 16 +#define SEAL_SMOKE_B 17 +#define SEAL_SMOKE_C 18 +#define SEAL_SMOKE_D 19 +#define SEAL_ELE_A 20 +#define SEAL_ELE_B 21 +#define SEAL_ELE_C 22 +#define SEAL_ELE_D 23 +#define SEAL_FOAMY_A 24 +#define SEAL_FOAMY_B 25 +#define SEAL_FOAMY_C 26 +#define SEAL_FOAMY_D 27 +#define SEAL_FIRE_A 28 +#define SEAL_FIRE_B 29 +#define SEAL_FIRE_C 30 +#define SEAL_FIRE_D 31 +#define SEAL_PARTY_A 32 +#define SEAL_PARTY_B 33 +#define SEAL_PARTY_C 34 +#define SEAL_PARTY_D 35 +#define SEAL_FLORA_A 36 +#define SEAL_FLORA_B 37 +#define SEAL_FLORA_C 38 +#define SEAL_FLORA_D 39 +#define SEAL_FLORA_E 40 +#define SEAL_FLORA_F 41 +#define SEAL_SONG_A 42 +#define SEAL_SONG_B 43 +#define SEAL_SONG_C 44 +#define SEAL_SONG_D 45 +#define SEAL_SONG_E 46 +#define SEAL_SONG_F 47 +#define SEAL_SONG_G 48 +#define SEAL_A 49 +#define SEAL_B 50 +#define SEAL_C 51 +#define SEAL_D 52 +#define SEAL_E 53 +#define SEAL_F 54 +#define SEAL_G 55 +#define SEAL_H 56 +#define SEAL_I 57 +#define SEAL_J 58 +#define SEAL_K 59 +#define SEAL_L 60 +#define SEAL_M 61 +#define SEAL_N 62 +#define SEAL_O 63 +#define SEAL_P 64 +#define SEAL_Q 65 +#define SEAL_R 66 +#define SEAL_S 67 +#define SEAL_T 68 +#define SEAL_U 69 +#define SEAL_V 70 +#define SEAL_W 71 +#define SEAL_X 72 +#define SEAL_Y 73 +#define SEAL_Z 74 +#define SEAL_SHOCK 75 +#define SEAL_MYSTERY 76 +#define SEAL_LINE_D 77 +#define SEAL_LIQUID 78 +#define SEAL_BURST 79 +#define SEAL_TWINKLE 80 + +#endif //POKEDIAMOND_CONSTANTS_SEAL_CONSTANTS_H diff --git a/include/script_buffers.h b/include/script_buffers.h index 63aaf65d..40d1758a 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -3,6 +3,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" +#include "trainer_data.h" struct UnkStruct_0200AA80_sub_sub { @@ -76,8 +77,8 @@ void BufferPoketchAppName(struct ScrStrBufs * mgr, u32 idx, u32 app); void BufferTrainerClassName(struct ScrStrBufs * mgr, u32 idx, u32 trclass); void BufferTrainerClassNameWithArticle(struct ScrStrBufs * mgr, u32 idx, u32 trclass); void BufferTrainerClassName2(struct ScrStrBufs * mgr, u32 idx, struct Trainer * tr); -void FUN_0200B10C(struct ScrStrBufs * mgr, u32 idx, u32 msgno); -void FUN_0200B144(struct ScrStrBufs * mgr, u32 idx, void * unk_struct); +void BufferTrainerName(struct ScrStrBufs * mgr, u32 idx, u32 msgno); +void BufferTrainerNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * trdata); void BufferUndergroundItemName(struct ScrStrBufs * mgr, u32 idx, u32 item); void BufferUndergroundItemNameWithArticle(struct ScrStrBufs * mgr, u32 idx, u32 item); void BufferUndergroundTrapName(struct ScrStrBufs * mgr, u32 idx, u32 trap); @@ -103,13 +104,13 @@ void BufferPoffinName(struct ScrStrBufs * mgr, u32 idx, u32 poffin); void BufferFashionName(struct ScrStrBufs * mgr, u32 idx, u32 fashion); void BufferFashionNameWithArticle(struct ScrStrBufs * mgr, u32 idx, u32 fashion); void BufferContestBackgroundName(struct ScrStrBufs * mgr, u32 idx, u32 bg); -void FUN_0200B708(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28); +void BufferEasyChatWord(struct ScrStrBufs * mgr, struct SaveBlock2 * sav2, u32 r5, u32 idx, u32 sp28); void BufferMonthNameAbbr(struct ScrStrBufs * mgr, u32 idx, u32 month); -void FUN_0200B7A8(struct ScrStrBufs * mgr, u32 idx); +void ScrStrBufs_UpperFirstChar(struct ScrStrBufs * mgr, u32 idx); void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, struct String * src); -void FUN_0200B84C(struct ScrStrBufs * mgr); -struct UnkStruct_0200B870 * FUN_0200B870(u32 r5, u32 r6, u32 sp4, u32 r4); -void FUN_0200B990(struct UnkStruct_0200B870 * a0); +void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr); +struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4); +void MessagePrinter_delete(struct UnkStruct_0200B870 * a0); void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4); void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7); diff --git a/include/seal.h b/include/seal.h index 9e31e2e4..7c4b04a5 100644 --- a/include/seal.h +++ b/include/seal.h @@ -7,18 +7,18 @@ typedef Coords8 CapsuleArray[8]; struct SealCase { CapsuleArray coords[12]; - u8 padding_120[0x50]; + u8 sealCounts[80]; }; -u32 FUN_02029C58(void); -void FUN_02029C60(struct SealCase * sealCase); -void FUN_02029C74(const CapsuleArray * a0, CapsuleArray * a1); -struct SealCase * FUN_02029C80(struct SaveBlock2 * sav2); -CapsuleArray * FUN_02029C8C(struct SealCase * sealCase, s32 idx); -void FUN_02029CA4(struct SealCase * sealCase, const CapsuleArray * src, s32 idx); -Coords8 * FUN_02029CC8(CapsuleArray * a0, s32 a1); -u8 FUN_02029CE0(Coords8 * a0); -u8 FUN_02029CE4(Coords8 * a0); -u8 FUN_02029CE8(Coords8 * a0); +u32 Sav2_SealCase_sizeof(void); +void Sav2_SealCase_init(struct SealCase * sealCase); +void CapsuleArray_copy(const CapsuleArray * a0, CapsuleArray * a1); +struct SealCase * Sav2_SealCase_get(struct SaveBlock2 * sav2); +CapsuleArray * SealCase_GetCapsuleI(struct SealCase * sealCase, s32 idx); +void SealCase_SetCapsuleI(struct SealCase * sealCase, const CapsuleArray * src, s32 idx); +Coords8 * Capsule_GetSealI(CapsuleArray * a0, s32 a1); +s32 Seal_GetId(Coords8 * a0); +s32 Seal_GetXCoord(Coords8 * a0); +s32 Seal_GetYCoord(Coords8 * a0); #endif //POKEDIAMOND_SEAL_H diff --git a/include/unk_020139D8.h b/include/unk_020139D8.h index 652c9caf..3960a4be 100644 --- a/include/unk_020139D8.h +++ b/include/unk_020139D8.h @@ -13,12 +13,12 @@ struct UnkStruct_02013B28 u32 unk_4; }; -struct UnkStruct_020139D8 * FUN_020139D8(u32 heap_id); -void FUN_02013A10(struct UnkStruct_020139D8 * unk); -void FUN_02013A30(struct UnkStruct_020139D8 * unk, u16 a1, struct String * str); -void FUN_02013A58(u16 a0, struct String * a1); -u16 FUN_02013A9C(u16 a0, u16 a1); -void FUN_02013AEC(u32 a0, s32 * a1, s32 * a2); +struct UnkStruct_020139D8 * EasyChatManager_new(u32 heap_id); +void EasyChatManager_delete(struct UnkStruct_020139D8 * unk); +void EasyChatManager_ReadWordIntoString(struct UnkStruct_020139D8 * unk, u16 a1, struct String * str); +void GetECWordIntoStringByIndex(u16 a0, struct String * a1); +u16 GetECWordIndexByPair(u16 a0, u16 a1); +void GetCategoryAndMsgNoByECWordIdx(u32 a0, s32 * a1, s32 * a2); u32 FUN_02013B28(void); void FUN_02013B2C(struct UnkStruct_02013B28 * unk); struct UnkStruct_02013B28 * FUN_02013B5C(struct SaveBlock2 * sav2); -- cgit v1.2.3 From dfe8aabe4a67c0efa52e7e7a3d24133705dd4635 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 15:25:26 -0400 Subject: Fix struct definition in script_buffers.c --- arm9/global.inc | 2 +- arm9/modules/11/asm/module_11_thumb2.s | 2 +- arm9/src/script_buffers.c | 4 ++-- include/script_buffers.h | 8 +------- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/arm9/global.inc b/arm9/global.inc index 9cf7312a..369083f7 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -566,7 +566,7 @@ .extern BufferPoketchAppName .extern BufferTrainerClassName .extern BufferTrainerClassNameWithArticle -.extern BufferTrainerClassName2 +.extern BufferTrainerClassNameFromDataStruct .extern BufferTrainerName .extern BufferTrainerNameFromDataStruct .extern BufferUndergroundItemName diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 46816d64..15f4c237 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -6187,7 +6187,7 @@ MOD11_022321AC: ; 0x022321AC add r2, r0, #0 ldr r0, [r5, #0x14] add r1, r4, #0 - bl BufferTrainerClassName2 + bl BufferTrainerClassNameFromDataStruct pop {r3, r4, r5, pc} thumb_func_start MOD11_022321C4 diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index 10ec9094..0c1b3996 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -364,12 +364,12 @@ void BufferTrainerClassNameWithArticle(struct ScrStrBufs * mgr, u32 idx, u32 trc } } -void BufferTrainerClassName2(struct ScrStrBufs * mgr, u32 idx, struct Trainer * tr) +void BufferTrainerClassNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * tr) { struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 560, mgr->heap_id); if (msgData != NULL) { - ReadMsgDataIntoString(msgData, tr->unk1, mgr->tmpbuf); + ReadMsgDataIntoString(msgData, tr->data.trainerClass, mgr->tmpbuf); SetStringAsPlaceholder(mgr, idx, mgr->tmpbuf, NULL); DestroyMsgData(msgData); } diff --git a/include/script_buffers.h b/include/script_buffers.h index 40d1758a..d0fff528 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -24,12 +24,6 @@ struct ScrStrBufs struct String * tmpbuf; }; -struct Trainer -{ - u8 unk0; - u8 unk1; -}; - struct UnkStruct_0200B870_sub { u8 filler_00[16]; @@ -76,7 +70,7 @@ void BufferLandmarkName(struct ScrStrBufs * mgr, u32 idx, u32 landmark); void BufferPoketchAppName(struct ScrStrBufs * mgr, u32 idx, u32 app); void BufferTrainerClassName(struct ScrStrBufs * mgr, u32 idx, u32 trclass); void BufferTrainerClassNameWithArticle(struct ScrStrBufs * mgr, u32 idx, u32 trclass); -void BufferTrainerClassName2(struct ScrStrBufs * mgr, u32 idx, struct Trainer * tr); +void BufferTrainerClassNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * tr); void BufferTrainerName(struct ScrStrBufs * mgr, u32 idx, u32 msgno); void BufferTrainerNameFromDataStruct(struct ScrStrBufs * mgr, u32 idx, struct TrainerDataLoaded * trdata); void BufferUndergroundItemName(struct ScrStrBufs * mgr, u32 idx, u32 item); -- cgit v1.2.3 From 2afa95e81df071daddcc29b609bf8c390f1fe3bb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Sep 2020 16:16:34 -0400 Subject: Some data rearrangement --- arm9/asm/unk_02006D98.s | 4 +- arm9/asm/unk_0200CABC.s | 2 +- arm9/asm/unk_0206F3FC.s | 29 +- arm9/asm/unk_020772F0.s | 691 +++++++++++++++++++++++++++++++++++------------- 4 files changed, 527 insertions(+), 199 deletions(-) diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 8bcac588..0e1ff930 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -150,7 +150,7 @@ _02006E12: strb r0, [r4, r2] sub r2, #0x4b ldr r2, [r4, r2] - mov r0, #0x75 + mov r0, #0x75 ; NARC_POKETOOL_POKEGRA_OTHERPOKE mov r1, #0xd3 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0xc @@ -3641,7 +3641,7 @@ _0200874A: mov r2, #0xa6 lsl r2, r2, #0x2 ldr r2, [r5, r2] - mov r0, #0x75 + mov r0, #0x75 ; NARC_POKETOOL_POKEGRA_OTHERPOKE mov r1, #0xd4 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x18 diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index bfab698c..70ccee6d 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -1078,7 +1078,7 @@ FUN_0200D300: ; 0x0200D300 add r3, r6, #0x0 str r4, [sp, #0xc] bl FUN_0200687C - mov r0, #0x24 + mov r0, #0x24 ; NARC_GRAPHIC_FIELD_BOARD mov r1, #0x1 add r2, r4, #0x0 bl AllocAndReadWholeNarcMemberByIdPair diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index d2024491..8d7d828a 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -8,11 +8,12 @@ .global UNK_020F944C UNK_020F944C: ; 0x020F944C - .byte 0x01 - - .global UNK_020F944D -UNK_020F944D: ; 0x020F944D - .byte 0x03, 0x1A, 0x03, 0x01, 0x0A, 0x1A, 0x0A, 0x01, 0x11, 0x1A, 0x11 + .byte 0x01, 0x03 + .byte 0x1A, 0x03 + .byte 0x01, 0x0A + .byte 0x1A, 0x0A + .byte 0x01, 0x11 + .byte 0x1A, 0x11 .global UNK_020F9458 UNK_020F9458: ; 0x020F9458 @@ -20,8 +21,10 @@ UNK_020F9458: ; 0x020F9458 .global UNK_020F9468 UNK_020F9468: ; 0x020F9468 - .byte 0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04, 0x04, 0x02, 0x00, 0x05 - .byte 0x03, 0x01, 0x05, 0x03, 0x01, 0x04, 0x02, 0x00 + .byte 0x00, 0x02, 0x04, 0x01, 0x03, 0x05 + .byte 0x01, 0x03, 0x05, 0x00, 0x02, 0x04 + .byte 0x04, 0x02, 0x00, 0x05, 0x03, 0x01 + .byte 0x05, 0x03, 0x01, 0x04, 0x02, 0x00 .global UNK_020F9480 UNK_020F9480: ; 0x020F9480 @@ -1265,7 +1268,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r1, #0x11 mov r3, #0x3 bl FUN_020068C8 - mov r0, #0x14 + mov r0, #0x14 ; NARC_GRAPHIC_PLIST_GRA mov r1, #0x10 mov r2, #0xc bl AllocAndReadWholeNarcMemberByIdPair @@ -4614,7 +4617,7 @@ FUN_020717E8: ; 0x020717E8 lsl r3, r3, #0x1 add r0, r0, r3 mov r12, r0 - ldr r0, _0207184C ; =UNK_020F944D + ldr r0, _0207184C ; =UNK_020F944C + 1 ldrb r7, [r0, r1] _02071816: lsl r0, r2, #0x2 @@ -4643,7 +4646,7 @@ _02071824: nop _02071844: .word 0x00001005 _02071848: .word UNK_020F944C -_0207184C: .word UNK_020F944D +_0207184C: .word UNK_020F944C + 1 thumb_func_start FUN_02071850 FUN_02071850: ; 0x02071850 @@ -4653,7 +4656,7 @@ FUN_02071850: ; 0x02071850 lsl r0, r0, #0x3 add r0, #0x14 strh r0, [r1, #0x0] - ldr r0, _0207186C ; =UNK_020F944D + ldr r0, _0207186C ; =UNK_020F944C + 1 ldrb r0, [r0, r3] lsl r0, r0, #0x3 add r0, #0x14 @@ -4661,7 +4664,7 @@ FUN_02071850: ; 0x02071850 bx lr .balign 4 _02071868: .word UNK_020F944C -_0207186C: .word UNK_020F944D +_0207186C: .word UNK_020F944C + 1 thumb_func_start FUN_02071870 FUN_02071870: ; 0x02071870 @@ -6194,7 +6197,7 @@ FUN_020724D4: ; 0x020724D4 add r4, r0, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 - mov r0, #0x14 + mov r0, #0x14 ; NARC_GRAPHIC_PLIST_GRA mov r1, #0x16 add r2, r4, #0x0 add r7, r3, #0x0 diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 7ada0ae4..7a24d756 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -2,8 +2,6 @@ .include "global.inc" .extern gMain - .extern gMain - .extern gMain .section .rodata @@ -25,7 +23,9 @@ UNK_020F9D38: ; 0x020F9D38 .global UNK_020F9D40 UNK_020F9D40: ; 0x020F9D40 - .byte 0x70, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00 + .word 0x00000070 + .word 0x0000004C + .word 0x00000048 .global UNK_020F9D4C UNK_020F9D4C: ; 0x020F9D4C @@ -37,25 +37,52 @@ UNK_020F9D5C: ; 0x020F9D5C .global UNK_020F9D6C UNK_020F9D6C: ; 0x020F9D6C - .byte 0x19, 0x00, 0x39, 0x00, 0x59, 0x00, 0x61, 0x00, 0x7A, 0x00, 0x9E, 0x00, 0xC6, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x2B, 0x00, 0x20, 0x00, 0x2F, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x3F, 0x00, 0x09, 0x00 - .byte 0x30, 0x00, 0xE2, 0x00, 0xFF, 0xFF, 0x8D, 0x00, 0x74, 0x00, 0x60, 0x00, 0x6A, 0x00, 0x2F, 0x00 - .byte 0x01, 0x00, 0x2B, 0x00, 0x3F, 0x00, 0x09, 0x00, 0x30, 0x00, 0xE2, 0x00, 0xFF, 0xFF + .short 0x0019 + .short 0x0039 + .short 0x0059 + .short 0x0061 + .short 0x007A + .short 0x009E + .short 0x00C6 + .short 0x0000 + .short 0x0003 + .short 0x002B + .short 0x0020 + .short 0x002F + .short 0x0001 + .short 0x002B + .short 0x003F + .short 0x0009 + .short 0x0030 + .short 0x00E2 + .short 0xFFFF + .short 0x008D + .short 0x0074 + .short 0x0060 + .short 0x006A + .short 0x002F + .short 0x0001 + .short 0x002B + .short 0x003F + .short 0x0009 + .short 0x0030 + .short 0x00E2 + .short 0xFFFF .global UNK_020F9DAA UNK_020F9DAA: ; 0x020F9DAA - .byte 0x02, 0xE0, 0x02, 0xE0, 0x03, 0xE0, 0x03, 0xE0, 0x04, 0xE0, 0x04, 0xE0, 0x04, 0xD0, 0x04, 0xD0 - .byte 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x08, 0xE0, 0x08, 0xE0 + .short 0xE002, 0xE002, 0xE003, 0xE003, 0xE004, 0xE004, 0xD004, 0xD004 + .short 0xE007, 0xE007, 0xE007, 0xE008, 0xE008 .global UNK_020F9DC4 UNK_020F9DC4: ; 0x020F9DC4 - .byte 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0, 0x04, 0xD0 - .byte 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x08, 0xE0, 0x08, 0xE0 + .short 0xD004, 0xD004, 0xD004, 0xD004, 0xD004, 0xD004, 0xD004, 0xD004 + .short 0xE007, 0xE007, 0xE007, 0xE008, 0xE008 .global UNK_020F9DDE UNK_020F9DDE: ; 0x020F9DDE - .byte 0xE3, 0x00, 0xE4, 0x00, 0xF9, 0x00, 0xF8, 0x00, 0xE5, 0x00, 0xE6, 0x00, 0xF5, 0x00, 0xF6, 0x00 - .byte 0xF7, 0x00, 0xE7, 0x00, 0x01, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xFF, 0xFF, 0x00, 0x00 + .short 0x00E3, 0x00E4, 0x00F9, 0x00F8, 0x00E5, 0x00E6, 0x00F5, 0x00F6 + .short 0x00F7, 0x00E7, 0x0001, 0x00EE, 0x00EF, 0xFFFF, 0x0000 .global UNK_020F9DFC UNK_020F9DFC: ; 0x020F9DFC @@ -64,33 +91,33 @@ UNK_020F9DFC: ; 0x020F9DFC .global UNK_020F9E18 UNK_020F9E18: ; 0x020F9E18 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE + .short 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9E34 UNK_020F9E34: ; 0x020F9E34 - .byte 0x07, 0x01, 0x08, 0x01, 0x09, 0x01, 0x0A, 0x01, 0x0B, 0x01, 0x0C, 0x01, 0x0D, 0x01, 0x0E, 0x01 - .byte 0x11, 0x01, 0x0F, 0x01, 0x10, 0x01, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF + .short 0x0107, 0x0108, 0x0109, 0x010A, 0x010B, 0x010C, 0x010D, 0x010E + .short 0x0111, 0x010F, 0x0110, 0x0001, 0x0001, 0xFFFF .global UNK_020F9E50 UNK_020F9E50: ; 0x020F9E50 - .byte 0x21, 0x01, 0x22, 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x01, 0x27, 0x01, 0x28, 0x01 - .byte 0x29, 0x01, 0x2A, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126, 0x0127, 0x0128 + .short 0x0129, 0x012A, 0x01DE, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9E6C UNK_020F9E6C: ; 0x020F9E6C - .byte 0x2B, 0x01, 0x2C, 0x01, 0x2D, 0x01, 0x2E, 0x01, 0x2F, 0x01, 0x30, 0x01, 0x31, 0x01, 0x32, 0x01 - .byte 0x33, 0x01, 0x34, 0x01, 0xDE, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0xFF, 0xFF + .short 0x012B, 0x012C, 0x012D, 0x012E, 0x012F, 0x0130, 0x0131, 0x0132 + .short 0x0133, 0x0134, 0x01DE, 0x01AD, 0x01AE, 0xFFFF .global UNK_020F9E88 UNK_020F9E88: ; 0x020F9E88 - .byte 0x35, 0x01, 0x36, 0x01, 0x37, 0x01, 0x38, 0x01, 0x39, 0x01, 0x3A, 0x01, 0x3B, 0x01, 0x3C, 0x01 - .byte 0x3D, 0x01, 0x3E, 0x01, 0xDE, 0x01, 0xB3, 0x01, 0xBE, 0x01, 0xFF, 0xFF + .short 0x0135, 0x0136, 0x0137, 0x0138, 0x0139, 0x013A, 0x013B, 0x013C + .short 0x013D, 0x013E, 0x01DE, 0x01B3, 0x01BE, 0xFFFF .global UNK_020F9EA4 UNK_020F9EA4: ; 0x020F9EA4 - .byte 0x3F, 0x01, 0x40, 0x01, 0x41, 0x01, 0x42, 0x01, 0x43, 0x01, 0x44, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xBB, 0x01, 0xBC, 0x01, 0xFF, 0xFF + .short 0x013F, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x01DE, 0x01DE + .short 0x01DE, 0x01DE, 0x01DE, 0x01BB, 0x01BC, 0xFFFF .global UNK_020F9EC0 UNK_020F9EC0: ; 0x020F9EC0 @@ -99,38 +126,38 @@ UNK_020F9EC0: ; 0x020F9EC0 .global UNK_020F9EDC UNK_020F9EDC: ; 0x020F9EDC - .byte 0x45, 0x01, 0x46, 0x01, 0x47, 0x01, 0x48, 0x01, 0x49, 0x01, 0x4A, 0x01, 0x4B, 0x01, 0x4C, 0x01 - .byte 0x4D, 0x01, 0x4E, 0x01, 0xDE, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0xFF, 0xFF + .short 0x0145, 0x0146, 0x0147, 0x0148, 0x0149, 0x014A, 0x014B, 0x014C + .short 0x014D, 0x014E, 0x01DE, 0x01AD, 0x01AE, 0xFFFF .global UNK_020F9EF8 UNK_020F9EF8: ; 0x020F9EF8 - .byte 0x4F, 0x01, 0x50, 0x01, 0x51, 0x01, 0x52, 0x01, 0x53, 0x01, 0x54, 0x01, 0x55, 0x01, 0x56, 0x01 - .byte 0x57, 0x01, 0x58, 0x01, 0xDE, 0x01, 0xB3, 0x01, 0xBE, 0x01, 0xFF, 0xFF + .short 0x014F, 0x0150, 0x0151, 0x0152, 0x0153, 0x0154, 0x0155, 0x0156 + .short 0x0157, 0x0158, 0x01DE, 0x01B3, 0x01BE, 0xFFFF .global UNK_020F9F14 UNK_020F9F14: ; 0x020F9F14 - .byte 0xFF, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03, 0x01, 0xFC, 0x00, 0xFA, 0x00, 0xFD, 0x00 - .byte 0xFB, 0x00, 0xFE, 0x00, 0x05, 0x01, 0x01, 0x00, 0x01, 0x00, 0xFF, 0xFF + .short 0x00FF, 0x0100, 0x0101, 0x0102, 0x0103, 0x00FC, 0x00FA, 0x00FD + .short 0x00FB, 0x00FE, 0x0105, 0x0001, 0x0001, 0xFFFF .global UNK_020F9F30 UNK_020F9F30: ; 0x020F9F30 - .byte 0xE8, 0x00, 0xE9, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xEC, 0x00, 0xED, 0x00, 0xF0, 0x00, 0xF1, 0x00 - .byte 0xF2, 0x00, 0xF3, 0x00, 0xF4, 0x00, 0x06, 0x01, 0x04, 0x01, 0xFF, 0xFF + .short 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00F0, 0x00F1 + .short 0x00F2, 0x00F3, 0x00F4, 0x0106, 0x0104, 0xFFFF .global UNK_020F9F4C UNK_020F9F4C: ; 0x020F9F4C - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE + .short 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9F68 UNK_020F9F68: ; 0x020F9F68 - .byte 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0xA6, 0x00, 0xA7, 0x00, 0xA8, 0x00, 0xA9, 0x00 - .byte 0xAA, 0x00, 0xAB, 0x00, 0x01, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xFF, 0xFF + .short 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9 + .short 0x00AA, 0x00AB, 0x0001, 0x00E1, 0x00E2, 0xFFFF .global UNK_020F9F84 UNK_020F9F84: ; 0x020F9F84 - .byte 0xAD, 0x01, 0xAE, 0x01, 0xC4, 0x01, 0xC5, 0x01, 0xAB, 0x01, 0xAC, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xBB, 0x01, 0xBC, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01AD, 0x01AE, 0x01C4, 0x01C5, 0x01AB, 0x01AC, 0x01DE, 0x01DE + .short 0x01DE, 0x01BB, 0x01BC, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9FA0 UNK_020F9FA0: ; 0x020F9FA0 @@ -139,33 +166,33 @@ UNK_020F9FA0: ; 0x020F9FA0 .global UNK_020F9FBC UNK_020F9FBC: ; 0x020F9FBC - .byte 0xB4, 0x01, 0xB5, 0x01, 0xB2, 0x01, 0xB3, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01B4, 0x01B5, 0x01B2, 0x01B3, 0x01B9, 0x01BA, 0x01DE, 0x01DE + .short 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9FD8 UNK_020F9FD8: ; 0x020F9FD8 - .byte 0xAF, 0x01, 0xB0, 0x01, 0xC3, 0x01, 0xD0, 0x01, 0xC0, 0x01, 0xD2, 0x01, 0xBD, 0x01, 0xBE, 0x01 - .byte 0xBF, 0x01, 0xB1, 0x01, 0xC1, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01AF, 0x01B0, 0x01C3, 0x01D0, 0x01C0, 0x01D2, 0x01BD, 0x01BE + .short 0x01BF, 0x01B1, 0x01C1, 0x01DE, 0x01DE, 0xFFFF .global UNK_020F9FF4 UNK_020F9FF4: ; 0x020F9FF4 - .byte 0xCB, 0x01, 0xCC, 0x01, 0xCD, 0x01, 0xCE, 0x01, 0xCF, 0x01, 0xC6, 0x01, 0xC8, 0x01, 0xC9, 0x01 - .byte 0xC7, 0x01, 0xCA, 0x01, 0xD1, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01CB, 0x01CC, 0x01CD, 0x01CE, 0x01CF, 0x01C6, 0x01C8, 0x01C9 + .short 0x01C7, 0x01CA, 0x01D1, 0x01DE, 0x01DE, 0xFFFF .global UNK_020FA010 UNK_020FA010: ; 0x020FA010 - .byte 0x21, 0x01, 0x22, 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x26, 0x01, 0x27, 0x01, 0x28, 0x01 - .byte 0x29, 0x01, 0x2A, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0126, 0x0127, 0x0128 + .short 0x0129, 0x012A, 0x01DE, 0x01DE, 0x01DE, 0xFFFF .global UNK_020FA02C UNK_020FA02C: ; 0x020FA02C - .byte 0xD3, 0x01, 0xD4, 0x01, 0xD5, 0x01, 0xD6, 0x01, 0xD7, 0x01, 0xD8, 0x01, 0xD9, 0x01, 0xDA, 0x01 - .byte 0xDD, 0x01, 0xDB, 0x01, 0xDC, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xFF, 0xFF + .short 0x01D3, 0x01D4, 0x01D5, 0x01D6, 0x01D7, 0x01D8, 0x01D9, 0x01DA + .short 0x01DD, 0x01DB, 0x01DC, 0x01DE, 0x01DE, 0xFFFF .global UNK_020FA048 UNK_020FA048: ; 0x020FA048 - .byte 0x59, 0x01, 0x5A, 0x01, 0x5B, 0x01, 0x5C, 0x01, 0x5D, 0x01, 0x5E, 0x01, 0xDE, 0x01, 0xDE, 0x01 - .byte 0xDE, 0x01, 0xDE, 0x01, 0xDE, 0x01, 0xBB, 0x01, 0xBC, 0x01, 0xFF, 0xFF + .short 0x0159, 0x015A, 0x015B, 0x015C, 0x015D, 0x015E, 0x01DE, 0x01DE + .short 0x01DE, 0x01DE, 0x01DE, 0x01BB, 0x01BC, 0xFFFF .global UNK_020FA064 UNK_020FA064: ; 0x020FA064 @@ -176,26 +203,26 @@ UNK_020FA064: ; 0x020FA064 .global UNK_020FA0A0 UNK_020FA0A0: ; 0x020FA0A0 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .short 0x0000, 0x0000, 0x0001, 0x0000, 0x0002, 0x0000, 0x0003, 0x0000 + .short 0x0004, 0x0000, 0x0005, 0x0000, 0x0006, 0x0000, 0x0003, 0x0000 .global UNK_020FA0C0 UNK_020FA0C0: ; 0x020FA0C0 - .byte 0x21, 0x01, 0x22, 0x01, 0x23, 0x01, 0x24, 0x01, 0x25, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0xFF, 0xFF + .short 0x0121, 0x0122, 0x0123, 0x0124, 0x0125, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0xFFFF .global UNK_020FA0E4 UNK_020FA0E4: ; 0x020FA0E4 - .byte 0x26, 0x01, 0x27, 0x01, 0x28, 0x01, 0x29, 0x01, 0x2A, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0xFF, 0xFF + .short 0x0126, 0x0127, 0x0128, 0x0129, 0x012A, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0xFFFF .global UNK_020FA108 UNK_020FA108: ; 0x020FA108 - .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0xFF, 0xFF + .short 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001 + .short 0x0001, 0xFFFF .global UNK_020FA12C UNK_020FA12C: ; 0x020FA12C @@ -205,122 +232,440 @@ UNK_020FA12C: ; 0x020FA12C .global UNK_020FA154 UNK_020FA154: ; 0x020FA154 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_020FA158 -UNK_020FA158: ; 0x020FA158 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 + .word 0x00000000, 0x00000000 + .word 0x00000000, 0xFFFFFFFF + .word 0x00000000, 0x00000001 + .word 0xFFFFFFFF, 0x00000000 + .word 0x00000001, 0x00000000 .global UNK_020FA17C UNK_020FA17C: ; 0x020FA17C - .byte 0x31, 0x00 - - .global UNK_020FA17E -UNK_020FA17E: ; 0x020FA17E - .byte 0x32, 0x00, 0x34, 0x00, 0x35, 0x00, 0x37, 0x00, 0x38, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3D, 0x00 - .byte 0x3E, 0x00, 0x81, 0x00, 0x82, 0x00, 0x84, 0x00, 0x85, 0x00, 0x87, 0x00, 0x88, 0x00, 0x8A, 0x00 - .byte 0x8B, 0x00, 0x8D, 0x00, 0x8E, 0x00 + .short 0x0031, 0x0032 + .short 0x0034, 0x0035 + .short 0x0037, 0x0038 + .short 0x003A, 0x003B + .short 0x003D, 0x003E + .short 0x0081, 0x0082 + .short 0x0084, 0x0085 + .short 0x0087, 0x0088 + .short 0x008A, 0x008B + .short 0x008D, 0x008E .global UNK_020FA1A4 UNK_020FA1A4: ; 0x020FA1A4 - .byte 0x24, 0x00 - - .global UNK_020FA1A6 -UNK_020FA1A6: ; 0x020FA1A6 - .byte 0x26, 0x00, 0x74, 0x00, 0x76, 0x00, 0x32, 0x00, 0x31, 0x00, 0x35, 0x00, 0x34, 0x00, 0x38, 0x00 - .byte 0x37, 0x00, 0x3B, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x3D, 0x00, 0x82, 0x00, 0x81, 0x00, 0x85, 0x00 - .byte 0x84, 0x00, 0x88, 0x00, 0x87, 0x00, 0x8B, 0x00, 0x8A, 0x00, 0x8E, 0x00, 0x8D, 0x00 + .short 0x0024, 0x0026 + .short 0x0074, 0x0076 + .short 0x0032, 0x0031 + .short 0x0035, 0x0034 + .short 0x0038, 0x0037 + .short 0x003B, 0x003A + .short 0x003E, 0x003D + .short 0x0082, 0x0081 + .short 0x0085, 0x0084 + .short 0x0088, 0x0087 + .short 0x008B, 0x008A + .short 0x008E, 0x008D .global UNK_020FA1D4 UNK_020FA1D4: ; 0x020FA1D4 - .byte 0x04, 0x00, 0x00, 0x00 + .word 0x00000004 .global UNK_020FA1D8 UNK_020FA1D8: ; 0x020FA1D8 - .byte 0x44, 0x00, 0x00, 0x00 + .word 0x00000044 .global UNK_020FA1DC UNK_020FA1DC: ; 0x020FA1DC - .byte 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00 - .byte 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .word 0x00000003, 0x00000001 + .word 0x00000024, 0x00000044 + .word 0x00000008, 0x00000001 + .word 0x00000044, 0x00000044 + .word 0x0000000D, 0x00000001 + .word 0x00000000, 0x000000C8 + .word 0x00000012, 0x00000001 + .word 0x00000065, 0x00000044 + .word 0x00000014, 0x00000001 .global UNK_020FA224 UNK_020FA224: ; 0x020FA224 - .byte 0x88, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xB0, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x1A, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word 0x00000088, 0x00000044, 0x00000017, 0x00000001 + .word 0x000000B0, 0x00000044, 0x00000019, 0x00000001 + .word 0x00000016, 0x00000038, 0x00000025, 0x00000002 + .word 0x0000001A, 0x0000005B, 0x00000027, 0x00000000 .global UNK_020FA264 UNK_020FA264: ; 0x020FA264 - .byte 0x19, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x39, 0x3C, 0x00, 0x00, 0x02, 0x00, 0x59, 0x3C, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x04, 0x00, 0x9D, 0x3C, 0x01, 0x00, 0x08, 0x00, 0xC5, 0x3C - .byte 0x01, 0x00, 0x0B, 0x00, 0x1C, 0x58, 0x02, 0x00, 0x00, 0x01, 0x2C, 0x58, 0x02, 0x00, 0x01, 0x01 - .byte 0x3C, 0x58, 0x02, 0x00, 0x02, 0x01, 0x4C, 0x58, 0x02, 0x00, 0x03, 0x01, 0x5C, 0x58, 0x02, 0x00 - .byte 0x04, 0x01, 0x6C, 0x58, 0x02, 0x00, 0x05, 0x01, 0x7C, 0x58, 0x02, 0x00, 0x06, 0x01, 0x8C, 0x58 - .byte 0x02, 0x00, 0x07, 0x01, 0x9C, 0x58, 0x02, 0x00, 0x08, 0x01, 0xAC, 0x58, 0x02, 0x00, 0x09, 0x01 - .byte 0xBC, 0x58, 0x02, 0x00, 0x0A, 0x01, 0xCC, 0x58, 0x02, 0x00, 0x0B, 0x01, 0xDC, 0x58, 0x02, 0x00 - .byte 0x0C, 0x01, 0x1C, 0x6B, 0x02, 0x00, 0x00, 0x02, 0x2C, 0x6B, 0x02, 0x00, 0x01, 0x02, 0x3C, 0x6B - .byte 0x02, 0x00, 0x02, 0x02, 0x4C, 0x6B, 0x02, 0x00, 0x03, 0x02, 0x5C, 0x6B, 0x02, 0x00, 0x04, 0x02 - .byte 0x6C, 0x6B, 0x02, 0x00, 0x05, 0x02, 0x7C, 0x6B, 0x02, 0x00, 0x06, 0x02, 0x8C, 0x6B, 0x02, 0x00 - .byte 0x07, 0x02, 0x9C, 0x6B, 0x02, 0x00, 0x08, 0x02, 0xAC, 0x6B, 0x02, 0x00, 0x09, 0x02, 0xBC, 0x6B - .byte 0x02, 0x00, 0x0A, 0x02, 0xCC, 0x6B, 0x02, 0x00, 0x0B, 0x02, 0xDC, 0x6B, 0x02, 0x00, 0x0C, 0x02 - .byte 0x1C, 0x7E, 0x02, 0x00, 0x00, 0x03, 0x2C, 0x7E, 0x02, 0x00, 0x01, 0x03, 0x3C, 0x7E, 0x02, 0x00 - .byte 0x02, 0x03, 0x4C, 0x7E, 0x02, 0x00, 0x03, 0x03, 0x5C, 0x7E, 0x02, 0x00, 0x04, 0x03, 0x6C, 0x7E - .byte 0x02, 0x00, 0x05, 0x03, 0x7C, 0x7E, 0x02, 0x00, 0x06, 0x03, 0x8C, 0x7E, 0x02, 0x00, 0x07, 0x03 - .byte 0x9C, 0x7E, 0x02, 0x00, 0x08, 0x03, 0xAC, 0x7E, 0x02, 0x00, 0x09, 0x03, 0xBC, 0x7E, 0x02, 0x00 - .byte 0x0A, 0x03, 0xCC, 0x7E, 0x02, 0x00, 0x0B, 0x03, 0xDC, 0x7E, 0x02, 0x00, 0x0C, 0x03, 0x1C, 0x91 - .byte 0x02, 0x00, 0x00, 0x04, 0x2C, 0x91, 0x02, 0x00, 0x01, 0x04, 0x3C, 0x91, 0x02, 0x00, 0x02, 0x04 - .byte 0x4C, 0x91, 0x02, 0x00, 0x03, 0x04, 0x5C, 0x91, 0x02, 0x00, 0x04, 0x04, 0x6C, 0x91, 0x02, 0x00 - .byte 0x05, 0x04, 0x7C, 0x91, 0x02, 0x00, 0x06, 0x04, 0x8C, 0x91, 0x02, 0x00, 0x07, 0x04, 0x9C, 0x91 - .byte 0x02, 0x00, 0x08, 0x04, 0xAC, 0x91, 0x02, 0x00, 0x09, 0x04, 0xBC, 0x91, 0x02, 0x00, 0x0A, 0x04 - .byte 0xCC, 0x91, 0x02, 0x00, 0x0B, 0x04, 0xDC, 0x91, 0x02, 0x00, 0x0C, 0x04, 0x1C, 0xA4, 0x02, 0x00 - .byte 0x00, 0x05, 0x2C, 0xA4, 0x02, 0x00, 0x01, 0x05, 0x3C, 0xA4, 0x02, 0x00, 0x02, 0x05, 0x4C, 0xA4 - .byte 0x02, 0x00, 0x03, 0x05, 0x5C, 0xA4, 0x02, 0x00, 0x04, 0x05, 0x6C, 0xA4, 0x02, 0x00, 0x05, 0x05 - .byte 0x7C, 0xA4, 0x02, 0x00, 0x06, 0x05, 0x8C, 0xA4, 0x02, 0x00, 0x07, 0x05, 0x9C, 0xA4, 0x02, 0x00 - .byte 0x08, 0x05, 0xAC, 0xA4, 0x02, 0x00, 0x09, 0x05, 0xBC, 0xA4, 0x02, 0x00, 0x0A, 0x05, 0xCC, 0xA4 - .byte 0x02, 0x00, 0x0B, 0x05, 0xDC, 0xA4, 0x02, 0x00, 0x0C, 0x05 + .byte 0x19, 0x3C + .short 0x0000 + .byte 0x00, 0x00 + + .byte 0x39, 0x3C + .short 0x0000 + .byte 0x02, 0x00 + + .byte 0x59, 0x3C + .short 0x0000 + .byte 0x04, 0x00 + + .byte 0x00, 0xC0 + .short 0x0000 + .byte 0x04, 0x00 + + .byte 0x9D, 0x3C + .short 0x0001 + .byte 0x08, 0x00 + + .byte 0xC5, 0x3C + .short 0x0001 + .byte 0x0B, 0x00 + + .byte 0x1C, 0x58 + .short 0x0002 + .byte 0x00, 0x01 + + .byte 0x2C, 0x58 + .short 0x0002 + .byte 0x01, 0x01 + + .byte 0x3C, 0x58 + .short 0x0002 + .byte 0x02, 0x01 + + .byte 0x4C, 0x58 + .short 0x0002 + .byte 0x03, 0x01 + + .byte 0x5C, 0x58 + .short 0x0002 + .byte 0x04, 0x01 + + .byte 0x6C, 0x58 + .short 0x0002 + .byte 0x05, 0x01 + + .byte 0x7C, 0x58 + .short 0x0002 + .byte 0x06, 0x01 + + .byte 0x8C, 0x58 + .short 0x0002 + .byte 0x07, 0x01 + + .byte 0x9C, 0x58 + .short 0x0002 + .byte 0x08, 0x01 + + .byte 0xAC, 0x58 + .short 0x0002 + .byte 0x09, 0x01 + + .byte 0xBC, 0x58 + .short 0x0002 + .byte 0x0A, 0x01 + + .byte 0xCC, 0x58 + .short 0x0002 + .byte 0x0B, 0x01 + + .byte 0xDC, 0x58 + .short 0x0002 + .byte 0x0C, 0x01 + + .byte 0x1C, 0x6B + .short 0x0002 + .byte 0x00, 0x02 + + .byte 0x2C, 0x6B + .short 0x0002 + .byte 0x01, 0x02 + + .byte 0x3C, 0x6B + .short 0x0002 + .byte 0x02, 0x02 + + .byte 0x4C, 0x6B + .short 0x0002 + .byte 0x03, 0x02 + + .byte 0x5C, 0x6B + .short 0x0002 + .byte 0x04, 0x02 + + .byte 0x6C, 0x6B + .short 0x0002 + .byte 0x05, 0x02 + + .byte 0x7C, 0x6B + .short 0x0002 + .byte 0x06, 0x02 + + .byte 0x8C, 0x6B + .short 0x0002 + .byte 0x07, 0x02 + + .byte 0x9C, 0x6B + .short 0x0002 + .byte 0x08, 0x02 + + .byte 0xAC, 0x6B + .short 0x0002 + .byte 0x09, 0x02 + + .byte 0xBC, 0x6B + .short 0x0002 + .byte 0x0A, 0x02 + + .byte 0xCC, 0x6B + .short 0x0002 + .byte 0x0B, 0x02 + + .byte 0xDC, 0x6B + .short 0x0002 + .byte 0x0C, 0x02 + + .byte 0x1C, 0x7E + .short 0x0002 + .byte 0x00, 0x03 + + .byte 0x2C, 0x7E + .short 0x0002 + .byte 0x01, 0x03 + + .byte 0x3C, 0x7E + .short 0x0002 + .byte 0x02, 0x03 + + .byte 0x4C, 0x7E + .short 0x0002 + .byte 0x03, 0x03 + + .byte 0x5C, 0x7E + .short 0x0002 + .byte 0x04, 0x03 + + .byte 0x6C, 0x7E + .short 0x0002 + .byte 0x05, 0x03 + + .byte 0x7C, 0x7E + .short 0x0002 + .byte 0x06, 0x03 + + .byte 0x8C, 0x7E + .short 0x0002 + .byte 0x07, 0x03 + + .byte 0x9C, 0x7E + .short 0x0002 + .byte 0x08, 0x03 + + .byte 0xAC, 0x7E + .short 0x0002 + .byte 0x09, 0x03 + + .byte 0xBC, 0x7E + .short 0x0002 + .byte 0x0A, 0x03 + + .byte 0xCC, 0x7E + .short 0x0002 + .byte 0x0B, 0x03 + + .byte 0xDC, 0x7E + .short 0x0002 + .byte 0x0C, 0x03 + + .byte 0x1C, 0x91 + .short 0x0002 + .byte 0x00, 0x04 + + .byte 0x2C, 0x91 + .short 0x0002 + .byte 0x01, 0x04 + + .byte 0x3C, 0x91 + .short 0x0002 + .byte 0x02, 0x04 + + .byte 0x4C, 0x91 + .short 0x0002 + .byte 0x03, 0x04 + + .byte 0x5C, 0x91 + .short 0x0002 + .byte 0x04, 0x04 + + .byte 0x6C, 0x91 + .short 0x0002 + .byte 0x05, 0x04 + + .byte 0x7C, 0x91 + .short 0x0002 + .byte 0x06, 0x04 + + .byte 0x8C, 0x91 + .short 0x0002 + .byte 0x07, 0x04 + + .byte 0x9C, 0x91 + .short 0x0002 + .byte 0x08, 0x04 + + .byte 0xAC, 0x91 + .short 0x0002 + .byte 0x09, 0x04 + + .byte 0xBC, 0x91 + .short 0x0002 + .byte 0x0A, 0x04 + + .byte 0xCC, 0x91 + .short 0x0002 + .byte 0x0B, 0x04 + + .byte 0xDC, 0x91 + .short 0x0002 + .byte 0x0C, 0x04 + + .byte 0x1C, 0xA4 + .short 0x0002 + .byte 0x00, 0x05 + + .byte 0x2C, 0xA4 + .short 0x0002 + .byte 0x01, 0x05 + + .byte 0x3C, 0xA4 + .short 0x0002 + .byte 0x02, 0x05 + + .byte 0x4C, 0xA4 + .short 0x0002 + .byte 0x03, 0x05 + + .byte 0x5C, 0xA4 + .short 0x0002 + .byte 0x04, 0x05 + + .byte 0x6C, 0xA4 + .short 0x0002 + .byte 0x05, 0x05 + + .byte 0x7C, 0xA4 + .short 0x0002 + .byte 0x06, 0x05 + + .byte 0x8C, 0xA4 + .short 0x0002 + .byte 0x07, 0x05 + + .byte 0x9C, 0xA4 + .short 0x0002 + .byte 0x08, 0x05 + + .byte 0xAC, 0xA4 + .short 0x0002 + .byte 0x09, 0x05 + + .byte 0xBC, 0xA4 + .short 0x0002 + .byte 0x0A, 0x05 + + .byte 0xCC, 0xA4 + .short 0x0002 + .byte 0x0B, 0x05 + + .byte 0xDC, 0xA4 + .short 0x0002 + .byte 0x0C, 0x05 .global UNK_020FA40E UNK_020FA40E: ; 0x020FA40E - .byte 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x05, 0x00, 0x01, 0x00, 0x04, 0x00, 0x07, 0x00, 0x01, 0x00 - .byte 0x06, 0x00, 0x09, 0x00, 0x01, 0x00, 0x08, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x0A, 0x00, 0x53, 0x00 - .byte 0x01, 0x00, 0x52, 0x00, 0x55, 0x00, 0x01, 0x00, 0x54, 0x00, 0x57, 0x00, 0x01, 0x00, 0x56, 0x00 - .byte 0x59, 0x00, 0x01, 0x00, 0x58, 0x00, 0x5B, 0x00, 0x01, 0x00, 0x5A, 0x00, 0x45, 0x00, 0x01, 0x00 - .byte 0x44, 0x00, 0x47, 0x00, 0x01, 0x00, 0x46, 0x00, 0x49, 0x00, 0x01, 0x00, 0x48, 0x00, 0x95, 0x00 - .byte 0x01, 0x00, 0x94, 0x00, 0x97, 0x00, 0x01, 0x00, 0x96, 0x00, 0x99, 0x00, 0x01, 0x00, 0x98, 0x00 - .byte 0xAC, 0x00, 0x01, 0x00, 0xC6, 0x00, 0xAD, 0x00, 0x01, 0x00, 0xC7, 0x00, 0xAE, 0x00, 0x01, 0x00 - .byte 0xC8, 0x00, 0xAF, 0x00, 0x01, 0x00, 0xC9, 0x00, 0xB0, 0x00, 0x01, 0x00, 0xCA, 0x00, 0xB1, 0x00 - .byte 0x01, 0x00, 0xCB, 0x00, 0xB2, 0x00, 0x01, 0x00, 0xCC, 0x00, 0xB3, 0x00, 0x01, 0x00, 0xCD, 0x00 - .byte 0xB4, 0x00, 0x01, 0x00, 0xCE, 0x00, 0xB5, 0x00, 0x01, 0x00, 0xCF, 0x00, 0xB6, 0x00, 0x01, 0x00 - .byte 0xD0, 0x00, 0xB7, 0x00, 0x01, 0x00, 0xD1, 0x00, 0xB8, 0x00, 0x01, 0x00, 0xD2, 0x00, 0xB9, 0x00 - .byte 0x01, 0x00, 0xD3, 0x00, 0xBA, 0x00, 0x01, 0x00, 0xD4, 0x00, 0xBB, 0x00, 0x01, 0x00, 0xD5, 0x00 - .byte 0xBC, 0x00, 0x01, 0x00, 0xD6, 0x00, 0xBD, 0x00, 0x01, 0x00, 0xD7, 0x00, 0xBE, 0x00, 0x01, 0x00 - .byte 0xD8, 0x00, 0xBF, 0x00, 0x01, 0x00, 0xD9, 0x00, 0xC0, 0x00, 0x01, 0x00, 0xDA, 0x00, 0xC1, 0x00 - .byte 0x01, 0x00, 0xDB, 0x00, 0xC2, 0x00, 0x01, 0x00, 0xDC, 0x00, 0xC3, 0x00, 0x01, 0x00, 0xDD, 0x00 - .byte 0xC4, 0x00, 0x01, 0x00, 0xDE, 0x00, 0xC5, 0x00, 0x01, 0x00, 0xDF, 0x00, 0x25, 0x00, 0x26, 0x00 - .byte 0x24, 0x00, 0x75, 0x00, 0x76, 0x00, 0x74, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x01, 0x00, 0x0E, 0x00 - .byte 0x0F, 0x00, 0x01, 0x00, 0x10, 0x00, 0x11, 0x00, 0x01, 0x00, 0x12, 0x00, 0x13, 0x00, 0x01, 0x00 - .byte 0x14, 0x00, 0x15, 0x00, 0x01, 0x00, 0x16, 0x00, 0x17, 0x00, 0x01, 0x00, 0x18, 0x00, 0x19, 0x00 - .byte 0x01, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x01, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x01, 0x00, 0x1E, 0x00 - .byte 0x1F, 0x00, 0x01, 0x00, 0x20, 0x00, 0x21, 0x00, 0x01, 0x00, 0x22, 0x00, 0x23, 0x00, 0x01, 0x00 - .byte 0x27, 0x00, 0x28, 0x00, 0x01, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x01, 0x00, 0x5C, 0x00, 0x5D, 0x00 - .byte 0x01, 0x00, 0x5E, 0x00, 0x5F, 0x00, 0x01, 0x00, 0x60, 0x00, 0x61, 0x00, 0x01, 0x00, 0x62, 0x00 - .byte 0x63, 0x00, 0x01, 0x00, 0x64, 0x00, 0x65, 0x00, 0x01, 0x00, 0x66, 0x00, 0x67, 0x00, 0x01, 0x00 - .byte 0x68, 0x00, 0x69, 0x00, 0x01, 0x00, 0x6A, 0x00, 0x6B, 0x00, 0x01, 0x00, 0x6C, 0x00, 0x6D, 0x00 - .byte 0x01, 0x00, 0x6E, 0x00, 0x6F, 0x00, 0x01, 0x00, 0x70, 0x00, 0x71, 0x00, 0x01, 0x00, 0x72, 0x00 - .byte 0x73, 0x00, 0x01, 0x00, 0x77, 0x00, 0x78, 0x00, 0x01, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x01, 0x00 - .byte 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00 - .byte 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x80, 0x00 - .byte 0x81, 0x00, 0x82, 0x00, 0x83, 0x00, 0x84, 0x00, 0x85, 0x00, 0x86, 0x00, 0x87, 0x00, 0x88, 0x00 - .byte 0x89, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x00, 0x00 + .short 0x0003, 0x0001, 0x0002 + .short 0x0005, 0x0001, 0x0004 + .short 0x0007, 0x0001, 0x0006 + .short 0x0009, 0x0001, 0x0008 + .short 0x000B, 0x0001, 0x000A + .short 0x0053, 0x0001, 0x0052 + .short 0x0055, 0x0001, 0x0054 + .short 0x0057, 0x0001, 0x0056 + .short 0x0059, 0x0001, 0x0058 + .short 0x005B, 0x0001, 0x005A + .short 0x0045, 0x0001, 0x0044 + .short 0x0047, 0x0001, 0x0046 + .short 0x0049, 0x0001, 0x0048 + .short 0x0095, 0x0001, 0x0094 + .short 0x0097, 0x0001, 0x0096 + .short 0x0099, 0x0001, 0x0098 + .short 0x00AC, 0x0001, 0x00C6 + .short 0x00AD, 0x0001, 0x00C7 + .short 0x00AE, 0x0001, 0x00C8 + .short 0x00AF, 0x0001, 0x00C9 + .short 0x00B0, 0x0001, 0x00CA + .short 0x00B1, 0x0001, 0x00CB + .short 0x00B2, 0x0001, 0x00CC + .short 0x00B3, 0x0001, 0x00CD + .short 0x00B4, 0x0001, 0x00CE + .short 0x00B5, 0x0001, 0x00CF + .short 0x00B6, 0x0001, 0x00D0 + .short 0x00B7, 0x0001, 0x00D1 + .short 0x00B8, 0x0001, 0x00D2 + .short 0x00B9, 0x0001, 0x00D3 + .short 0x00BA, 0x0001, 0x00D4 + .short 0x00BB, 0x0001, 0x00D5 + .short 0x00BC, 0x0001, 0x00D6 + .short 0x00BD, 0x0001, 0x00D7 + .short 0x00BE, 0x0001, 0x00D8 + .short 0x00BF, 0x0001, 0x00D9 + .short 0x00C0, 0x0001, 0x00DA + .short 0x00C1, 0x0001, 0x00DB + .short 0x00C2, 0x0001, 0x00DC + .short 0x00C3, 0x0001, 0x00DD + .short 0x00C4, 0x0001, 0x00DE + .short 0x00C5, 0x0001, 0x00DF + .short 0x0025, 0x0026, 0x0024 + .short 0x0075, 0x0076, 0x0074 + .short 0x000C, 0x000D, 0x0001 + .short 0x000E, 0x000F, 0x0001 + .short 0x0010, 0x0011, 0x0001 + .short 0x0012, 0x0013, 0x0001 + .short 0x0014, 0x0015, 0x0001 + .short 0x0016, 0x0017, 0x0001 + .short 0x0018, 0x0019, 0x0001 + .short 0x001A, 0x001B, 0x0001 + .short 0x001C, 0x001D, 0x0001 + .short 0x001E, 0x001F, 0x0001 + .short 0x0020, 0x0021, 0x0001 + .short 0x0022, 0x0023, 0x0001 + .short 0x0027, 0x0028, 0x0001 + .short 0x0029, 0x002A, 0x0001 + .short 0x005C, 0x005D, 0x0001 + .short 0x005E, 0x005F, 0x0001 + .short 0x0060, 0x0061, 0x0001 + .short 0x0062, 0x0063, 0x0001 + .short 0x0064, 0x0065, 0x0001 + .short 0x0066, 0x0067, 0x0001 + .short 0x0068, 0x0069, 0x0001 + .short 0x006A, 0x006B, 0x0001 + .short 0x006C, 0x006D, 0x0001 + .short 0x006E, 0x006F, 0x0001 + .short 0x0070, 0x0071, 0x0001 + .short 0x0072, 0x0073, 0x0001 + .short 0x0077, 0x0078, 0x0001 + .short 0x0079, 0x007A, 0x0001 + .short 0x0030, 0x0031, 0x0032 + .short 0x0033, 0x0034, 0x0035 + .short 0x0036, 0x0037, 0x0038 + .short 0x0039, 0x003A, 0x003B + .short 0x003C, 0x003D, 0x003E + .short 0x0080, 0x0081, 0x0082 + .short 0x0083, 0x0084, 0x0085 + .short 0x0086, 0x0087, 0x0088 + .short 0x0089, 0x008A, 0x008B + .short 0x008C, 0x008D, 0x008E .global UNK_020FA5FC + .balign 4, 0 UNK_020FA5FC: ; 0x020FA5FC .word FUN_020772E8, FUN_020774EC, FUN_02077894, 0xFFFFFFFF @@ -336,31 +681,11 @@ UNK_02106058: ; 0x02106058 .global UNK_0210606C UNK_0210606C: ; 0x0210606C - .word UNK_020F9E6C - .word UNK_020F9E88 - .word UNK_020F9EA4 - .word UNK_020F9E18 - .word UNK_020F9E50 - .word UNK_020F9EDC - .word UNK_020F9EF8 - .word UNK_020FA048 - .word UNK_020F9F4C - .word UNK_020FA010 - .word UNK_020F9F84 - .word UNK_020F9FBC - .word UNK_020F9FD8 - .word UNK_020F9FF4 - .word UNK_020FA02C - .word UNK_020F9F68 - .word UNK_020F9DDE - .word UNK_020F9F30 - .word UNK_020F9F14 - .word UNK_020F9E34 - .word UNK_020FA0C0 - .word UNK_020FA0E4 - .word UNK_020FA108 - .word UNK_020FA108 - .word UNK_020FA108 + .word UNK_020F9E6C, UNK_020F9E88, UNK_020F9EA4, UNK_020F9E18, UNK_020F9E50 + .word UNK_020F9EDC, UNK_020F9EF8, UNK_020FA048, UNK_020F9F4C, UNK_020FA010 + .word UNK_020F9F84, UNK_020F9FBC, UNK_020F9FD8, UNK_020F9FF4, UNK_020FA02C + .word UNK_020F9F68, UNK_020F9DDE, UNK_020F9F30, UNK_020F9F14, UNK_020F9E34 + .word UNK_020FA0C0, UNK_020FA0E4, UNK_020FA108, UNK_020FA108, UNK_020FA108 .section .bss @@ -3424,7 +3749,7 @@ FUN_02078BE0: ; 0x02078BE0 mov r1, #0x0 bl FUN_02078BD0 add r4, r0, #0x0 - ldr r0, _02078C8C ; =UNK_020FA158 + ldr r0, _02078C8C ; =UNK_020FA154 + 4 ldr r1, [r5, #0x20] ldr r0, [r0, r6] mov r2, #0x6 @@ -3488,7 +3813,7 @@ _02078C84: pop {r3-r7, pc} nop _02078C88: .word UNK_020FA154 -_02078C8C: .word UNK_020FA158 +_02078C8C: .word UNK_020FA154 + 4 _02078C90: .word 0x0000D004 _02078C94: .word 0x0000E001 @@ -4776,7 +5101,7 @@ _0207969C: ldrh r0, [r1, #0x0] cmp r5, r0 bne _020796AE - ldr r0, _02079704 ; =UNK_020FA1A6 + ldr r0, _02079704 ; =UNK_020FA1A4 + 2 lsl r1, r2, #0x2 ldrh r0, [r0, r1] strh r0, [r6, r7] @@ -4795,7 +5120,7 @@ _020796BC: ldrh r0, [r1, #0x0] cmp r5, r0 bne _020796CE - ldr r0, _0207970C ; =UNK_020FA17E + ldr r0, _0207970C ; =UNK_020FA17C + 2 lsl r1, r2, #0x2 ldrh r0, [r0, r1] strh r0, [r6, r7] @@ -4829,9 +5154,9 @@ _020796F4: .word UNK_020FA40E _020796F8: .word 0x0000D001 _020796FC: .word 0x0000E006 _02079700: .word UNK_020FA1A4 -_02079704: .word UNK_020FA1A6 +_02079704: .word UNK_020FA1A4 + 2 _02079708: .word UNK_020FA17C -_0207970C: .word UNK_020FA17E +_0207970C: .word UNK_020FA17C + 2 thumb_func_start FUN_02079710 FUN_02079710: ; 0x02079710 -- cgit v1.2.3 From 9706c70916a6e08cbde0d4f56fea9812ea26ae73 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 Sep 2020 08:41:27 -0400 Subject: Decompile unk_02021FF8 --- arm9/asm/unk_02021FF8.s | 309 ---------------------------------------------- arm9/global.inc | 2 +- arm9/src/script_buffers.c | 4 +- arm9/src/unk_02021FF8.c | 176 ++++++++++++++++++++++++++ include/unk_02021FF8.h | 30 +++++ 5 files changed, 209 insertions(+), 312 deletions(-) delete mode 100644 arm9/asm/unk_02021FF8.s create mode 100644 arm9/src/unk_02021FF8.c create mode 100644 include/unk_02021FF8.h diff --git a/arm9/asm/unk_02021FF8.s b/arm9/asm/unk_02021FF8.s deleted file mode 100644 index 0609835c..00000000 --- a/arm9/asm/unk_02021FF8.s +++ /dev/null @@ -1,309 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020EE6CC -UNK_020EE6CC: ; 0x020EE6CC - .word FUN_020221EC - .word FUN_02022208 - - .text - - thumb_func_start FUN_02022030 -FUN_02022030: ; 0x02022030 - ldrh r1, [r0, #0x2] - cmp r1, #0x0 - beq _02022044 - ldrh r1, [r0, #0x8] - mov r0, #0xf1 - lsl r0, r0, #0x8 - cmp r1, r0 - bne _02022044 - mov r0, #0x1 - bx lr -_02022044: - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02022048 -FUN_02022048: ; 0x02022048 - push {r3-r7, lr} - add r4, r1, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - bl FUN_02022030 - cmp r0, #0x0 - beq _020220B2 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x0] - ldrh r0, [r0, #0x2] - add r1, #0x8 - ldr r7, _020220BC ; =0x000001FF - lsl r0, r0, #0x1 - add r3, r1, r0 - mov r0, #0x0 - add r4, #0xa - add r1, r0, #0x0 -_0202206C: - ldrh r2, [r4, #0x0] - asr r2, r0 - and r2, r7 - lsl r2, r2, #0x10 - add r0, #0x9 - lsr r2, r2, #0x10 - cmp r0, #0xf - blt _02022094 - add r4, r4, #0x2 - sub r0, #0xf - beq _02022094 - ldrh r6, [r4, #0x0] - mov r5, #0x9 - sub r5, r5, r0 - lsl r6, r5 - ldr r5, _020220BC ; =0x000001FF - and r5, r6 - orr r2, r5 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 -_02022094: - ldr r5, _020220BC ; =0x000001FF - cmp r2, r5 - beq _020220A2 - strh r2, [r3, #0x0] - add r3, r3, #0x2 - add r1, r1, #0x1 - b _0202206C -_020220A2: - ldr r0, _020220C0 ; =0x0000FFFF - strh r0, [r3, #0x0] - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x2] - add r1, r0, r1 - ldr r0, [sp, #0x0] - strh r1, [r0, #0x2] - pop {r3-r7, pc} -_020220B2: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl StringCat - pop {r3-r7, pc} - .balign 4 -_020220BC: .word 0x000001FF -_020220C0: .word 0x0000FFFF - - thumb_func_start FUN_020220C4 -FUN_020220C4: ; 0x020220C4 - push {r3-r7, lr} - add r7, r1, #0x0 - add r5, r0, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x0] - cmp r7, #0x0 - bne _020220D6 - bl ErrorHandling -_020220D6: - ldr r0, [sp, #0x18] - mov r1, #0x14 - bl AllocFromHeap - add r4, r0, #0x0 - beq _0202211C - str r5, [r4, #0x0] - str r7, [r4, #0x4] - ldr r0, [sp, #0x0] - str r6, [r4, #0x8] - str r0, [r4, #0xc] - ldr r0, [sp, #0x18] - lsl r1, r7, #0x2 - bl AllocFromHeap - str r0, [r4, #0x10] - cmp r0, #0x0 - beq _02022114 - mov r6, #0x0 - cmp r7, #0x0 - bls _0202211C - add r5, r6, #0x0 -_02022102: - ldr r0, [r4, #0x10] - add r0, r0, r5 - bl FUN_02022120 - add r6, r6, #0x1 - add r5, r5, #0x4 - cmp r6, r7 - blo _02022102 - b _0202211C -_02022114: - add r0, r4, #0x0 - bl FreeToHeap - mov r4, #0x0 -_0202211C: - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02022120 -FUN_02022120: ; 0x02022120 - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strh r1, [r0, #0x2] - bx lr - .balign 4 - - thumb_func_start FUN_0202212C -FUN_0202212C: ; 0x0202212C - push {r4, lr} - add r4, r0, #0x0 - bne _02022136 - bl ErrorHandling -_02022136: - ldr r0, [r4, #0x10] - bl FreeToHeap - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start FUN_02022144 -FUN_02022144: ; 0x02022144 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - bl FUN_02020A98 - str r0, [sp, #0x0] - cmp r0, #0x0 - beq _02022190 - bl FUN_02020AA4 - str r0, [sp, #0x4] - ldr r0, [r5, #0x4] - mov r6, #0x0 - cmp r0, #0x0 - bls _020221AE - add r4, r6, #0x0 -_02022164: - ldr r0, [r5, #0x10] - add r0, r0, r4 - ldrb r0, [r0, #0x1] - cmp r0, #0x0 - ldr r0, [r5, #0x0] - beq _02022178 - add r0, r0, r4 - bl FUN_02020A40 - b _0202217E -_02022178: - add r0, r0, r4 - bl FUN_02020A6C -_0202217E: - ldr r1, [r5, #0x10] - add r6, r6, #0x1 - add r1, r1, r4 - strb r0, [r1, #0x1] - ldr r0, [r5, #0x4] - add r4, r4, #0x4 - cmp r6, r0 - blo _02022164 - b _020221AE -_02022190: - ldr r0, [r5, #0x4] - mov r3, #0x0 - str r3, [sp, #0x4] - cmp r0, #0x0 - bls _020221AE - add r2, r3, #0x0 - add r1, r3, #0x0 -_0202219E: - ldr r0, [r5, #0x10] - add r3, r3, #0x1 - add r0, r0, r2 - strb r1, [r0, #0x1] - ldr r0, [r5, #0x4] - add r2, r2, #0x4 - cmp r3, r0 - blo _0202219E -_020221AE: - mov r4, #0x0 - cmp r0, #0x0 - bls _020221E4 - add r7, r4, #0x0 -_020221B6: - ldr r3, [r5, #0x10] - ldr r1, [sp, #0x0] - add r0, r3, r7 - ldrb r3, [r3, r7] - ldr r2, [sp, #0x4] - lsl r6, r3, #0x2 - ldr r3, _020221E8 ; =UNK_020EE6CC - ldr r3, [r3, r6] - blx r3 - add r1, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r1, r0 - beq _020221DA - ldr r2, [r5, #0xc] - ldr r3, [r5, #0x8] - add r0, r4, #0x0 - blx r3 -_020221DA: - ldr r0, [r5, #0x4] - add r4, r4, #0x1 - add r7, r7, #0x4 - cmp r4, r0 - blo _020221B6 -_020221E4: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_020221E8: .word UNK_020EE6CC - - thumb_func_start FUN_020221EC -FUN_020221EC: ; 0x020221EC - push {r3, lr} - ldrb r1, [r0, #0x1] - cmp r1, #0x0 - beq _02022202 - cmp r2, #0x0 - beq _02022202 - mov r1, #0x1 - bl FUN_0202223C - mov r0, #0x0 - pop {r3, pc} -_02022202: - mov r0, #0x0 - mvn r0, r0 - pop {r3, pc} - - thumb_func_start FUN_02022208 -FUN_02022208: ; 0x02022208 - push {r3, lr} - ldrb r2, [r0, #0x1] - cmp r2, #0x0 - beq _02022220 - ldrh r2, [r0, #0x2] - ldr r1, _02022238 ; =0x0000FFFF - cmp r2, r1 - bhs _0202221C - add r1, r2, #0x1 - strh r1, [r0, #0x2] -_0202221C: - mov r0, #0x2 - pop {r3, pc} -_02022220: - cmp r1, #0x0 - beq _0202222E - mov r1, #0x0 - bl FUN_0202223C - mov r0, #0x3 - pop {r3, pc} -_0202222E: - mov r1, #0x0 - bl FUN_0202223C - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_02022238: .word 0x0000FFFF - - thumb_func_start FUN_0202223C -FUN_0202223C: ; 0x0202223C - strb r1, [r0, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x2] - bx lr diff --git a/arm9/global.inc b/arm9/global.inc index 369083f7..8f1f4448 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1407,7 +1407,7 @@ .extern StringCat .extern StrAddChar .extern StrUpperFirstChar -.extern FUN_02022048 +.extern StringCat_HandleTrainerName .extern FUN_020220C4 .extern FUN_0202212C .extern FUN_02022144 diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index 0c1b3996..431f63b4 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -18,7 +18,7 @@ extern void * FUN_02024EC0(struct SaveBlock2 * sav2); extern u16 * FUN_02024EE8(void *); extern u32 GetCityNamesMsgdataIdByCountry(u32); extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1); -extern void FUN_02022048(struct String * dest, const struct String * src); +extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src); extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4); @@ -726,7 +726,7 @@ void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, str { u32 idx = MsgArray_ControlCodeGetField(cstr, 0); GF_ASSERT(idx < mgr->count); - FUN_02022048(dest, mgr->array[idx].msg); + StringCat_HandleTrainerName(dest, mgr->array[idx].msg); cstr = MsgArray_SkipControlCode(cstr); } else diff --git a/arm9/src/unk_02021FF8.c b/arm9/src/unk_02021FF8.c new file mode 100644 index 00000000..2fe37556 --- /dev/null +++ b/arm9/src/unk_02021FF8.c @@ -0,0 +1,176 @@ +#include "global.h" +#include "string16.h" +#include "heap.h" +#include "unk_02021FF8.h" + +#pragma thumb on + +BOOL String_IsTrainerName(struct String * string) +{ + return string->size != 0 && string->data[0] == 0xF100; +} + +void StringCat_HandleTrainerName(struct String * dest, struct String * src) +{ + if (String_IsTrainerName(src)) + { + u16 * dest_p = &dest->data[dest->size]; + u16 * src_p = &src->data[1]; + s32 bit = 0; + u32 outsize = 0; + u16 cur_char = 0; + + while (1) + { + cur_char = (u16)((*src_p >> bit) & 0x1FF); + bit += 9; + if (bit >= 15) + { + src_p++; + bit -= 15; + if (bit != 0) + { + cur_char |= (*src_p << (9 - bit)) & 0x1FF; + } + } + if (cur_char == 0x1FF) + break; + *dest_p++ = cur_char; + outsize++; + } + *dest_p = EOS; + dest->size += outsize; + } + else + StringCat(dest, src); +} + +struct UnkStruct_020220C4 * FUN_020220C4(u8 * a0, u32 a1, void (*a2)(s32, s32, u32), u32 a3, u32 a4) +{ + struct UnkStruct_020220C4 * ret; + s32 i; + GF_ASSERT(a1 != 0); + ret = AllocFromHeap(a4, sizeof(struct UnkStruct_020220C4)); + if (ret != NULL) + { + ret->field_0 = a0; + ret->field_4 = a1; + ret->field_8 = a2; + ret->field_C = a3; + ret->field_10 = AllocFromHeap(a4, a1 * sizeof(struct UnkStruct_020220C4_sub)); + if (ret->field_10 != NULL) + { + for (i = 0; i < a1; i++) + { + FUN_02022120(&ret->field_10[i]); + } + } + else + { + FreeToHeap(ret); + ret = NULL; + } + } + return ret; +} + +void FUN_02022120(struct UnkStruct_020220C4_sub * sub) +{ + sub->field_0 = 0; + sub->field_1 = 0; + sub->field_2 = 0; +} + +void FUN_0202212C(struct UnkStruct_020220C4 * unk) +{ + GF_ASSERT(unk != NULL); + FreeToHeap(unk->field_10); + FreeToHeap(unk); +} + +extern u16 FUN_02020A98(void); +extern u16 FUN_02020AA4(void); +extern u8 FUN_02020A40(u8 * a0); +extern u8 FUN_02020A6C(u8 * a0); + +s32 (*const UNK_020EE6CC[])(struct UnkStruct_020220C4_sub * a0, u32 a1, u32 a2) = { + FUN_020221EC, + FUN_02022208 +}; + +void FUN_02022144(struct UnkStruct_020220C4 * unk) +{ + u32 sp4; + u32 sp0 = FUN_02020A98(); + s32 i; + s32 r1; + if (sp0 != 0) + { + sp4 = FUN_02020AA4(); + for (i = 0; i < unk->field_4; i++) + { + u8 res; + if (unk->field_10[i].field_1 != 0) + { + res = FUN_02020A40(&unk->field_0[4 * i]); + } + else + { + res = FUN_02020A6C(&unk->field_0[4 * i]); + } + unk->field_10[i].field_1 = res; + } + } + else + { + sp4 = 0; + for (i = 0; i < unk->field_4; i++) + { + unk->field_10[i].field_1 = 0; + } + } + for (i = 0; i < unk->field_4; i++) + { + r1 = UNK_020EE6CC[unk->field_10[i].field_0](&unk->field_10[i], sp0, sp4); + if (r1 != -1) + { + unk->field_8(i, r1, unk->field_C); + } + } +} + +s32 FUN_020221EC(struct UnkStruct_020220C4_sub * a0, u32 a1, u32 a2) +{ +#pragma unused(a1) + if (a0->field_1 && a2) + { + FUN_0202223C(a0, 1); + return 0; + } + return -1; +} + +s32 FUN_02022208(struct UnkStruct_020220C4_sub * a0, u32 a1, u32 a2) +{ +#pragma unused(a2) + if (a0->field_1) + { + if (a0->field_2 < 0xFFFF) + a0->field_2++; + return 2; + } + else if (a1) + { + FUN_0202223C(a0, 0); + return 3; + } + FUN_0202223C(a0, 0); + return 1; +} + +void FUN_0202223C(struct UnkStruct_020220C4_sub * a0, u8 a1) +{ + a0->field_0 = a1; + a0->field_2 = 0; +} + diff --git a/include/unk_02021FF8.h b/include/unk_02021FF8.h new file mode 100644 index 00000000..59120668 --- /dev/null +++ b/include/unk_02021FF8.h @@ -0,0 +1,30 @@ +#ifndef POKEDIAMOND_UNK_02021FF8_H +#define POKEDIAMOND_UNK_02021FF8_H + +struct UnkStruct_020220C4_sub +{ + u8 field_0; + u8 field_1; + u16 field_2; +}; + +struct UnkStruct_020220C4 +{ + u8 * field_0; + u32 field_4; + void (*field_8)(s32, s32, u32); + u32 field_C; + struct UnkStruct_020220C4_sub * field_10; +}; + +BOOL String_IsTrainerName(struct String * string); +void StringCat_HandleTrainerName(struct String * dest, struct String * src); +struct UnkStruct_020220C4 * FUN_020220C4(u8 * a0, u32 a1, void (*a2)(s32, s32, u32), u32 a3, u32 a4); +void FUN_02022120(struct UnkStruct_020220C4_sub * sub); +void FUN_0202212C(struct UnkStruct_020220C4 * unk); +void FUN_02022144(struct UnkStruct_020220C4 * unk); +s32 FUN_020221EC(struct UnkStruct_020220C4_sub * a0, u32 a1, u32 a2); +s32 FUN_02022208(struct UnkStruct_020220C4_sub * a0, u32 a1, u32 a2); +void FUN_0202223C(struct UnkStruct_020220C4_sub * a0, u8 a1); + +#endif //POKEDIAMOND_UNK_02021FF8_H -- cgit v1.2.3