diff --git a/.travis/calcrom/calcrom.pl b/.travis/calcrom/calcrom.pl index c5972ae10854..1bc8bc74b49e 100755 --- a/.travis/calcrom/calcrom.pl +++ b/.travis/calcrom/calcrom.pl @@ -64,7 +64,7 @@ # This looks for every symbol with an address at the end of it. Some things are # given a name based on their type / location, but still have an unknown purpose. # For example, FooMap_EventScript_FFFFFFF. -my $partial_doc_cmd = "grep '[0-9a-fA-F]\\{6,7\\}'"; +my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,6\\}'"; my $count_cmd = "wc -l"; diff --git a/asm/librfu.s b/asm/librfu.s deleted file mode 100644 index 82fba2202eeb..000000000000 --- a/asm/librfu.s +++ /dev/null @@ -1,6490 +0,0 @@ - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start rfu_initializeAPI -rfu_initializeAPI: @ 82E3EB4 - push {r4-r7,lr} - adds r4, r0, 0 - mov r12, r2 - lsls r1, 16 - lsrs r2, r1, 16 - lsls r3, 24 - lsrs r7, r3, 24 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r4 - movs r1, 0x80 - lsls r1, 18 - cmp r0, r1 - bne _082E3ED4 - cmp r7, 0 - bne _082E3EDC -_082E3ED4: - movs r0, 0x3 - ands r0, r4 - cmp r0, 0 - beq _082E3EE0 -_082E3EDC: - movs r0, 0x2 - b _082E3FB8 -_082E3EE0: - cmp r7, 0 - beq _082E3EEC - ldr r3, =0x00000e64 - b _082E3EEE - .align 2, 0 - .pool -_082E3EEC: - ldr r3, =0x00000504 -_082E3EEE: - cmp r2, r3 - bcs _082E3EFC - movs r0, 0x1 - b _082E3FB8 - .align 2, 0 - .pool -_082E3EFC: - ldr r0, =gUnknown_03007890 - str r4, [r0] - ldr r1, =gUnknown_03007894 - adds r0, r4, 0 - adds r0, 0xB4 - str r0, [r1] - ldr r1, =gUnknown_03007898 - adds r0, 0x28 - str r0, [r1] - ldr r2, =gUnknown_03007880 - movs r1, 0xDE - lsls r1, 1 - adds r0, r4, r1 - str r0, [r2] - ldr r1, =gUnknown_03007870 - movs r3, 0xDF - lsls r3, 2 - adds r0, r4, r3 - str r0, [r1] - movs r5, 0x1 - adds r6, r2, 0 - adds r4, r1, 0 -_082E3F28: - lsls r2, r5, 2 - adds r3, r2, r6 - subs r1, r5, 0x1 - lsls r1, 2 - adds r0, r1, r6 - ldr r0, [r0] - adds r0, 0x70 - str r0, [r3] - adds r2, r4 - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1C - str r0, [r2] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _082E3F28 - ldr r0, =gUnknown_03007898 - ldr r1, [r0] - adds r1, 0xDC - ldr r4, =gUnknown_03007870 - ldr r0, [r4, 0xC] - adds r0, 0x1C - str r0, [r1] - mov r1, r12 - adds r2, r7, 0 - bl STWI_init_all - bl rfu_STC_clearAPIVariables - movs r5, 0 - ldr r3, =gUnknown_03007880 - movs r2, 0 -_082E3F6C: - lsls r1, r5, 2 - adds r0, r1, r3 - ldr r0, [r0] - str r2, [r0, 0x68] - str r2, [r0, 0x6C] - adds r1, r4 - ldr r0, [r1] - str r2, [r0, 0x14] - str r2, [r0, 0x18] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _082E3F6C - ldr r4, =sub_82E53F4 - movs r0, 0x2 - negs r0, r0 - ands r4, r0 - ldr r1, =gUnknown_03007898 - ldr r0, [r1] - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0x2F - ldr r5, =0x0000ffff -_082E3F9C: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r5 - bne _082E3F9C - ldr r1, [r1] - adds r0, r1, 0 - adds r0, 0x9 - str r0, [r1, 0x4] - movs r0, 0 -_082E3FB8: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_initializeAPI - - thumb_func_start rfu_STC_clearAPIVariables -rfu_STC_clearAPIVariables: @ 82E3FDC - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =0x04000208 - ldrh r0, [r1] - adds r7, r0, 0 - movs r6, 0 - strh r6, [r1] - ldr r5, =gUnknown_03007894 - ldr r1, [r5] - ldrb r4, [r1] - mov r0, sp - strh r6, [r0] - ldr r2, =0x01000014 - bl CpuSet - ldr r2, [r5] - movs r0, 0x8 - ands r4, r0 - movs r1, 0 - strb r4, [r2] - mov r0, sp - adds r0, 0x2 - strh r1, [r0] - ldr r4, =gUnknown_03007890 - ldr r1, [r4] - ldr r2, =0x0100005a - bl CpuSet - ldr r1, [r4] - movs r0, 0x4 - strb r0, [r1, 0x9] - ldr r0, [r5] - strb r6, [r0, 0x6] - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1] - bl rfu_clearAllSlot - ldr r0, [r5] - strb r6, [r0, 0x9] - movs r2, 0 - movs r3, 0 -_082E4030: - ldr r0, [r5] - lsls r1, r2, 1 - adds r0, 0x12 - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _082E4030 - ldr r0, =0x04000208 - strh r7, [r0] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_clearAPIVariables - - thumb_func_start rfu_REQ_PARENT_resumeRetransmitAndChange -rfu_REQ_PARENT_resumeRetransmitAndChange: @ 82E4064 - push {lr} - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - bl STWI_send_ResumeRetransmitAndChangeREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_PARENT_resumeRetransmitAndChange - - thumb_func_start rfu_UNI_PARENT_getDRAC_ACK -rfu_UNI_PARENT_getDRAC_ACK: @ 82E4078 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0 - strb r0, [r4] - ldr r5, =gUnknown_03007890 - ldr r0, [r5] - ldrb r0, [r0] - cmp r0, 0x1 - beq _082E4094 - movs r0, 0xC0 - lsls r0, 2 - b _082E40BA - .align 2, 0 - .pool -_082E4094: - bl rfu_getSTWIRecvBuffer - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0x28 - beq _082E40A4 - cmp r0, 0x36 - bne _082E40B8 -_082E40A4: - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _082E40B0 - ldr r0, [r5] - ldrb r0, [r0, 0x2] - b _082E40B2 -_082E40B0: - ldrb r0, [r1, 0x4] -_082E40B2: - strb r0, [r4] - movs r0, 0 - b _082E40BA -_082E40B8: - movs r0, 0x10 -_082E40BA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end rfu_UNI_PARENT_getDRAC_ACK - - thumb_func_start rfu_setTimerInterrupt -rfu_setTimerInterrupt: @ 82E40C0 - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r1, r2, 0 - bl STWI_init_timer - pop {r0} - bx r0 - thumb_func_end rfu_setTimerInterrupt - - thumb_func_start rfu_getSTWIRecvBuffer -rfu_getSTWIRecvBuffer: @ 82E40D4 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - bx lr - .align 2, 0 - .pool - thumb_func_end rfu_getSTWIRecvBuffer - - thumb_func_start rfu_setMSCCallback -rfu_setMSCCallback: @ 82E40E4 - push {lr} - bl STWI_set_Callback_S - pop {r0} - bx r0 - thumb_func_end rfu_setMSCCallback - - thumb_func_start rfu_setREQCallback -rfu_setREQCallback: @ 82E40F0 - push {lr} - adds r1, r0, 0 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - str r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bl rfu_enableREQCallback - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_setREQCallback - - thumb_func_start rfu_enableREQCallback -rfu_enableREQCallback: @ 82E410C - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _082E4124 - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - ldrb r1, [r2] - movs r0, 0x8 - orrs r0, r1 - b _082E412E - .align 2, 0 - .pool -_082E4124: - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - ldrb r1, [r2] - movs r0, 0xF7 - ands r0, r1 -_082E412E: - strb r0, [r2] - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_enableREQCallback - - thumb_func_start rfu_STC_REQ_callback -rfu_STC_REQ_callback: @ 82E4138 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - strh r4, [r0, 0x1C] - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _082E4166 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r2 -_082E4166: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_REQ_callback - - thumb_func_start rfu_CB_defaultCallback -rfu_CB_defaultCallback: @ 82E4178 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r0, 0xFF - bne _082E41D4 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _082E41A2 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - ldr r2, [r0] - movs r0, 0xFF - adds r1, r3, 0 - bl _call_via_r2 -_082E41A2: - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r1, [r0, 0x2] - ldrb r0, [r0, 0x3] - adds r5, r0, 0 - orrs r5, r1 - movs r4, 0 -_082E41B0: - adds r0, r5, 0 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _082E41C2 - adds r0, r4, 0 - bl rfu_STC_removeLinkData -_082E41C2: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E41B0 - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_082E41D4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_defaultCallback - - thumb_func_start rfu_waitREQComplete -rfu_waitREQComplete: @ 82E41E8 - push {lr} - bl STWI_poll_CommandEnd - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrh r0, [r0, 0x1C] - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_waitREQComplete - - thumb_func_start rfu_REQ_RFUStatus -rfu_REQ_RFUStatus: @ 82E41FC - push {lr} - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - bl STWI_send_SystemStatusREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_RFUStatus - - thumb_func_start rfu_getRFUStatus -rfu_getRFUStatus: @ 82E4210 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_03007898 - ldr r0, [r5] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x93 - beq _082E422C - movs r0, 0x10 - b _082E4246 - .align 2, 0 - .pool -_082E422C: - bl STWI_poll_CommandEnd - lsls r0, 16 - cmp r0, 0 - bne _082E4240 - ldr r0, [r5] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - b _082E4242 -_082E4240: - movs r0, 0xFF -_082E4242: - strb r0, [r4] - movs r0, 0 -_082E4246: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end rfu_getRFUStatus - - thumb_func_start sub_82E424C -sub_82E424C: @ 82E424C - push {lr} - ldr r2, =gUnknown_089A324C - ldr r3, =gDma3Requests + 0xE0 - b _082E4266 - .align 2, 0 - .pool - thumb_func_end sub_82E424C - - thumb_func_start sub_82E425C -sub_82E425C: @ 82E425C - ldrb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r1, r0 - bne _082E42BC -_082E4266: - ldrb r1, [r2] - cmp r1, 0 - bne sub_82E425C - movs r2, 0xC0 - lsls r2, 18 - movs r3, 0 - movs r1, 0 -_082E4274: - ldrh r0, [r2] - adds r0, r3, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x2 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x59 - bls _082E4274 - ldr r0, =gDma3Requests + 0xEA - ldrh r0, [r0] - cmp r3, r0 - bne _082E42BC - movs r0, 0xC0 - lsls r0, 18 - ldr r1, =gUnknown_03007890 - ldr r1, [r1] - movs r2, 0x5A - bl CpuSet - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - ldrb r1, [r2] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - b _082E42BE - .align 2, 0 - .pool -_082E42BC: - movs r0, 0x1 -_082E42BE: - pop {r1} - bx r1 - thumb_func_end sub_82E425C - - thumb_func_start rfu_REQ_stopMode -rfu_REQ_stopMode: @ 82E42C4 - push {lr} - ldr r0, =0x04000208 - ldrh r0, [r0] - cmp r0, 0 - bne _082E42EC - movs r0, 0x3D - movs r1, 0x6 - bl rfu_STC_REQ_callback - ldr r0, =gRfuState - ldr r1, [r0] - ldrh r0, [r1, 0x12] - movs r0, 0x6 - strh r0, [r1, 0x12] - b _082E4362 - .align 2, 0 - .pool -_082E42EC: - bl AgbRFU_SoftReset - bl rfu_STC_clearAPIVariables - movs r0, 0x8 - bl sub_82E6D6C - ldr r1, =0x00008001 - cmp r0, r1 - bne _082E4350 - ldr r0, =gRfuState - ldr r0, [r0] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r2, =0x04000100 - adds r1, r0, r2 - movs r0, 0 - str r0, [r1] - movs r0, 0x83 - lsls r0, 16 - str r0, [r1] - ldr r0, [r1] - lsls r0, 16 - ldr r2, =0x0105ffff - ldr r3, =rfu_CB_stopMode - cmp r0, r2 - bhi _082E432A -_082E4322: - ldr r0, [r1] - lsls r0, 16 - cmp r0, r2 - bls _082E4322 -_082E432A: - movs r0, 0 - str r0, [r1] - adds r0, r3, 0 - bl STWI_set_Callback_M - bl STWI_send_StopModeREQ - b _082E4362 - .align 2, 0 - .pool -_082E4350: - ldr r1, =0x04000128 - movs r2, 0x80 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x3D - movs r1, 0 - bl rfu_STC_REQ_callback -_082E4362: - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_stopMode - - thumb_func_start rfu_CB_stopMode -rfu_CB_stopMode: @ 82E436C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r2, r1, 0 - cmp r2, 0 - bne _082E4386 - ldr r1, =0x04000128 - movs r4, 0x80 - lsls r4, 6 - adds r0, r4, 0 - strh r0, [r1] -_082E4386: - adds r0, r3, 0 - adds r1, r2, 0 - bl rfu_STC_REQ_callback - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_stopMode - - thumb_func_start rfu_REQBN_softReset_and_checkID -rfu_REQBN_softReset_and_checkID: @ 82E4398 - push {lr} - ldr r0, =0x04000208 - ldrh r0, [r0] - cmp r0, 0 - bne _082E43AC - movs r0, 0x1 - negs r0, r0 - b _082E43CC - .align 2, 0 - .pool -_082E43AC: - bl AgbRFU_SoftReset - bl rfu_STC_clearAPIVariables - movs r0, 0x1E - bl sub_82E6D6C - adds r2, r0, 0 - cmp r2, 0 - bne _082E43CA - ldr r1, =0x04000128 - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] -_082E43CA: - adds r0, r2, 0 -_082E43CC: - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_REQBN_softReset_and_checkID - - thumb_func_start rfu_REQ_reset -rfu_REQ_reset: @ 82E43D4 - push {lr} - ldr r0, =rfu_CB_reset - bl STWI_set_Callback_M - bl STWI_send_ResetREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_reset - - thumb_func_start rfu_CB_reset -rfu_CB_reset: @ 82E43E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r4, r1, 0 - cmp r4, 0 - bne _082E43FC - bl rfu_STC_clearAPIVariables -_082E43FC: - adds r0, r5, 0 - adds r1, r4, 0 - bl rfu_STC_REQ_callback - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end rfu_CB_reset - - thumb_func_start rfu_REQ_configSystem -rfu_REQ_configSystem: @ 82E440C - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - movs r0, 0x3 - ands r4, r0 - movs r0, 0x3C - orrs r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl STWI_send_SystemConfigREQ - cmp r6, 0 - bne _082E444C - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - movs r0, 0x1 - strh r0, [r1, 0x1A] - b _082E4466 - .align 2, 0 - .pool -_082E444C: - ldr r5, =0x04000208 - ldrh r4, [r5] - movs r0, 0 - strh r0, [r5] - movs r0, 0x96 - lsls r0, 2 - adds r1, r6, 0 - bl Div - ldr r1, =gUnknown_03007894 - ldr r1, [r1] - strh r0, [r1, 0x1A] - strh r4, [r5] -_082E4466: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_configSystem - - thumb_func_start rfu_REQ_configGameData -rfu_REQ_configGameData: @ 82E4474 - push {r4-r7,lr} - sub sp, 0x10 - adds r4, r2, 0 - adds r7, r3, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, r1, 16 - adds r5, r4, 0 - mov r0, sp - strb r1, [r0] - lsrs r2, 24 - strb r2, [r0, 0x1] - cmp r6, 0 - beq _082E449A - movs r1, 0x80 - orrs r2, r1 - movs r1, 0 - orrs r2, r1 - strb r2, [r0, 0x1] -_082E449A: - movs r2, 0x2 - ldr r0, =rfu_CB_configGameData - mov r12, r0 -_082E44A0: - mov r3, sp - adds r1, r3, r2 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xE - bls _082E44A0 - movs r3, 0 - adds r1, r7, 0 - movs r2, 0 -_082E44BA: - ldrb r0, [r1] - adds r0, r3, r0 - lsls r0, 24 - adds r1, 0x1 - lsrs r0, 24 - ldrb r3, [r5] - adds r0, r3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _082E44BA - mov r1, sp - mvns r0, r3 - strb r0, [r1, 0xF] - cmp r6, 0 - beq _082E44E6 - movs r0, 0 - strb r0, [r1, 0xE] -_082E44E6: - mov r0, r12 - bl STWI_set_Callback_M - mov r0, sp - adds r1, r7, 0 - bl STWI_send_GameConfigREQ - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_configGameData - - thumb_func_start rfu_CB_configGameData -rfu_CB_configGameData: @ 82E4500 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 16 - lsrs r7, r1, 16 - cmp r7, 0 - bne _082E458A - ldr r0, =gRfuState - ldr r0, [r0] - ldr r1, [r0, 0x24] - ldr r0, =gUnknown_03007890 - ldr r6, [r0] - ldrb r2, [r1, 0x4] - adds r5, r6, 0 - adds r5, 0x98 - strh r2, [r5] - ldrb r0, [r1, 0x5] - lsls r3, r0, 8 - orrs r3, r2 - strh r3, [r5] - adds r4, r1, 0x6 - movs r1, 0x80 - lsls r1, 8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _082E454C - eors r3, r1 - strh r3, [r5] - adds r1, r6, 0 - adds r1, 0x97 - movs r0, 0x1 - b _082E4552 - .align 2, 0 - .pool -_082E454C: - adds r1, r6, 0 - adds r1, 0x97 - movs r0, 0 -_082E4552: - strb r0, [r1] - movs r2, 0 - ldr r3, =gUnknown_03007890 -_082E4558: - ldr r0, [r3] - adds r0, 0x9A - adds r0, r2 - ldrb r1, [r4] - strb r1, [r0] - adds r4, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xC - bls _082E4558 - adds r4, 0x1 - movs r2, 0 - ldr r3, =gUnknown_03007890 -_082E4574: - ldr r0, [r3] - adds r0, 0xA9 - adds r0, r2 - ldrb r1, [r4] - strb r1, [r0] - adds r4, 0x1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _082E4574 -_082E458A: - mov r0, r12 - adds r1, r7, 0 - bl rfu_STC_REQ_callback - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_configGameData - - thumb_func_start rfu_REQ_startSearchChild -rfu_REQ_startSearchChild: @ 82E459C - push {r4,lr} - movs r1, 0 - ldr r4, =rfu_CB_defaultCallback - ldr r3, =gUnknown_03007894 - movs r2, 0 -_082E45A6: - ldr r0, [r3] - adds r0, 0xE - adds r0, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _082E45A6 - adds r0, r4, 0 - bl STWI_set_Callback_M - bl STWI_send_SystemStatusREQ - bl STWI_poll_CommandEnd - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E45F0 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _082E45F6 - movs r0, 0x1 - bl rfu_STC_clearLinkStatus - b _082E45F6 - .align 2, 0 - .pool -_082E45F0: - movs r0, 0x19 - bl rfu_STC_REQ_callback -_082E45F6: - ldr r0, =rfu_CB_startSearchChild - bl STWI_set_Callback_M - bl STWI_send_SC_StartREQ - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_startSearchChild - - thumb_func_start rfu_CB_startSearchChild -rfu_CB_startSearchChild: @ 82E460C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r2, r1, 0 - cmp r2, 0 - bne _082E4624 - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x9] -_082E4624: - adds r0, r3, 0 - adds r1, r2, 0 - bl rfu_STC_REQ_callback - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_startSearchChild - - thumb_func_start rfu_STC_clearLinkStatus -rfu_STC_clearLinkStatus: @ 82E4634 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl rfu_clearAllSlot - cmp r4, 0 - beq _082E465C - mov r0, sp - movs r5, 0 - strh r5, [r0] - ldr r4, =gUnknown_03007890 - ldr r1, [r4] - adds r1, 0x14 - ldr r2, =0x01000040 - bl CpuSet - ldr r0, [r4] - strb r5, [r0, 0x8] -_082E465C: - movs r1, 0 - ldr r2, =gUnknown_03007890 - adds r4, r2, 0 - movs r3, 0 -_082E4664: - ldr r0, [r4] - adds r0, 0xA - adds r0, r1 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _082E4664 - ldr r0, [r2] - movs r1, 0 - strb r1, [r0, 0x1] - ldr r0, [r2] - strb r1, [r0, 0x2] - ldr r0, [r2] - strb r1, [r0, 0x3] - ldr r0, [r2] - strb r1, [r0, 0x7] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_clearLinkStatus - - thumb_func_start rfu_REQ_pollSearchChild -rfu_REQ_pollSearchChild: @ 82E4698 - push {lr} - ldr r0, =rfu_CB_pollAndEndSearchChild - bl STWI_set_Callback_M - bl STWI_send_SC_PollingREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_pollSearchChild - - thumb_func_start rfu_REQ_endSearchChild -rfu_REQ_endSearchChild: @ 82E46AC - push {lr} - ldr r0, =rfu_CB_pollAndEndSearchChild - bl STWI_set_Callback_M - bl STWI_send_SC_EndREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_endSearchChild - - thumb_func_start rfu_CB_pollAndEndSearchChild -rfu_CB_pollAndEndSearchChild: @ 82E46C0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - cmp r6, 0 - bne _082E46D2 - bl rfu_STC_readChildList -_082E46D2: - cmp r4, 0x1A - bne _082E4714 - ldr r5, =gUnknown_03007890 - ldr r0, [r5] - adds r0, 0x94 - ldrh r0, [r0] - cmp r0, 0 - bne _082E4730 - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - bl STWI_send_SystemStatusREQ - bl STWI_poll_CommandEnd - lsls r0, 16 - cmp r0, 0 - bne _082E4730 - ldr r1, [r5] - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrh r0, [r0, 0x4] - adds r1, 0x94 - strh r0, [r1] - b _082E4730 - .align 2, 0 - .pool -_082E4714: - cmp r4, 0x1B - bne _082E4730 - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, 0xFF - bne _082E4728 - adds r1, 0x94 - movs r0, 0 - strh r0, [r1] -_082E4728: - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x9] -_082E4730: - adds r0, r4, 0 - adds r1, r6, 0 - bl rfu_STC_REQ_callback - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_pollAndEndSearchChild - - thumb_func_start rfu_STC_readChildList -rfu_STC_readChildList: @ 82E4748 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r7, [r0, 0x1] - adds r6, r0, 0x4 - cmp r7, 0 - beq _082E47EE - ldr r0, =gUnknown_03007894 - mov r8, r0 - ldr r1, =gUnknown_03007890 - mov r12, r1 -_082E4766: - ldrb r4, [r6, 0x2] - cmp r4, 0x3 - bhi _082E47E2 - mov r2, r12 - ldr r1, [r2] - ldrb r0, [r1, 0x2] - asrs r0, r4 - movs r5, 0x1 - ands r0, r5 - cmp r0, 0 - bne _082E47E2 - ldrb r0, [r1, 0x3] - asrs r0, r4 - ands r0, r5 - cmp r0, 0 - bne _082E47E2 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xE - adds r0, r4 - movs r1, 0xF0 - strb r1, [r0] - ldr r0, [r2] - adds r0, 0xA - adds r0, r4 - movs r1, 0x10 - strb r1, [r0] - ldr r2, [r2] - adds r0, r5, 0 - lsls r0, r4 - ldrb r1, [r2, 0x2] - orrs r0, r1 - strb r0, [r2, 0x2] - mov r2, r12 - ldr r1, [r2] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldr r1, [r2] - lsls r3, r4, 5 - adds r1, r3 - ldrh r0, [r6] - strh r0, [r1, 0x14] - strb r4, [r1, 0x16] - ldr r0, [r2] - strb r5, [r0] - mov r0, r8 - ldr r2, [r0] - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - mov r2, r8 - ldr r1, [r2] - lsls r0, r4, 1 - adds r1, 0x12 - adds r1, r0 - mov r2, r12 - ldr r0, [r2] - adds r0, r3 - ldrh r0, [r0, 0x14] - strh r0, [r1] -_082E47E2: - subs r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r6, 0x4 - cmp r7, 0 - bne _082E4766 -_082E47EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_readChildList - - thumb_func_start rfu_REQ_startSearchParent -rfu_REQ_startSearchParent: @ 82E4804 - push {lr} - ldr r0, =rfu_CB_startSearchParent - bl STWI_set_Callback_M - bl STWI_send_SP_StartREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_startSearchParent - - thumb_func_start rfu_CB_startSearchParent -rfu_CB_startSearchParent: @ 82E4818 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r4, r1, 0 - cmp r4, 0 - bne _082E482E - movs r0, 0 - bl rfu_STC_clearLinkStatus -_082E482E: - adds r0, r5, 0 - adds r1, r4, 0 - bl rfu_STC_REQ_callback - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end rfu_CB_startSearchParent - - thumb_func_start rfu_REQ_pollSearchParent -rfu_REQ_pollSearchParent: @ 82E483C - push {lr} - ldr r0, =sub_82E4850 - bl STWI_set_Callback_M - bl STWI_send_SP_PollingREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_pollSearchParent - - thumb_func_start sub_82E4850 -sub_82E4850: @ 82E4850 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 16 - lsrs r1, 16 - adds r4, r1, 0 - cmp r4, 0 - bne _082E4864 - bl rfu_STC_readParentCandidateList -_082E4864: - adds r0, r5, 0 - adds r1, r4, 0 - bl rfu_STC_REQ_callback - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_82E4850 - - thumb_func_start rfu_REQ_endSearchParent -rfu_REQ_endSearchParent: @ 82E4874 - push {lr} - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - bl STWI_send_SP_EndREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_endSearchParent - - thumb_func_start rfu_STC_readParentCandidateList -rfu_STC_readParentCandidateList: @ 82E4888 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r0, sp - movs r4, 0 - strh r4, [r0] - ldr r5, =gUnknown_03007890 - ldr r1, [r5] - adds r1, 0x14 - ldr r2, =0x01000040 - bl CpuSet - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r2, [r0] - ldrb r7, [r2, 0x1] - adds r2, 0x4 - ldr r0, [r5] - strb r4, [r0, 0x8] - movs r6, 0 - cmp r7, 0 - beq _082E498C - mov r12, r5 - ldr r0, =0x00007fff - mov r8, r0 -_082E48BE: - subs r0, r7, 0x7 - lsls r0, 24 - lsrs r7, r0, 24 - adds r1, r2, 0x6 - adds r2, 0x13 - ldrb r0, [r2] - mvns r0, r0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r2, 0x1 - movs r4, 0 - movs r3, 0 - adds r6, 0x1 -_082E48D8: - ldrb r0, [r2] - adds r0, r4, r0 - lsls r0, 24 - adds r2, 0x1 - lsrs r0, 24 - ldrb r4, [r1] - adds r0, r4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r1, 0x1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x7 - bls _082E48D8 - cmp r4, r5 - bne _082E4980 - subs r2, 0x1C - mov r0, r12 - ldr r1, [r0] - ldrb r0, [r1, 0x8] - lsls r0, 5 - adds r0, 0x14 - adds r4, r1, r0 - ldrh r0, [r2] - movs r3, 0 - strh r0, [r4] - adds r2, 0x2 - ldrb r0, [r2] - strb r0, [r4, 0x2] - adds r2, 0x2 - ldrh r1, [r2] - mov r0, r8 - ands r0, r1 - strh r0, [r4, 0x4] - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _082E4940 - movs r0, 0x1 - strb r0, [r4, 0x3] - b _082E4942 - .align 2, 0 - .pool -_082E4940: - strb r3, [r4, 0x3] -_082E4942: - adds r2, 0x2 - movs r3, 0 - adds r5, r4, 0 - adds r5, 0x15 - adds r4, 0x6 -_082E494C: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xC - bls _082E494C - adds r2, 0x1 - movs r3, 0 - adds r4, r5, 0 -_082E4964: - adds r1, r4, r3 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x7 - bls _082E4964 - mov r4, r12 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] -_082E4980: - lsls r0, r6, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _082E498C - cmp r7, 0 - bne _082E48BE -_082E498C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end rfu_STC_readParentCandidateList - - thumb_func_start rfu_REQ_startConnectParent -rfu_REQ_startConnectParent: @ 82E4998 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r3, 0 - movs r2, 0 - ldr r1, =gUnknown_03007890 - ldr r0, [r1] - ldrh r0, [r0, 0x14] - cmp r0, r4 - beq _082E49C4 - adds r5, r1, 0 -_082E49AE: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bhi _082E49C4 - ldr r0, [r5] - lsls r1, r2, 5 - adds r0, r1 - ldrh r0, [r0, 0x14] - cmp r0, r4 - bne _082E49AE -_082E49C4: - cmp r2, 0x4 - bne _082E49CC - movs r3, 0x80 - lsls r3, 1 -_082E49CC: - cmp r3, 0 - bne _082E49F0 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - strh r4, [r0, 0x1E] - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - adds r0, r4, 0 - bl STWI_send_CP_StartREQ - b _082E49F8 - .align 2, 0 - .pool -_082E49F0: - movs r0, 0x1F - adds r1, r3, 0 - bl rfu_STC_REQ_callback -_082E49F8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end rfu_REQ_startConnectParent - - thumb_func_start rfu_REQ_pollConnectParent -rfu_REQ_pollConnectParent: @ 82E4A00 - push {lr} - ldr r0, =rfu_CB_pollConnectParent - bl STWI_set_Callback_M - bl STWI_send_CP_PollingREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_pollConnectParent - - thumb_func_start rfu_CB_pollConnectParent -rfu_CB_pollConnectParent: @ 82E4A14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x28] - cmp r1, 0 - bne _082E4B16 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrh r5, [r0, 0x4] - ldrb r1, [r0, 0x6] - mov r10, r1 - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _082E4B16 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r1 - lsrs r2, r0, 24 - ldr r4, =gUnknown_03007890 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _082E4B16 - adds r0, r2, 0 - orrs r0, r1 - strb r0, [r3, 0x2] - ldr r1, [r4] - ldrb r0, [r1, 0x3] - bics r0, r2 - strb r0, [r1, 0x3] - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x94 - movs r2, 0 - strh r5, [r0] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, [r4] - strb r2, [r0] - ldr r3, =gUnknown_03007894 - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r5, 0 - adds r7, r4, 0 - add r6, sp, 0x20 - movs r0, 0 - mov r8, r0 -_082E4A92: - ldr r2, [r7] - lsls r4, r5, 5 - adds r0, r2, r4 - ldr r1, [r3] - ldrh r0, [r0, 0x14] - ldrh r1, [r1, 0x1E] - cmp r0, r1 - bne _082E4AEA - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _082E4AE0 - mov r9, sp - adds r0, r4, 0 - adds r0, 0x14 - adds r0, r2, r0 - mov r1, sp - movs r2, 0x10 - bl CpuSet - mov r1, r8 - strh r1, [r6] - ldr r1, [r7] - adds r1, 0x14 - adds r0, r6, 0 - ldr r2, =0x01000040 - bl CpuSet - ldr r0, [r7] - mov r1, r8 - strb r1, [r0, 0x8] - b _082E4AF4 - .align 2, 0 - .pool -_082E4AE0: - adds r0, r4, 0 - adds r0, 0x14 - adds r2, r0 - mov r9, r2 - b _082E4AF4 -_082E4AEA: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _082E4A92 -_082E4AF4: - cmp r5, 0x3 - bhi _082E4B16 - ldr r4, =gUnknown_03007890 - mov r0, r10 - lsls r5, r0, 5 - adds r0, r5, 0 - adds r0, 0x14 - ldr r1, [r4] - adds r1, r0 - mov r0, r9 - movs r2, 0x10 - bl CpuSet - ldr r0, [r4] - adds r0, r5 - mov r1, r10 - strb r1, [r0, 0x16] -_082E4B16: - ldr r0, [sp, 0x24] - ldr r1, [sp, 0x28] - bl rfu_STC_REQ_callback - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_pollConnectParent - - thumb_func_start rfu_getConnectParentStatus -rfu_getConnectParentStatus: @ 82E4B34 - push {lr} - adds r3, r0, 0 - movs r0, 0xFF - strb r0, [r3] - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r2, [r0] - ldrb r0, [r2] - adds r0, 0x60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _082E4B58 - movs r0, 0x10 - b _082E4B64 - .align 2, 0 - .pool -_082E4B58: - adds r2, 0x6 - ldrb r0, [r2] - strb r0, [r1] - ldrb r0, [r2, 0x1] - strb r0, [r3] - movs r0, 0 -_082E4B64: - pop {r1} - bx r1 - thumb_func_end rfu_getConnectParentStatus - - thumb_func_start rfu_REQ_endConnectParent -rfu_REQ_endConnectParent: @ 82E4B68 - push {lr} - ldr r0, =rfu_CB_pollConnectParent - bl STWI_set_Callback_M - bl STWI_send_CP_EndREQ - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r1, [r0] - ldrb r0, [r1, 0x6] - cmp r0, 0x3 - bhi _082E4B90 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - adds r0, 0xA - ldrb r1, [r1, 0x6] - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_082E4B90: - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_endConnectParent - - thumb_func_start rfu_syncVBlank -rfu_syncVBlank: @ 82E4BA0 - push {r4,r5,lr} - bl rfu_NI_checkCommFailCounter - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xFF - beq _082E4C78 - ldr r4, =gUnknown_03007894 - ldr r1, [r4] - ldrb r0, [r1, 0x6] - cmp r0, 0 - beq _082E4BBE - subs r0, 0x1 - strb r0, [r1, 0x6] -_082E4BBE: - bl rfu_getMasterSlave - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, [r4] - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _082E4BF0 - cmp r3, 0 - bne _082E4BFE - movs r0, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4] - movs r0, 0xB4 - lsls r0, 1 - strh r0, [r1, 0x20] - b _082E4BFA - .align 2, 0 - .pool -_082E4BF0: - cmp r3, 0 - beq _082E4C10 - movs r0, 0xFB - ands r0, r1 - strb r0, [r2] -_082E4BFA: - cmp r3, 0 - beq _082E4C10 -_082E4BFE: - ldr r3, =gUnknown_03007894 - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0xFD - ands r0, r1 - b _082E4C1A - .align 2, 0 - .pool -_082E4C10: - ldr r3, =gUnknown_03007894 - ldr r2, [r3] - ldrb r1, [r2] - movs r0, 0x2 - orrs r0, r1 -_082E4C1A: - strb r0, [r2] - ldr r3, [r3] - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _082E4C78 - ldrh r0, [r3, 0x20] - cmp r0, 0 - bne _082E4C74 - movs r0, 0xFB - ands r0, r1 - strb r0, [r3] - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r1, [r0, 0x2] - ldrb r0, [r0, 0x3] - adds r5, r0, 0 - orrs r5, r1 - movs r4, 0 -_082E4C42: - adds r0, r5, 0 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _082E4C54 - adds r0, r4, 0 - bl rfu_STC_removeLinkData -_082E4C54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E4C42 - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] - movs r0, 0x1 - b _082E4C7A - .align 2, 0 - .pool -_082E4C74: - subs r0, 0x1 - strh r0, [r3, 0x20] -_082E4C78: - movs r0, 0 -_082E4C7A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end rfu_syncVBlank - - thumb_func_start rfu_REQBN_watchLink -rfu_REQBN_watchLink: @ 82E4C80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - mov r8, r1 - str r2, [sp] - str r3, [sp, 0x4] - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0 - str r1, [sp, 0xC] - mov r2, r8 - strb r1, [r2] - mov r0, sp - ldrb r1, [r0, 0xC] - ldr r0, [sp] - strb r1, [r0] - mov r2, sp - ldrb r0, [r2, 0xC] - ldr r2, [sp, 0x4] - strb r0, [r2] - ldr r5, =gUnknown_03007890 - ldr r0, [r5] - ldrb r0, [r0] - cmp r0, 0xFF - bne _082E4CBE - b _082E504E -_082E4CBE: - ldr r0, =gRfuState - ldr r0, [r0] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _082E4CCA - b _082E504E -_082E4CCA: - ldr r3, =gUnknown_03007894 - ldr r2, [r3] - ldrb r1, [r2] - movs r4, 0x4 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _082E4CE0 - movs r0, 0xB4 - lsls r0, 1 - strh r0, [r2, 0x20] -_082E4CE0: - ldr r1, [r3] - ldrb r0, [r1, 0x6] - cmp r0, 0 - bne _082E4CEE - strb r4, [r1, 0x6] - movs r1, 0x1 - str r1, [sp, 0x8] -_082E4CEE: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0x29 - bne _082E4D30 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r1, [r0] - ldrb r0, [r1, 0x4] - mov r2, r8 - strb r0, [r2] - ldrb r0, [r1, 0x5] - ldr r1, [sp] - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _082E4D18 - ldr r0, [r5] - ldrb r0, [r0, 0x2] - strb r0, [r2] -_082E4D18: - movs r2, 0x2 - str r2, [sp, 0x8] - b _082E4D88 - .align 2, 0 - .pool -_082E4D30: - movs r0, 0x9B - lsls r0, 1 - cmp r6, r0 - bne _082E4D80 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r6, [r0, 0x5] - ldr r0, [r5] - ldrb r0, [r0, 0x2] - eors r6, r0 - ands r6, r0 - mov r0, r8 - strb r6, [r0] - movs r0, 0x1 - ldr r1, [sp] - strb r0, [r1] - movs r5, 0 -_082E4D56: - mov r2, r8 - ldrb r0, [r2] - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _082E4D76 - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - adds r0, 0xA - adds r0, r5 - movs r1, 0 - strb r1, [r0] - adds r0, r5, 0 - bl rfu_STC_removeLinkData -_082E4D76: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _082E4D56 -_082E4D80: - ldr r0, [sp, 0x8] - cmp r0, 0 - bne _082E4D88 - b _082E504E -_082E4D88: - ldr r4, =gUnknown_03007898 - ldr r0, [r4] - adds r0, 0xDC - ldr r0, [r0] - ldr r1, [r0] - str r1, [sp, 0x10] - ldr r0, [r0, 0x4] - str r0, [sp, 0x14] - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - bl STWI_send_LinkStatusREQ - bl STWI_poll_CommandEnd - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - cmp r0, 0 - bne _082E4DE8 - ldr r0, [r4] - adds r0, 0xDC - ldr r0, [r0] - adds r2, r0, 0x4 - movs r5, 0 - ldr r3, =gUnknown_03007890 -_082E4DBC: - ldr r0, [r3] - adds r0, 0xA - adds r0, r5 - ldrb r1, [r2] - strb r1, [r0] - adds r2, 0x1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _082E4DBC - movs r2, 0 - mov r9, r2 - movs r5, 0 - b _082E4DF4 - .align 2, 0 - .pool -_082E4DE8: - movs r0, 0x11 - ldr r1, [sp, 0xC] - bl rfu_STC_REQ_callback - ldr r0, [sp, 0xC] - b _082E5050 -_082E4DF4: - ldr r1, =gUnknown_03007894 - ldr r0, [r1] - adds r0, 0xE - adds r2, r0, r5 - ldrb r0, [r2] - adds r3, r1, 0 - cmp r0, 0 - beq _082E4E1A - subs r0, 0x4 - strb r0, [r2] - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - adds r0, 0xA - adds r1, r0, r5 - ldrb r0, [r1] - cmp r0, 0xF - bhi _082E4E1A - movs r0, 0x10 - strb r0, [r1] -_082E4E1A: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r5 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - mov r10, r0 - ldr r1, [sp, 0xC] - cmp r1, 0 - beq _082E4E2E - b _082E5002 -_082E4E2E: - ldr r2, [sp, 0x8] - cmp r2, 0x1 - bne _082E4F10 - ldr r4, =gUnknown_03007890 - ldr r1, [r4] - ldrb r0, [r1, 0x2] - ands r0, r6 - cmp r0, 0 - beq _082E4F10 - adds r0, r1, 0 - adds r0, 0xA - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _082E4F04 - ldrb r0, [r1] - cmp r0, 0x1 - bne _082E4E84 - ldr r1, [r3] - adds r1, 0xA - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0xA - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x3 - bls _082E4F10 - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, 0 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldr r0, [sp] - strb r2, [r0] - b _082E4F10 - .align 2, 0 - .pool -_082E4E84: - bl STWI_send_SystemStatusREQ - bl STWI_poll_CommandEnd - lsls r0, 16 - cmp r0, 0 - bne _082E4F10 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _082E4EB8 - mov r2, r8 - ldrb r1, [r2] - adds r0, r6, 0 - orrs r0, r1 - strb r0, [r2] - mov r0, sp - ldrb r1, [r0, 0x8] - ldr r0, [sp] - b _082E4F0E - .align 2, 0 - .pool -_082E4EB8: - ldr r2, =gUnknown_03007894 - ldr r1, [r2] - adds r1, 0xA - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - ldr r2, [r2] - lsrs r0, 24 - ldrh r1, [r2, 0x1A] - cmp r0, r1 - bls _082E4F10 - adds r0, r2, 0 - adds r0, 0xA - adds r0, r5 - mov r2, sp - ldrb r2, [r2, 0xC] - strb r2, [r0] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - bl STWI_send_DisconnectREQ - bl STWI_poll_CommandEnd - mov r0, r8 - ldrb r1, [r0] - adds r0, r6, 0 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - mov r2, sp - ldrb r0, [r2, 0x8] - ldr r2, [sp] - strb r0, [r2] - b _082E4F10 - .align 2, 0 - .pool -_082E4F04: - ldr r0, [r3] - adds r0, 0xA - adds r0, r5 - mov r1, sp - ldrb r1, [r1, 0xC] -_082E4F0E: - strb r1, [r0] -_082E4F10: - ldr r2, =gUnknown_03007890 - mov r12, r2 - ldr r1, [r2] - ldrb r7, [r1] - adds r0, r5, 0x1 - mov r10, r0 - cmp r7, 0x1 - bne _082E5002 - adds r0, r1, 0 - adds r0, 0xA - adds r4, r0, r5 - ldrb r3, [r4] - cmp r3, 0 - beq _082E5002 - ldrb r2, [r1, 0x3] - adds r0, r6, 0 - ands r0, r2 - cmp r0, 0 - beq _082E4F7E - cmp r3, 0xA - bls _082E4F78 - ldr r2, [sp, 0x4] - ldrb r1, [r2] - adds r0, r6, 0 - orrs r0, r1 - strb r0, [r2] - mov r0, r12 - ldr r2, [r0] - ldrb r1, [r2, 0x2] - adds r0, r6, 0 - orrs r0, r1 - movs r3, 0 - strb r0, [r2, 0x2] - mov r2, r12 - ldr r1, [r2] - ldrb r0, [r1, 0x3] - bics r0, r6 - strb r0, [r1, 0x3] - ldr r1, [r2] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - adds r0, 0xA - adds r0, r5 - strb r3, [r0] - b _082E5002 - .align 2, 0 - .pool -_082E4F78: - movs r0, 0 - strb r0, [r4] - b _082E5002 -_082E4F7E: - ldrb r0, [r1, 0x2] - orrs r0, r2 - ands r0, r6 - cmp r0, 0 - bne _082E5002 - bl STWI_send_SlotStatusREQ - bl STWI_poll_CommandEnd - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r2, [r0] - ldrb r0, [r2, 0x1] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, 0x8 - cmp r3, 0 - beq _082E5002 - ldrh r4, [r2] - ldrb r0, [r2, 0x2] - cmp r0, r5 - bne _082E4FD0 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - lsls r1, r5, 1 - adds r0, 0x12 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _082E4FD0 - lsls r7, r5 - mov r0, r9 - orrs r0, r7 - lsls r0, 24 - b _082E4FFE - .align 2, 0 - .pool -_082E4FD0: - adds r2, 0x4 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _082E5002 - ldrh r4, [r2] - ldrb r0, [r2, 0x2] - cmp r0, r5 - bne _082E4FD0 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - lsls r1, r5, 1 - adds r0, 0x12 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _082E4FD0 - movs r0, 0x1 - lsls r0, r5 - mov r1, r9 - orrs r1, r0 - lsls r0, r1, 24 -_082E4FFE: - lsrs r0, 24 - mov r9, r0 -_082E5002: - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r1, [r0, 0x2] - mov r2, r8 - ldrb r0, [r2] - ands r0, r1 - ands r6, r0 - cmp r6, 0 - beq _082E501C - adds r0, r5, 0 - movs r1, 0 - bl rfu_STC_removeLinkData -_082E501C: - mov r1, r10 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bhi _082E5028 - b _082E4DF4 -_082E5028: - mov r2, r9 - cmp r2, 0 - beq _082E5038 - mov r0, r9 - bl STWI_send_DisconnectREQ - bl STWI_poll_CommandEnd -_082E5038: - ldr r1, =gUnknown_03007898 - ldr r0, [r1] - adds r0, 0xDC - ldr r0, [r0] - ldr r2, [sp, 0x10] - str r2, [r0] - ldr r0, [r1] - adds r0, 0xDC - ldr r0, [r0] - ldr r1, [sp, 0x14] - str r1, [r0, 0x4] -_082E504E: - movs r0, 0 -_082E5050: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_REQBN_watchLink - - thumb_func_start rfu_STC_removeLinkData -rfu_STC_removeLinkData: @ 82E506C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r7 - lsrs r6, r0, 24 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - adds r0, 0xE - adds r0, r7 - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_03007890 - ldr r4, [r1] - ldrb r0, [r4, 0x2] - ands r0, r6 - mov r8, r1 - cmp r0, 0 - beq _082E50AA - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _082E50AA - subs r0, 0x1 - strb r0, [r4, 0x1] -_082E50AA: - mov r3, r8 - ldr r2, [r3] - mvns r5, r6 - ldrb r1, [r2, 0x2] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x2] - ldr r2, [r3] - ldrb r1, [r2, 0x3] - adds r0, r6, 0 - orrs r0, r1 - strb r0, [r2, 0x3] - ldr r3, [r3] - ldr r0, [r3] - ldr r1, =0x00ff00ff - ands r0, r1 - cmp r0, 0 - bne _082E50D2 - movs r0, 0xFF - strb r0, [r3] -_082E50D2: - mov r0, r12 - cmp r0, 0 - beq _082E5110 - mov r1, sp - movs r4, 0 - movs r0, 0 - strh r0, [r1] - lsls r0, r7, 5 - adds r0, 0x14 - mov r2, r8 - ldr r1, [r2] - adds r1, r0 - ldr r2, =0x01000010 - mov r0, sp - bl CpuSet - mov r0, r8 - ldr r2, [r0] - ldrb r1, [r2, 0x3] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x3] - mov r2, r8 - ldr r1, [r2] - ldrb r0, [r1, 0x7] - ands r5, r0 - strb r5, [r1, 0x7] - ldr r0, [r2] - adds r0, 0xA - adds r0, r7 - strb r4, [r0] -_082E5110: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_removeLinkData - - thumb_func_start rfu_REQ_disconnect -rfu_REQ_disconnect: @ 82E512C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gUnknown_03007890 - ldr r1, [r2] - ldrb r0, [r1, 0x2] - ldrb r1, [r1, 0x3] - orrs r0, r1 - ands r0, r4 - cmp r0, 0 - beq _082E51B0 - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - strb r4, [r1, 0x5] - ldr r2, [r2] - ldrb r1, [r2] - adds r3, r0, 0 - cmp r1, 0xFF - bne _082E5178 - ldr r0, [r3] - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _082E5178 - ldrb r0, [r2, 0x3] - ands r0, r4 - cmp r0, 0 - beq _082E51B0 - movs r0, 0x30 - movs r1, 0 - bl rfu_CB_disconnect - b _082E51B0 - .align 2, 0 - .pool -_082E5178: - ldr r0, [r3] - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _082E51A4 - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - bl STWI_send_SC_EndREQ - bl STWI_poll_CommandEnd - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _082E51A4 - movs r0, 0x1B - bl rfu_STC_REQ_callback - b _082E51B0 - .align 2, 0 - .pool -_082E51A4: - ldr r0, =rfu_CB_disconnect - bl STWI_set_Callback_M - adds r0, r4, 0 - bl STWI_send_DisconnectREQ -_082E51B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_disconnect - - thumb_func_start rfu_CB_disconnect -rfu_CB_disconnect: @ 82E51BC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r5, 0x3 - bne _082E51F8 - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0 - bne _082E51F8 - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - bl STWI_send_SystemStatusREQ - bl STWI_poll_CommandEnd - lsls r0, 16 - cmp r0, 0 - bne _082E51F8 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _082E51F8 - movs r5, 0 -_082E51F8: - ldr r3, =gUnknown_03007894 - ldr r2, [r3] - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - ldrb r1, [r1, 0x3] - orrs r0, r1 - ldrb r1, [r2, 0x5] - ands r0, r1 - strb r0, [r2, 0x5] - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r1, [r0] - ldr r0, [r3] - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x8] - cmp r5, 0 - bne _082E5246 - movs r4, 0 -_082E5220: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r4 - lsrs r0, 24 - ldr r1, =gUnknown_03007894 - ldr r1, [r1] - ldrb r1, [r1, 0x5] - ands r0, r1 - cmp r0, 0 - beq _082E523C - adds r0, r4, 0 - movs r1, 0x1 - bl rfu_STC_removeLinkData -_082E523C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E5220 -_082E5246: - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - orrs r0, r1 - cmp r0, 0 - bne _082E5258 - movs r0, 0xFF - strb r0, [r2] -_082E5258: - adds r0, r6, 0 - adds r1, r5, 0 - bl rfu_STC_REQ_callback - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _082E5286 - ldr r0, =rfu_CB_defaultCallback - bl STWI_set_Callback_M - bl STWI_send_SC_StartREQ - bl STWI_poll_CommandEnd - adds r5, r0, 0 - cmp r5, 0 - beq _082E5286 - movs r0, 0x19 - adds r1, r5, 0 - bl rfu_STC_REQ_callback -_082E5286: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_disconnect - - thumb_func_start rfu_REQ_CHILD_startConnectRecovery -rfu_REQ_CHILD_startConnectRecovery: @ 82E529C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - strb r5, [r0, 0x5] - movs r4, 0 - movs r0, 0x1 - ands r0, r5 - ldr r2, =rfu_STC_REQ_callback - cmp r0, 0 - bne _082E52CA - movs r1, 0x1 -_082E52B6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _082E52CA - adds r0, r5, 0 - asrs r0, r4 - ands r0, r1 - cmp r0, 0 - beq _082E52B6 -_082E52CA: - adds r0, r2, 0 - bl STWI_set_Callback_M - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - lsls r0, r4, 5 - adds r0, r1, r0 - ldrh r0, [r0, 0x14] - adds r1, 0x94 - ldrh r1, [r1] - adds r2, r5, 0 - bl STWI_send_CPR_StartREQ - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_CHILD_startConnectRecovery - - thumb_func_start rfu_REQ_CHILD_pollConnectRecovery -rfu_REQ_CHILD_pollConnectRecovery: @ 82E52F8 - push {lr} - ldr r0, =rfu_CB_CHILD_pollConnectRecovery - bl STWI_set_Callback_M - bl STWI_send_CPR_PollingREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_CHILD_pollConnectRecovery - - thumb_func_start rfu_CB_CHILD_pollConnectRecovery -rfu_CB_CHILD_pollConnectRecovery: @ 82E530C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r7, r1, 16 - cmp r7, 0 - bne _082E5390 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _082E5390 - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - ldrb r1, [r1, 0x5] - adds r6, r0, 0 - cmp r1, 0 - beq _082E5390 - ldr r1, =gUnknown_03007890 - ldr r0, [r1] - strb r7, [r0] - movs r4, 0 - adds r5, r1, 0 - mov r12, r4 -_082E5346: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r4 - lsrs r3, r0, 24 - ldr r2, [r5] - ldr r0, [r6] - ldrb r0, [r0, 0x5] - ands r0, r3 - ldrb r1, [r2, 0x3] - ands r0, r1 - cmp r0, 0 - beq _082E5380 - ldrb r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2, 0x2] - ldr r1, [r5] - ldrb r0, [r1, 0x3] - bics r0, r3 - strb r0, [r1, 0x3] - ldr r1, [r5] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, [r6] - adds r0, 0xA - adds r0, r4 - mov r1, r12 - strb r1, [r0] -_082E5380: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E5346 - ldr r1, [r6] - movs r0, 0 - strb r0, [r1, 0x5] -_082E5390: - mov r0, r8 - adds r1, r7, 0 - bl rfu_STC_REQ_callback - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_CHILD_pollConnectRecovery - - thumb_func_start rfu_CHILD_getConnectRecoveryStatus -rfu_CHILD_getConnectRecoveryStatus: @ 82E53B0 - push {lr} - adds r2, r0, 0 - movs r0, 0xFF - strb r0, [r2] - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x4D - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _082E53D4 - movs r0, 0x10 - b _082E53DA - .align 2, 0 - .pool -_082E53D4: - ldrb r0, [r1, 0x4] - strb r0, [r2] - movs r0, 0 -_082E53DA: - pop {r1} - bx r1 - thumb_func_end rfu_CHILD_getConnectRecoveryStatus - - thumb_func_start rfu_REQ_CHILD_endConnectRecovery -rfu_REQ_CHILD_endConnectRecovery: @ 82E53E0 - push {lr} - ldr r0, =rfu_CB_CHILD_pollConnectRecovery - bl STWI_set_Callback_M - bl STWI_send_CPR_EndREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_CHILD_endConnectRecovery - - thumb_func_start sub_82E53F4 -sub_82E53F4: @ 82E53F4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r3, [r5] - ldr r1, [r6] - subs r2, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _082E5418 - adds r4, r0, 0 - thumb_func_end sub_82E53F4 - - non_word_aligned_thumb_func_start sub_82E540A -sub_82E540A: @ 82E540A - ldrb r0, [r3] - strb r0, [r1] - adds r3, 0x1 - adds r1, 0x1 - subs r2, 0x1 - cmp r2, r4 - bne sub_82E540A -_082E5418: - str r3, [r5] - str r1, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_82E540A - - thumb_func_start rfu_REQ_changeMasterSlave -rfu_REQ_changeMasterSlave: @ 82E5424 - push {lr} - movs r0, 0x1 - bl STWI_read_status - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _082E5444 - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - bl STWI_send_MS_ChangeREQ - b _082E544C - .align 2, 0 - .pool -_082E5444: - movs r0, 0x27 - movs r1, 0 - bl rfu_STC_REQ_callback -_082E544C: - pop {r0} - bx r0 - thumb_func_end rfu_REQ_changeMasterSlave - - thumb_func_start rfu_getMasterSlave -rfu_getMasterSlave: @ 82E5450 - push {lr} - movs r0, 0x1 - bl STWI_read_status - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bne _082E547E - ldr r0, =gRfuState - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x2C - ldrb r0, [r0] - cmp r0, 0 - beq _082E547E - ldrb r0, [r1, 0x6] - cmp r0, 0x27 - beq _082E547C - cmp r0, 0x25 - beq _082E547C - cmp r0, 0x37 - bne _082E547E -_082E547C: - movs r2, 0 -_082E547E: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_getMasterSlave - - thumb_func_start rfu_clearAllSlot -rfu_clearAllSlot: @ 82E5488 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r1, =0x04000208 - ldrh r0, [r1] - mov r8, r0 - movs r0, 0 - strh r0, [r1] - movs r5, 0 - mov r0, sp - adds r0, 0x2 - movs r7, 0 - adds r6, r0, 0 -_082E54A4: - mov r0, sp - strh r7, [r0] - ldr r0, =gUnknown_03007880 - lsls r4, r5, 2 - adds r0, r4, r0 - ldr r1, [r0] - mov r0, sp - ldr r2, =0x01000034 - bl CpuSet - strh r7, [r6] - ldr r0, =gUnknown_03007870 - adds r4, r0 - ldr r1, [r4] - adds r0, r6, 0 - ldr r2, =0x0100000a - bl CpuSet - ldr r3, =gUnknown_03007890 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r5 - movs r1, 0x10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _082E54A4 - ldr r2, [r3] - movs r1, 0 - movs r0, 0x57 - strb r0, [r2, 0xF] - ldr r0, [r3] - strb r1, [r0, 0x4] - ldr r0, [r3] - strb r1, [r0, 0x5] - ldr r0, [r3] - strb r1, [r0, 0x6] - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - strb r1, [r0, 0x2] - ldr r0, =0x04000208 - mov r1, r8 - strh r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_clearAllSlot - - thumb_func_start rfu_STC_releaseFrame -rfu_STC_releaseFrame: @ 82E5528 - push {r4-r6,lr} - adds r4, r2, 0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _082E5568 - ldr r6, =gUnknown_03007890 - cmp r3, 0 - bne _082E5554 - ldr r1, [r6] - ldrb r0, [r1, 0xF] - ldrh r4, [r4, 0x2E] - adds r0, r4 - strb r0, [r1, 0xF] -_082E5554: - ldr r1, [r6] - ldrb r0, [r1, 0xF] - adds r0, 0x3 - strb r0, [r1, 0xF] - b _082E5588 - .align 2, 0 - .pool -_082E5568: - ldr r6, =gUnknown_03007890 - cmp r3, 0 - bne _082E557C - ldr r1, [r6] - adds r1, 0x10 - adds r1, r2 - ldrb r0, [r1] - ldrh r4, [r4, 0x2E] - adds r0, r4 - strb r0, [r1] -_082E557C: - ldr r1, [r6] - adds r1, 0x10 - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x2 - strb r0, [r1] -_082E5588: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_releaseFrame - - thumb_func_start rfu_clearSlot -rfu_clearSlot: @ 82E5594 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r7, 0x3 - bls _082E55B4 - movs r0, 0x80 - lsls r0, 3 - b _082E572C -_082E55B4: - movs r0, 0xF - mov r1, r8 - ands r0, r1 - cmp r0, 0 - bne _082E55C4 - movs r0, 0xC0 - lsls r0, 3 - b _082E572C -_082E55C4: - ldr r1, =0x04000208 - ldrh r0, [r1] - mov r10, r0 - movs r0, 0 - strh r0, [r1] - movs r0, 0xC - mov r2, r8 - ands r0, r2 - cmp r0, 0 - beq _082E568C - movs r3, 0 - ldr r1, =gUnknown_03007880 - lsls r0, r7, 2 - adds r0, r1 - mov r9, r0 -_082E55E2: - movs r4, 0 - cmp r3, 0 - bne _082E5614 - movs r0, 0x4 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _082E5634 - mov r2, r9 - ldr r4, [r2] - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - bics r0, r1 - strb r0, [r2, 0x4] - b _082E5634 - .align 2, 0 - .pool -_082E5614: - movs r0, 0x8 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _082E5634 - mov r2, r9 - ldr r0, [r2] - adds r4, r0, 0 - adds r4, 0x34 - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - movs r1, 0x1 - lsls r1, r7 - ldrb r0, [r2, 0x5] - bics r0, r1 - strb r0, [r2, 0x5] -_082E5634: - adds r6, r3, 0x1 - cmp r4, 0 - beq _082E5684 - ldrh r0, [r4] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _082E5674 - lsls r1, r3, 24 - lsrs r1, 24 - adds r0, r7, 0 - adds r2, r4, 0 - bl rfu_STC_releaseFrame - movs r1, 0 - adds r2, r4, 0 - adds r2, 0x2C - movs r5, 0x1 - movs r3, 0 -_082E565E: - ldrb r0, [r2] - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _082E566A - strh r3, [r4, 0x2] -_082E566A: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3 - bls _082E565E -_082E5674: - mov r1, sp - movs r0, 0 - strh r0, [r1] - mov r0, sp - adds r1, r4, 0 - ldr r2, =0x0100001a - bl CpuSet -_082E5684: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _082E55E2 -_082E568C: - movs r0, 0x1 - mov r4, r8 - ands r0, r4 - cmp r0, 0 - beq _082E5702 - ldr r1, =gUnknown_03007870 - lsls r0, r7, 2 - adds r0, r1 - ldr r3, [r0] - ldrh r1, [r3] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _082E56F4 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _082E56D8 - ldr r2, =gUnknown_03007890 - ldr r1, [r2] - ldrb r0, [r1, 0xF] - adds r0, 0x3 - ldrb r4, [r3, 0x4] - adds r0, r4 - strb r0, [r1, 0xF] - b _082E56EA - .align 2, 0 - .pool -_082E56D8: - ldr r2, =gUnknown_03007890 - ldr r1, [r2] - adds r1, 0x10 - adds r1, r7 - ldrb r0, [r1] - adds r0, 0x2 - ldrb r4, [r3, 0x4] - adds r0, r4 - strb r0, [r1] -_082E56EA: - ldr r2, [r2] - ldrb r1, [r3, 0x3] - ldrb r0, [r2, 0x6] - bics r0, r1 - strb r0, [r2, 0x6] -_082E56F4: - mov r0, sp - movs r1, 0 - strh r1, [r0] - ldr r2, =0x01000006 - adds r1, r3, 0 - bl CpuSet -_082E5702: - movs r0, 0x2 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _082E5724 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03007870 - lsls r0, r7, 2 - adds r0, r1 - ldr r1, [r0] - adds r1, 0xC - ldr r2, =0x01000004 - mov r0, sp - bl CpuSet -_082E5724: - ldr r0, =0x04000208 - mov r2, r10 - strh r2, [r0] - movs r0, 0 -_082E572C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_clearSlot - - thumb_func_start rfu_setRecvBuffer -rfu_setRecvBuffer: @ 82E5750 - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r3, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - cmp r1, 0x3 - bls _082E576C - movs r0, 0x80 - lsls r0, 3 - b _082E57A4 -_082E576C: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _082E5788 - ldr r0, =gUnknown_03007880 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - str r5, [r0, 0x68] - str r6, [r0, 0x6C] - b _082E57A2 - .align 2, 0 - .pool -_082E5788: - movs r0, 0x10 - ands r2, r0 - cmp r2, 0 - bne _082E5796 - movs r0, 0xC0 - lsls r0, 3 - b _082E57A4 -_082E5796: - ldr r0, =gUnknown_03007870 - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - str r5, [r0, 0x14] - str r6, [r0, 0x18] -_082E57A2: - movs r0, 0 -_082E57A4: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_setRecvBuffer - - thumb_func_start rfu_NI_setSendData -rfu_NI_setSendData: @ 82E57B0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - str r3, [sp] - movs r0, 0x20 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl rfu_STC_setSendData_org - lsls r0, 16 - lsrs r0, 16 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end rfu_NI_setSendData - - thumb_func_start rfu_UNI_setSendData -rfu_UNI_setSendData: @ 82E57DC - push {lr} - sub sp, 0x4 - adds r3, r1, 0 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E57FC - adds r0, r2, 0x3 - b _082E57FE - .align 2, 0 - .pool -_082E57FC: - adds r0, r2, 0x2 -_082E57FE: - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - bl rfu_STC_setSendData_org - lsls r0, 16 - lsrs r0, 16 - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end rfu_UNI_setSendData - - thumb_func_start rfu_NI_CHILD_setSendGameName -rfu_NI_CHILD_setSendGameName: @ 82E5818 - push {lr} - sub sp, 0x4 - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r1, 24 - ldr r0, =gUnknown_03007890 - ldr r3, [r0] - adds r3, 0x98 - movs r0, 0x1A - str r0, [sp] - movs r0, 0x40 - bl rfu_STC_setSendData_org - lsls r0, 16 - lsrs r0, 16 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_NI_CHILD_setSendGameName - - thumb_func_start rfu_STC_setSendData_org -rfu_STC_setSendData_org: @ 82E584C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r3, [sp] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r1, [r2] - mov r10, r0 - cmp r1, 0xFF - bne _082E5880 - ldr r0, =0x00000301 - b _082E5A36 - .align 2, 0 - .pool -_082E5880: - movs r0, 0xF - ands r0, r3 - cmp r0, 0 - bne _082E588E - movs r0, 0x80 - lsls r0, 3 - b _082E5A36 -_082E588E: - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - orrs r0, r1 - ands r0, r3 - cmp r0, r3 - beq _082E58A4 - ldr r0, =0x00000401 - b _082E5A36 - .align 2, 0 - .pool -_082E58A4: - movs r0, 0x10 - ands r0, r6 - cmp r0, 0 - beq _082E58B0 - ldrb r0, [r2, 0x6] - b _082E58B2 -_082E58B0: - ldrb r0, [r2, 0x4] -_082E58B2: - ands r0, r3 - cmp r0, 0 - beq _082E58C0 - ldr r0, =0x00000402 - b _082E5A36 - .align 2, 0 - .pool -_082E58C0: - movs r2, 0 - movs r0, 0x1 - ands r0, r3 - ldr r4, =gUnknown_089A3220 - cmp r0, 0 - bne _082E58E2 - movs r1, 0x1 -_082E58CE: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bhi _082E58E2 - adds r0, r3, 0 - asrs r0, r2 - ands r0, r1 - cmp r0, 0 - beq _082E58CE -_082E58E2: - mov r0, r10 - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, 0x1 - bne _082E58F4 - adds r1, 0xF - b _082E58FE - .align 2, 0 - .pool -_082E58F4: - cmp r0, 0 - bne _082E5900 - adds r0, r2, 0 - adds r0, 0x10 - adds r1, r0 -_082E58FE: - mov r9, r1 -_082E5900: - mov r1, r10 - ldr r0, [r1] - ldrb r0, [r0] - lsls r0, 4 - adds r0, r4 - ldrb r4, [r0] - mov r0, r9 - ldrb r0, [r0] - cmp r8, r0 - bhi _082E5918 - cmp r8, r4 - bhi _082E591E -_082E5918: - movs r0, 0xA0 - lsls r0, 3 - b _082E5A36 -_082E591E: - ldr r1, =0x04000208 - ldrh r0, [r1] - str r0, [sp, 0x4] - movs r7, 0 - strh r7, [r1] - movs r0, 0x20 - ands r0, r6 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _082E5938 - cmp r6, 0x40 - bne _082E59F4 -_082E5938: - ldr r1, =gUnknown_03007880 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - mov r12, r0 - movs r1, 0 - strh r1, [r0, 0x18] - mov r1, r12 - adds r1, 0x2D - mov r2, r12 - str r1, [r2, 0x4] - movs r0, 0x7 - str r0, [r2, 0x14] - mov r0, r12 - adds r0, 0x2C - strb r3, [r0] - strb r3, [r2, 0x1A] - mov r2, r8 - subs r0, r2, r4 - mov r2, r12 - strh r0, [r2, 0x2E] - cmp r5, 0 - beq _082E5974 - strb r7, [r1] - b _082E5978 - .align 2, 0 - .pool -_082E5974: - movs r0, 0x1 - strb r0, [r1] -_082E5978: - ldr r0, [sp, 0x28] - mov r1, r12 - str r0, [r1, 0x30] - ldr r2, [sp] - str r2, [r1, 0x28] - movs r1, 0 - mov r0, r12 - strb r1, [r0, 0x1F] - adds r0, 0x20 - strb r1, [r0] - mov r4, r12 - adds r4, 0x1B - movs r6, 0 - mov r2, r12 - adds r2, 0x21 - movs r5, 0x1 -_082E5998: - adds r0, r4, r1 - strb r6, [r0] - adds r0, r2, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _082E5998 - movs r2, 0 - movs r5, 0x1 - ldr r4, =gUnknown_03007880 - movs r1, 0 -_082E59B2: - adds r0, r3, 0 - asrs r0, r2 - ands r0, r5 - cmp r0, 0 - beq _082E59C4 - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - strh r1, [r0, 0x2] -_082E59C4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _082E59B2 - mov r1, r10 - ldr r2, [r1] - ldrb r1, [r2, 0x4] - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2, 0x4] - mov r2, r9 - ldrb r0, [r2] - mov r1, r8 - subs r0, r1 - strb r0, [r2] - ldr r0, =0x00008021 - mov r2, r12 - strh r0, [r2] - b _082E5A2C - .align 2, 0 - .pool -_082E59F4: - movs r0, 0x10 - ands r0, r6 - cmp r0, 0 - beq _082E5A2C - ldr r1, =gUnknown_03007870 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - strb r3, [r1, 0x3] - ldr r0, [sp] - str r0, [r1, 0x8] - mov r2, r8 - subs r0, r2, r4 - strh r0, [r1, 0x4] - mov r2, r9 - ldrb r0, [r2] - mov r2, r8 - subs r0, r2 - mov r2, r9 - strb r0, [r2] - ldr r0, =0x00008024 - strh r0, [r1] - mov r0, r10 - ldr r2, [r0] - ldrb r1, [r2, 0x6] - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2, 0x6] -_082E5A2C: - ldr r0, =0x04000208 - mov r1, sp - ldrh r1, [r1, 0x4] - strh r1, [r0] - movs r0, 0 -_082E5A36: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_STC_setSendData_org - - thumb_func_start rfu_changeSendTarget -rfu_changeSendTarget: @ 82E5A54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - cmp r7, 0x3 - bls _082E5A78 - movs r0, 0x80 - lsls r0, 3 - b _082E5BAC -_082E5A78: - cmp r0, 0x20 - bne _082E5B18 - ldr r0, =gUnknown_03007880 - mov r12, r0 - lsls r0, r7, 2 - add r0, r12 - ldr r5, [r0] - ldrh r2, [r5] - ldr r1, =0x00008020 - adds r0, r1, 0 - ands r0, r2 - cmp r0, r1 - bne _082E5B2E - ldrb r0, [r5, 0x1A] - adds r3, r6, 0 - eors r3, r0 - adds r2, r3, 0 - ands r2, r6 - cmp r2, 0 - bne _082E5B66 - cmp r3, 0 - bne _082E5AA6 - b _082E5BAA -_082E5AA6: - ldr r1, =0x04000208 - ldrh r0, [r1] - mov r8, r0 - strh r2, [r1] - movs r2, 0 - mvns r1, r3 - str r1, [sp] - lsls r4, r6, 24 - mov r10, r4 - movs r0, 0x1 - mov r9, r0 - movs r1, 0 -_082E5ABE: - adds r0, r3, 0 - asrs r0, r2 - mov r4, r9 - ands r0, r4 - cmp r0, 0 - beq _082E5AD2 - lsls r0, r2, 2 - add r0, r12 - ldr r0, [r0] - strh r1, [r0, 0x2] -_082E5AD2: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _082E5ABE - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - ldr r2, [sp] - ands r2, r0 - strb r2, [r1, 0x4] - strb r6, [r5, 0x1A] - mov r0, r10 - cmp r0, 0 - bne _082E5AFE - adds r0, r7, 0 - movs r1, 0 - adds r2, r5, 0 - bl rfu_STC_releaseFrame - movs r0, 0x27 - strh r0, [r5] -_082E5AFE: - ldr r0, =0x04000208 - mov r1, r8 - strh r1, [r0] - b _082E5BAA - .align 2, 0 - .pool -_082E5B18: - cmp r3, 0x10 - bne _082E5BA4 - ldr r3, =gUnknown_03007870 - lsls r1, r7, 2 - adds r0, r1, r3 - ldr r0, [r0] - ldrh r2, [r0] - ldr r0, =0x00008024 - adds r5, r3, 0 - cmp r2, r0 - beq _082E5B40 -_082E5B2E: - ldr r0, =0x00000403 - b _082E5BAC - .align 2, 0 - .pool -_082E5B40: - movs r3, 0 - movs r2, 0 - adds r4, r5, 0 -_082E5B46: - cmp r2, r7 - beq _082E5B54 - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - orrs r3, r0 -_082E5B54: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _082E5B46 - adds r2, r6, 0 - ands r2, r3 - cmp r2, 0 - beq _082E5B70 -_082E5B66: - ldr r0, =0x00000404 - b _082E5BAC - .align 2, 0 - .pool -_082E5B70: - ldr r3, =0x04000208 - ldrh r0, [r3] - mov r8, r0 - strh r2, [r3] - ldr r4, =gUnknown_03007890 - ldr r2, [r4] - adds r5, r1, r5 - ldr r0, [r5] - ldrb r1, [r0, 0x3] - ldrb r0, [r2, 0x6] - bics r0, r1 - strb r0, [r2, 0x6] - ldr r2, [r4] - ldrb r1, [r2, 0x6] - adds r0, r6, 0 - orrs r0, r1 - strb r0, [r2, 0x6] - ldr r0, [r5] - strb r6, [r0, 0x3] - mov r2, r8 - strh r2, [r3] - b _082E5BAA - .align 2, 0 - .pool -_082E5BA4: - movs r0, 0xC0 - lsls r0, 3 - b _082E5BAC -_082E5BAA: - movs r0, 0 -_082E5BAC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end rfu_changeSendTarget - - thumb_func_start rfu_NI_stopReceivingData -rfu_NI_stopReceivingData: @ 82E5BBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _082E5BCC - movs r0, 0x80 - lsls r0, 3 - b _082E5C26 -_082E5BCC: - ldr r1, =gUnknown_03007880 - lsls r0, r3, 2 - adds r0, r1 - ldr r2, [r0] - adds r5, r2, 0 - adds r5, 0x34 - ldr r1, =0x04000208 - ldrh r0, [r1] - adds r4, r0, 0 - movs r0, 0 - strh r0, [r1] - ldrh r1, [r2, 0x34] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _082E5C20 - ldr r0, =0x00008043 - cmp r1, r0 - bne _082E5C04 - movs r0, 0x48 - b _082E5C06 - .align 2, 0 - .pool -_082E5C04: - movs r0, 0x47 -_082E5C06: - strh r0, [r2, 0x34] - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - movs r1, 0x1 - lsls r1, r3 - ldrb r0, [r2, 0x5] - bics r0, r1 - strb r0, [r2, 0x5] - adds r0, r3, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl rfu_STC_releaseFrame -_082E5C20: - ldr r0, =0x04000208 - strh r4, [r0] - movs r0, 0 -_082E5C26: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_NI_stopReceivingData - - thumb_func_start rfu_UNI_changeAndReadySendData -rfu_UNI_changeAndReadySendData: @ 82E5C34 - push {r4-r7,lr} - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - lsls r2, 24 - lsrs r5, r2, 24 - cmp r0, 0x3 - bls _082E5C4C - movs r0, 0x80 - lsls r0, 3 - b _082E5CC0 -_082E5C4C: - ldr r1, =gUnknown_03007870 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - ldrh r1, [r4] - ldr r0, =0x00008024 - cmp r1, r0 - beq _082E5C6C - ldr r0, =0x00000403 - b _082E5CC0 - .align 2, 0 - .pool -_082E5C6C: - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - ldrb r0, [r1] - cmp r0, 0x1 - bne _082E5C84 - adds r6, r1, 0 - adds r6, 0xF - ldrb r0, [r4, 0x4] - ldrb r1, [r1, 0xF] - b _082E5C92 - .align 2, 0 - .pool -_082E5C84: - adds r0, r3, 0 - adds r0, 0x10 - adds r6, r1, r0 - adds r1, 0x10 - adds r1, r3 - ldrb r0, [r4, 0x4] - ldrb r1, [r1] -_082E5C92: - adds r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _082E5CBC - ldr r2, =0x04000208 - ldrh r1, [r2] - movs r0, 0 - strh r0, [r2] - str r7, [r4, 0x8] - subs r0, r3, r5 - strb r0, [r6] - strh r5, [r4, 0x4] - movs r0, 0x1 - strb r0, [r4, 0x2] - strh r1, [r2] - movs r0, 0 - b _082E5CC0 - .align 2, 0 - .pool -_082E5CBC: - movs r0, 0xA0 - lsls r0, 3 -_082E5CC0: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end rfu_UNI_changeAndReadySendData - - thumb_func_start rfu_UNI_readySendData -rfu_UNI_readySendData: @ 82E5CC8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _082E5CE6 - ldr r1, =gUnknown_03007870 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - ldrh r1, [r2] - ldr r0, =0x00008024 - cmp r1, r0 - bne _082E5CE6 - movs r0, 0x1 - strb r0, [r2, 0x2] -_082E5CE6: - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_UNI_readySendData - - thumb_func_start rfu_UNI_clearRecvNewDataFlag -rfu_UNI_clearRecvNewDataFlag: @ 82E5CF4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _082E5D0A - ldr r1, =gUnknown_03007870 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x12] -_082E5D0A: - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_UNI_clearRecvNewDataFlag - - thumb_func_start rfu_REQ_sendData -rfu_REQ_sendData: @ 82E5D14 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r1, [r2] - adds r4, r0, 0 - cmp r1, 0xFF - bne _082E5D28 - b _082E5E4E -_082E5D28: - cmp r1, 0x1 - bne _082E5DB8 - ldrb r0, [r2, 0x4] - ldrb r1, [r2, 0x5] - adds r3, r0, 0 - orrs r3, r1 - ldrb r0, [r2, 0x6] - orrs r3, r0 - cmp r3, 0 - bne _082E5DB8 - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - ldrb r1, [r2, 0x3] - adds r4, r0, 0 - cmp r1, 0 - beq _082E5D50 - movs r0, 0x10 - strb r0, [r2, 0x8] - ldr r0, [r4] - strb r3, [r0, 0x7] -_082E5D50: - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _082E5D68 - subs r0, 0x1 - strb r0, [r1, 0x8] - b _082E5D6E - .align 2, 0 - .pool -_082E5D68: - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] -_082E5D6E: - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0 - bne _082E5D80 - ldrb r1, [r1, 0x7] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _082E5E12 -_082E5D80: - ldr r4, =gUnknown_03007898 - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0x68] - movs r0, 0xFF - str r0, [r1, 0x78] - ldr r0, =sub_82E5F00 - bl STWI_set_Callback_M - cmp r5, 0 - bne _082E5DAC - ldr r0, [r4] - adds r0, 0x68 - movs r1, 0x1 - bl STWI_send_DataTxREQ - b _082E5E4E - .align 2, 0 - .pool -_082E5DAC: - ldr r0, [r4] - adds r0, 0x68 - movs r1, 0x1 - bl STWI_send_DataTxAndChangeREQ - b _082E5E4E -_082E5DB8: - ldr r0, [r4] - ldrb r0, [r0, 0xE] - cmp r0, 0 - bne _082E5DC4 - bl rfu_constructSendLLFrame -_082E5DC4: - ldr r0, [r4] - ldrb r0, [r0, 0xE] - cmp r0, 0 - beq _082E5E12 - ldr r0, =rfu_CB_sendData - bl STWI_set_Callback_M - cmp r5, 0 - beq _082E5DFC - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0x68 - ldr r1, =gUnknown_03007894 - ldr r1, [r1] - ldr r1, [r1, 0x24] - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - bl STWI_send_DataTxAndChangeREQ - b _082E5E4E - .align 2, 0 - .pool -_082E5DFC: - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0x68 - ldr r1, =gUnknown_03007894 - ldr r1, [r1] - ldr r1, [r1, 0x24] - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - bl STWI_send_DataTxREQ -_082E5E12: - cmp r5, 0 - beq _082E5E4E - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E5E44 - ldr r0, =gRfuState - ldr r0, [r0] - ldr r1, [r0, 0x1C] - cmp r1, 0 - beq _082E5E4E - movs r0, 0x27 - bl _call_via_r1 - b _082E5E4E - .align 2, 0 - .pool -_082E5E44: - ldr r0, =rfu_CB_sendData2 - bl STWI_set_Callback_M - bl STWI_send_MS_ChangeREQ -_082E5E4E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_sendData - - thumb_func_start rfu_CB_sendData -rfu_CB_sendData: @ 82E5E58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r1, 16 - lsrs r7, r1, 16 - cmp r7, 0 - bne _082E5EC2 - movs r6, 0 - ldr r0, =0x00008020 - mov r8, r0 -_082E5E6C: - ldr r0, =gUnknown_03007870 - lsls r2, r6, 2 - adds r0, r2, r0 - ldr r1, [r0] - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _082E5E7E - movs r0, 0 - strb r0, [r1, 0x2] -_082E5E7E: - ldr r0, =gUnknown_03007880 - adds r0, r2, r0 - ldr r4, [r0] - ldrh r0, [r4] - cmp r0, r8 - bne _082E5EB8 - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - bl rfu_STC_releaseFrame - ldr r5, =gUnknown_03007890 - ldr r2, [r5] - ldrb r1, [r4, 0x1A] - ldrb r0, [r2, 0x4] - bics r0, r1 - strb r0, [r2, 0x4] - adds r0, r4, 0 - adds r0, 0x2D - ldrb r3, [r0] - cmp r3, 0x1 - bne _082E5EB4 - ldr r1, [r5] - lsls r3, r6 - ldrb r0, [r1, 0x7] - orrs r3, r0 - strb r3, [r1, 0x7] -_082E5EB4: - movs r0, 0x26 - strh r0, [r4] -_082E5EB8: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _082E5E6C -_082E5EC2: - ldr r0, =gUnknown_03007890 - ldr r1, [r0] - ldrb r0, [r1, 0xE] - movs r0, 0 - strb r0, [r1, 0xE] - movs r0, 0x24 - adds r1, r7, 0 - bl rfu_STC_REQ_callback - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_sendData - - thumb_func_start rfu_CB_sendData2 -rfu_CB_sendData2: @ 82E5EF0 - push {lr} - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x24 - bl rfu_STC_REQ_callback - pop {r0} - bx r0 - thumb_func_end rfu_CB_sendData2 - - thumb_func_start sub_82E5F00 -sub_82E5F00: @ 82E5F00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0 - beq _082E5F16 - movs r0, 0x24 - bl rfu_STC_REQ_callback - b _082E5F22 -_082E5F16: - cmp r0, 0xFF - bne _082E5F22 - movs r0, 0xFF - movs r1, 0 - bl rfu_STC_REQ_callback -_082E5F22: - pop {r0} - bx r0 - thumb_func_end sub_82E5F00 - - thumb_func_start rfu_constructSendLLFrame -rfu_constructSendLLFrame: @ 82E5F28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r0, [r2] - cmp r0, 0xFF - bne _082E5F40 - b _082E6044 -_082E5F40: - ldrb r0, [r2, 0x4] - ldrb r1, [r2, 0x5] - orrs r0, r1 - ldrb r1, [r2, 0x6] - orrs r0, r1 - cmp r0, 0 - beq _082E6044 - ldrb r0, [r2, 0xE] - movs r0, 0 - strb r0, [r2, 0xE] - mov r8, r0 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0x6C - str r0, [sp] - movs r6, 0 - movs r0, 0x80 - lsls r0, 8 - mov r9, r0 - ldr r1, =0x00008024 - mov r10, r1 -_082E5F6A: - movs r5, 0 - ldr r0, =gUnknown_03007880 - lsls r7, r6, 2 - adds r4, r7, r0 - ldr r2, [r4] - ldrh r1, [r2] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _082E5F8A - adds r0, r6, 0 - mov r1, sp - bl rfu_STC_NI_constructLLSF - lsls r0, 16 - lsrs r5, r0, 16 -_082E5F8A: - ldr r2, [r4] - ldrh r1, [r2, 0x34] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _082E5FA6 - adds r2, 0x34 - adds r0, r6, 0 - mov r1, sp - bl rfu_STC_NI_constructLLSF - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 -_082E5FA6: - ldr r0, =gUnknown_03007870 - adds r0, r7, r0 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, r10 - bne _082E5FC0 - adds r0, r6, 0 - mov r1, sp - bl rfu_STC_UNI_constructLLSF - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 -_082E5FC0: - cmp r5, 0 - beq _082E5FF4 - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E5FE8 - add r8, r5 - b _082E5FF4 - .align 2, 0 - .pool -_082E5FE8: - adds r0, r7, r6 - adds r0, 0x8 - lsls r5, r0 - mov r2, r8 - orrs r2, r5 - mov r8, r2 -_082E5FF4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _082E5F6A - ldr r6, =gUnknown_03007894 - mov r0, r8 - cmp r0, 0 - beq _082E603E - ldr r2, [sp] - movs r0, 0x3 - ands r0, r2 - ldr r5, =gUnknown_03007890 - ldr r1, =gUnknown_03007898 - cmp r0, 0 - beq _082E6026 - movs r4, 0 - movs r3, 0x3 -_082E6018: - strb r4, [r2] - adds r0, r2, 0x1 - str r0, [sp] - adds r2, r0, 0 - ands r0, r3 - cmp r0, 0 - bne _082E6018 -_082E6026: - ldr r0, [r1] - mov r2, r8 - str r2, [r0, 0x68] - ldr r0, [r5] - ldrb r0, [r0] - cmp r0, 0 - bne _082E603E - ldr r0, [sp] - subs r0, 0x6C - ldr r1, [r1] - subs r0, r1 - mov r8, r0 -_082E603E: - ldr r0, [r6] - mov r1, r8 - str r1, [r0, 0x24] -_082E6044: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_constructSendLLFrame - - thumb_func_start rfu_STC_NI_constructLLSF -rfu_STC_NI_constructLLSF: @ 82E6060 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r12, r1 - adds r4, r2, 0 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r2, =gUnknown_03007890 - ldr r0, [r2] - ldrb r0, [r0] - lsls r0, 4 - ldr r1, =gUnknown_089A3220 - adds r0, r1 - mov r8, r0 - ldrh r1, [r4] - ldr r0, =0x00008022 - cmp r1, r0 - bne _082E60CA - adds r3, r4, 0 - adds r3, 0x20 - ldrb r1, [r3] - lsls r1, 2 - adds r5, r4, 0x4 - adds r1, r5, r1 - ldr r2, [r4, 0x28] - ldr r0, [r4, 0x30] - adds r2, r0 - ldr r0, [r1] - adds r6, r3, 0 - cmp r0, r2 - bcc _082E60CA - movs r7, 0 -_082E60A8: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _082E60B8 - strb r7, [r6] -_082E60B8: - ldrb r1, [r3] - lsls r1, 2 - adds r1, r5, r1 - ldr r2, [r4, 0x28] - ldr r0, [r4, 0x30] - adds r2, r0 - ldr r0, [r1] - cmp r0, r2 - bcs _082E60A8 -_082E60CA: - ldrh r1, [r4] - movs r0, 0x40 - ands r0, r1 - mov r9, r1 - cmp r0, 0 - beq _082E60E8 - movs r5, 0 - b _082E612C - .align 2, 0 - .pool -_082E60E8: - ldr r0, =0x00008022 - cmp r9, r0 - bne _082E611C - adds r3, r4, 0 - adds r3, 0x20 - ldrb r0, [r3] - lsls r0, 2 - adds r1, r4, 0x4 - adds r1, r0 - ldrh r7, [r4, 0x2E] - ldr r5, [r1] - adds r2, r5, r7 - ldr r1, [r4, 0x28] - ldr r0, [r4, 0x30] - adds r0, r1, r0 - adds r6, r3, 0 - cmp r2, r0 - bls _082E6118 - subs r0, r5 - lsls r0, 16 - lsrs r5, r0, 16 - b _082E6130 - .align 2, 0 - .pool -_082E6118: - adds r5, r7, 0 - b _082E6130 -_082E611C: - ldrh r2, [r4, 0x2E] - ldr r0, [r4, 0x14] - cmp r0, r2 - bcc _082E6128 - adds r5, r2, 0 - b _082E612C -_082E6128: - lsls r0, 16 - lsrs r5, r0, 16 -_082E612C: - adds r6, r4, 0 - adds r6, 0x20 -_082E6130: - movs r3, 0xF - mov r0, r9 - ands r3, r0 - mov r1, r8 - ldrb r1, [r1, 0x3] - lsls r3, r1 - ldrb r0, [r4, 0x1F] - mov r2, r8 - ldrb r2, [r2, 0x4] - lsls r0, r2 - orrs r3, r0 - ldrb r1, [r6] - adds r0, r1, 0 - mov r7, r8 - ldrb r7, [r7, 0x5] - lsls r0, r7 - orrs r3, r0 - adds r0, r4, 0 - adds r0, 0x21 - adds r0, r1 - ldrb r0, [r0] - mov r1, r8 - ldrb r1, [r1, 0x6] - lsls r0, r1 - orrs r3, r0 - orrs r3, r5 - str r3, [sp] - ldr r2, =gUnknown_03007890 - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E6178 - ldrb r0, [r4, 0x1A] - lsls r0, 18 - orrs r3, r0 - str r3, [sp] -_082E6178: - mov r2, sp - movs r3, 0 - mov r7, r8 - ldrb r7, [r7] - cmp r3, r7 - bcs _082E61A2 -_082E6184: - mov r0, r12 - ldr r1, [r0] - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - mov r7, r12 - str r1, [r7] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - mov r0, r8 - ldrb r0, [r0] - cmp r3, r0 - bcc _082E6184 -_082E61A2: - cmp r5, 0 - beq _082E61C2 - ldrb r1, [r6] - lsls r1, 2 - adds r0, r4, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x4] - ldr r0, =gUnknown_03007898 - ldr r1, [r0] - add r0, sp, 0x4 - ldr r3, [r1, 0x4] - mov r1, r12 - adds r2, r5, 0 - bl _call_via_r3 -_082E61C2: - ldrh r1, [r4] - ldr r0, =0x00008022 - cmp r1, r0 - bne _082E61DC - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _082E61DC - movs r0, 0 - strb r0, [r6] -_082E61DC: - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r1, [r2] - cmp r1, 0x1 - bne _082E61F8 - ldrb r0, [r2, 0xE] - strb r1, [r2, 0xE] - b _082E6206 - .align 2, 0 - .pool -_082E61F8: - movs r0, 0x1 - mov r1, r10 - lsls r0, r1 - ldrb r1, [r2, 0xE] - orrs r0, r1 - ldrb r1, [r2, 0xE] - strb r0, [r2, 0xE] -_082E6206: - mov r2, r8 - ldrb r0, [r2] - adds r0, r5, r0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end rfu_STC_NI_constructLLSF - - thumb_func_start rfu_STC_UNI_constructLLSF -rfu_STC_UNI_constructLLSF: @ 82E6220 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, =gUnknown_03007870 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _082E6244 - ldrb r0, [r4, 0x3] - cmp r0, 0 - bne _082E624C -_082E6244: - movs r0, 0 - b _082E62E8 - .align 2, 0 - .pool -_082E624C: - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r0, [r2] - lsls r0, 4 - ldr r1, =gUnknown_089A3220 - adds r5, r0, r1 - ldrh r0, [r4] - movs r1, 0xF - ands r1, r0 - ldrb r0, [r5, 0x3] - lsls r1, r0 - ldrh r0, [r4, 0x4] - orrs r1, r0 - str r1, [sp] - ldrb r0, [r2] - cmp r0, 0x1 - bne _082E6276 - ldrb r0, [r4, 0x3] - lsls r0, 18 - orrs r1, r0 - str r1, [sp] -_082E6276: - mov r2, sp - movs r3, 0 - ldr r1, =gUnknown_03007898 - mov r12, r1 - add r7, sp, 0x4 - ldrb r0, [r5] - cmp r3, r0 - bcs _082E629E -_082E6286: - ldr r1, [r6] - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r1, 0x1 - str r1, [r6] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r1, [r5] - cmp r3, r1 - bcc _082E6286 -_082E629E: - ldr r0, [r4, 0x8] - str r0, [sp, 0x4] - mov r2, r12 - ldr r0, [r2] - ldrh r2, [r4, 0x4] - ldr r3, [r0, 0x4] - adds r0, r7, 0 - adds r1, r6, 0 - bl _call_via_r3 - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r0, [r2] - cmp r0, 0x1 - bne _082E62D0 - ldrb r0, [r2, 0xE] - movs r0, 0x10 - b _082E62DC - .align 2, 0 - .pool -_082E62D0: - movs r0, 0x10 - mov r1, r8 - lsls r0, r1 - ldrb r1, [r2, 0xE] - orrs r0, r1 - ldrb r1, [r2, 0xE] -_082E62DC: - strb r0, [r2, 0xE] - ldrh r0, [r4, 0x4] - ldrb r5, [r5] - adds r0, r5 - lsls r0, 16 - lsrs r0, 16 -_082E62E8: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end rfu_STC_UNI_constructLLSF - - thumb_func_start rfu_REQ_recvData -rfu_REQ_recvData: @ 82E62F4 - push {r4,lr} - ldr r0, =gUnknown_03007890 - ldr r4, [r0] - ldrb r0, [r4] - cmp r0, 0xFF - beq _082E6320 - ldr r2, =gUnknown_03007894 - ldr r3, [r2] - ldrb r0, [r4, 0x4] - ldrb r1, [r4, 0x5] - orrs r0, r1 - ldrb r1, [r4, 0x6] - orrs r0, r1 - movs r1, 0 - strb r0, [r3, 0x3] - ldr r0, [r2] - strb r1, [r0, 0x4] - ldr r0, =rfu_CB_recvData - bl STWI_set_Callback_M - bl STWI_send_DataRxREQ -_082E6320: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_recvData - - thumb_func_start rfu_CB_recvData -rfu_CB_recvData: @ 82E6334 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 16 - lsrs r7, r1, 16 - cmp r7, 0 - bne _082E63F8 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _082E63F8 - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - strb r7, [r0, 0x1] - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E637C - bl rfu_STC_PARENT_analyzeRecvPacket - b _082E6380 - .align 2, 0 - .pool -_082E637C: - bl rfu_STC_CHILD_analyzeRecvPacket -_082E6380: - movs r6, 0 - ldr r0, =0x00008043 - mov r8, r0 - ldr r3, =gUnknown_03007890 -_082E6388: - ldr r0, =gUnknown_03007880 - lsls r1, r6, 2 - adds r1, r0 - ldr r4, [r1] - ldrh r0, [r4, 0x34] - cmp r0, r8 - bne _082E63DA - ldr r0, =gUnknown_03007894 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - asrs r0, r6 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _082E63DA - adds r5, r4, 0 - adds r5, 0x34 - adds r0, r4, 0 - adds r0, 0x61 - ldrb r2, [r0] - cmp r2, 0x1 - bne _082E63BE - ldr r1, [r3] - lsls r2, r6 - ldrb r0, [r1, 0x7] - orrs r2, r0 - strb r2, [r1, 0x7] -_082E63BE: - adds r0, r6, 0 - movs r1, 0x1 - adds r2, r5, 0 - str r3, [sp] - bl rfu_STC_releaseFrame - ldr r3, [sp] - ldr r2, [r3] - ldrb r1, [r5, 0x1A] - ldrb r0, [r2, 0x5] - bics r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x46 - strh r0, [r4, 0x34] -_082E63DA: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _082E6388 - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _082E63F8 - adds r7, r0, 0 - movs r1, 0xE0 - lsls r1, 3 - adds r0, r1, 0 - orrs r7, r0 -_082E63F8: - mov r0, r9 - adds r1, r7, 0 - bl rfu_STC_REQ_callback - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_CB_recvData - - thumb_func_start rfu_STC_PARENT_analyzeRecvPacket -rfu_STC_PARENT_analyzeRecvPacket: @ 82E6420 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gUnknown_03007898 - ldr r0, [r1] - adds r0, 0xDC - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsrs r3, r0, 8 - movs r5, 0 - mov r12, r1 - movs r7, 0x1F - ldr r4, =gUnknown_03007894 - movs r6, 0x1 -_082E643A: - mov r0, sp - adds r1, r0, r5 - adds r0, r3, 0 - ands r0, r7 - strb r0, [r1] - lsrs r3, 5 - cmp r0, 0 - bne _082E6456 - ldr r0, [r4] - adds r1, r6, 0 - lsls r1, r5 - ldrb r2, [r0, 0x1] - orrs r1, r2 - strb r1, [r0, 0x1] -_082E6456: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _082E643A - mov r1, r12 - ldr r0, [r1] - adds r0, 0xDC - ldr r0, [r0] - adds r6, r0, 0 - adds r6, 0x8 - movs r5, 0 -_082E646E: - mov r0, sp - adds r1, r0, r5 - ldrb r0, [r1] - adds r7, r5, 0x1 - cmp r0, 0 - beq _082E64A0 - adds r4, r1, 0 -_082E647C: - ldrb r2, [r4] - adds r0, r5, 0 - adds r1, r6, 0 - bl rfu_STC_analyzeLLSF - lsls r0, 24 - lsrs r0, 24 - adds r6, r0 - ldrb r1, [r4] - subs r1, r0 - strb r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _082E64A0 - lsls r0, r1, 24 - cmp r0, 0 - bne _082E647C -_082E64A0: - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _082E646E - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_PARENT_analyzeRecvPacket - - thumb_func_start rfu_STC_CHILD_analyzeRecvPacket -rfu_STC_CHILD_analyzeRecvPacket: @ 82E64B8 - push {r4-r6,lr} - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - adds r0, 0xDC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - movs r4, 0x7F - ands r4, r0 - adds r5, r1, 0 - adds r5, 0x8 - cmp r4, 0 - bne _082E64D8 - ldr r0, =gUnknown_03007894 - ldr r1, [r0] - movs r0, 0xF - strb r0, [r1, 0x1] -_082E64D8: - movs r0, 0x80 - lsls r0, 8 - adds r6, r0, 0 -_082E64DE: - cmp r4, 0 - beq _082E6500 - movs r0, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl rfu_STC_analyzeLLSF - lsls r0, 16 - lsrs r0, 16 - adds r5, r0 - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - ands r0, r6 - cmp r0, 0 - beq _082E64DE -_082E6500: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_CHILD_analyzeRecvPacket - - thumb_func_start rfu_STC_analyzeLLSF -rfu_STC_analyzeLLSF: @ 82E6510 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r2, 16 - lsrs r3, r2, 16 - ldr r2, =gUnknown_03007890 - ldr r0, [r2] - ldrb r0, [r0] - mvns r0, r0 - movs r1, 0x1 - ands r0, r1 - lsls r0, 4 - ldr r1, =gUnknown_089A3220 - adds r6, r0, r1 - ldrb r0, [r6] - cmp r3, r0 - bcs _082E654C - adds r0, r3, 0 - b _082E673E - .align 2, 0 - .pool -_082E654C: - movs r5, 0 - movs r4, 0 - ldrb r3, [r6, 0x1] - ldrb r1, [r6, 0x7] - mov r8, r1 - ldr r2, [sp] - mov r9, r2 - cmp r4, r0 - bcs _082E6574 - adds r2, r0, 0 -_082E6560: - ldrb r0, [r7] - lsls r1, r4, 3 - lsls r0, r1 - orrs r5, r0 - adds r7, 0x1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r2 - bcc _082E6560 -_082E6574: - adds r0, r5, 0 - lsrs r0, r3 - mov r3, r8 - ands r0, r3 - ldr r1, =0xffffff00 - mov r10, r1 - mov r3, r10 - mov r2, r9 - ands r3, r2 - orrs r3, r0 - str r3, [sp] - adds r0, r5, 0 - ldrb r1, [r6, 0x2] - lsrs r0, r1 - ldrb r1, [r6, 0x8] - ands r0, r1 - lsls r0, 8 - ldr r4, =0xffff00ff - adds r2, r4, 0 - ands r2, r3 - orrs r2, r0 - str r2, [sp] - adds r0, r5, 0 - ldrb r3, [r6, 0x3] - lsrs r0, r3 - ldrb r1, [r6, 0x9] - ands r0, r1 - lsls r0, 16 - ldr r3, =0xff00ffff - ands r3, r2 - orrs r3, r0 - str r3, [sp] - adds r0, r5, 0 - ldrb r1, [r6, 0x4] - lsrs r0, r1 - ldrb r1, [r6, 0xA] - ands r0, r1 - lsls r0, 24 - ldr r2, =0x00ffffff - mov r8, r2 - mov r1, r8 - ands r1, r3 - orrs r1, r0 - mov r8, r1 - str r1, [sp] - adds r1, r5, 0 - ldrb r2, [r6, 0x5] - lsrs r1, r2 - ldrb r0, [r6, 0xB] - ands r1, r0 - mov r9, sp - ldr r2, [sp, 0x4] - mov r3, r10 - ands r2, r3 - orrs r2, r1 - str r2, [sp, 0x4] - adds r0, r5, 0 - ldrb r1, [r6, 0x6] - lsrs r0, r1 - ldrb r1, [r6, 0xC] - ands r0, r1 - lsls r0, 8 - ands r4, r2 - orrs r4, r0 - str r4, [sp, 0x4] - ldrh r0, [r6, 0xE] - ands r5, r0 - lsls r1, r5, 16 - ldr r0, =0x0000ffff - ands r0, r4 - orrs r0, r1 - str r0, [sp, 0x4] - lsrs r0, 16 - ldrb r6, [r6] - adds r0, r6 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _082E661A - b _082E673C -_082E661A: - ldr r2, =gUnknown_03007890 - ldr r3, [r2] - ldrb r2, [r3] - cmp r2, 0x1 - bne _082E66D8 - ldrb r0, [r3, 0x2] - mov r5, r12 - asrs r0, r5 - ands r0, r2 - cmp r0, 0 - bne _082E6632 - b _082E673C -_082E6632: - mov r1, r8 - lsrs r0, r1, 16 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _082E6664 - mov r0, r12 - mov r1, sp - adds r2, r7, 0 - bl rfu_STC_UNI_receive - b _082E673C - .align 2, 0 - .pool -_082E6664: - mov r5, r9 - ldrb r0, [r5, 0x3] - cmp r0, 0 - bne _082E6678 - mov r0, r12 - mov r1, sp - adds r2, r7, 0 - bl rfu_STC_NI_receive_Receiver - b _082E673C -_082E6678: - movs r4, 0 - ldr r1, =gUnknown_03007880 - ldr r0, [r1] - ldrb r0, [r0, 0x1A] - mov r5, r12 - asrs r0, r5 - ands r0, r2 - cmp r0, 0 - beq _082E6694 - ldrb r0, [r3, 0x4] - b _082E66BA - .align 2, 0 - .pool -_082E6694: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bhi _082E673C - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0, 0x1A] - mov r2, r12 - asrs r0, r2 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - beq _082E6694 - ldr r3, =gUnknown_03007890 - ldr r0, [r3] - ldrb r0, [r0, 0x4] - mov r5, r12 -_082E66BA: - asrs r0, r5 - ands r0, r2 - cmp r0, 0 - beq _082E6694 - cmp r4, 0x3 - bhi _082E673C - adds r0, r4, 0 - mov r1, r12 - mov r2, sp - adds r3, r7, 0 - bl rfu_STC_NI_receive_Sender - b _082E673C - .align 2, 0 - .pool -_082E66D8: - ldrb r1, [r3, 0x2] - mov r2, r9 - ldrb r0, [r2, 0x1] - adds r5, r1, 0 - ands r5, r0 - cmp r5, 0 - beq _082E673C - movs r4, 0 - movs r6, 0x1 -_082E66EA: - adds r0, r5, 0 - asrs r0, r4 - ands r0, r6 - cmp r0, 0 - beq _082E6732 - mov r1, sp - ldrb r0, [r1, 0x2] - cmp r0, 0x4 - bne _082E6706 - adds r0, r4, 0 - adds r2, r7, 0 - bl rfu_STC_UNI_receive - b _082E6732 -_082E6706: - ldrb r0, [r1, 0x3] - cmp r0, 0 - bne _082E6718 - adds r0, r4, 0 - mov r1, sp - adds r2, r7, 0 - bl rfu_STC_NI_receive_Receiver - b _082E6732 -_082E6718: - ldr r0, =gUnknown_03007890 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - asrs r0, r4 - ands r0, r6 - cmp r0, 0 - beq _082E6732 - adds r0, r4, 0 - adds r1, r4, 0 - mov r2, sp - adds r3, r7, 0 - bl rfu_STC_NI_receive_Sender -_082E6732: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E66EA -_082E673C: - mov r0, r10 -_082E673E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end rfu_STC_analyzeLLSF - - thumb_func_start rfu_STC_UNI_receive -rfu_STC_UNI_receive: @ 82E6754 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r1, 0 - str r2, [sp] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gUnknown_03007870 - lsls r1, r7, 2 - adds r1, r2 - ldr r3, [r1] - adds r5, r3, 0 - adds r5, 0xC - movs r4, 0 - movs r0, 0 - strh r0, [r5, 0x2] - ldr r0, [r1] - ldr r0, [r0, 0x18] - adds r1, r2, 0 - ldrh r2, [r6, 0x6] - cmp r0, r2 - bcs _082E6790 - movs r0, 0x49 - strh r0, [r3, 0xC] - ldr r0, =0x00000701 - strh r0, [r5, 0x2] - b _082E67DE - .align 2, 0 - .pool -_082E6790: - ldrb r0, [r5, 0x7] - cmp r0, 0 - beq _082E67A8 - ldrb r0, [r5, 0x6] - cmp r0, 0 - beq _082E67B4 - ldr r0, =0x00000709 - strh r0, [r5, 0x2] - b _082E67DE - .align 2, 0 - .pool -_082E67A8: - ldrb r0, [r5, 0x6] - cmp r0, 0 - beq _082E67B4 - movs r0, 0xE1 - lsls r0, 3 - strh r0, [r5, 0x2] -_082E67B4: - movs r4, 0 - ldr r0, =0x00008042 - strh r0, [r5] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x4] - ldrh r2, [r6, 0x6] - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0, 0x14] - str r0, [sp, 0x4] - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - add r1, sp, 0x4 - ldr r3, [r0, 0x4] - mov r0, sp - bl _call_via_r3 - movs r0, 0x1 - strb r0, [r5, 0x6] - strh r4, [r5] -_082E67DE: - ldrh r0, [r5, 0x2] - cmp r0, 0 - beq _082E67F2 - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - movs r0, 0x10 - lsls r0, r7 - ldrb r1, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] -_082E67F2: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_UNI_receive - - thumb_func_start rfu_STC_NI_receive_Sender -rfu_STC_NI_receive_Sender: @ 82E6808 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r2, 0 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r1, =gUnknown_03007880 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - mov r12, r0 - ldrh r0, [r0] - mov r9, r0 - mov r0, r12 - adds r0, 0x21 - ldrb r2, [r6, 0x4] - adds r0, r2 - ldrb r0, [r0] - str r0, [sp] - ldrb r2, [r6, 0x2] - cmp r2, 0x2 - bne _082E6844 - ldr r0, =0x00008022 - cmp r9, r0 - beq _082E685E -_082E6844: - cmp r2, 0x1 - bne _082E684E - ldr r0, =0x00008021 - cmp r9, r0 - beq _082E685E -_082E684E: - movs r3, 0x1B - add r3, r12 - mov r8, r3 - cmp r2, 0x3 - bne _082E6882 - ldr r0, =0x00008023 - cmp r9, r0 - bne _082E6882 -_082E685E: - ldrb r1, [r6, 0x4] - mov r0, r12 - adds r0, 0x21 - adds r0, r1 - ldrb r0, [r0] - movs r7, 0x1B - add r7, r12 - mov r8, r7 - ldrb r2, [r6, 0x5] - cmp r0, r2 - bne _082E6882 - adds r0, r7, r1 - movs r1, 0x1 - mov r3, r10 - lsls r1, r3 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] -_082E6882: - ldrb r2, [r6, 0x4] - mov r7, r8 - adds r0, r7, r2 - ldrb r0, [r0] - mov r3, r12 - ldrb r1, [r3, 0x1A] - ands r0, r1 - cmp r0, r1 - bne _082E697E - adds r3, 0x21 - adds r2, r3, r2 - ldrb r0, [r2] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - movs r1, 0 - strb r0, [r2] - ldrb r0, [r6, 0x4] - add r0, r8 - strb r1, [r0] - mov r7, r12 - ldrh r1, [r7] - ldr r2, =0x00007fdf - adds r0, r1, r2 - lsls r0, 16 - lsrs r0, 16 - adds r5, r3, 0 - cmp r0, 0x1 - bhi _082E6970 - ldr r0, =0x00008021 - cmp r1, r0 - bne _082E68E8 - ldrb r1, [r6, 0x4] - lsls r1, 2 - subs r3, 0x1D - adds r1, r3, r1 - ldrh r2, [r7, 0x2E] - ldr r0, [r1] - adds r0, r2 - str r0, [r1] - b _082E68FE - .align 2, 0 - .pool -_082E68E8: - ldrb r2, [r6, 0x4] - lsls r2, 2 - mov r3, r12 - adds r3, 0x4 - adds r2, r3, r2 - mov r7, r12 - ldrh r1, [r7, 0x2E] - lsls r1, 2 - ldr r0, [r2] - adds r0, r1 - str r0, [r2] -_082E68FE: - mov r0, r12 - ldrh r1, [r0, 0x2E] - ldr r0, [r0, 0x14] - subs r0, r1 - mov r1, r12 - str r0, [r1, 0x14] - cmp r0, 0 - beq _082E6912 - cmp r0, 0 - bge _082E697E -_082E6912: - mov r0, r12 - adds r0, 0x20 - movs r2, 0 - strb r2, [r0] - mov r7, r12 - ldrh r1, [r7] - ldr r0, =0x00008021 - cmp r1, r0 - bne _082E695C - movs r4, 0 -_082E6926: - adds r0, r5, r4 - movs r1, 0x1 - strb r1, [r0] - lsls r1, r4, 2 - adds r1, r3, r1 - mov r2, r12 - ldrh r0, [r2, 0x2E] - adds r2, r0, 0 - muls r2, r4 - mov r7, r12 - ldr r0, [r7, 0x28] - adds r0, r2 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _082E6926 - ldr r0, [r7, 0x30] - str r0, [r7, 0x14] - ldr r0, =0x00008022 - strh r0, [r7] - b _082E697E - .align 2, 0 - .pool -_082E695C: - strb r2, [r5] - mov r0, r12 - str r2, [r0, 0x14] - ldr r0, =0x00008023 - mov r1, r12 - strh r0, [r1] - b _082E697E - .align 2, 0 - .pool -_082E6970: - lsls r1, 16 - ldr r0, =0x80230000 - cmp r1, r0 - bne _082E697E - ldr r0, =0x00008020 - mov r2, r12 - strh r0, [r2] -_082E697E: - mov r3, r12 - ldrh r0, [r3] - cmp r0, r9 - bne _082E69A8 - ldrb r2, [r6, 0x4] - mov r0, r12 - adds r0, 0x21 - adds r0, r2 - ldrb r0, [r0] - ldr r7, [sp] - cmp r0, r7 - bne _082E69A8 - mov r1, r8 - adds r0, r1, r2 - ldrb r0, [r0] - mov r2, r10 - asrs r0, r2 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _082E69CE -_082E69A8: - ldr r4, =0x04000208 - ldrh r2, [r4] - movs r0, 0 - strh r0, [r4] - ldr r0, =gUnknown_03007894 - ldr r3, [r0] - movs r0, 0x10 - mov r7, r10 - lsls r0, r7 - ldrb r1, [r3, 0x2] - orrs r0, r1 - movs r1, 0 - strb r0, [r3, 0x2] - lsls r0, r7, 2 - ldr r3, =gUnknown_03007880 - adds r0, r3 - ldr r0, [r0] - strh r1, [r0, 0x2] - strh r2, [r4] -_082E69CE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_NI_receive_Sender - - thumb_func_start rfu_STC_NI_receive_Receiver -rfu_STC_NI_receive_Receiver: @ 82E69F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r1, 0 - str r2, [sp] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - ldr r1, =gUnknown_03007880 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r5, r4, 0 - adds r5, 0x34 - ldrh r0, [r4, 0x34] - mov r9, r0 - ldrb r0, [r6, 0x4] - adds r3, r4, 0 - adds r3, 0x55 - adds r0, r3, r0 - ldrb r0, [r0] - mov r10, r0 - ldrb r0, [r6, 0x2] - cmp r0, 0x3 - bne _082E6A64 - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - movs r0, 0x1 - mov r1, r8 - lsls r0, r1 - ldrb r1, [r2, 0x1] - orrs r0, r1 - strb r0, [r2, 0x1] - ldrh r1, [r4, 0x34] - ldr r0, =0x00008042 - cmp r1, r0 - bne _082E6AAA - adds r0, r4, 0 - adds r0, 0x54 - strb r7, [r0] - strb r7, [r3] - ldr r0, =0x00008043 - strh r0, [r4, 0x34] - b _082E6AAA - .align 2, 0 - .pool -_082E6A64: - cmp r0, 0x2 - bne _082E6A90 - ldr r0, =0x00008041 - cmp r9, r0 - bne _082E6A7C - ldr r0, [r5, 0x14] - cmp r0, 0 - bne _082E6A7C - mov r0, r8 - adds r1, r5, 0 - bl rfu_STC_NI_initSlot_asRecvDataEntity -_082E6A7C: - ldrh r1, [r5] - ldr r0, =0x00008042 - cmp r1, r0 - bne _082E6AAA - b _082E6AAE - .align 2, 0 - .pool -_082E6A90: - cmp r0, 0x1 - bne _082E6AAA - ldr r7, =0x00008041 - cmp r9, r7 - beq _082E6AAE - mov r0, r8 - adds r1, r5, 0 - bl rfu_STC_NI_initSlot_asRecvControllData - ldrh r0, [r4, 0x34] - cmp r0, r7 - bne _082E6B4A - movs r7, 0x1 -_082E6AAA: - cmp r7, 0 - beq _082E6B04 -_082E6AAE: - ldrb r2, [r6, 0x5] - ldrb r3, [r6, 0x4] - adds r4, r5, 0 - adds r4, 0x21 - adds r0, r4, r3 - ldrb r0, [r0] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - cmp r2, r0 - bne _082E6B04 - ldr r0, =gUnknown_03007898 - ldr r0, [r0] - lsls r1, r3, 2 - adds r1, 0x4 - adds r1, r5, r1 - ldrh r2, [r6, 0x6] - ldr r3, [r0, 0x4] - mov r0, sp - bl _call_via_r3 - ldrh r1, [r5] - ldr r0, =0x00008042 - cmp r1, r0 - bne _082E6AF4 - ldrb r0, [r6, 0x4] - lsls r0, 2 - adds r2, r5, 0x4 - adds r2, r0 - ldrh r0, [r5, 0x2E] - lsls r1, r0, 1 - adds r1, r0 - ldr r0, [r2] - adds r0, r1 - str r0, [r2] -_082E6AF4: - ldrh r1, [r6, 0x6] - ldr r0, [r5, 0x14] - subs r0, r1 - str r0, [r5, 0x14] - ldrb r0, [r6, 0x4] - adds r0, r4, r0 - ldrb r1, [r6, 0x5] - strb r1, [r0] -_082E6B04: - ldrh r0, [r5, 0x18] - cmp r0, 0 - bne _082E6B4A - ldrb r0, [r6, 0x4] - adds r1, r5, 0 - adds r1, 0x20 - strb r0, [r1] - ldrh r0, [r5] - cmp r0, r9 - bne _082E6B2C - adds r0, r5, 0 - adds r0, 0x21 - ldrb r2, [r6, 0x4] - adds r0, r2 - ldrb r0, [r0] - cmp r0, r10 - bne _082E6B2C - ldrb r6, [r6, 0x5] - cmp r0, r6 - bne _082E6B4A -_082E6B2C: - ldr r3, =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r0, =gUnknown_03007894 - ldr r4, [r0] - movs r0, 0x1 - mov r1, r8 - lsls r0, r1 - ldrb r1, [r4, 0x2] - orrs r0, r1 - movs r1, 0 - strb r0, [r4, 0x2] - strh r1, [r5, 0x2] - strh r2, [r3] -_082E6B4A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_NI_receive_Receiver - - thumb_func_start rfu_STC_NI_initSlot_asRecvControllData -rfu_STC_NI_initSlot_asRecvControllData: @ 82E6B70 - push {r4-r7,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_03007890 - ldr r3, [r0] - ldrb r1, [r3] - mov r12, r0 - cmp r1, 0x1 - bne _082E6B90 - movs r5, 0x3 - adds r1, r3, 0 - adds r1, 0xF - b _082E6B98 - .align 2, 0 - .pool -_082E6B90: - movs r5, 0x2 - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r3, r0 -_082E6B98: - movs r7, 0x1 - adds r0, r7, 0 - lsls r0, r4 - lsls r0, 24 - lsrs r6, r0, 24 - adds r4, r6, 0 - ldrh r3, [r2] - cmp r3, 0 - bne _082E6BF6 - ldrb r0, [r1] - cmp r0, r5 - bcs _082E6BD0 - movs r0, 0x49 - strh r0, [r2] - ldr r0, =0x00000702 - strh r0, [r2, 0x18] - ldr r0, =gUnknown_03007894 - ldr r2, [r0] - ldrb r1, [r2, 0x4] - adds r0, r6, 0 - orrs r0, r1 - strb r0, [r2, 0x4] - b _082E6BF6 - .align 2, 0 - .pool -_082E6BD0: - strh r3, [r2, 0x18] - ldrb r0, [r1] - subs r0, r5 - strb r0, [r1] - adds r0, r2, 0 - adds r0, 0x2D - str r0, [r2, 0x4] - movs r0, 0x7 - str r0, [r2, 0x14] - strb r7, [r2, 0x1F] - strh r3, [r2, 0x2E] - strb r4, [r2, 0x1A] - ldr r0, =0x00008041 - strh r0, [r2] - mov r0, r12 - ldr r1, [r0] - ldrb r0, [r1, 0x5] - orrs r4, r0 - strb r4, [r1, 0x5] -_082E6BF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_NI_initSlot_asRecvControllData - - thumb_func_start rfu_STC_NI_initSlot_asRecvDataEntity -rfu_STC_NI_initSlot_asRecvDataEntity: @ 82E6C00 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0x1 - bne _082E6C24 - ldr r0, =gUnknown_03007890 - lsls r1, r5, 5 - adds r1, 0x14 - ldr r0, [r0] - adds r0, r1 - adds r0, 0x4 - b _082E6C7A - .align 2, 0 - .pool -_082E6C24: - ldr r1, =gUnknown_03007880 - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - ldr r1, [r4, 0x30] - ldr r0, [r2, 0x6C] - cmp r1, r0 - bls _082E6C78 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r5 - lsrs r1, 24 - ldr r0, =gUnknown_03007894 - ldr r3, [r0] - ldrb r2, [r3, 0x4] - adds r0, r1, 0 - orrs r0, r2 - strb r0, [r3, 0x4] - ldr r0, =gUnknown_03007890 - ldr r2, [r0] - ldrb r0, [r2, 0x5] - bics r0, r1 - strb r0, [r2, 0x5] - ldr r0, =0x00000701 - strh r0, [r4, 0x18] - movs r0, 0x47 - strh r0, [r4] - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl rfu_STC_releaseFrame - b _082E6CAC - .align 2, 0 - .pool -_082E6C78: - ldr r0, [r2, 0x68] -_082E6C7A: - str r0, [r4, 0x4] - movs r3, 0 - adds r6, r4, 0 - adds r6, 0x21 - movs r7, 0 - adds r5, r4, 0x4 -_082E6C86: - adds r0, r6, r3 - strb r7, [r0] - lsls r1, r3, 2 - adds r1, r5, r1 - ldrh r0, [r4, 0x2E] - adds r2, r0, 0 - muls r2, r3 - ldr r0, [r4, 0x4] - adds r0, r2 - str r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _082E6C86 - ldr r0, [r4, 0x30] - str r0, [r4, 0x14] - ldr r0, =0x00008042 - strh r0, [r4] -_082E6CAC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_STC_NI_initSlot_asRecvDataEntity - - thumb_func_start rfu_NI_checkCommFailCounter -rfu_NI_checkCommFailCounter: @ 82E6CB8 - push {r4-r7,lr} - ldr r2, =gUnknown_03007890 - ldr r0, [r2] - ldrb r1, [r0, 0x4] - ldrb r0, [r0, 0x5] - orrs r0, r1 - cmp r0, 0 - beq _082E6D3E - ldr r1, =0x04000208 - ldrh r0, [r1] - mov r12, r0 - movs r0, 0 - strh r0, [r1] - ldr r1, =gUnknown_03007894 - ldr r0, [r1] - ldrb r0, [r0, 0x2] - lsrs r7, r0, 4 - movs r3, 0 - adds r6, r1, 0 - adds r5, r2, 0 - ldr r4, =gUnknown_03007880 -_082E6CE2: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r3 - lsrs r2, r0, 24 - ldr r0, [r5] - ldrb r0, [r0, 0x4] - ands r0, r2 - cmp r0, 0 - beq _082E6D0A - ldr r0, [r6] - ldrb r0, [r0, 0x2] - ands r0, r2 - cmp r0, 0 - bne _082E6D0A - lsls r0, r3, 2 - adds r0, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x2] - adds r0, 0x1 - strh r0, [r1, 0x2] -_082E6D0A: - ldr r0, [r5] - ldrb r0, [r0, 0x5] - ands r0, r2 - cmp r0, 0 - beq _082E6D28 - adds r0, r7, 0 - ands r0, r2 - cmp r0, 0 - bne _082E6D28 - lsls r0, r3, 2 - adds r0, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x36] - adds r0, 0x1 - strh r0, [r1, 0x36] -_082E6D28: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _082E6CE2 - ldr r0, [r6] - movs r1, 0 - strb r1, [r0, 0x2] - ldr r0, =0x04000208 - mov r1, r12 - strh r1, [r0] -_082E6D3E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_NI_checkCommFailCounter - - thumb_func_start rfu_REQ_noise -rfu_REQ_noise: @ 82E6D54 - push {lr} - ldr r0, =rfu_STC_REQ_callback - bl STWI_set_Callback_M - movs r0, 0x1 - movs r1, 0 - bl STWI_send_TestModeREQ - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end rfu_REQ_noise - - thumb_func_start sub_82E6D6C -sub_82E6D6C: @ 82E6D6C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =0x04000208 - ldrh r0, [r0] - cmp r0, 0 - bne _082E6D88 - movs r0, 0x1 - negs r0, r0 - b _082E6E08 - .align 2, 0 - .pool -_082E6D88: - ldr r0, =0x04000200 - ldrh r0, [r0] - mov r8, r0 - ldr r4, =gRfuState - ldr r1, [r4] - movs r0, 0xA - str r0, [r1] - ldr r0, =sub_82E6F88 - bl STWI_set_Callback_ID - bl sub_82E6E20 - ldr r0, [r4] - ldrb r0, [r0, 0xA] - lsls r0, 2 - ldr r1, =0x04000100 - adds r4, r0, r1 - lsls r0, r5, 27 - lsrs r5, r0, 24 - movs r7, 0 - b _082E6DD6 - .align 2, 0 - .pool -_082E6DC4: - strh r6, [r4, 0x2] - strh r6, [r4] - movs r0, 0x83 - strh r0, [r4, 0x2] -_082E6DCC: - ldrh r0, [r4] - cmp r0, 0x1F - bls _082E6DCC - strh r7, [r4, 0x2] - strh r7, [r4] -_082E6DD6: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xFF - beq _082E6DEA - bl sub_82E6E94 - adds r6, r0, 0 - cmp r6, 0 - beq _082E6DC4 -_082E6DEA: - ldr r1, =0x04000208 - movs r0, 0 - strh r0, [r1] - ldr r0, =0x04000200 - mov r2, r8 - strh r2, [r0] - movs r0, 0x1 - strh r0, [r1] - ldr r0, =gRfuState - ldr r1, [r0] - movs r0, 0 - str r0, [r1] - bl STWI_set_Callback_ID - adds r0, r6, 0 -_082E6E08: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end sub_82E6D6C - - thumb_func_start sub_82E6E20 -sub_82E6E20: @ 82E6E20 - push {r4,r5,lr} - sub sp, 0x4 - ldr r3, =0x04000208 - movs r4, 0 - strh r4, [r3] - ldr r2, =0x04000200 - ldr r0, =gRfuState - ldr r0, [r0] - movs r1, 0x8 - ldrb r0, [r0, 0xA] - lsls r1, r0 - movs r5, 0x80 - orrs r1, r5 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - movs r0, 0x1 - strh r0, [r3] - ldr r0, =0x04000134 - strh r4, [r0] - subs r2, 0xD8 - movs r1, 0x80 - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r2] - ldrh r0, [r2] - movs r3, 0x81 - lsls r3, 7 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - movs r0, 0 - str r0, [sp] - ldr r1, =gUnknown_030078A0 - ldr r2, =0x05000003 - mov r0, sp - bl CpuSet - ldr r0, =0x04000202 - strh r5, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end sub_82E6E20 - - thumb_func_start sub_82E6E94 -sub_82E6E94: @ 82E6E94 - push {r4-r7,lr} - ldr r0, =gUnknown_030078A0 - ldrb r1, [r0, 0x1] - mov r12, r1 - adds r7, r0, 0 - cmp r1, 0 - beq _082E6EAC - cmp r1, 0x1 - beq _082E6EE4 - b _082E6F7C - .align 2, 0 - .pool -_082E6EAC: - movs r6, 0x1 - strb r6, [r7] - ldr r3, =0x04000128 - ldrh r0, [r3] - movs r5, 0x1 - orrs r0, r5 - strh r0, [r3] - ldr r4, =0x04000208 - mov r0, r12 - strh r0, [r4] - ldr r2, =0x04000200 - ldrh r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r2] - strh r6, [r4] - strb r5, [r7, 0x1] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] - b _082E6F80 - .align 2, 0 - .pool -_082E6EE4: - ldrh r0, [r7, 0xA] - cmp r0, 0 - bne _082E6F78 - ldrb r0, [r7] - cmp r0, 0x1 - bne _082E6F14 - ldrh r0, [r7, 0x2] - cmp r0, 0 - bne _082E6F80 - ldr r3, =0x04000208 - strh r0, [r3] - ldr r2, =0x04000128 - ldrh r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strh r0, [r2] - mov r1, r12 - strh r1, [r3] - b _082E6F80 - .align 2, 0 - .pool -_082E6F14: - ldrh r1, [r7, 0x4] - ldr r0, =0x00008001 - cmp r1, r0 - beq _082E6F80 - ldrh r6, [r7, 0x2] - cmp r6, 0 - bne _082E6F80 - ldr r4, =0x04000208 - strh r6, [r4] - ldr r3, =0x04000200 - ldrh r1, [r3] - ldr r0, =0x0000ff7f - ands r0, r1 - strh r0, [r3] - mov r7, r12 - strh r7, [r4] - ldr r2, =0x04000128 - strh r6, [r2] - movs r1, 0x80 - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r2] - ldr r0, =0x04000202 - movs r5, 0x80 - strh r5, [r0] - ldrh r0, [r2] - movs r7, 0x81 - lsls r7, 7 - adds r1, r7, 0 - orrs r0, r1 - strh r0, [r2] - strh r6, [r4] - ldrh r0, [r3] - orrs r0, r5 - strh r0, [r3] - mov r0, r12 - strh r0, [r4] - b _082E6F80 - .align 2, 0 - .pool -_082E6F78: - movs r0, 0x2 - strb r0, [r7, 0x1] -_082E6F7C: - ldrh r0, [r7, 0xA] - b _082E6F82 -_082E6F80: - movs r0, 0 -_082E6F82: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_82E6E94 - - thumb_func_start sub_82E6F88 -sub_82E6F88: @ 82E6F88 - push {r4,r5,lr} - ldr r0, =0x04000120 - ldr r5, [r0] - ldr r0, =gUnknown_030078A0 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x1 - beq sub_82E6FA2 - ldr r0, =0x04000128 - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] - thumb_func_end sub_82E6F88 - - non_word_aligned_thumb_func_start sub_82E6FA2 -sub_82E6FA2: @ 82E6FA2 - ldrb r2, [r4] - lsls r1, r2, 4 - adds r0, r5, 0 - lsls r0, r1 - lsrs r1, r0, 16 - movs r0, 0x1 - subs r0, r2 - lsls r0, 4 - lsls r5, r0 - adds r0, r5, 0 - lsrs r5, r0, 16 - ldrh r0, [r4, 0xA] - cmp r0, 0 - bne _082E6FF6 - ldrh r2, [r4, 0x6] - cmp r1, r2 - bne _082E6FF4 - ldrh r3, [r4, 0x2] - cmp r3, 0x3 - bls _082E6FDC - strh r5, [r4, 0xA] - b _082E6FF6 - .align 2, 0 - .pool -_082E6FDC: - ldrh r0, [r4, 0x4] - mvns r0, r0 - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bne _082E6FF6 - mvns r0, r2 - lsls r0, 16 - lsrs r0, 16 - cmp r5, r0 - bne _082E6FF6 - adds r0, r3, 0x1 -_082E6FF4: - strh r0, [r4, 0x2] -_082E6FF6: - ldrh r0, [r4, 0x2] - cmp r0, 0x3 - bhi _082E700C - lsls r0, 1 - ldr r1, =gUnknown_089A3258 - adds r0, r1 - ldrh r0, [r0] - b _082E700E - .align 2, 0 - .pool -_082E700C: - ldr r0, =0x00008001 -_082E700E: - strh r0, [r4, 0x4] - mvns r0, r5 - strh r0, [r4, 0x6] - ldr r3, =0x04000120 - ldrh r2, [r4, 0x4] - ldrb r1, [r4] - movs r0, 0x1 - subs r0, r1 - lsls r0, 4 - lsls r2, r0 - ldrh r0, [r4, 0x6] - lsls r1, 4 - lsls r0, r1 - adds r2, r0 - str r2, [r3] - ldrb r0, [r4] - cmp r0, 0x1 - bne _082E705C - ldrh r0, [r4, 0x2] - cmp r0, 0 - bne _082E703E - ldr r0, =0x0000494e - cmp r5, r0 - bne _082E705C -_082E703E: - movs r0, 0 - ldr r1, =0x00000257 -_082E7042: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bls _082E7042 - ldrh r0, [r4, 0xA] - cmp r0, 0 - bne _082E705C - ldr r0, =0x04000128 - ldrh r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strh r1, [r0] -_082E705C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end sub_82E6FA2 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/librfu_intr.s b/asm/librfu_intr.s index 7f375e419e2c..fe79ae17dc8a 100644 --- a/asm/librfu_intr.s +++ b/asm/librfu_intr.s @@ -18,7 +18,7 @@ IntrSIO32: @ 82E3554 cmp r0, 0 ldmdbeq r11, {r11,sp,lr} bxeq lr - bl sub_82E3EB0 + bl Callback_Dummy_ID ldmdb r11, {r11,sp,lr} bx lr _082E3590: @@ -33,7 +33,7 @@ _082E35A8: ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 -_082E35B4: .4byte gRfuState +_082E35B4: .4byte gSTWIStatus arm_func_end IntrSIO32 arm_func_start sio32intr_clock_master @@ -204,10 +204,10 @@ _082E3800: beq _082E3840 ldrh r1, [r0, 0x12] ldrb r0, [r0, 0x6] - bl sub_82E3EA8 + bl Callback_Dummy_M b _082E3840 .align 2, 0 -_082E382C: .4byte gRfuState +_082E382C: .4byte gSTWIStatus _082E3830: add r3, r5, 0x3 strh r3, [r4] @@ -423,7 +423,7 @@ _082E3AD4: beq _082E3C4C mov r0, 0x1EC add r0, r0, 0x2 - bl sub_82E3EAC + bl Callback_Dummy_S b _082E3C4C _082E3B48: mov r3, 0x120 @@ -445,7 +445,7 @@ _082E3B48: ldrb r0, [r0, 0x6] mov r1, r2 orr r0, r0, r3, lsl 8 - bl sub_82E3EAC + bl Callback_Dummy_S b _082E3C4C _082E3B9C: mov r3, 0x208 @@ -472,7 +472,7 @@ _082E3BE4: bhi _082E3BE4 b _082E3C20 .align 2, 0 -_082E3BF4: .4byte gRfuState +_082E3BF4: .4byte gSTWIStatus _082E3BF8: .4byte 0x996601ee _082E3BFC: mov r2, 0xFF00 @@ -532,7 +532,7 @@ _082E3CA4: ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 -_082E3CB8: .4byte gRfuState +_082E3CB8: .4byte gSTWIStatus arm_func_end handshake_wait arm_func_start STWI_set_timer_in_RAM @@ -588,7 +588,7 @@ _082E3D5C: mov r3, 0x3 b _082E3D8C .align 2, 0 -_082E3D74: .4byte gRfuState +_082E3D74: .4byte gSTWIStatus _082E3D78: mvn r3, 0x850 sub r3, r3, 0x2 @@ -637,7 +637,7 @@ STWI_stop_timer_in_RAM: @ 82E3DCC ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 -_082E3E18: .4byte gRfuState +_082E3E18: .4byte gSTWIStatus arm_func_end STWI_stop_timer_in_RAM arm_func_start STWI_init_slave @@ -677,20 +677,20 @@ STWI_init_slave: @ 82E3E1C ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 -_082E3EA4: .4byte gRfuState +_082E3EA4: .4byte gSTWIStatus arm_func_end STWI_init_slave - arm_func_start sub_82E3EA8 -sub_82E3EA8: @ 82E3EA8 + arm_func_start Callback_Dummy_M +Callback_Dummy_M: @ 82E3EA8 bx r2 - arm_func_end sub_82E3EA8 + arm_func_end Callback_Dummy_M - arm_func_start sub_82E3EAC -sub_82E3EAC: @ 82E3EAC + arm_func_start Callback_Dummy_S +Callback_Dummy_S: @ 82E3EAC bx r1 - arm_func_end sub_82E3EAC + arm_func_end Callback_Dummy_S - arm_func_start sub_82E3EB0 -sub_82E3EB0: @ 82E3EB0 + arm_func_start Callback_Dummy_ID +Callback_Dummy_ID: @ 82E3EB0 bx r0 - arm_func_end sub_82E3EB0 + arm_func_end Callback_Dummy_ID diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc index 882c82e8b925..9adbcc54e7ed 100644 --- a/asm/macros/battle_frontier/battle_dome.inc +++ b/asm/macros/battle_frontier/battle_dome.inc @@ -1,5 +1,3 @@ -@ TODO: Add explanatory comments to macros - @ Initialize the Battle Dome challenge .macro dome_init setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT @@ -23,64 +21,64 @@ special CallBattleDomeFunction .endm - @ + @ Buffer the name of the current round to gStringVar1 .macro dome_getroundtext setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT special CallBattleDomeFunction .endm - @ + @ Buffer the name of the opponent to gStringVar2 and the name of the round to gStringVar1 .macro dome_getopponentname setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME special CallBattleDomeFunction .endm - @ + @ Choose which of the opponents mons to use in battle and load them into the enemy party .macro dome_initopponentparty setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY special CallBattleDomeFunction .endm - @ + @ Show the page that gives information on the next opponent .macro dome_showopponentinfo setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO special CallBattleDomeFunction .endm - @ + @ Displays the tourney tree for the current tourney .macro dome_showtourneytree setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE special CallBattleDomeFunction .endm - @ - .macro dome_showresultstree - setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE + @ Displays the tourney tree for the results of the previous tourney. Before the player enters their first tourney this is a random tourney generated by dome_initresultstree + .macro dome_showprevtourneytree + setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE special CallBattleDomeFunction .endm - @ + @ Sets gTrainerBattleOpponent_A to the trainer ID of the next opponent .macro dome_setopponent setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID special CallBattleDomeFunction .endm - @ + @ Set the object event gfx id for the opponent .macro dome_setopponentgfx setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX special CallBattleDomeFunction .endm - @ + @ A non-interactive version of the tourney tree shown when a round is completed .macro dome_showstatictourneytree setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE special CallBattleDomeFunction .endm - @ - .macro dome_resolvewinners arg:req + @ Decides the winners of NPC vs NPC matches, and eliminates either the player or their opponent depending on the playerStatus (DOME_PLAYER_*) + .macro dome_resolvewinners playerStatus:req setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS - setvar VAR_0x8005, \arg + setvar VAR_0x8005, \playerStatus special CallBattleDomeFunction .endm @@ -97,7 +95,7 @@ special CallBattleDomeFunction .endm - @ + @ Sets the facility trainer/mon set pointers .macro dome_settrainers setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_TRAINERS special CallBattleDomeFunction @@ -109,19 +107,19 @@ special CallBattleDomeFunction .endm - @ + @ Reset the held items of the mons that just battled to what they were prior to battling .macro dome_restorehelditems setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS special CallBattleDomeFunction .endm - @ + @ Reduce the players party to the selected mons, used to reduce down to the 2 selected for battle .macro dome_reduceparty setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY special CallBattleDomeFunction .endm - @ + @ Compares the initial tournament ranking (seed) of the player to opponent A. Returns 1 if the player's seed is better, 2 if the opponent's seed is better. .macro dome_compareseeds setvar VAR_0x8004, BATTLE_DOME_FUNC_COMPARE_SEEDS special CallBattleDomeFunction @@ -133,13 +131,13 @@ special CallBattleDomeFunction .endm - @ TODO: Document this macro and its function - .macro dome_21 - setvar VAR_0x8004, BATTLE_DOME_FUNC_21 + @ Performs a random tourney to initialize the results board before the player has entered a challenge + .macro dome_initresultstree + setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_RESULTS_TREE special CallBattleDomeFunction .endm - @ + @ Generates the tourney trainers and their parties, and seeds them in the tourney tree .macro dome_inittrainers setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS special CallBattleDomeFunction diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 5865856c3663..abb2eb13a590 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -469,14 +469,14 @@ .endm @ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE. - .macro giveitem index:req, quantity:req + .macro additem index:req, quantity=1 .byte 0x44 .2byte \index .2byte \quantity .endm @ Removes quantity of item index from the player's Bag. - .macro takeitem index:req, quantity:req + .macro removeitem index:req, quantity=1 .byte 0x45 .2byte \index .2byte \quantity @@ -503,7 +503,7 @@ .endm @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. - .macro givepcitem index:req, quantity:req + .macro addpcitem index:req, quantity:req .byte 0x49 .2byte \index .2byte \quantity @@ -517,13 +517,13 @@ .endm @ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro givedecoration decoration:req + .macro adddecoration decoration:req .byte 0x4b .2byte \decoration .endm @ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro takedecoration decoration:req + .macro removedecoration decoration:req .byte 0x4c .2byte \decoration .endm @@ -1050,14 +1050,14 @@ .endm @ If check is 0x00, this command adds value to the player's money. - .macro givemoney value:req, check:req + .macro addmoney value:req, check:req .byte 0x90 .4byte \value .byte \check .endm @ If check is 0x00, this command subtracts value from the player's money. - .macro takemoney value:req, check:req + .macro removemoney value:req, check:req .byte 0x91 .4byte \value .byte \check @@ -1281,12 +1281,12 @@ .2byte \out .endm - .macro givecoins count:req + .macro addcoins count:req .byte 0xb4 .2byte \count .endm - .macro takecoins count:req + .macro removecoins count:req .byte 0xb5 .2byte \count .endm @@ -1564,12 +1564,12 @@ .macro goto_if_unset flag:req, dest:req checkflag \flag - goto_if 0, \dest + goto_if FALSE, \dest .endm .macro goto_if_set flag:req, dest:req checkflag \flag - goto_if 1, \dest + goto_if TRUE, \dest .endm .macro goto_if_lt dest:req @ LESS THAN @@ -1598,12 +1598,12 @@ .macro call_if_unset flag:req, dest:req checkflag \flag - call_if 0, \dest + call_if FALSE, \dest .endm .macro call_if_set flag:req, dest:req checkflag \flag - call_if 1, \dest + call_if TRUE, \dest .endm .macro call_if_lt dest:req @ LESS THAN @@ -1631,11 +1631,41 @@ .endm .macro vgoto_if_eq dest:req - vgoto_if 1, \dest + vgoto_if TRUE, \dest .endm .macro vgoto_if_ne dest:req - vgoto_if 0, \dest + vgoto_if FALSE, \dest + .endm + + .macro vgoto_if_unset flag:req, dest:req + checkflag \flag + vgoto_if FALSE, \dest + .endm + + .macro vgoto_if_set flag:req, dest:req + checkflag \flag + vgoto_if TRUE, \dest + .endm + + .macro goto_if_defeated trainer:req, dest:req + checktrainerflag \trainer + goto_if TRUE, \dest + .endm + + .macro goto_if_not_defeated trainer:req, dest:req + checktrainerflag \trainer + goto_if FALSE, \dest + .endm + + .macro call_if_defeated trainer:req, dest:req + checktrainerflag \trainer + call_if TRUE, \dest + .endm + + .macro call_if_not_defeated trainer:req, dest:req + checktrainerflag \trainer + call_if FALSE, \dest .endm .macro switch var:req @@ -1663,19 +1693,19 @@ callstd \type .endm - .macro giveitem_std item:req, amount=1 + .macro giveitem item:req, amount=1 setorcopyvar VAR_0x8000, \item setorcopyvar VAR_0x8001, \amount callstd STD_OBTAIN_ITEM .endm - .macro finditem_std item:req, amount=1 + .macro finditem item:req, amount=1 setorcopyvar VAR_0x8000, \item setorcopyvar VAR_0x8001, \amount callstd STD_FIND_ITEM .endm - .macro givedecoration_std decoration:req + .macro givedecoration decoration:req setorcopyvar VAR_0x8000, \decoration callstd STD_OBTAIN_DECORATION .endm diff --git a/common_syms/librfu.txt b/common_syms/librfu.txt deleted file mode 100644 index e81d78795cee..000000000000 --- a/common_syms/librfu.txt +++ /dev/null @@ -1,6 +0,0 @@ -gUnknown_03007870 -gUnknown_03007880 -gUnknown_03007890 -gUnknown_03007894 -gUnknown_03007898 -gUnknown_030078A0 diff --git a/common_syms/librfu_rfu.txt b/common_syms/librfu_rfu.txt new file mode 100644 index 000000000000..4b742dcd256c --- /dev/null +++ b/common_syms/librfu_rfu.txt @@ -0,0 +1,5 @@ +gRfuSlotStatusUNI +gRfuSlotStatusNI +gRfuLinkStatus +gRfuStatic +gRfuFixed diff --git a/common_syms/librfu_sio32id.txt b/common_syms/librfu_sio32id.txt new file mode 100644 index 000000000000..97395e84b310 --- /dev/null +++ b/common_syms/librfu_sio32id.txt @@ -0,0 +1 @@ +gRfuSIO32Id diff --git a/common_syms/librfu_stwi.txt b/common_syms/librfu_stwi.txt index 0e8468f4d14d..a1f773553591 100644 --- a/common_syms/librfu_stwi.txt +++ b/common_syms/librfu_stwi.txt @@ -1 +1 @@ -gRfuState +gSTWIStatus diff --git a/common_syms/save.txt b/common_syms/save.txt index d7668c332e70..190a658406fa 100644 --- a/common_syms/save.txt +++ b/common_syms/save.txt @@ -10,4 +10,4 @@ gSaveFileStatus gGameContinueCallback gRamSaveSectionLocations gSaveUnusedVar2 -gUnknown_03006294 +gSaveAttemptStatus diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 03f76fe291a1..633c3b38e281 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -2395,10 +2395,10 @@ AI_CV_Hail_ScoreDown1: AI_CV_Hail_End: end +@ BUG: Facade score is increased if the target is statused, but should be if the user is. Replace AI_TARGET with AI_USER AI_CV_Facade: if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End score +1 - AI_CV_Facade_End: end diff --git a/data/event_scripts.s b/data/event_scripts.s index 15fcf6a67983..48217744b472 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -447,10 +447,10 @@ gStdScripts_End:: @ 81DC2CC .include "data/maps/AlteringCave/scripts.inc" .include "data/maps/MeteorFalls_StevensCave/scripts.inc" .include "data/scripts/shared_secret_base.inc" - .include "data/maps/BattleColosseum2P/scripts.inc" + .include "data/maps/BattleColosseum_2P/scripts.inc" .include "data/maps/TradeCenter/scripts.inc" .include "data/maps/RecordCorner/scripts.inc" - .include "data/maps/BattleColosseum4P/scripts.inc" + .include "data/maps/BattleColosseum_4P/scripts.inc" .include "data/maps/ContestHall/scripts.inc" .include "data/maps/InsideOfTruck/scripts.inc" .include "data/maps/SSTidalCorridor/scripts.inc" @@ -573,65 +573,8 @@ gStdScripts_End:: @ 81DC2CC .include "data/maps/Route119_House/scripts.inc" .include "data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc" -@ Below could be split as std_msgbox.inc but autoclose straddles trainer_battle.inc -Std_MsgboxNPC: @ 8271315 - lock - faceplayer - message 0x0 - waitmessage - waitbuttonpress - release - return - -Std_MsgboxSign: @ 8271320 - lockall - message 0x0 - waitmessage - waitbuttonpress - releaseall - return - -Std_MsgboxDefault: @ 827132A - message 0x0 - waitmessage - waitbuttonpress - return - -Std_MsgboxYesNo: @ 8271332 - message 0x0 - waitmessage - yesnobox 20, 8 - return - -Std_MsgboxGetPoints: @ 827133C - message 0x0 - playfanfare MUS_ME_POINTGET - waitfanfare - waitmessage - return - -Std_10: @ 8271347 - pokenavcall 0x0 - waitmessage - return - -EventScript_UnusedReturn: @ 827134E - return - -Common_EventScript_SaveGame:: @ 827134F - special SaveGame - waitstate - return - + .include "data/scripts/std_msgbox.inc" .include "data/scripts/trainer_battle.inc" - -Std_MsgboxAutoclose:: @ 8271494 - message 0x0 - waitmessage - waitbuttonpress - release - return - .include "data/scripts/new_game.inc" .include "data/scripts/hall_of_fame.inc" @@ -847,7 +790,7 @@ EventScript_UnusedBoardFerry:: @ 827222B delay 30 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 - showobjectat 255, MAP_PETALBURG_CITY + showobjectat EVENT_OBJ_ID_PLAYER, 0 delay 30 applymovement EVENT_OBJ_ID_PLAYER, Movement_UnusedBoardFerry waitmovement 0 @@ -864,7 +807,7 @@ Common_EventScript_FerryDepartIsland:: @ 8272250 compare VAR_FACING, DIR_WEST call_if_eq Ferry_EventScript_DepartIslandWest delay 30 - hideobjectat 255, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 call Common_EventScript_FerryDepart return @@ -883,7 +826,7 @@ Common_EventScript_PlayerHandedOverTheItem:: @ 82723E4 message gText_PlayerHandedOverTheItem waitmessage waitfanfare - takeitem VAR_0x8004, 1 + removeitem VAR_0x8004 return .include "data/scripts/elite_four.inc" diff --git a/data/layouts/BattleColosseum2P/border.bin b/data/layouts/BattleColosseum_2P/border.bin similarity index 100% rename from data/layouts/BattleColosseum2P/border.bin rename to data/layouts/BattleColosseum_2P/border.bin diff --git a/data/layouts/BattleColosseum2P/map.bin b/data/layouts/BattleColosseum_2P/map.bin similarity index 100% rename from data/layouts/BattleColosseum2P/map.bin rename to data/layouts/BattleColosseum_2P/map.bin diff --git a/data/layouts/BattleColosseum4P/border.bin b/data/layouts/BattleColosseum_4P/border.bin similarity index 100% rename from data/layouts/BattleColosseum4P/border.bin rename to data/layouts/BattleColosseum_4P/border.bin diff --git a/data/layouts/BattleColosseum4P/map.bin b/data/layouts/BattleColosseum_4P/map.bin similarity index 100% rename from data/layouts/BattleColosseum4P/map.bin rename to data/layouts/BattleColosseum_4P/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index fbac804897e1..38c707f55f71 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -1,4445 +1,4445 @@ { - "layouts": [ - { - "blockdata_filepath": "data/layouts/PetalburgCity/map.bin", - "border_filepath": "data/layouts/PetalburgCity/border.bin", - "height": 30, - "id": "LAYOUT_PETALBURG_CITY", - "name": "PetalburgCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity/map.bin", - "border_filepath": "data/layouts/SlateportCity/border.bin", - "height": 60, - "id": "LAYOUT_SLATEPORT_CITY", - "name": "SlateportCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Slateport", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/MauvilleCity/map.bin", - "border_filepath": "data/layouts/MauvilleCity/border.bin", - "height": 20, - "id": "LAYOUT_MAUVILLE_CITY", - "name": "MauvilleCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity/map.bin", - "border_filepath": "data/layouts/RustboroCity/border.bin", - "height": 60, - "id": "LAYOUT_RUSTBORO_CITY", - "name": "RustboroCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/FortreeCity/map.bin", - "border_filepath": "data/layouts/FortreeCity/border.bin", - "height": 20, - "id": "LAYOUT_FORTREE_CITY", - "name": "FortreeCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fortree", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity/map.bin", - "border_filepath": "data/layouts/LilycoveCity/border.bin", - "height": 40, - "id": "LAYOUT_LILYCOVE_CITY", - "name": "LilycoveCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity/map.bin", - "border_filepath": "data/layouts/MossdeepCity/border.bin", - "height": 40, - "id": "LAYOUT_MOSSDEEP_CITY", - "name": "MossdeepCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity/map.bin", - "border_filepath": "data/layouts/SootopolisCity/border.bin", - "height": 60, - "id": "LAYOUT_SOOTOPOLIS_CITY", - "name": "SootopolisCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Sootopolis", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity/map.bin", - "border_filepath": "data/layouts/EverGrandeCity/border.bin", - "height": 80, - "id": "LAYOUT_EVER_GRANDE_CITY", - "name": "EverGrandeCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_EverGrande", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown/map.bin", - "border_filepath": "data/layouts/LittlerootTown/border.bin", - "height": 20, - "id": "LAYOUT_LITTLEROOT_TOWN", - "name": "LittlerootTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/OldaleTown/map.bin", - "border_filepath": "data/layouts/OldaleTown/border.bin", - "height": 20, - "id": "LAYOUT_OLDALE_TOWN", - "name": "OldaleTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/DewfordTown/map.bin", - "border_filepath": "data/layouts/DewfordTown/border.bin", - "height": 20, - "id": "LAYOUT_DEWFORD_TOWN", - "name": "DewfordTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/LavaridgeTown/map.bin", - "border_filepath": "data/layouts/LavaridgeTown/border.bin", - "height": 20, - "id": "LAYOUT_LAVARIDGE_TOWN", - "name": "LavaridgeTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/FallarborTown/map.bin", - "border_filepath": "data/layouts/FallarborTown/border.bin", - "height": 20, - "id": "LAYOUT_FALLARBOR_TOWN", - "name": "FallarborTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fallarbor", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/VerdanturfTown/map.bin", - "border_filepath": "data/layouts/VerdanturfTown/border.bin", - "height": 20, - "id": "LAYOUT_VERDANTURF_TOWN", - "name": "VerdanturfTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/PacifidlogTown/map.bin", - "border_filepath": "data/layouts/PacifidlogTown/border.bin", - "height": 40, - "id": "LAYOUT_PACIFIDLOG_TOWN", - "name": "PacifidlogTown_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/Route101/map.bin", - "border_filepath": "data/layouts/Route101/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE101", - "name": "Route101_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/Route102/map.bin", - "border_filepath": "data/layouts/Route102/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE102", - "name": "Route102_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 50 - }, - { - "blockdata_filepath": "data/layouts/Route103/map.bin", - "border_filepath": "data/layouts/Route103/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE103", - "name": "Route103_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Petalburg", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route104/map.bin", - "border_filepath": "data/layouts/Route104/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE104", - "name": "Route104_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route105/map.bin", - "border_filepath": "data/layouts/Route105/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE105", - "name": "Route105_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route106/map.bin", - "border_filepath": "data/layouts/Route106/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE106", - "name": "Route106_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route107/map.bin", - "border_filepath": "data/layouts/Route107/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE107", - "name": "Route107_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/Route108/map.bin", - "border_filepath": "data/layouts/Route108/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE108", - "name": "Route108_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Slateport", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/Route109/map.bin", - "border_filepath": "data/layouts/Route109/border.bin", - "height": 63, - "id": "LAYOUT_ROUTE109", - "name": "Route109_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Slateport", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route110/map.bin", - "border_filepath": "data/layouts/Route110/border.bin", - "height": 100, - "id": "LAYOUT_ROUTE110", - "name": "Route110_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route111/map.bin", - "border_filepath": "data/layouts/Route111/border.bin", - "height": 140, - "id": "LAYOUT_ROUTE111", - "name": "Route111_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route112/map.bin", - "border_filepath": "data/layouts/Route112/border.bin", - "height": 60, - "id": "LAYOUT_ROUTE112", - "name": "Route112_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route113/map.bin", - "border_filepath": "data/layouts/Route113/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE113", - "name": "Route113_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fallarbor", - "width": 100 - }, - { - "blockdata_filepath": "data/layouts/Route114/map.bin", - "border_filepath": "data/layouts/Route114/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE114", - "name": "Route114_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fallarbor", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route115/map.bin", - "border_filepath": "data/layouts/Route115/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE115", - "name": "Route115_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fallarbor", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route116/map.bin", - "border_filepath": "data/layouts/Route116/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE116", - "name": "Route116_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 100 - }, - { - "blockdata_filepath": "data/layouts/Route117/map.bin", - "border_filepath": "data/layouts/Route117/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE117", - "name": "Route117_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/Route118/map.bin", - "border_filepath": "data/layouts/Route118/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE118", - "name": "Route118_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route119/map.bin", - "border_filepath": "data/layouts/Route119/border.bin", - "height": 140, - "id": "LAYOUT_ROUTE119", - "name": "Route119_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fortree", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route120/map.bin", - "border_filepath": "data/layouts/Route120/border.bin", - "height": 100, - "id": "LAYOUT_ROUTE120", - "name": "Route120_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fortree", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route121/map.bin", - "border_filepath": "data/layouts/Route121/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE121", - "name": "Route121_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route122/map.bin", - "border_filepath": "data/layouts/Route122/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE122", - "name": "Route122_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Route123/map.bin", - "border_filepath": "data/layouts/Route123/border.bin", - "height": 20, - "id": "LAYOUT_ROUTE123", - "name": "Route123_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 140 - }, - { - "blockdata_filepath": "data/layouts/Route124/map.bin", - "border_filepath": "data/layouts/Route124/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE124", - "name": "Route124_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route125/map.bin", - "border_filepath": "data/layouts/Route125/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE125", - "name": "Route125_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route126/map.bin", - "border_filepath": "data/layouts/Route126/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE126", - "name": "Route126_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route127/map.bin", - "border_filepath": "data/layouts/Route127/border.bin", - "height": 80, - "id": "LAYOUT_ROUTE127", - "name": "Route127_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route128/map.bin", - "border_filepath": "data/layouts/Route128/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE128", - "name": "Route128_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 120 - }, - { - "blockdata_filepath": "data/layouts/Route129/map.bin", - "border_filepath": "data/layouts/Route129/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE129", - "name": "Route129_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mossdeep", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route130_MirageIsland/map.bin", - "border_filepath": "data/layouts/Route130_MirageIsland/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE130_MIRAGE_ISLAND", - "name": "Route130_MirageIsland_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route131/map.bin", - "border_filepath": "data/layouts/Route131/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE131", - "name": "Route131_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/Route132/map.bin", - "border_filepath": "data/layouts/Route132/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE132", - "name": "Route132_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route133/map.bin", - "border_filepath": "data/layouts/Route133/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE133", - "name": "Route133_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Route134/map.bin", - "border_filepath": "data/layouts/Route134/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE134", - "name": "Route134_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Underwater2/map.bin", - "border_filepath": "data/layouts/Underwater2/border.bin", - "height": 80, - "id": "LAYOUT_UNDERWATER2", - "name": "Underwater2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Underwater3/map.bin", - "border_filepath": "data/layouts/Underwater3/border.bin", - "height": 80, - "id": "LAYOUT_UNDERWATER3", - "name": "Underwater3_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Underwater4/map.bin", - "border_filepath": "data/layouts/Underwater4/border.bin", - "height": 40, - "id": "LAYOUT_UNDERWATER4", - "name": "Underwater4_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 120 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/map.bin", - "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/border.bin", - "height": 9, - "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", - "name": "LittlerootTown_BrendansHouse_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BrendansMaysHouse", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/map.bin", - "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/border.bin", - "height": 8, - "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", - "name": "LittlerootTown_BrendansHouse_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BrendansMaysHouse", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/map.bin", - "border_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/border.bin", - "height": 9, - "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F", - "name": "LittlerootTown_MaysHouse_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BrendansMaysHouse", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/map.bin", - "border_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/border.bin", - "height": 8, - "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F", - "name": "LittlerootTown_MaysHouse_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BrendansMaysHouse", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/map.bin", - "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/border.bin", - "height": 13, - "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", - "name": "LittlerootTown_ProfessorBirchsLab_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Lab", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/House1/map.bin", - "border_filepath": "data/layouts/House1/border.bin", - "height": 9, - "id": "LAYOUT_HOUSE1", - "name": "House1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/House2/map.bin", - "border_filepath": "data/layouts/House2/border.bin", - "height": 8, - "id": "LAYOUT_HOUSE2", - "name": "House2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/PokemonCenter_1F/map.bin", - "border_filepath": "data/layouts/PokemonCenter_1F/border.bin", - "height": 9, - "id": "LAYOUT_POKEMON_CENTER_1F", - "name": "PokemonCenter_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonCenter", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/PokemonCenter_2F/map.bin", - "border_filepath": "data/layouts/PokemonCenter_2F/border.bin", - "height": 10, - "id": "LAYOUT_POKEMON_CENTER_2F", - "name": "PokemonCenter_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonCenter", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/Mart/map.bin", - "border_filepath": "data/layouts/Mart/border.bin", - "height": 8, - "id": "LAYOUT_MART", - "name": "Mart_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/House3/map.bin", - "border_filepath": "data/layouts/House3/border.bin", - "height": 8, - "id": "LAYOUT_HOUSE3", - "name": "House3_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/DewfordTown_Gym/map.bin", - "border_filepath": "data/layouts/DewfordTown_Gym/border.bin", - "height": 28, - "id": "LAYOUT_DEWFORD_TOWN_GYM", - "name": "DewfordTown_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_DewfordGym", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/DewfordTown_Hall/map.bin", - "border_filepath": "data/layouts/DewfordTown_Hall/border.bin", - "height": 9, - "id": "LAYOUT_DEWFORD_TOWN_HALL", - "name": "DewfordTown_Hall_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/House4/map.bin", - "border_filepath": "data/layouts/House4/border.bin", - "height": 9, - "id": "LAYOUT_HOUSE4", - "name": "House4_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/LavaridgeTown_HerbShop/map.bin", - "border_filepath": "data/layouts/LavaridgeTown_HerbShop/border.bin", - "height": 8, - "id": "LAYOUT_LAVARIDGE_TOWN_HERB_SHOP", - "name": "LavaridgeTown_HerbShop_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_1F/map.bin", - "border_filepath": "data/layouts/LavaridgeTown_Gym_1F/border.bin", - "height": 19, - "id": "LAYOUT_LAVARIDGE_TOWN_GYM_1F", - "name": "LavaridgeTown_Gym_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_LavaridgeGym", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_B1F/map.bin", - "border_filepath": "data/layouts/LavaridgeTown_Gym_B1F/border.bin", - "height": 19, - "id": "LAYOUT_LAVARIDGE_TOWN_GYM_B1F", - "name": "LavaridgeTown_Gym_B1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_LavaridgeGym", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/map.bin", - "border_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/border.bin", - "height": 9, - "id": "LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F", - "name": "LavaridgeTown_PokemonCenter_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonCenter", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/map.bin", - "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/border.bin", - "height": 7, - "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY", - "name": "FallarborTown_LeftoverRSContestLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/map.bin", - "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/border.bin", - "height": 18, - "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL", - "name": "FallarborTown_LeftoverRSContestHall_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin", - "border_filepath": "data/layouts/LilycoveCity_House2/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_HOUSE2", - "name": "LilycoveCity_House2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/Unknown_08428450/map.bin", - "border_filepath": "data/layouts/Unknown_08428450/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_08428450", - "name": "Unknown_08428450_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/VerdanturfTown_WandasHouse/map.bin", - "border_filepath": "data/layouts/VerdanturfTown_WandasHouse/border.bin", - "height": 8, - "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", - "name": "VerdanturfTown_WandasHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/PacifidlogTown_House1/map.bin", - "border_filepath": "data/layouts/PacifidlogTown_House1/border.bin", - "height": 9, - "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", - "name": "PacifidlogTown_House1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/PacifidlogTown_House2/map.bin", - "border_filepath": "data/layouts/PacifidlogTown_House2/border.bin", - "height": 9, - "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", - "name": "PacifidlogTown_House2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/PetalburgCity_Gym/map.bin", - "border_filepath": "data/layouts/PetalburgCity_Gym/border.bin", - "height": 112, - "id": "LAYOUT_PETALBURG_CITY_GYM", - "name": "PetalburgCity_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PetalburgGym", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/HouseWithBed/map.bin", - "border_filepath": "data/layouts/HouseWithBed/border.bin", - "height": 8, - "id": "LAYOUT_HOUSE_WITH_BED", - "name": "HouseWithBed_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/map.bin", - "border_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/border.bin", - "height": 15, - "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F", - "name": "SlateportCity_SternsShipyard_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin", - "border_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/border.bin", - "height": 15, - "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F", - "name": "SlateportCity_SternsShipyard_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin", - "border_filepath": "data/layouts/Unknown_084294C4/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_084294C4", - "name": "Unknown_084294C4_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin", - "border_filepath": "data/layouts/Unknown_084294E8/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_084294E8", - "name": "Unknown_084294E8_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity_PokemonFanClub/map.bin", - "border_filepath": "data/layouts/SlateportCity_PokemonFanClub/border.bin", - "height": 11, - "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", - "name": "SlateportCity_PokemonFanClub_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonFanClub", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/map.bin", - "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/border.bin", - "height": 9, - "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", - "name": "SlateportCity_OceanicMuseum_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_OceanicMuseum", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/map.bin", - "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/border.bin", - "height": 9, - "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", - "name": "SlateportCity_OceanicMuseum_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_OceanicMuseum", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/Harbor/map.bin", - "border_filepath": "data/layouts/Harbor/border.bin", - "height": 15, - "id": "LAYOUT_HARBOR", - "name": "Harbor_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 24 - }, - { - "blockdata_filepath": "data/layouts/MauvilleCity_Gym/map.bin", - "border_filepath": "data/layouts/MauvilleCity_Gym/border.bin", - "height": 21, - "id": "LAYOUT_MAUVILLE_CITY_GYM", - "name": "MauvilleCity_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MauvilleGym", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/MauvilleCity_BikeShop/map.bin", - "border_filepath": "data/layouts/MauvilleCity_BikeShop/border.bin", - "height": 9, - "id": "LAYOUT_MAUVILLE_CITY_BIKE_SHOP", - "name": "MauvilleCity_BikeShop_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BikeShop", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/MauvilleCity_GameCorner/map.bin", - "border_filepath": "data/layouts/MauvilleCity_GameCorner/border.bin", - "height": 11, - "id": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", - "name": "MauvilleCity_GameCorner_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MauvilleGameCorner", - "width": 22 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_1F/map.bin", - "border_filepath": "data/layouts/RustboroCity_DevonCorp_1F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F", - "name": "RustboroCity_DevonCorp_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Facility", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_2F/map.bin", - "border_filepath": "data/layouts/RustboroCity_DevonCorp_2F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F", - "name": "RustboroCity_DevonCorp_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Gym/map.bin", - "border_filepath": "data/layouts/RustboroCity_Gym/border.bin", - "height": 20, - "id": "LAYOUT_RUSTBORO_CITY_GYM", - "name": "RustboroCity_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_RustboroGym", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_PokemonSchool/map.bin", - "border_filepath": "data/layouts/RustboroCity_PokemonSchool/border.bin", - "height": 11, - "id": "LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL", - "name": "RustboroCity_PokemonSchool_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonSchool", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_House/map.bin", - "border_filepath": "data/layouts/RustboroCity_House/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_HOUSE", - "name": "RustboroCity_House_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_House1/map.bin", - "border_filepath": "data/layouts/RustboroCity_House1/border.bin", - "height": 8, - "id": "LAYOUT_RUSTBORO_CITY_HOUSE1", - "name": "RustboroCity_House1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_CuttersHouse/map.bin", - "border_filepath": "data/layouts/RustboroCity_CuttersHouse/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE", - "name": "RustboroCity_CuttersHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/FortreeCity_House1/map.bin", - "border_filepath": "data/layouts/FortreeCity_House1/border.bin", - "height": 6, - "id": "LAYOUT_FORTREE_CITY_HOUSE1", - "name": "FortreeCity_House1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/FortreeCity_Gym/map.bin", - "border_filepath": "data/layouts/FortreeCity_Gym/border.bin", - "height": 25, - "id": "LAYOUT_FORTREE_CITY_GYM", - "name": "FortreeCity_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_FortreeGym", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/FortreeCity_House2/map.bin", - "border_filepath": "data/layouts/FortreeCity_House2/border.bin", - "height": 6, - "id": "LAYOUT_FORTREE_CITY_HOUSE2", - "name": "FortreeCity_House2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/Route104_MrBrineysHouse/map.bin", - "border_filepath": "data/layouts/Route104_MrBrineysHouse/border.bin", - "height": 9, - "id": "LAYOUT_ROUTE104_MR_BRINEYS_HOUSE", - "name": "Route104_MrBrineysHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/border.bin", - "height": 14, - "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", - "name": "LilycoveCity_LilycoveMuseum_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_LilycoveMuseum", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/border.bin", - "height": 13, - "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", - "name": "LilycoveCity_LilycoveMuseum_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_LilycoveMuseum", - "width": 22 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_ContestLobby/map.bin", - "border_filepath": "data/layouts/LilycoveCity_ContestLobby/border.bin", - "height": 12, - "id": "LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY", - "name": "LilycoveCity_ContestLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 31 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_ContestHall/map.bin", - "border_filepath": "data/layouts/LilycoveCity_ContestHall/border.bin", - "height": 33, - "id": "LAYOUT_LILYCOVE_CITY_CONTEST_HALL", - "name": "LilycoveCity_ContestHall_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 51 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/map.bin", - "border_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/border.bin", - "height": 14, - "id": "LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", - "name": "LilycoveCity_PokemonTrainerFanClub_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_Gym/map.bin", - "border_filepath": "data/layouts/MossdeepCity_Gym/border.bin", - "height": 36, - "id": "LAYOUT_MOSSDEEP_CITY_GYM", - "name": "MossdeepCity_Gym_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MossdeepGym", - "width": 26 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_Gym_1F/map.bin", - "border_filepath": "data/layouts/SootopolisCity_Gym_1F/border.bin", - "height": 26, - "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_1F", - "name": "SootopolisCity_Gym_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_SootopolisGym", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_Gym_B1F/map.bin", - "border_filepath": "data/layouts/SootopolisCity_Gym_B1F/border.bin", - "height": 26, - "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_B1F", - "name": "SootopolisCity_Gym_B1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_SootopolisGym", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_SidneysRoom/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_SidneysRoom/border.bin", - "height": 14, - "id": "LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM", - "name": "EverGrandeCity_SidneysRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/border.bin", - "height": 14, - "id": "LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM", - "name": "EverGrandeCity_PhoebesRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/border.bin", - "height": 14, - "id": "LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM", - "name": "EverGrandeCity_GlaciasRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_DrakesRoom/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_DrakesRoom/border.bin", - "height": 14, - "id": "LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM", - "name": "EverGrandeCity_DrakesRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/border.bin", - "height": 13, - "id": "LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM", - "name": "EverGrandeCity_ChampionsRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_ShortHall/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_ShortHall/border.bin", - "height": 13, - "id": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", - "name": "EverGrandeCity_ShortHall_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/map.bin", - "border_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/border.bin", - "height": 9, - "id": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", - "name": "Route104_PrettyPetalFlowerShop_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PrettyPetalFlowerShop", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/CableCarStation/map.bin", - "border_filepath": "data/layouts/CableCarStation/border.bin", - "height": 12, - "id": "LAYOUT_CABLE_CAR_STATION", - "name": "CableCarStation_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/Route114_FossilManiacsHouse/map.bin", - "border_filepath": "data/layouts/Route114_FossilManiacsHouse/border.bin", - "height": 8, - "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE", - "name": "Route114_FossilManiacsHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/Route114_FossilManiacsTunnel/map.bin", - "border_filepath": "data/layouts/Route114_FossilManiacsTunnel/border.bin", - "height": 26, - "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL", - "name": "Route114_FossilManiacsTunnel_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fallarbor", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/Route114_LanettesHouse/map.bin", - "border_filepath": "data/layouts/Route114_LanettesHouse/border.bin", - "height": 8, - "id": "LAYOUT_ROUTE114_LANETTES_HOUSE", - "name": "Route114_LanettesHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Lab", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/Route116_TunnelersRestHouse/map.bin", - "border_filepath": "data/layouts/Route116_TunnelersRestHouse/border.bin", - "height": 9, - "id": "LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE", - "name": "Route116_TunnelersRestHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/Route117_PokemonDayCare/map.bin", - "border_filepath": "data/layouts/Route117_PokemonDayCare/border.bin", - "height": 9, - "id": "LAYOUT_ROUTE117_POKEMON_DAY_CARE", - "name": "Route117_PokemonDayCare_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonDayCare", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/Route121_SafariZoneEntrance/map.bin", - "border_filepath": "data/layouts/Route121_SafariZoneEntrance/border.bin", - "height": 14, - "id": "LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE", - "name": "Route121_SafariZoneEntrance_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/MeteorFalls_1F_1R/map.bin", - "border_filepath": "data/layouts/MeteorFalls_1F_1R/border.bin", - "height": 42, - "id": "LAYOUT_METEOR_FALLS_1F_1R", - "name": "MeteorFalls_1F_1R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MeteorFalls", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/MeteorFalls_1F_2R/map.bin", - "border_filepath": "data/layouts/MeteorFalls_1F_2R/border.bin", - "height": 32, - "id": "LAYOUT_METEOR_FALLS_1F_2R", - "name": "MeteorFalls_1F_2R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MeteorFalls", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/MeteorFalls_B1F_1R/map.bin", - "border_filepath": "data/layouts/MeteorFalls_B1F_1R/border.bin", - "height": 38, - "id": "LAYOUT_METEOR_FALLS_B1F_1R", - "name": "MeteorFalls_B1F_1R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MeteorFalls", - "width": 29 - }, - { - "blockdata_filepath": "data/layouts/MeteorFalls_B1F_2R/map.bin", - "border_filepath": "data/layouts/MeteorFalls_B1F_2R/border.bin", - "height": 18, - "id": "LAYOUT_METEOR_FALLS_B1F_2R", - "name": "MeteorFalls_B1F_2R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MeteorFalls", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/RusturfTunnel/map.bin", - "border_filepath": "data/layouts/RusturfTunnel/border.bin", - "height": 24, - "id": "LAYOUT_RUSTURF_TUNNEL", - "name": "RusturfTunnel_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_RusturfTunnel", - "width": 36 - }, - { - "blockdata_filepath": "data/layouts/Underwater_SootopolisCity/map.bin", - "border_filepath": "data/layouts/Underwater_SootopolisCity/border.bin", - "height": 10, - "id": "LAYOUT_UNDERWATER_SOOTOPOLIS_CITY", - "name": "Underwater_SootopolisCity_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/DesertRuins/map.bin", - "border_filepath": "data/layouts/DesertRuins/border.bin", - "height": 33, - "id": "LAYOUT_DESERT_RUINS", - "name": "DesertRuins_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/GraniteCave_1F/map.bin", - "border_filepath": "data/layouts/GraniteCave_1F/border.bin", - "height": 15, - "id": "LAYOUT_GRANITE_CAVE_1F", - "name": "GraniteCave_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 42 - }, - { - "blockdata_filepath": "data/layouts/GraniteCave_B1F/map.bin", - "border_filepath": "data/layouts/GraniteCave_B1F/border.bin", - "height": 26, - "id": "LAYOUT_GRANITE_CAVE_B1F", - "name": "GraniteCave_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 32 - }, - { - "blockdata_filepath": "data/layouts/GraniteCave_B2F/map.bin", - "border_filepath": "data/layouts/GraniteCave_B2F/border.bin", - "height": 26, - "id": "LAYOUT_GRANITE_CAVE_B2F", - "name": "GraniteCave_B2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 32 - }, - { - "blockdata_filepath": "data/layouts/PetalburgWoods/map.bin", - "border_filepath": "data/layouts/PetalburgWoods/border.bin", - "height": 44, - "id": "LAYOUT_PETALBURG_WOODS", - "name": "PetalburgWoods_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 48 - }, - { - "blockdata_filepath": "data/layouts/MtChimney/map.bin", - "border_filepath": "data/layouts/MtChimney/border.bin", - "height": 47, - "id": "LAYOUT_MT_CHIMNEY", - "name": "MtChimney_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_1F/map.bin", - "border_filepath": "data/layouts/MtPyre_1F/border.bin", - "height": 19, - "id": "LAYOUT_MT_PYRE_1F", - "name": "MtPyre_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 22 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_2F/map.bin", - "border_filepath": "data/layouts/MtPyre_2F/border.bin", - "height": 13, - "id": "LAYOUT_MT_PYRE_2F", - "name": "MtPyre_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_3F/map.bin", - "border_filepath": "data/layouts/MtPyre_3F/border.bin", - "height": 13, - "id": "LAYOUT_MT_PYRE_3F", - "name": "MtPyre_3F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_4F/map.bin", - "border_filepath": "data/layouts/MtPyre_4F/border.bin", - "height": 13, - "id": "LAYOUT_MT_PYRE_4F", - "name": "MtPyre_4F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_5F/map.bin", - "border_filepath": "data/layouts/MtPyre_5F/border.bin", - "height": 13, - "id": "LAYOUT_MT_PYRE_5F", - "name": "MtPyre_5F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_6F/map.bin", - "border_filepath": "data/layouts/MtPyre_6F/border.bin", - "height": 13, - "id": "LAYOUT_MT_PYRE_6F", - "name": "MtPyre_6F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_1F/map.bin", - "border_filepath": "data/layouts/AquaHideout_1F/border.bin", - "height": 30, - "id": "LAYOUT_AQUA_HIDEOUT_1F", - "name": "AquaHideout_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 28 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_B1F/map.bin", - "border_filepath": "data/layouts/AquaHideout_B1F/border.bin", - "height": 24, - "id": "LAYOUT_AQUA_HIDEOUT_B1F", - "name": "AquaHideout_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 51 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_B2F/map.bin", - "border_filepath": "data/layouts/AquaHideout_B2F/border.bin", - "height": 24, - "id": "LAYOUT_AQUA_HIDEOUT_B2F", - "name": "AquaHideout_B2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 34 - }, - { - "blockdata_filepath": "data/layouts/Underwater_SeafloorCavern/map.bin", - "border_filepath": "data/layouts/Underwater_SeafloorCavern/border.bin", - "height": 9, - "id": "LAYOUT_UNDERWATER_SEAFLOOR_CAVERN", - "name": "Underwater_SeafloorCavern_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Entrance/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Entrance/border.bin", - "height": 20, - "id": "LAYOUT_SEAFLOOR_CAVERN_ENTRANCE", - "name": "SeafloorCavern_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room1/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room1/border.bin", - "height": 21, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM1", - "name": "SeafloorCavern_Room1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room2/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room2/border.bin", - "height": 12, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM2", - "name": "SeafloorCavern_Room2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room3/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room3/border.bin", - "height": 17, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM3", - "name": "SeafloorCavern_Room3_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room4/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room4/border.bin", - "height": 19, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM4", - "name": "SeafloorCavern_Room4_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room5/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room5/border.bin", - "height": 20, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM5", - "name": "SeafloorCavern_Room5_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room6/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room6/border.bin", - "height": 23, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM6", - "name": "SeafloorCavern_Room6_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 24 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room7/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room7/border.bin", - "height": 25, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM7", - "name": "SeafloorCavern_Room7_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room8/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room8/border.bin", - "height": 14, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM8", - "name": "SeafloorCavern_Room8_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room9/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room9/border.bin", - "height": 46, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9", - "name": "SeafloorCavern_Room9_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_Entrance/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_Entrance/border.bin", - "height": 26, - "id": "LAYOUT_CAVE_OF_ORIGIN_ENTRANCE", - "name": "CaveOfOrigin_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_1F/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_1F/border.bin", - "height": 23, - "id": "LAYOUT_CAVE_OF_ORIGIN_1F", - "name": "CaveOfOrigin_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/border.bin", - "height": 23, - "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", - "name": "CaveOfOrigin_UnusedRubySapphireMap1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/border.bin", - "height": 21, - "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", - "name": "CaveOfOrigin_UnusedRubySapphireMap2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/border.bin", - "height": 21, - "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", - "name": "CaveOfOrigin_UnusedRubySapphireMap3_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_B1F/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_B1F/border.bin", - "height": 19, - "id": "LAYOUT_CAVE_OF_ORIGIN_B1F", - "name": "CaveOfOrigin_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/VictoryRoad_1F/map.bin", - "border_filepath": "data/layouts/VictoryRoad_1F/border.bin", - "height": 45, - "id": "LAYOUT_VICTORY_ROAD_1F", - "name": "VictoryRoad_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/border.bin", - "height": 35, - "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", - "name": "ShoalCave_LowTideEntranceRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 35 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/border.bin", - "height": 38, - "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", - "name": "ShoalCave_LowTideInnerRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/border.bin", - "height": 15, - "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", - "name": "ShoalCave_LowTideStairsRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/border.bin", - "height": 14, - "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", - "name": "ShoalCave_LowTideLowerRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 31 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/border.bin", - "height": 35, - "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", - "name": "ShoalCave_HighTideEntranceRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 35 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/border.bin", - "height": 38, - "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", - "name": "ShoalCave_HighTideInnerRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin", - "border_filepath": "data/layouts/Unknown_0843E6C0/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E6C0", - "name": "Unknown_0843E6C0_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin", - "border_filepath": "data/layouts/Unknown_0843E6E4/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E6E4", - "name": "Unknown_0843E6E4_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin", - "border_filepath": "data/layouts/Unknown_0843E708/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E708", - "name": "Unknown_0843E708_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin", - "border_filepath": "data/layouts/Unknown_0843E72C/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E72C", - "name": "Unknown_0843E72C_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin", - "border_filepath": "data/layouts/Unknown_0843E750/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E750", - "name": "Unknown_0843E750_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin", - "border_filepath": "data/layouts/Unknown_0843E774/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E774", - "name": "Unknown_0843E774_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin", - "border_filepath": "data/layouts/Unknown_0843E798/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E798", - "name": "Unknown_0843E798_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin", - "border_filepath": "data/layouts/Unknown_0843E7BC/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E7BC", - "name": "Unknown_0843E7BC_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin", - "border_filepath": "data/layouts/Unknown_0843E7E0/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E7E0", - "name": "Unknown_0843E7E0_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin", - "border_filepath": "data/layouts/Unknown_0843E804/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E804", - "name": "Unknown_0843E804_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin", - "border_filepath": "data/layouts/Unknown_0843E828/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E828", - "name": "Unknown_0843E828_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin", - "border_filepath": "data/layouts/Unknown_0843E84C/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E84C", - "name": "Unknown_0843E84C_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin", - "border_filepath": "data/layouts/Unknown_0843E870/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E870", - "name": "Unknown_0843E870_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin", - "border_filepath": "data/layouts/Unknown_0843E894/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_0843E894", - "name": "Unknown_0843E894_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/NewMauville_Entrance/map.bin", - "border_filepath": "data/layouts/NewMauville_Entrance/border.bin", - "height": 9, - "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", - "name": "NewMauville_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/NewMauville_Inside/map.bin", - "border_filepath": "data/layouts/NewMauville_Inside/border.bin", - "height": 41, - "id": "LAYOUT_NEW_MAUVILLE_INSIDE", - "name": "NewMauville_Inside_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BikeShop", - "width": 41 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Deck/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Deck/border.bin", - "height": 21, - "id": "LAYOUT_ABANDONED_SHIP_DECK", - "name": "AbandonedShip_Deck_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Corridors_1F/border.bin", - "height": 12, - "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_1F", - "name": "AbandonedShip_Corridors_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Rooms_1F/border.bin", - "height": 17, - "id": "LAYOUT_ABANDONED_SHIP_ROOMS_1F", - "name": "AbandonedShip_Rooms_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_B1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Corridors_B1F/border.bin", - "height": 10, - "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F", - "name": "AbandonedShip_Corridors_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_B1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Rooms_B1F/border.bin", - "height": 8, - "id": "LAYOUT_ABANDONED_SHIP_ROOMS_B1F", - "name": "AbandonedShip_Rooms_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/border.bin", - "height": 8, - "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_B1F", - "name": "AbandonedShip_Rooms2_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Underwater1/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Underwater1/border.bin", - "height": 8, - "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER1", - "name": "AbandonedShip_Underwater1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Room_B1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Room_B1F/border.bin", - "height": 8, - "id": "LAYOUT_ABANDONED_SHIP_ROOM_B1F", - "name": "AbandonedShip_Room_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_1F/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Rooms2_1F/border.bin", - "height": 17, - "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_1F", - "name": "AbandonedShip_Rooms2_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_CaptainsOffice/map.bin", - "border_filepath": "data/layouts/AbandonedShip_CaptainsOffice/border.bin", - "height": 7, - "id": "LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE", - "name": "AbandonedShip_CaptainsOffice_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_Underwater2/map.bin", - "border_filepath": "data/layouts/AbandonedShip_Underwater2/border.bin", - "height": 7, - "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER2", - "name": "AbandonedShip_Underwater2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_RedCave1/map.bin", - "border_filepath": "data/layouts/SecretBase_RedCave1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_RED_CAVE1", - "name": "SecretBase_RedCave1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseRedCave", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BrownCave1/map.bin", - "border_filepath": "data/layouts/SecretBase_BrownCave1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_BROWN_CAVE1", - "name": "SecretBase_BrownCave1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBrownCave", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BlueCave1/map.bin", - "border_filepath": "data/layouts/SecretBase_BlueCave1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_BLUE_CAVE1", - "name": "SecretBase_BlueCave1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBlueCave", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_YellowCave1/map.bin", - "border_filepath": "data/layouts/SecretBase_YellowCave1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE1", - "name": "SecretBase_YellowCave1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseYellowCave", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Tree1/map.bin", - "border_filepath": "data/layouts/SecretBase_Tree1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_TREE1", - "name": "SecretBase_Tree1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseTree", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Shrub1/map.bin", - "border_filepath": "data/layouts/SecretBase_Shrub1/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_SHRUB1", - "name": "SecretBase_Shrub1_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseShrub", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_RedCave2/map.bin", - "border_filepath": "data/layouts/SecretBase_RedCave2/border.bin", - "height": 16, - "id": "LAYOUT_SECRET_BASE_RED_CAVE2", - "name": "SecretBase_RedCave2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseRedCave", - "width": 7 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BrownCave2/map.bin", - "border_filepath": "data/layouts/SecretBase_BrownCave2/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_BROWN_CAVE2", - "name": "SecretBase_BrownCave2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBrownCave", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BlueCave2/map.bin", - "border_filepath": "data/layouts/SecretBase_BlueCave2/border.bin", - "height": 7, - "id": "LAYOUT_SECRET_BASE_BLUE_CAVE2", - "name": "SecretBase_BlueCave2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBlueCave", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_YellowCave2/map.bin", - "border_filepath": "data/layouts/SecretBase_YellowCave2/border.bin", - "height": 9, - "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE2", - "name": "SecretBase_YellowCave2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseYellowCave", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Tree2/map.bin", - "border_filepath": "data/layouts/SecretBase_Tree2/border.bin", - "height": 16, - "id": "LAYOUT_SECRET_BASE_TREE2", - "name": "SecretBase_Tree2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseTree", - "width": 7 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Shrub2/map.bin", - "border_filepath": "data/layouts/SecretBase_Shrub2/border.bin", - "height": 7, - "id": "LAYOUT_SECRET_BASE_SHRUB2", - "name": "SecretBase_Shrub2_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseShrub", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_RedCave3/map.bin", - "border_filepath": "data/layouts/SecretBase_RedCave3/border.bin", - "height": 8, - "id": "LAYOUT_SECRET_BASE_RED_CAVE3", - "name": "SecretBase_RedCave3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseRedCave", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BrownCave3/map.bin", - "border_filepath": "data/layouts/SecretBase_BrownCave3/border.bin", - "height": 11, - "id": "LAYOUT_SECRET_BASE_BROWN_CAVE3", - "name": "SecretBase_BrownCave3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBrownCave", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BlueCave3/map.bin", - "border_filepath": "data/layouts/SecretBase_BlueCave3/border.bin", - "height": 17, - "id": "LAYOUT_SECRET_BASE_BLUE_CAVE3", - "name": "SecretBase_BlueCave3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBlueCave", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_YellowCave3/map.bin", - "border_filepath": "data/layouts/SecretBase_YellowCave3/border.bin", - "height": 11, - "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE3", - "name": "SecretBase_YellowCave3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseYellowCave", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Tree3/map.bin", - "border_filepath": "data/layouts/SecretBase_Tree3/border.bin", - "height": 8, - "id": "LAYOUT_SECRET_BASE_TREE3", - "name": "SecretBase_Tree3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseTree", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Shrub3/map.bin", - "border_filepath": "data/layouts/SecretBase_Shrub3/border.bin", - "height": 11, - "id": "LAYOUT_SECRET_BASE_SHRUB3", - "name": "SecretBase_Shrub3_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseShrub", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_RedCave4/map.bin", - "border_filepath": "data/layouts/SecretBase_RedCave4/border.bin", - "height": 15, - "id": "LAYOUT_SECRET_BASE_RED_CAVE4", - "name": "SecretBase_RedCave4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseRedCave", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BrownCave4/map.bin", - "border_filepath": "data/layouts/SecretBase_BrownCave4/border.bin", - "height": 12, - "id": "LAYOUT_SECRET_BASE_BROWN_CAVE4", - "name": "SecretBase_BrownCave4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBrownCave", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_BlueCave4/map.bin", - "border_filepath": "data/layouts/SecretBase_BlueCave4/border.bin", - "height": 17, - "id": "LAYOUT_SECRET_BASE_BLUE_CAVE4", - "name": "SecretBase_BlueCave4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseBlueCave", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_YellowCave4/map.bin", - "border_filepath": "data/layouts/SecretBase_YellowCave4/border.bin", - "height": 14, - "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE4", - "name": "SecretBase_YellowCave4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseYellowCave", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Tree4/map.bin", - "border_filepath": "data/layouts/SecretBase_Tree4/border.bin", - "height": 14, - "id": "LAYOUT_SECRET_BASE_TREE4", - "name": "SecretBase_Tree4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseTree", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SecretBase_Shrub4/map.bin", - "border_filepath": "data/layouts/SecretBase_Shrub4/border.bin", - "height": 11, - "id": "LAYOUT_SECRET_BASE_SHRUB4", - "name": "SecretBase_Shrub4_Layout", - "primary_tileset": "gTileset_SecretBase", - "secondary_tileset": "gTileset_SecretBaseShrub", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/BattleColosseum2P/map.bin", - "border_filepath": "data/layouts/BattleColosseum2P/border.bin", - "height": 9, - "id": "LAYOUT_BATTLE_COLOSSEUM_2P", - "name": "BattleColosseum2P_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_CableClub", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/TradeCenter/map.bin", - "border_filepath": "data/layouts/TradeCenter/border.bin", - "height": 9, - "id": "LAYOUT_TRADE_CENTER", - "name": "TradeCenter_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_CableClub", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/RecordCorner/map.bin", - "border_filepath": "data/layouts/RecordCorner/border.bin", - "height": 10, - "id": "LAYOUT_RECORD_CORNER", - "name": "RecordCorner_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_CableClub", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/BattleColosseum4P/map.bin", - "border_filepath": "data/layouts/BattleColosseum4P/border.bin", - "height": 9, - "id": "LAYOUT_BATTLE_COLOSSEUM_4P", - "name": "BattleColosseum4P_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_CableClub", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/ContestHall/map.bin", - "border_filepath": "data/layouts/ContestHall/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL", - "name": "ContestHall_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", - "name": "UnknownLinkContestRoom_25_29_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", - "name": "UnknownLinkContestRoom_25_30_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", - "name": "UnknownLinkContestRoom_25_31_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", - "name": "UnknownLinkContestRoom_25_32_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", - "name": "UnknownLinkContestRoom_25_33_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin", - "border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", - "name": "UnknownLinkContestRoom_25_34_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Contest", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/ContestHallBeauty/map.bin", - "border_filepath": "data/layouts/ContestHallBeauty/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL_BEAUTY", - "name": "ContestHallBeauty_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/ContestHallTough/map.bin", - "border_filepath": "data/layouts/ContestHallTough/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL_TOUGH", - "name": "ContestHallTough_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/ContestHallCool/map.bin", - "border_filepath": "data/layouts/ContestHallCool/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL_COOL", - "name": "ContestHallCool_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/ContestHallSmart/map.bin", - "border_filepath": "data/layouts/ContestHallSmart/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL_SMART", - "name": "ContestHallSmart_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/ContestHallCute/map.bin", - "border_filepath": "data/layouts/ContestHallCute/border.bin", - "height": 11, - "id": "LAYOUT_CONTEST_HALL_CUTE", - "name": "ContestHallCute_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Contest", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/InsideOfTruck/map.bin", - "border_filepath": "data/layouts/InsideOfTruck/border.bin", - "height": 5, - "id": "LAYOUT_INSIDE_OF_TRUCK", - "name": "InsideOfTruck_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideOfTruck", - "width": 5 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_Northwest/map.bin", - "border_filepath": "data/layouts/SafariZone_Northwest/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_NORTHWEST", - "name": "SafariZone_Northwest_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_North/map.bin", - "border_filepath": "data/layouts/SafariZone_North/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_NORTH", - "name": "SafariZone_North_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_Southwest/map.bin", - "border_filepath": "data/layouts/SafariZone_Southwest/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_SOUTHWEST", - "name": "SafariZone_Southwest_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_South/map.bin", - "border_filepath": "data/layouts/SafariZone_South/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_SOUTH", - "name": "SafariZone_South_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Unknown_08447028/map.bin", - "border_filepath": "data/layouts/Unknown_08447028/border.bin", - "height": 26, - "id": "LAYOUT_UNKNOWN_08447028", - "name": "Unknown_08447028_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "0", - "width": 58 - }, - { - "blockdata_filepath": "data/layouts/Route109_SeashoreHouse/map.bin", - "border_filepath": "data/layouts/Route109_SeashoreHouse/border.bin", - "height": 10, - "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", - "name": "Route109_SeashoreHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_SeashoreHouse", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHouseEntrance/map.bin", - "border_filepath": "data/layouts/Route110_TrickHouseEntrance/border.bin", - "height": 8, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE", - "name": "Route110_TrickHouseEntrance_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHouseEnd/map.bin", - "border_filepath": "data/layouts/Route110_TrickHouseEnd/border.bin", - "height": 8, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_END", - "name": "Route110_TrickHouseEnd_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHouseCorridor/map.bin", - "border_filepath": "data/layouts/Route110_TrickHouseCorridor/border.bin", - "height": 24, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR", - "name": "Route110_TrickHouseCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle1/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle1/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1", - "name": "Route110_TrickHousePuzzle1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle2/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle2/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2", - "name": "Route110_TrickHousePuzzle2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle3/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle3/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3", - "name": "Route110_TrickHousePuzzle3_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle4/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle4/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4", - "name": "Route110_TrickHousePuzzle4_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle5/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle5/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5", - "name": "Route110_TrickHousePuzzle5_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle6/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle6/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6", - "name": "Route110_TrickHousePuzzle6_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle7/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle7/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7", - "name": "Route110_TrickHousePuzzle7_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle8/map.bin", - "border_filepath": "data/layouts/Route110_TrickHousePuzzle8/border.bin", - "height": 22, - "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8", - "name": "Route110_TrickHousePuzzle8_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrickHousePuzzle", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/FortreeCity_DecorationShop/map.bin", - "border_filepath": "data/layouts/FortreeCity_DecorationShop/border.bin", - "height": 6, - "id": "LAYOUT_FORTREE_CITY_DECORATION_SHOP", - "name": "FortreeCity_DecorationShop_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/map.bin", - "border_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/border.bin", - "height": 6, - "id": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", - "name": "Route110_SeasideCyclingRoadEntrance_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F", - "name": "LilycoveCity_DepartmentStore_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F", - "name": "LilycoveCity_DepartmentStore_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F", - "name": "LilycoveCity_DepartmentStore_3F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F", - "name": "LilycoveCity_DepartmentStore_4F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/border.bin", - "height": 8, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F", - "name": "LilycoveCity_DepartmentStore_5F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/border.bin", - "height": 12, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", - "name": "LilycoveCity_DepartmentStoreRooftop_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Shop", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/Route130/map.bin", - "border_filepath": "data/layouts/Route130/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE130", - "name": "Route130_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/border.bin", - "height": 10, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", - "name": "BattleFrontier_BattleTowerLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 25 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_OutsideWest/map.bin", - "border_filepath": "data/layouts/BattleFrontier_OutsideWest/border.bin", - "height": 72, - "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST", - "name": "BattleFrontier_OutsideWest_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattleFrontierOutsideWest", - "width": 56 - }, - { - "blockdata_filepath": "data/layouts/BattleElevator/map.bin", - "border_filepath": "data/layouts/BattleElevator/border.bin", - "height": 7, - "id": "LAYOUT_BATTLE_ELEVATOR", - "name": "BattleElevator_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 5 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/border.bin", - "height": 5, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", - "name": "BattleFrontier_BattleTowerCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/border.bin", - "height": 9, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", - "name": "BattleFrontier_BattleTowerBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_3F/map.bin", - "border_filepath": "data/layouts/RustboroCity_DevonCorp_3F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F", - "name": "RustboroCity_DevonCorp_3F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Facility", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/border.bin", - "height": 12, - "id": "LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", - "name": "EverGrandeCity_PokemonLeague_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_PokemonCenter", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_1F/map.bin", - "border_filepath": "data/layouts/Route119_WeatherInstitute_1F/border.bin", - "height": 13, - "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F", - "name": "Route119_WeatherInstitute_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Lab", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_2F/map.bin", - "border_filepath": "data/layouts/Route119_WeatherInstitute_2F/border.bin", - "height": 11, - "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F", - "name": "Route119_WeatherInstitute_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Lab", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/map.bin", - "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/border.bin", - "height": 6, - "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", - "name": "LilycoveCity_DepartmentStoreElevator_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 5 - }, - { - "blockdata_filepath": "data/layouts/Underwater1/map.bin", - "border_filepath": "data/layouts/Underwater1/border.bin", - "height": 80, - "id": "LAYOUT_UNDERWATER1", - "name": "Underwater1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/map.bin", - "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/border.bin", - "height": 10, - "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F", - "name": "MossdeepCity_SpaceCenter_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/map.bin", - "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/border.bin", - "height": 10, - "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F", - "name": "MossdeepCity_SpaceCenter_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/SSTidalCorridor/map.bin", - "border_filepath": "data/layouts/SSTidalCorridor/border.bin", - "height": 13, - "id": "LAYOUT_SS_TIDAL_CORRIDOR", - "name": "SSTidalCorridor_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/SSTidalLowerDeck/map.bin", - "border_filepath": "data/layouts/SSTidalLowerDeck/border.bin", - "height": 13, - "id": "LAYOUT_SS_TIDAL_LOWER_DECK", - "name": "SSTidalLowerDeck_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/SSTidalRooms/map.bin", - "border_filepath": "data/layouts/SSTidalRooms/border.bin", - "height": 18, - "id": "LAYOUT_SS_TIDAL_ROOMS", - "name": "SSTidalRooms_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 36 - }, - { - "blockdata_filepath": "data/layouts/IslandCave/map.bin", - "border_filepath": "data/layouts/IslandCave/border.bin", - "height": 33, - "id": "LAYOUT_ISLAND_CAVE", - "name": "IslandCave_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/AncientTomb/map.bin", - "border_filepath": "data/layouts/AncientTomb/border.bin", - "height": 33, - "id": "LAYOUT_ANCIENT_TOMB", - "name": "AncientTomb_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/Underwater_Route134/map.bin", - "border_filepath": "data/layouts/Underwater_Route134/border.bin", - "height": 10, - "id": "LAYOUT_UNDERWATER_ROUTE134", - "name": "Underwater_Route134_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/Underwater_SealedChamber/map.bin", - "border_filepath": "data/layouts/Underwater_SealedChamber/border.bin", - "height": 48, - "id": "LAYOUT_UNDERWATER_SEALED_CHAMBER", - "name": "Underwater_SealedChamber_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 22 - }, - { - "blockdata_filepath": "data/layouts/SealedChamber_OuterRoom/map.bin", - "border_filepath": "data/layouts/SealedChamber_OuterRoom/border.bin", - "height": 23, - "id": "LAYOUT_SEALED_CHAMBER_OUTER_ROOM", - "name": "SealedChamber_OuterRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/VictoryRoad_B1F/map.bin", - "border_filepath": "data/layouts/VictoryRoad_B1F/border.bin", - "height": 31, - "id": "LAYOUT_VICTORY_ROAD_B1F", - "name": "VictoryRoad_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/VictoryRoad_B2F/map.bin", - "border_filepath": "data/layouts/VictoryRoad_B2F/border.bin", - "height": 31, - "id": "LAYOUT_VICTORY_ROAD_B2F", - "name": "VictoryRoad_B2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/Route104_Prototype/map.bin", - "border_filepath": "data/layouts/Route104_Prototype/border.bin", - "height": 1, - "id": "LAYOUT_ROUTE104_PROTOTYPE", - "name": "Route104_Prototype_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/GraniteCave_StevensRoom/map.bin", - "border_filepath": "data/layouts/GraniteCave_StevensRoom/border.bin", - "height": 14, - "id": "LAYOUT_GRANITE_CAVE_STEVENS_ROOM", - "name": "GraniteCave_StevensRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/map.bin", - "border_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/border.bin", - "height": 11, - "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", - "name": "AbandonedShip_HiddenFloorCorridors_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/SouthernIsland_Exterior/map.bin", - "border_filepath": "data/layouts/SouthernIsland_Exterior/border.bin", - "height": 30, - "id": "LAYOUT_SOUTHERN_ISLAND_EXTERIOR", - "name": "SouthernIsland_Exterior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 33 - }, - { - "blockdata_filepath": "data/layouts/SouthernIsland_Interior/map.bin", - "border_filepath": "data/layouts/SouthernIsland_Interior/border.bin", - "height": 24, - "id": "LAYOUT_SOUTHERN_ISLAND_INTERIOR", - "name": "SouthernIsland_Interior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/JaggedPass/map.bin", - "border_filepath": "data/layouts/JaggedPass/border.bin", - "height": 46, - "id": "LAYOUT_JAGGED_PASS", - "name": "JaggedPass_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/FieryPath/map.bin", - "border_filepath": "data/layouts/FieryPath/border.bin", - "height": 38, - "id": "LAYOUT_FIERY_PATH", - "name": "FieryPath_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 35 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_1F/map.bin", - "border_filepath": "data/layouts/RustboroCity_Flat2_1F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_FLAT2_1F", - "name": "RustboroCity_Flat2_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_2F/map.bin", - "border_filepath": "data/layouts/RustboroCity_Flat2_2F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_FLAT2_2F", - "name": "RustboroCity_Flat2_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Flat2_3F/map.bin", - "border_filepath": "data/layouts/RustboroCity_Flat2_3F/border.bin", - "height": 9, - "id": "LAYOUT_RUSTBORO_CITY_FLAT2_3F", - "name": "RustboroCity_Flat2_3F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/map.bin", - "border_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/border.bin", - "height": 7, - "id": "LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", - "name": "SootopolisCity_LotadAndSeedotHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_HallOfFame/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_HallOfFame/border.bin", - "height": 17, - "id": "LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME", - "name": "EverGrandeCity_HallOfFame_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_CableClub", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/border.bin", - "height": 9, - "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", - "name": "LilycoveCity_CoveLilyMotel_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/map.bin", - "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/border.bin", - "height": 9, - "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", - "name": "LilycoveCity_CoveLilyMotel_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/map.bin", - "border_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/border.bin", - "height": 9, - "id": "LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", - "name": "Route124_DivingTreasureHuntersHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_Exterior/map.bin", - "border_filepath": "data/layouts/MtPyre_Exterior/border.bin", - "height": 51, - "id": "LAYOUT_MT_PYRE_EXTERIOR", - "name": "MtPyre_Exterior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 38 - }, - { - "blockdata_filepath": "data/layouts/MtPyre_Summit/map.bin", - "border_filepath": "data/layouts/MtPyre_Summit/border.bin", - "height": 37, - "id": "LAYOUT_MT_PYRE_SUMMIT", - "name": "MtPyre_Summit_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 50 - }, - { - "blockdata_filepath": "data/layouts/SealedChamber_InnerRoom/map.bin", - "border_filepath": "data/layouts/SealedChamber_InnerRoom/border.bin", - "height": 23, - "id": "LAYOUT_SEALED_CHAMBER_INNER_ROOM", - "name": "SealedChamber_InnerRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_1F/map.bin", - "border_filepath": "data/layouts/MossdeepCity_GameCorner_1F/border.bin", - "height": 10, - "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F", - "name": "MossdeepCity_GameCorner_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MossdeepGameCorner", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/map.bin", - "border_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/border.bin", - "height": 9, - "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F", - "name": "MossdeepCity_GameCorner_B1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_House1/map.bin", - "border_filepath": "data/layouts/SootopolisCity_House1/border.bin", - "height": 7, - "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", - "name": "SootopolisCity_House1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_House2/map.bin", - "border_filepath": "data/layouts/SootopolisCity_House2/border.bin", - "height": 7, - "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", - "name": "SootopolisCity_House2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_House3/map.bin", - "border_filepath": "data/layouts/SootopolisCity_House3/border.bin", - "height": 7, - "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", - "name": "SootopolisCity_House3_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/map.bin", - "border_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/border.bin", - "height": 15, - "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", - "name": "AbandonedShip_HiddenFloorRooms_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_InsideShip", - "width": 44 - }, - { - "blockdata_filepath": "data/layouts/ScorchedSlab/map.bin", - "border_filepath": "data/layouts/ScorchedSlab/border.bin", - "height": 20, - "id": "LAYOUT_SCORCHED_SLAB", - "name": "ScorchedSlab_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/map.bin", - "border_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/border.bin", - "height": 19, - "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA", - "name": "CaveOfOrigin_Unused_B4F_Lava_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Flat1_1F/map.bin", - "border_filepath": "data/layouts/RustboroCity_Flat1_1F/border.bin", - "height": 8, - "id": "LAYOUT_RUSTBORO_CITY_FLAT1_1F", - "name": "RustboroCity_Flat1_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/RustboroCity_Flat1_2F/map.bin", - "border_filepath": "data/layouts/RustboroCity_Flat1_2F/border.bin", - "height": 8, - "id": "LAYOUT_RUSTBORO_CITY_FLAT1_2F", - "name": "RustboroCity_Flat1_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/EverGrandeCity_Hall4/map.bin", - "border_filepath": "data/layouts/EverGrandeCity_Hall4/border.bin", - "height": 34, - "id": "LAYOUT_EVER_GRANDE_CITY_HALL4", - "name": "EverGrandeCity_Hall4_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_EliteFour", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/map.bin", - "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/border.bin", - "height": 30, - "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", - "name": "AquaHideout_UnusedRubyMap1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 28 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/map.bin", - "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/border.bin", - "height": 24, - "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", - "name": "AquaHideout_UnusedRubyMap2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 62 - }, - { - "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/map.bin", - "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/border.bin", - "height": 24, - "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", - "name": "AquaHideout_UnusedRubyMap3_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Facility", - "width": 34 - }, - { - "blockdata_filepath": "data/layouts/Route131_SkyPillar/map.bin", - "border_filepath": "data/layouts/Route131_SkyPillar/border.bin", - "height": 40, - "id": "LAYOUT_ROUTE131_SKY_PILLAR", - "name": "Route131_SkyPillar_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_Entrance/map.bin", - "border_filepath": "data/layouts/SkyPillar_Entrance/border.bin", - "height": 18, - "id": "LAYOUT_SKY_PILLAR_ENTRANCE", - "name": "SkyPillar_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_Outside/map.bin", - "border_filepath": "data/layouts/SkyPillar_Outside/border.bin", - "height": 23, - "id": "LAYOUT_SKY_PILLAR_OUTSIDE", - "name": "SkyPillar_Outside_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 28 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_1F/map.bin", - "border_filepath": "data/layouts/SkyPillar_1F/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_1F", - "name": "SkyPillar_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_2F/map.bin", - "border_filepath": "data/layouts/SkyPillar_2F/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_2F", - "name": "SkyPillar_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_3F/map.bin", - "border_filepath": "data/layouts/SkyPillar_3F/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_3F", - "name": "SkyPillar_3F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_4F/map.bin", - "border_filepath": "data/layouts/SkyPillar_4F/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_4F", - "name": "SkyPillar_4F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SeafloorCavern_Room9_Lava/map.bin", - "border_filepath": "data/layouts/SeafloorCavern_Room9_Lava/border.bin", - "height": 46, - "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA", - "name": "SeafloorCavern_Room9_Lava_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/MossdeepCity_StevensHouse/map.bin", - "border_filepath": "data/layouts/MossdeepCity_StevensHouse/border.bin", - "height": 8, - "id": "LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE", - "name": "MossdeepCity_StevensHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/ShoalCave_LowTideIceRoom/map.bin", - "border_filepath": "data/layouts/ShoalCave_LowTideIceRoom/border.bin", - "height": 30, - "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", - "name": "ShoalCave_LowTideIceRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin", - "border_filepath": "data/layouts/SafariZone_RestHouse/border.bin", - "height": 9, - "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE", - "name": "SafariZone_RestHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_GenericBuilding", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_5F/map.bin", - "border_filepath": "data/layouts/SkyPillar_5F/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_5F", - "name": "SkyPillar_5F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_Top/map.bin", - "border_filepath": "data/layouts/SkyPillar_Top/border.bin", - "height": 24, - "id": "LAYOUT_SKY_PILLAR_TOP", - "name": "SkyPillar_Top_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/border.bin", - "height": 17, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", - "name": "BattleFrontier_BattleDomeLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleDome", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/border.bin", - "height": 7, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", - "name": "BattleFrontier_BattleDomeCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleDome", - "width": 48 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM", - "name": "BattleFrontier_BattleDomePreBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleDome", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/border.bin", - "height": 10, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM", - "name": "BattleFrontier_BattleDomeBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleDome", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_1F/map.bin", - "border_filepath": "data/layouts/MagmaHideout_1F/border.bin", - "height": 38, - "id": "LAYOUT_MAGMA_HIDEOUT_1F", - "name": "MagmaHideout_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 37 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_2F_1R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_2F_1R/border.bin", - "height": 39, - "id": "LAYOUT_MAGMA_HIDEOUT_2F_1R", - "name": "MagmaHideout_2F_1R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 33 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_2F_2R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_2F_2R/border.bin", - "height": 28, - "id": "LAYOUT_MAGMA_HIDEOUT_2F_2R", - "name": "MagmaHideout_2F_2R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 49 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_3F_1R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_3F_1R/border.bin", - "height": 24, - "id": "LAYOUT_MAGMA_HIDEOUT_3F_1R", - "name": "MagmaHideout_3F_1R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 28 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_3F_2R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_3F_2R/border.bin", - "height": 17, - "id": "LAYOUT_MAGMA_HIDEOUT_3F_2R", - "name": "MagmaHideout_3F_2R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 24 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_4F/map.bin", - "border_filepath": "data/layouts/MagmaHideout_4F/border.bin", - "height": 28, - "id": "LAYOUT_MAGMA_HIDEOUT_4F", - "name": "MagmaHideout_4F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 59 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/border.bin", - "height": 12, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY", - "name": "BattleFrontier_BattlePalaceLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePalace", - "width": 25 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/border.bin", - "height": 14, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR", - "name": "BattleFrontier_BattlePalaceCorridor_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattlePalace", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/border.bin", - "height": 10, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM", - "name": "BattleFrontier_BattlePalaceBattleRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattlePalace", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_OutsideEast/map.bin", - "border_filepath": "data/layouts/BattleFrontier_OutsideEast/border.bin", - "height": 72, - "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST", - "name": "BattleFrontier_OutsideEast_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattleFrontierOutsideEast", - "width": 72 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/border.bin", - "height": 12, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY", - "name": "BattleFrontier_BattleFactoryLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFactory", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/border.bin", - "height": 14, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM", - "name": "BattleFrontier_BattleFactoryPreBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFactory", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/border.bin", - "height": 12, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM", - "name": "BattleFrontier_BattleFactoryBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFactory", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/border.bin", - "height": 13, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", - "name": "BattleFrontier_BattlePikeLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", - "name": "BattleFrontier_BattlePikeCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/border.bin", - "height": 11, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", - "name": "BattleFrontier_BattlePikeThreePathRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", - "name": "BattleFrontier_BattlePikeRoomNormal_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", - "name": "BattleFrontier_BattlePikeRoomFinal_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 5 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/border.bin", - "height": 13, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY", - "name": "BattleFrontier_BattleArenaLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleArena", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/border.bin", - "height": 14, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR", - "name": "BattleFrontier_BattleArenaCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleArena", - "width": 18 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/border.bin", - "height": 11, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM", - "name": "BattleFrontier_BattleArenaBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleArena", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin", - "border_filepath": "data/layouts/SootopolisCity_LegendsBattle/border.bin", - "height": 60, - "id": "LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE", - "name": "SootopolisCity_LegendsBattle_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Sootopolis", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin", - "height": 20, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", - "name": "BattleFrontier_BattlePikeRoomWildMons_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin", - "border_filepath": "data/layouts/Unknown_084693AC/border.bin", - "height": 1, - "id": "LAYOUT_UNKNOWN_084693AC", - "name": "Unknown_084693AC_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePike", - "width": 1 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/border.bin", - "height": 18, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", - "name": "BattleFrontier_BattlePyramidLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR", - "name": "BattleFrontier_BattlePyramidFloor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare01/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare01/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE01", - "name": "BattlePyramidSquare01_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare02/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare02/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE02", - "name": "BattlePyramidSquare02_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare03/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare03/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE03", - "name": "BattlePyramidSquare03_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare04/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare04/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE04", - "name": "BattlePyramidSquare04_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare05/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare05/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE05", - "name": "BattlePyramidSquare05_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare06/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare06/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE06", - "name": "BattlePyramidSquare06_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare07/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare07/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE07", - "name": "BattlePyramidSquare07_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare08/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare08/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE08", - "name": "BattlePyramidSquare08_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare09/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare09/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE09", - "name": "BattlePyramidSquare09_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare10/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare10/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE10", - "name": "BattlePyramidSquare10_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare11/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare11/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE11", - "name": "BattlePyramidSquare11_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare12/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare12/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE12", - "name": "BattlePyramidSquare12_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare13/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare13/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE13", - "name": "BattlePyramidSquare13_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare14/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare14/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE14", - "name": "BattlePyramidSquare14_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare15/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare15/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE15", - "name": "BattlePyramidSquare15_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattlePyramidSquare16/map.bin", - "border_filepath": "data/layouts/BattlePyramidSquare16/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_PYRAMID_SQUARE16", - "name": "BattlePyramidSquare16_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 8 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/border.bin", - "height": 23, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP", - "name": "BattleFrontier_BattlePyramidTop_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattlePyramid", - "width": 34 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_3F_3R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_3F_3R/border.bin", - "height": 24, - "id": "LAYOUT_MAGMA_HIDEOUT_3F_3R", - "name": "MagmaHideout_3F_3R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 33 - }, - { - "blockdata_filepath": "data/layouts/MagmaHideout_2F_3R/map.bin", - "border_filepath": "data/layouts/MagmaHideout_2F_3R/border.bin", - "height": 19, - "id": "LAYOUT_MAGMA_HIDEOUT_2F_3R", - "name": "MagmaHideout_2F_3R_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lavaridge", - "width": 60 - }, - { - "blockdata_filepath": "data/layouts/MirageTower_1F/map.bin", - "border_filepath": "data/layouts/MirageTower_1F/border.bin", - "height": 17, - "id": "LAYOUT_MIRAGE_TOWER_1F", - "name": "MirageTower_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MirageTower", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/MirageTower_2F/map.bin", - "border_filepath": "data/layouts/MirageTower_2F/border.bin", - "height": 17, - "id": "LAYOUT_MIRAGE_TOWER_2F", - "name": "MirageTower_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MirageTower", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/MirageTower_3F/map.bin", - "border_filepath": "data/layouts/MirageTower_3F/border.bin", - "height": 17, - "id": "LAYOUT_MIRAGE_TOWER_3F", - "name": "MirageTower_3F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MirageTower", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/BattleTentLobby/map.bin", - "border_filepath": "data/layouts/BattleTentLobby/border.bin", - "height": 10, - "id": "LAYOUT_BATTLE_TENT_LOBBY", - "name": "BattleTentLobby_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleTent", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/BattleTentCorridor/map.bin", - "border_filepath": "data/layouts/BattleTentCorridor/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_TENT_CORRIDOR", - "name": "BattleTentCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleTent", - "width": 5 - }, - { - "blockdata_filepath": "data/layouts/BattleTentBattleRoom/map.bin", - "border_filepath": "data/layouts/BattleTentBattleRoom/border.bin", - "height": 9, - "id": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", - "name": "BattleTentBattleRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleTent", - "width": 10 - }, - { - "blockdata_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/map.bin", - "border_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/border.bin", - "height": 9, - "id": "LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", - "name": "VerdanturfTown_BattleTentBattleRoom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattleTent", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/MirageTower_4F/map.bin", - "border_filepath": "data/layouts/MirageTower_4F/border.bin", - "height": 10, - "id": "LAYOUT_MIRAGE_TOWER_4F", - "name": "MirageTower_4F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MirageTower", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/DesertUnderpass/map.bin", - "border_filepath": "data/layouts/DesertUnderpass/border.bin", - "height": 23, - "id": "LAYOUT_DESERT_UNDERPASS", - "name": "DesertUnderpass_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 139 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/border.bin", - "height": 15, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", - "name": "BattleFrontier_BattleTowerMultiPartnerRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/map.bin", - "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/border.bin", - "height": 5, - "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", - "name": "BattleFrontier_BattleTowerMultiCorridor_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/Route111_NoMirageTower/map.bin", - "border_filepath": "data/layouts/Route111_NoMirageTower/border.bin", - "height": 140, - "id": "LAYOUT_ROUTE111_NO_MIRAGE_TOWER", - "name": "Route111_NoMirageTower_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Mauville", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/UnionRoom/map.bin", - "border_filepath": "data/layouts/UnionRoom/border.bin", - "height": 12, - "id": "LAYOUT_UNION_ROOM", - "name": "UnionRoom_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_UnionRoom", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_Northeast/map.bin", - "border_filepath": "data/layouts/SafariZone_Northeast/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_NORTHEAST", - "name": "SafariZone_Northeast_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/SafariZone_Southeast/map.bin", - "border_filepath": "data/layouts/SafariZone_Southeast/border.bin", - "height": 40, - "id": "LAYOUT_SAFARI_ZONE_SOUTHEAST", - "name": "SafariZone_Southeast_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Lilycove", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_RankingHall/map.bin", - "border_filepath": "data/layouts/BattleFrontier_RankingHall/border.bin", - "height": 15, - "id": "LAYOUT_BATTLE_FRONTIER_RANKING_HALL", - "name": "BattleFrontier_RankingHall_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontierRankingHall", - "width": 53 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_Lounge1/map.bin", - "border_filepath": "data/layouts/BattleFrontier_Lounge1/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", - "name": "BattleFrontier_Lounge1_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/map.bin", - "border_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/border.bin", - "height": 11, - "id": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", - "name": "BattleFrontier_ExchangeServiceCorner_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 15 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_ReceptionGate/map.bin", - "border_filepath": "data/layouts/BattleFrontier_ReceptionGate/border.bin", - "height": 14, - "id": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE", - "name": "BattleFrontier_ReceptionGate_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/ArtisanCave_B1F/map.bin", - "border_filepath": "data/layouts/ArtisanCave_B1F/border.bin", - "height": 54, - "id": "LAYOUT_ARTISAN_CAVE_B1F", - "name": "ArtisanCave_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 46 - }, - { - "blockdata_filepath": "data/layouts/ArtisanCave_1F/map.bin", - "border_filepath": "data/layouts/ArtisanCave_1F/border.bin", - "height": 22, - "id": "LAYOUT_ARTISAN_CAVE_1F", - "name": "ArtisanCave_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/FarawayIsland_Entrance/map.bin", - "border_filepath": "data/layouts/FarawayIsland_Entrance/border.bin", - "height": 46, - "id": "LAYOUT_FARAWAY_ISLAND_ENTRANCE", - "name": "FarawayIsland_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Rustboro", - "width": 34 - }, - { - "blockdata_filepath": "data/layouts/FarawayIsland_Interior/map.bin", - "border_filepath": "data/layouts/FarawayIsland_Interior/border.bin", - "height": 26, - "id": "LAYOUT_FARAWAY_ISLAND_INTERIOR", - "name": "FarawayIsland_Interior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Fortree", - "width": 29 - }, - { - "blockdata_filepath": "data/layouts/BirthIsland_Exterior/map.bin", - "border_filepath": "data/layouts/BirthIsland_Exterior/border.bin", - "height": 30, - "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR", - "name": "BirthIsland_Exterior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/IslandHarbor/map.bin", - "border_filepath": "data/layouts/IslandHarbor/border.bin", - "height": 13, - "id": "LAYOUT_ISLAND_HARBOR", - "name": "IslandHarbor_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_IslandHarbor", - "width": 17 - }, - { - "blockdata_filepath": "data/layouts/Underwater_MarineCave/map.bin", - "border_filepath": "data/layouts/Underwater_MarineCave/border.bin", - "height": 10, - "id": "LAYOUT_UNDERWATER_MARINE_CAVE", - "name": "Underwater_MarineCave_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/MarineCave_Entrance/map.bin", - "border_filepath": "data/layouts/MarineCave_Entrance/border.bin", - "height": 20, - "id": "LAYOUT_MARINE_CAVE_ENTRANCE", - "name": "MarineCave_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/TerraCave_Entrance/map.bin", - "border_filepath": "data/layouts/TerraCave_Entrance/border.bin", - "height": 20, - "id": "LAYOUT_TERRA_CAVE_ENTRANCE", - "name": "TerraCave_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 20 - }, - { - "blockdata_filepath": "data/layouts/TerraCave_End/map.bin", - "border_filepath": "data/layouts/TerraCave_End/border.bin", - "height": 30, - "id": "LAYOUT_TERRA_CAVE_END", - "name": "TerraCave_End_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/Underwater6/map.bin", - "border_filepath": "data/layouts/Underwater6/border.bin", - "height": 80, - "id": "LAYOUT_UNDERWATER6", - "name": "Underwater6_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/Underwater7/map.bin", - "border_filepath": "data/layouts/Underwater7/border.bin", - "height": 40, - "id": "LAYOUT_UNDERWATER7", - "name": "Underwater7_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/Underwater5/map.bin", - "border_filepath": "data/layouts/Underwater5/border.bin", - "height": 40, - "id": "LAYOUT_UNDERWATER5", - "name": "Underwater5_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Underwater", - "width": 80 - }, - { - "blockdata_filepath": "data/layouts/MarineCave_End/map.bin", - "border_filepath": "data/layouts/MarineCave_End/border.bin", - "height": 30, - "id": "LAYOUT_MARINE_CAVE_END", - "name": "MarineCave_End_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_Entrance/map.bin", - "border_filepath": "data/layouts/TrainerHill_Entrance/border.bin", - "height": 17, - "id": "LAYOUT_TRAINER_HILL_ENTRANCE", - "name": "TrainerHill_Entrance_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 19 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_1F/map.bin", - "border_filepath": "data/layouts/TrainerHill_1F/border.bin", - "height": 21, - "id": "LAYOUT_TRAINER_HILL_1F", - "name": "TrainerHill_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_2F/map.bin", - "border_filepath": "data/layouts/TrainerHill_2F/border.bin", - "height": 21, - "id": "LAYOUT_TRAINER_HILL_2F", - "name": "TrainerHill_2F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_3F/map.bin", - "border_filepath": "data/layouts/TrainerHill_3F/border.bin", - "height": 21, - "id": "LAYOUT_TRAINER_HILL_3F", - "name": "TrainerHill_3F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_4F/map.bin", - "border_filepath": "data/layouts/TrainerHill_4F/border.bin", - "height": 21, - "id": "LAYOUT_TRAINER_HILL_4F", - "name": "TrainerHill_4F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 16 - }, - { - "blockdata_filepath": "data/layouts/TrainerHill_Roof/map.bin", - "border_filepath": "data/layouts/TrainerHill_Roof/border.bin", - "height": 16, - "id": "LAYOUT_TRAINER_HILL_ROOF", - "name": "TrainerHill_Roof_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_TrainerHill", - "width": 25 - }, - { - "blockdata_filepath": "data/layouts/AlteringCave/map.bin", - "border_filepath": "data/layouts/AlteringCave/border.bin", - "height": 24, - "id": "LAYOUT_ALTERING_CAVE", - "name": "AlteringCave_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 32 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_Exterior/map.bin", - "border_filepath": "data/layouts/NavelRock_Exterior/border.bin", - "height": 24, - "id": "LAYOUT_NAVEL_ROCK_EXTERIOR", - "name": "NavelRock_Exterior_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Dewford", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_Entrance/map.bin", - "border_filepath": "data/layouts/NavelRock_Entrance/border.bin", - "height": 32, - "id": "LAYOUT_NAVEL_ROCK_ENTRANCE", - "name": "NavelRock_Entrance_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 21 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_Top/map.bin", - "border_filepath": "data/layouts/NavelRock_Top/border.bin", - "height": 28, - "id": "LAYOUT_NAVEL_ROCK_TOP", - "name": "NavelRock_Top_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 25 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_Bottom/map.bin", - "border_filepath": "data/layouts/NavelRock_Bottom/border.bin", - "height": 22, - "id": "LAYOUT_NAVEL_ROCK_BOTTOM", - "name": "NavelRock_Bottom_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 22 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_LadderRoom1/map.bin", - "border_filepath": "data/layouts/NavelRock_LadderRoom1/border.bin", - "height": 8, - "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", - "name": "NavelRock_LadderRoom1_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_LadderRoom2/map.bin", - "border_filepath": "data/layouts/NavelRock_LadderRoom2/border.bin", - "height": 8, - "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", - "name": "NavelRock_LadderRoom2_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_B1F/map.bin", - "border_filepath": "data/layouts/NavelRock_B1F/border.bin", - "height": 11, - "id": "LAYOUT_NAVEL_ROCK_B1F", - "name": "NavelRock_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 23 - }, - { - "blockdata_filepath": "data/layouts/NavelRock_Fork/map.bin", - "border_filepath": "data/layouts/NavelRock_Fork/border.bin", - "height": 86, - "id": "LAYOUT_NAVEL_ROCK_FORK", - "name": "NavelRock_Fork_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_NavelRock", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_Lounge2/map.bin", - "border_filepath": "data/layouts/BattleFrontier_Lounge2/border.bin", - "height": 10, - "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", - "name": "BattleFrontier_Lounge2_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 9 - }, - { - "blockdata_filepath": "data/layouts/BattleFrontier_ScottsHouse/map.bin", - "border_filepath": "data/layouts/BattleFrontier_ScottsHouse/border.bin", - "height": 8, - "id": "LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE", - "name": "BattleFrontier_ScottsHouse_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_BattleFrontier", - "width": 6 - }, - { - "blockdata_filepath": "data/layouts/MeteorFalls_StevensCave/map.bin", - "border_filepath": "data/layouts/MeteorFalls_StevensCave/border.bin", - "height": 32, - "id": "LAYOUT_METEOR_FALLS_STEVENS_CAVE", - "name": "MeteorFalls_StevensCave_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_MeteorFalls", - "width": 30 - }, - { - "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/map.bin", - "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/border.bin", - "height": 13, - "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE", - "name": "LittlerootTown_ProfessorBirchsLabWithTable_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_Lab", - "width": 13 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_1F_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_1F_Clean/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_1F_CLEAN", - "name": "SkyPillar_1F_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_2F_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_2F_Clean/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_2F_CLEAN", - "name": "SkyPillar_2F_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_3F_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_3F_Clean/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_3F_CLEAN", - "name": "SkyPillar_3F_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_4F_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_4F_Clean/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_4F_CLEAN", - "name": "SkyPillar_4F_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_5F_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_5F_Clean/border.bin", - "height": 14, - "id": "LAYOUT_SKY_PILLAR_5F_CLEAN", - "name": "SkyPillar_5F_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 14 - }, - { - "blockdata_filepath": "data/layouts/SkyPillar_Top_Clean/map.bin", - "border_filepath": "data/layouts/SkyPillar_Top_Clean/border.bin", - "height": 24, - "id": "LAYOUT_SKY_PILLAR_TOP_CLEAN", - "name": "SkyPillar_Top_Clean_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Pacifidlog", - "width": 27 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/map.bin", - "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/border.bin", - "height": 8, - "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", - "name": "SootopolisCity_MysteryEventsHouse_1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MysteryEventsHouse", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/map.bin", - "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/border.bin", - "height": 9, - "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", - "name": "SootopolisCity_MysteryEventsHouse_B1F_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MysteryEventsHouse", - "width": 12 - }, - { - "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/map.bin", - "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/border.bin", - "height": 8, - "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED", - "name": "SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked_Layout", - "primary_tileset": "gTileset_Building", - "secondary_tileset": "gTileset_MysteryEventsHouse", - "width": 11 - }, - { - "blockdata_filepath": "data/layouts/CeruleanCave_1F/map.bin", - "border_filepath": "data/layouts/CeruleanCave_1F/border.bin", - "height": 23, - "id": "LAYOUT_CERULEAN_CAVE_1F", - "name": "CeruleanCave_1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/CeruleanCave_2F/map.bin", - "border_filepath": "data/layouts/CeruleanCave_2F/border.bin", - "height": 23, - "id": "LAYOUT_CERULEAN_CAVE_2F", - "name": "CeruleanCave_2F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 40 - }, - { - "blockdata_filepath": "data/layouts/CeruleanCave_B1F/map.bin", - "border_filepath": "data/layouts/CeruleanCave_B1F/border.bin", - "height": 23, - "id": "LAYOUT_CERULEAN_CAVE_B1F", - "name": "CeruleanCave_B1F_Layout", - "primary_tileset": "gTileset_General", - "secondary_tileset": "gTileset_Cave", - "width": 40 - } - ], - "layouts_table_label": "gMapLayouts" + "layouts_table_label": "gMapLayouts", + "layouts": [ + { + "id": "LAYOUT_PETALBURG_CITY", + "name": "PetalburgCity_Layout", + "width": 30, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/PetalburgCity/border.bin", + "blockdata_filepath": "data/layouts/PetalburgCity/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY", + "name": "SlateportCity_Layout", + "width": 40, + "height": 60, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Slateport", + "border_filepath": "data/layouts/SlateportCity/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity/map.bin" + }, + { + "id": "LAYOUT_MAUVILLE_CITY", + "name": "MauvilleCity_Layout", + "width": 40, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/MauvilleCity/border.bin", + "blockdata_filepath": "data/layouts/MauvilleCity/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY", + "name": "RustboroCity_Layout", + "width": 40, + "height": 60, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/RustboroCity/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity/map.bin" + }, + { + "id": "LAYOUT_FORTREE_CITY", + "name": "FortreeCity_Layout", + "width": 40, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fortree", + "border_filepath": "data/layouts/FortreeCity/border.bin", + "blockdata_filepath": "data/layouts/FortreeCity/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY", + "name": "LilycoveCity_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/LilycoveCity/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY", + "name": "MossdeepCity_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/MossdeepCity/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY", + "name": "SootopolisCity_Layout", + "width": 60, + "height": 60, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Sootopolis", + "border_filepath": "data/layouts/SootopolisCity/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY", + "name": "EverGrandeCity_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_EverGrande", + "border_filepath": "data/layouts/EverGrandeCity/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN", + "name": "LittlerootTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/LittlerootTown/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown/map.bin" + }, + { + "id": "LAYOUT_OLDALE_TOWN", + "name": "OldaleTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/OldaleTown/border.bin", + "blockdata_filepath": "data/layouts/OldaleTown/map.bin" + }, + { + "id": "LAYOUT_DEWFORD_TOWN", + "name": "DewfordTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/DewfordTown/border.bin", + "blockdata_filepath": "data/layouts/DewfordTown/map.bin" + }, + { + "id": "LAYOUT_LAVARIDGE_TOWN", + "name": "LavaridgeTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/LavaridgeTown/border.bin", + "blockdata_filepath": "data/layouts/LavaridgeTown/map.bin" + }, + { + "id": "LAYOUT_FALLARBOR_TOWN", + "name": "FallarborTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fallarbor", + "border_filepath": "data/layouts/FallarborTown/border.bin", + "blockdata_filepath": "data/layouts/FallarborTown/map.bin" + }, + { + "id": "LAYOUT_VERDANTURF_TOWN", + "name": "VerdanturfTown_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/VerdanturfTown/border.bin", + "blockdata_filepath": "data/layouts/VerdanturfTown/map.bin" + }, + { + "id": "LAYOUT_PACIFIDLOG_TOWN", + "name": "PacifidlogTown_Layout", + "width": 20, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/PacifidlogTown/border.bin", + "blockdata_filepath": "data/layouts/PacifidlogTown/map.bin" + }, + { + "id": "LAYOUT_ROUTE101", + "name": "Route101_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/Route101/border.bin", + "blockdata_filepath": "data/layouts/Route101/map.bin" + }, + { + "id": "LAYOUT_ROUTE102", + "name": "Route102_Layout", + "width": 50, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/Route102/border.bin", + "blockdata_filepath": "data/layouts/Route102/map.bin" + }, + { + "id": "LAYOUT_ROUTE103", + "name": "Route103_Layout", + "width": 80, + "height": 22, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Petalburg", + "border_filepath": "data/layouts/Route103/border.bin", + "blockdata_filepath": "data/layouts/Route103/map.bin" + }, + { + "id": "LAYOUT_ROUTE104", + "name": "Route104_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/Route104/border.bin", + "blockdata_filepath": "data/layouts/Route104/map.bin" + }, + { + "id": "LAYOUT_ROUTE105", + "name": "Route105_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/Route105/border.bin", + "blockdata_filepath": "data/layouts/Route105/map.bin" + }, + { + "id": "LAYOUT_ROUTE106", + "name": "Route106_Layout", + "width": 80, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/Route106/border.bin", + "blockdata_filepath": "data/layouts/Route106/map.bin" + }, + { + "id": "LAYOUT_ROUTE107", + "name": "Route107_Layout", + "width": 60, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/Route107/border.bin", + "blockdata_filepath": "data/layouts/Route107/map.bin" + }, + { + "id": "LAYOUT_ROUTE108", + "name": "Route108_Layout", + "width": 60, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Slateport", + "border_filepath": "data/layouts/Route108/border.bin", + "blockdata_filepath": "data/layouts/Route108/map.bin" + }, + { + "id": "LAYOUT_ROUTE109", + "name": "Route109_Layout", + "width": 40, + "height": 63, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Slateport", + "border_filepath": "data/layouts/Route109/border.bin", + "blockdata_filepath": "data/layouts/Route109/map.bin" + }, + { + "id": "LAYOUT_ROUTE110", + "name": "Route110_Layout", + "width": 40, + "height": 100, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/Route110/border.bin", + "blockdata_filepath": "data/layouts/Route110/map.bin" + }, + { + "id": "LAYOUT_ROUTE111", + "name": "Route111_Layout", + "width": 40, + "height": 140, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/Route111/border.bin", + "blockdata_filepath": "data/layouts/Route111/map.bin" + }, + { + "id": "LAYOUT_ROUTE112", + "name": "Route112_Layout", + "width": 40, + "height": 60, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/Route112/border.bin", + "blockdata_filepath": "data/layouts/Route112/map.bin" + }, + { + "id": "LAYOUT_ROUTE113", + "name": "Route113_Layout", + "width": 100, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fallarbor", + "border_filepath": "data/layouts/Route113/border.bin", + "blockdata_filepath": "data/layouts/Route113/map.bin" + }, + { + "id": "LAYOUT_ROUTE114", + "name": "Route114_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fallarbor", + "border_filepath": "data/layouts/Route114/border.bin", + "blockdata_filepath": "data/layouts/Route114/map.bin" + }, + { + "id": "LAYOUT_ROUTE115", + "name": "Route115_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fallarbor", + "border_filepath": "data/layouts/Route115/border.bin", + "blockdata_filepath": "data/layouts/Route115/map.bin" + }, + { + "id": "LAYOUT_ROUTE116", + "name": "Route116_Layout", + "width": 100, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/Route116/border.bin", + "blockdata_filepath": "data/layouts/Route116/map.bin" + }, + { + "id": "LAYOUT_ROUTE117", + "name": "Route117_Layout", + "width": 60, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/Route117/border.bin", + "blockdata_filepath": "data/layouts/Route117/map.bin" + }, + { + "id": "LAYOUT_ROUTE118", + "name": "Route118_Layout", + "width": 80, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/Route118/border.bin", + "blockdata_filepath": "data/layouts/Route118/map.bin" + }, + { + "id": "LAYOUT_ROUTE119", + "name": "Route119_Layout", + "width": 40, + "height": 140, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fortree", + "border_filepath": "data/layouts/Route119/border.bin", + "blockdata_filepath": "data/layouts/Route119/map.bin" + }, + { + "id": "LAYOUT_ROUTE120", + "name": "Route120_Layout", + "width": 40, + "height": 100, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fortree", + "border_filepath": "data/layouts/Route120/border.bin", + "blockdata_filepath": "data/layouts/Route120/map.bin" + }, + { + "id": "LAYOUT_ROUTE121", + "name": "Route121_Layout", + "width": 80, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/Route121/border.bin", + "blockdata_filepath": "data/layouts/Route121/map.bin" + }, + { + "id": "LAYOUT_ROUTE122", + "name": "Route122_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/Route122/border.bin", + "blockdata_filepath": "data/layouts/Route122/map.bin" + }, + { + "id": "LAYOUT_ROUTE123", + "name": "Route123_Layout", + "width": 140, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/Route123/border.bin", + "blockdata_filepath": "data/layouts/Route123/map.bin" + }, + { + "id": "LAYOUT_ROUTE124", + "name": "Route124_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route124/border.bin", + "blockdata_filepath": "data/layouts/Route124/map.bin" + }, + { + "id": "LAYOUT_ROUTE125", + "name": "Route125_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route125/border.bin", + "blockdata_filepath": "data/layouts/Route125/map.bin" + }, + { + "id": "LAYOUT_ROUTE126", + "name": "Route126_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route126/border.bin", + "blockdata_filepath": "data/layouts/Route126/map.bin" + }, + { + "id": "LAYOUT_ROUTE127", + "name": "Route127_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route127/border.bin", + "blockdata_filepath": "data/layouts/Route127/map.bin" + }, + { + "id": "LAYOUT_ROUTE128", + "name": "Route128_Layout", + "width": 120, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route128/border.bin", + "blockdata_filepath": "data/layouts/Route128/map.bin" + }, + { + "id": "LAYOUT_ROUTE129", + "name": "Route129_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mossdeep", + "border_filepath": "data/layouts/Route129/border.bin", + "blockdata_filepath": "data/layouts/Route129/map.bin" + }, + { + "id": "LAYOUT_ROUTE130_MIRAGE_ISLAND", + "name": "Route130_MirageIsland_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Route130_MirageIsland/border.bin", + "blockdata_filepath": "data/layouts/Route130_MirageIsland/map.bin" + }, + { + "id": "LAYOUT_ROUTE131", + "name": "Route131_Layout", + "width": 60, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/Route131/border.bin", + "blockdata_filepath": "data/layouts/Route131/map.bin" + }, + { + "id": "LAYOUT_ROUTE132", + "name": "Route132_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/Route132/border.bin", + "blockdata_filepath": "data/layouts/Route132/map.bin" + }, + { + "id": "LAYOUT_ROUTE133", + "name": "Route133_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/Route133/border.bin", + "blockdata_filepath": "data/layouts/Route133/map.bin" + }, + { + "id": "LAYOUT_ROUTE134", + "name": "Route134_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/Route134/border.bin", + "blockdata_filepath": "data/layouts/Route134/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER2", + "name": "Underwater2_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater2/border.bin", + "blockdata_filepath": "data/layouts/Underwater2/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER3", + "name": "Underwater3_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater3/border.bin", + "blockdata_filepath": "data/layouts/Underwater3/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER4", + "name": "Underwater4_Layout", + "width": 120, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater4/border.bin", + "blockdata_filepath": "data/layouts/Underwater4/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F", + "name": "LittlerootTown_BrendansHouse_1F_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BrendansMaysHouse", + "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_1F/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", + "name": "LittlerootTown_BrendansHouse_2F_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BrendansMaysHouse", + "border_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_BrendansHouse_2F/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F", + "name": "LittlerootTown_MaysHouse_1F_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BrendansMaysHouse", + "border_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_1F/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F", + "name": "LittlerootTown_MaysHouse_2F_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BrendansMaysHouse", + "border_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_MaysHouse_2F/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB", + "name": "LittlerootTown_ProfessorBirchsLab_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Lab", + "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLab/map.bin" + }, + { + "id": "LAYOUT_HOUSE1", + "name": "House1_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/House1/border.bin", + "blockdata_filepath": "data/layouts/House1/map.bin" + }, + { + "id": "LAYOUT_HOUSE2", + "name": "House2_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/House2/border.bin", + "blockdata_filepath": "data/layouts/House2/map.bin" + }, + { + "id": "LAYOUT_POKEMON_CENTER_1F", + "name": "PokemonCenter_1F_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonCenter", + "border_filepath": "data/layouts/PokemonCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_1F/map.bin" + }, + { + "id": "LAYOUT_POKEMON_CENTER_2F", + "name": "PokemonCenter_2F_Layout", + "width": 14, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonCenter", + "border_filepath": "data/layouts/PokemonCenter_2F/border.bin", + "blockdata_filepath": "data/layouts/PokemonCenter_2F/map.bin" + }, + { + "id": "LAYOUT_MART", + "name": "Mart_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/Mart/border.bin", + "blockdata_filepath": "data/layouts/Mart/map.bin" + }, + { + "id": "LAYOUT_HOUSE3", + "name": "House3_Layout", + "width": 10, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/House3/border.bin", + "blockdata_filepath": "data/layouts/House3/map.bin" + }, + { + "id": "LAYOUT_DEWFORD_TOWN_GYM", + "name": "DewfordTown_Gym_Layout", + "width": 18, + "height": 28, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_DewfordGym", + "border_filepath": "data/layouts/DewfordTown_Gym/border.bin", + "blockdata_filepath": "data/layouts/DewfordTown_Gym/map.bin" + }, + { + "id": "LAYOUT_DEWFORD_TOWN_HALL", + "name": "DewfordTown_Hall_Layout", + "width": 17, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/DewfordTown_Hall/border.bin", + "blockdata_filepath": "data/layouts/DewfordTown_Hall/map.bin" + }, + { + "id": "LAYOUT_HOUSE4", + "name": "House4_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/House4/border.bin", + "blockdata_filepath": "data/layouts/House4/map.bin" + }, + { + "id": "LAYOUT_LAVARIDGE_TOWN_HERB_SHOP", + "name": "LavaridgeTown_HerbShop_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LavaridgeTown_HerbShop/border.bin", + "blockdata_filepath": "data/layouts/LavaridgeTown_HerbShop/map.bin" + }, + { + "id": "LAYOUT_LAVARIDGE_TOWN_GYM_1F", + "name": "LavaridgeTown_Gym_1F_Layout", + "width": 17, + "height": 19, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_LavaridgeGym", + "border_filepath": "data/layouts/LavaridgeTown_Gym_1F/border.bin", + "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_1F/map.bin" + }, + { + "id": "LAYOUT_LAVARIDGE_TOWN_GYM_B1F", + "name": "LavaridgeTown_Gym_B1F_Layout", + "width": 17, + "height": 19, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_LavaridgeGym", + "border_filepath": "data/layouts/LavaridgeTown_Gym_B1F/border.bin", + "blockdata_filepath": "data/layouts/LavaridgeTown_Gym_B1F/map.bin" + }, + { + "id": "LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F", + "name": "LavaridgeTown_PokemonCenter_1F_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonCenter", + "border_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/LavaridgeTown_PokemonCenter_1F/map.bin" + }, + { + "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY", + "name": "FallarborTown_LeftoverRSContestLobby_Layout", + "width": 15, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/border.bin", + "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestLobby/map.bin" + }, + { + "id": "LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL", + "name": "FallarborTown_LeftoverRSContestHall_Layout", + "width": 21, + "height": 18, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/border.bin", + "blockdata_filepath": "data/layouts/FallarborTown_LeftoverRSContestHall/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_HOUSE2", + "name": "LilycoveCity_House2_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/LilycoveCity_House2/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_House2/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_08428450", + "name": "Unknown_08428450_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/Unknown_08428450/border.bin", + "blockdata_filepath": "data/layouts/Unknown_08428450/map.bin" + }, + { + "id": "LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE", + "name": "VerdanturfTown_WandasHouse_Layout", + "width": 17, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/VerdanturfTown_WandasHouse/border.bin", + "blockdata_filepath": "data/layouts/VerdanturfTown_WandasHouse/map.bin" + }, + { + "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE1", + "name": "PacifidlogTown_House1_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/PacifidlogTown_House1/border.bin", + "blockdata_filepath": "data/layouts/PacifidlogTown_House1/map.bin" + }, + { + "id": "LAYOUT_PACIFIDLOG_TOWN_HOUSE2", + "name": "PacifidlogTown_House2_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/PacifidlogTown_House2/border.bin", + "blockdata_filepath": "data/layouts/PacifidlogTown_House2/map.bin" + }, + { + "id": "LAYOUT_PETALBURG_CITY_GYM", + "name": "PetalburgCity_Gym_Layout", + "width": 9, + "height": 112, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PetalburgGym", + "border_filepath": "data/layouts/PetalburgCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/PetalburgCity_Gym/map.bin" + }, + { + "id": "LAYOUT_HOUSE_WITH_BED", + "name": "HouseWithBed_Layout", + "width": 10, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/HouseWithBed/border.bin", + "blockdata_filepath": "data/layouts/HouseWithBed/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F", + "name": "SlateportCity_SternsShipyard_1F_Layout", + "width": 21, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_1F/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F", + "name": "SlateportCity_SternsShipyard_2F_Layout", + "width": 17, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity_SternsShipyard_2F/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_084294C4", + "name": "Unknown_084294C4_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/Unknown_084294C4/border.bin", + "blockdata_filepath": "data/layouts/Unknown_084294C4/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_084294E8", + "name": "Unknown_084294E8_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/Unknown_084294E8/border.bin", + "blockdata_filepath": "data/layouts/Unknown_084294E8/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB", + "name": "SlateportCity_PokemonFanClub_Layout", + "width": 14, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonFanClub", + "border_filepath": "data/layouts/SlateportCity_PokemonFanClub/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity_PokemonFanClub/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F", + "name": "SlateportCity_OceanicMuseum_1F_Layout", + "width": 20, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_OceanicMuseum", + "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_1F/map.bin" + }, + { + "id": "LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F", + "name": "SlateportCity_OceanicMuseum_2F_Layout", + "width": 20, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_OceanicMuseum", + "border_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/border.bin", + "blockdata_filepath": "data/layouts/SlateportCity_OceanicMuseum_2F/map.bin" + }, + { + "id": "LAYOUT_HARBOR", + "name": "Harbor_Layout", + "width": 24, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/Harbor/border.bin", + "blockdata_filepath": "data/layouts/Harbor/map.bin" + }, + { + "id": "LAYOUT_MAUVILLE_CITY_GYM", + "name": "MauvilleCity_Gym_Layout", + "width": 10, + "height": 21, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MauvilleGym", + "border_filepath": "data/layouts/MauvilleCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/MauvilleCity_Gym/map.bin" + }, + { + "id": "LAYOUT_MAUVILLE_CITY_BIKE_SHOP", + "name": "MauvilleCity_BikeShop_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BikeShop", + "border_filepath": "data/layouts/MauvilleCity_BikeShop/border.bin", + "blockdata_filepath": "data/layouts/MauvilleCity_BikeShop/map.bin" + }, + { + "id": "LAYOUT_MAUVILLE_CITY_GAME_CORNER", + "name": "MauvilleCity_GameCorner_Layout", + "width": 22, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MauvilleGameCorner", + "border_filepath": "data/layouts/MauvilleCity_GameCorner/border.bin", + "blockdata_filepath": "data/layouts/MauvilleCity_GameCorner/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F", + "name": "RustboroCity_DevonCorp_1F_Layout", + "width": 19, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/RustboroCity_DevonCorp_1F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_1F/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F", + "name": "RustboroCity_DevonCorp_2F_Layout", + "width": 19, + "height": 9, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/RustboroCity_DevonCorp_2F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_2F/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_GYM", + "name": "RustboroCity_Gym_Layout", + "width": 11, + "height": 20, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_RustboroGym", + "border_filepath": "data/layouts/RustboroCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Gym/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL", + "name": "RustboroCity_PokemonSchool_Layout", + "width": 12, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonSchool", + "border_filepath": "data/layouts/RustboroCity_PokemonSchool/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_PokemonSchool/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_HOUSE", + "name": "RustboroCity_House_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_House/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_House/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_HOUSE1", + "name": "RustboroCity_House1_Layout", + "width": 13, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_House1/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_House1/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE", + "name": "RustboroCity_CuttersHouse_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_CuttersHouse/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_CuttersHouse/map.bin" + }, + { + "id": "LAYOUT_FORTREE_CITY_HOUSE1", + "name": "FortreeCity_House1_Layout", + "width": 8, + "height": 6, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/FortreeCity_House1/border.bin", + "blockdata_filepath": "data/layouts/FortreeCity_House1/map.bin" + }, + { + "id": "LAYOUT_FORTREE_CITY_GYM", + "name": "FortreeCity_Gym_Layout", + "width": 20, + "height": 25, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_FortreeGym", + "border_filepath": "data/layouts/FortreeCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/FortreeCity_Gym/map.bin" + }, + { + "id": "LAYOUT_FORTREE_CITY_HOUSE2", + "name": "FortreeCity_House2_Layout", + "width": 8, + "height": 6, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/FortreeCity_House2/border.bin", + "blockdata_filepath": "data/layouts/FortreeCity_House2/map.bin" + }, + { + "id": "LAYOUT_ROUTE104_MR_BRINEYS_HOUSE", + "name": "Route104_MrBrineysHouse_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route104_MrBrineysHouse/border.bin", + "blockdata_filepath": "data/layouts/Route104_MrBrineysHouse/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F", + "name": "LilycoveCity_LilycoveMuseum_1F_Layout", + "width": 21, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_LilycoveMuseum", + "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_1F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F", + "name": "LilycoveCity_LilycoveMuseum_2F_Layout", + "width": 22, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_LilycoveMuseum", + "border_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_LilycoveMuseum_2F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY", + "name": "LilycoveCity_ContestLobby_Layout", + "width": 31, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/LilycoveCity_ContestLobby/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_ContestLobby/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_CONTEST_HALL", + "name": "LilycoveCity_ContestHall_Layout", + "width": 51, + "height": 33, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/LilycoveCity_ContestHall/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_ContestHall/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB", + "name": "LilycoveCity_PokemonTrainerFanClub_Layout", + "width": 12, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_PokemonTrainerFanClub/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_GYM", + "name": "MossdeepCity_Gym_Layout", + "width": 26, + "height": 36, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MossdeepGym", + "border_filepath": "data/layouts/MossdeepCity_Gym/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_Gym/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_1F", + "name": "SootopolisCity_Gym_1F_Layout", + "width": 17, + "height": 26, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_SootopolisGym", + "border_filepath": "data/layouts/SootopolisCity_Gym_1F/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_Gym_1F/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_GYM_B1F", + "name": "SootopolisCity_Gym_B1F_Layout", + "width": 17, + "height": 26, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_SootopolisGym", + "border_filepath": "data/layouts/SootopolisCity_Gym_B1F/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_Gym_B1F/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM", + "name": "EverGrandeCity_SidneysRoom_Layout", + "width": 13, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_SidneysRoom/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_SidneysRoom/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM", + "name": "EverGrandeCity_PhoebesRoom_Layout", + "width": 13, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_PhoebesRoom/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM", + "name": "EverGrandeCity_GlaciasRoom_Layout", + "width": 13, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_GlaciasRoom/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM", + "name": "EverGrandeCity_DrakesRoom_Layout", + "width": 13, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_DrakesRoom/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_DrakesRoom/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM", + "name": "EverGrandeCity_ChampionsRoom_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_ChampionsRoom/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_SHORT_HALL", + "name": "EverGrandeCity_ShortHall_Layout", + "width": 11, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_ShortHall/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_ShortHall/map.bin" + }, + { + "id": "LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP", + "name": "Route104_PrettyPetalFlowerShop_Layout", + "width": 15, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PrettyPetalFlowerShop", + "border_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/border.bin", + "blockdata_filepath": "data/layouts/Route104_PrettyPetalFlowerShop/map.bin" + }, + { + "id": "LAYOUT_CABLE_CAR_STATION", + "name": "CableCarStation_Layout", + "width": 13, + "height": 12, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/CableCarStation/border.bin", + "blockdata_filepath": "data/layouts/CableCarStation/map.bin" + }, + { + "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE", + "name": "Route114_FossilManiacsHouse_Layout", + "width": 10, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route114_FossilManiacsHouse/border.bin", + "blockdata_filepath": "data/layouts/Route114_FossilManiacsHouse/map.bin" + }, + { + "id": "LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL", + "name": "Route114_FossilManiacsTunnel_Layout", + "width": 13, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fallarbor", + "border_filepath": "data/layouts/Route114_FossilManiacsTunnel/border.bin", + "blockdata_filepath": "data/layouts/Route114_FossilManiacsTunnel/map.bin" + }, + { + "id": "LAYOUT_ROUTE114_LANETTES_HOUSE", + "name": "Route114_LanettesHouse_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Lab", + "border_filepath": "data/layouts/Route114_LanettesHouse/border.bin", + "blockdata_filepath": "data/layouts/Route114_LanettesHouse/map.bin" + }, + { + "id": "LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE", + "name": "Route116_TunnelersRestHouse_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route116_TunnelersRestHouse/border.bin", + "blockdata_filepath": "data/layouts/Route116_TunnelersRestHouse/map.bin" + }, + { + "id": "LAYOUT_ROUTE117_POKEMON_DAY_CARE", + "name": "Route117_PokemonDayCare_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonDayCare", + "border_filepath": "data/layouts/Route117_PokemonDayCare/border.bin", + "blockdata_filepath": "data/layouts/Route117_PokemonDayCare/map.bin" + }, + { + "id": "LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE", + "name": "Route121_SafariZoneEntrance_Layout", + "width": 18, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/Route121_SafariZoneEntrance/border.bin", + "blockdata_filepath": "data/layouts/Route121_SafariZoneEntrance/map.bin" + }, + { + "id": "LAYOUT_METEOR_FALLS_1F_1R", + "name": "MeteorFalls_1F_1R_Layout", + "width": 30, + "height": 42, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MeteorFalls", + "border_filepath": "data/layouts/MeteorFalls_1F_1R/border.bin", + "blockdata_filepath": "data/layouts/MeteorFalls_1F_1R/map.bin" + }, + { + "id": "LAYOUT_METEOR_FALLS_1F_2R", + "name": "MeteorFalls_1F_2R_Layout", + "width": 30, + "height": 32, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MeteorFalls", + "border_filepath": "data/layouts/MeteorFalls_1F_2R/border.bin", + "blockdata_filepath": "data/layouts/MeteorFalls_1F_2R/map.bin" + }, + { + "id": "LAYOUT_METEOR_FALLS_B1F_1R", + "name": "MeteorFalls_B1F_1R_Layout", + "width": 29, + "height": 38, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MeteorFalls", + "border_filepath": "data/layouts/MeteorFalls_B1F_1R/border.bin", + "blockdata_filepath": "data/layouts/MeteorFalls_B1F_1R/map.bin" + }, + { + "id": "LAYOUT_METEOR_FALLS_B1F_2R", + "name": "MeteorFalls_B1F_2R_Layout", + "width": 11, + "height": 18, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MeteorFalls", + "border_filepath": "data/layouts/MeteorFalls_B1F_2R/border.bin", + "blockdata_filepath": "data/layouts/MeteorFalls_B1F_2R/map.bin" + }, + { + "id": "LAYOUT_RUSTURF_TUNNEL", + "name": "RusturfTunnel_Layout", + "width": 36, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_RusturfTunnel", + "border_filepath": "data/layouts/RusturfTunnel/border.bin", + "blockdata_filepath": "data/layouts/RusturfTunnel/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER_SOOTOPOLIS_CITY", + "name": "Underwater_SootopolisCity_Layout", + "width": 20, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater_SootopolisCity/border.bin", + "blockdata_filepath": "data/layouts/Underwater_SootopolisCity/map.bin" + }, + { + "id": "LAYOUT_DESERT_RUINS", + "name": "DesertRuins_Layout", + "width": 17, + "height": 33, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/DesertRuins/border.bin", + "blockdata_filepath": "data/layouts/DesertRuins/map.bin" + }, + { + "id": "LAYOUT_GRANITE_CAVE_1F", + "name": "GraniteCave_1F_Layout", + "width": 42, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/GraniteCave_1F/border.bin", + "blockdata_filepath": "data/layouts/GraniteCave_1F/map.bin" + }, + { + "id": "LAYOUT_GRANITE_CAVE_B1F", + "name": "GraniteCave_B1F_Layout", + "width": 32, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/GraniteCave_B1F/border.bin", + "blockdata_filepath": "data/layouts/GraniteCave_B1F/map.bin" + }, + { + "id": "LAYOUT_GRANITE_CAVE_B2F", + "name": "GraniteCave_B2F_Layout", + "width": 32, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/GraniteCave_B2F/border.bin", + "blockdata_filepath": "data/layouts/GraniteCave_B2F/map.bin" + }, + { + "id": "LAYOUT_PETALBURG_WOODS", + "name": "PetalburgWoods_Layout", + "width": 48, + "height": 44, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/PetalburgWoods/border.bin", + "blockdata_filepath": "data/layouts/PetalburgWoods/map.bin" + }, + { + "id": "LAYOUT_MT_CHIMNEY", + "name": "MtChimney_Layout", + "width": 40, + "height": 47, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MtChimney/border.bin", + "blockdata_filepath": "data/layouts/MtChimney/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_1F", + "name": "MtPyre_1F_Layout", + "width": 22, + "height": 19, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_1F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_1F/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_2F", + "name": "MtPyre_2F_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_2F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_2F/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_3F", + "name": "MtPyre_3F_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_3F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_3F/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_4F", + "name": "MtPyre_4F_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_4F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_4F/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_5F", + "name": "MtPyre_5F_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_5F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_5F/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_6F", + "name": "MtPyre_6F_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_6F/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_6F/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_1F", + "name": "AquaHideout_1F_Layout", + "width": 28, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_1F/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_1F/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_B1F", + "name": "AquaHideout_B1F_Layout", + "width": 51, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_B1F/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_B1F/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_B2F", + "name": "AquaHideout_B2F_Layout", + "width": 34, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_B2F/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_B2F/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER_SEAFLOOR_CAVERN", + "name": "Underwater_SeafloorCavern_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater_SeafloorCavern/border.bin", + "blockdata_filepath": "data/layouts/Underwater_SeafloorCavern/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ENTRANCE", + "name": "SeafloorCavern_Entrance_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Entrance/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Entrance/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM1", + "name": "SeafloorCavern_Room1_Layout", + "width": 20, + "height": 21, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room1/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room1/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM2", + "name": "SeafloorCavern_Room2_Layout", + "width": 18, + "height": 12, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room2/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room2/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM3", + "name": "SeafloorCavern_Room3_Layout", + "width": 16, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room3/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room3/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM4", + "name": "SeafloorCavern_Room4_Layout", + "width": 18, + "height": 19, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room4/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room4/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM5", + "name": "SeafloorCavern_Room5_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room5/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room5/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM6", + "name": "SeafloorCavern_Room6_Layout", + "width": 24, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SeafloorCavern_Room6/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room6/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM7", + "name": "SeafloorCavern_Room7_Layout", + "width": 23, + "height": 25, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SeafloorCavern_Room7/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room7/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM8", + "name": "SeafloorCavern_Room8_Layout", + "width": 11, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room8/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room8/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9", + "name": "SeafloorCavern_Room9_Layout", + "width": 27, + "height": 46, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room9/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room9/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_ENTRANCE", + "name": "CaveOfOrigin_Entrance_Layout", + "width": 19, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_Entrance/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_Entrance/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_1F", + "name": "CaveOfOrigin_1F_Layout", + "width": 23, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_1F/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_1F/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1", + "name": "CaveOfOrigin_UnusedRubySapphireMap1_Layout", + "width": 23, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap1/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2", + "name": "CaveOfOrigin_UnusedRubySapphireMap2_Layout", + "width": 21, + "height": 21, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap2/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3", + "name": "CaveOfOrigin_UnusedRubySapphireMap3_Layout", + "width": 19, + "height": 21, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_UnusedRubySapphireMap3/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_B1F", + "name": "CaveOfOrigin_B1F_Layout", + "width": 19, + "height": 19, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_B1F/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_B1F/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_1F", + "name": "VictoryRoad_1F_Layout", + "width": 46, + "height": 45, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/VictoryRoad_1F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_1F/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM", + "name": "ShoalCave_LowTideEntranceRoom_Layout", + "width": 35, + "height": 35, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_LowTideEntranceRoom/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM", + "name": "ShoalCave_LowTideInnerRoom_Layout", + "width": 46, + "height": 38, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_LowTideInnerRoom/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM", + "name": "ShoalCave_LowTideStairsRoom_Layout", + "width": 21, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_LowTideStairsRoom/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM", + "name": "ShoalCave_LowTideLowerRoom_Layout", + "width": 31, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_LowTideLowerRoom/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM", + "name": "ShoalCave_HighTideEntranceRoom_Layout", + "width": 35, + "height": 35, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_HighTideEntranceRoom/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM", + "name": "ShoalCave_HighTideInnerRoom_Layout", + "width": 46, + "height": 38, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_HighTideInnerRoom/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E6C0", + "name": "Unknown_0843E6C0_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E6C0/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E6C0/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E6E4", + "name": "Unknown_0843E6E4_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E6E4/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E6E4/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E708", + "name": "Unknown_0843E708_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E708/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E708/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E72C", + "name": "Unknown_0843E72C_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E72C/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E72C/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E750", + "name": "Unknown_0843E750_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E750/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E750/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E774", + "name": "Unknown_0843E774_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E774/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E774/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E798", + "name": "Unknown_0843E798_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E798/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E798/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E7BC", + "name": "Unknown_0843E7BC_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E7BC/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E7BC/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E7E0", + "name": "Unknown_0843E7E0_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E7E0/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E7E0/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E804", + "name": "Unknown_0843E804_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E804/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E804/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E828", + "name": "Unknown_0843E828_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E828/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E828/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E84C", + "name": "Unknown_0843E84C_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E84C/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E84C/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E870", + "name": "Unknown_0843E870_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E870/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E870/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_0843E894", + "name": "Unknown_0843E894_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Unknown_0843E894/border.bin", + "blockdata_filepath": "data/layouts/Unknown_0843E894/map.bin" + }, + { + "id": "LAYOUT_NEW_MAUVILLE_ENTRANCE", + "name": "NewMauville_Entrance_Layout", + "width": 9, + "height": 9, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/NewMauville_Entrance/border.bin", + "blockdata_filepath": "data/layouts/NewMauville_Entrance/map.bin" + }, + { + "id": "LAYOUT_NEW_MAUVILLE_INSIDE", + "name": "NewMauville_Inside_Layout", + "width": 41, + "height": 41, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BikeShop", + "border_filepath": "data/layouts/NewMauville_Inside/border.bin", + "blockdata_filepath": "data/layouts/NewMauville_Inside/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_DECK", + "name": "AbandonedShip_Deck_Layout", + "width": 23, + "height": 21, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AbandonedShip_Deck/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Deck/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_1F", + "name": "AbandonedShip_Corridors_1F_Layout", + "width": 18, + "height": 12, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Corridors_1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_ROOMS_1F", + "name": "AbandonedShip_Rooms_1F_Layout", + "width": 18, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Rooms_1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F", + "name": "AbandonedShip_Corridors_B1F_Layout", + "width": 13, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Corridors_B1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Corridors_B1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_ROOMS_B1F", + "name": "AbandonedShip_Rooms_B1F_Layout", + "width": 27, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Rooms_B1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms_B1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_B1F", + "name": "AbandonedShip_Rooms2_B1F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_B1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER1", + "name": "AbandonedShip_Underwater1_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Underwater1/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Underwater1/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_ROOM_B1F", + "name": "AbandonedShip_Room_B1F_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Room_B1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Room_B1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_ROOMS2_1F", + "name": "AbandonedShip_Rooms2_1F_Layout", + "width": 9, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Rooms2_1F/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Rooms2_1F/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE", + "name": "AbandonedShip_CaptainsOffice_Layout", + "width": 9, + "height": 7, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AbandonedShip_CaptainsOffice/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_CaptainsOffice/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_UNDERWATER2", + "name": "AbandonedShip_Underwater2_Layout", + "width": 21, + "height": 7, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_Underwater2/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_Underwater2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_RED_CAVE1", + "name": "SecretBase_RedCave1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseRedCave", + "border_filepath": "data/layouts/SecretBase_RedCave1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_RedCave1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BROWN_CAVE1", + "name": "SecretBase_BrownCave1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBrownCave", + "border_filepath": "data/layouts/SecretBase_BrownCave1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BrownCave1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BLUE_CAVE1", + "name": "SecretBase_BlueCave1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBlueCave", + "border_filepath": "data/layouts/SecretBase_BlueCave1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BlueCave1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE1", + "name": "SecretBase_YellowCave1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseYellowCave", + "border_filepath": "data/layouts/SecretBase_YellowCave1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_YellowCave1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_TREE1", + "name": "SecretBase_Tree1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseTree", + "border_filepath": "data/layouts/SecretBase_Tree1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Tree1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_SHRUB1", + "name": "SecretBase_Shrub1_Layout", + "width": 11, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseShrub", + "border_filepath": "data/layouts/SecretBase_Shrub1/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Shrub1/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_RED_CAVE2", + "name": "SecretBase_RedCave2_Layout", + "width": 7, + "height": 16, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseRedCave", + "border_filepath": "data/layouts/SecretBase_RedCave2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_RedCave2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BROWN_CAVE2", + "name": "SecretBase_BrownCave2_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBrownCave", + "border_filepath": "data/layouts/SecretBase_BrownCave2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BrownCave2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BLUE_CAVE2", + "name": "SecretBase_BlueCave2_Layout", + "width": 15, + "height": 7, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBlueCave", + "border_filepath": "data/layouts/SecretBase_BlueCave2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BlueCave2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE2", + "name": "SecretBase_YellowCave2_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseYellowCave", + "border_filepath": "data/layouts/SecretBase_YellowCave2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_YellowCave2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_TREE2", + "name": "SecretBase_Tree2_Layout", + "width": 7, + "height": 16, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseTree", + "border_filepath": "data/layouts/SecretBase_Tree2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Tree2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_SHRUB2", + "name": "SecretBase_Shrub2_Layout", + "width": 15, + "height": 7, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseShrub", + "border_filepath": "data/layouts/SecretBase_Shrub2/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Shrub2/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_RED_CAVE3", + "name": "SecretBase_RedCave3_Layout", + "width": 15, + "height": 8, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseRedCave", + "border_filepath": "data/layouts/SecretBase_RedCave3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_RedCave3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BROWN_CAVE3", + "name": "SecretBase_BrownCave3_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBrownCave", + "border_filepath": "data/layouts/SecretBase_BrownCave3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BrownCave3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BLUE_CAVE3", + "name": "SecretBase_BlueCave3_Layout", + "width": 10, + "height": 17, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBlueCave", + "border_filepath": "data/layouts/SecretBase_BlueCave3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BlueCave3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE3", + "name": "SecretBase_YellowCave3_Layout", + "width": 12, + "height": 11, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseYellowCave", + "border_filepath": "data/layouts/SecretBase_YellowCave3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_YellowCave3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_TREE3", + "name": "SecretBase_Tree3_Layout", + "width": 17, + "height": 8, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseTree", + "border_filepath": "data/layouts/SecretBase_Tree3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Tree3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_SHRUB3", + "name": "SecretBase_Shrub3_Layout", + "width": 13, + "height": 11, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseShrub", + "border_filepath": "data/layouts/SecretBase_Shrub3/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Shrub3/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_RED_CAVE4", + "name": "SecretBase_RedCave4_Layout", + "width": 9, + "height": 15, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseRedCave", + "border_filepath": "data/layouts/SecretBase_RedCave4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_RedCave4/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BROWN_CAVE4", + "name": "SecretBase_BrownCave4_Layout", + "width": 14, + "height": 12, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBrownCave", + "border_filepath": "data/layouts/SecretBase_BrownCave4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BrownCave4/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_BLUE_CAVE4", + "name": "SecretBase_BlueCave4_Layout", + "width": 9, + "height": 17, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseBlueCave", + "border_filepath": "data/layouts/SecretBase_BlueCave4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_BlueCave4/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_YELLOW_CAVE4", + "name": "SecretBase_YellowCave4_Layout", + "width": 13, + "height": 14, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseYellowCave", + "border_filepath": "data/layouts/SecretBase_YellowCave4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_YellowCave4/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_TREE4", + "name": "SecretBase_Tree4_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseTree", + "border_filepath": "data/layouts/SecretBase_Tree4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Tree4/map.bin" + }, + { + "id": "LAYOUT_SECRET_BASE_SHRUB4", + "name": "SecretBase_Shrub4_Layout", + "width": 14, + "height": 11, + "primary_tileset": "gTileset_SecretBase", + "secondary_tileset": "gTileset_SecretBaseShrub", + "border_filepath": "data/layouts/SecretBase_Shrub4/border.bin", + "blockdata_filepath": "data/layouts/SecretBase_Shrub4/map.bin" + }, + { + "id": "LAYOUT_BATTLE_COLOSSEUM_2P", + "name": "BattleColosseum_2P_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_CableClub", + "border_filepath": "data/layouts/BattleColosseum_2P/border.bin", + "blockdata_filepath": "data/layouts/BattleColosseum_2P/map.bin" + }, + { + "id": "LAYOUT_TRADE_CENTER", + "name": "TradeCenter_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_CableClub", + "border_filepath": "data/layouts/TradeCenter/border.bin", + "blockdata_filepath": "data/layouts/TradeCenter/map.bin" + }, + { + "id": "LAYOUT_RECORD_CORNER", + "name": "RecordCorner_Layout", + "width": 20, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_CableClub", + "border_filepath": "data/layouts/RecordCorner/border.bin", + "blockdata_filepath": "data/layouts/RecordCorner/map.bin" + }, + { + "id": "LAYOUT_BATTLE_COLOSSEUM_4P", + "name": "BattleColosseum_4P_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_CableClub", + "border_filepath": "data/layouts/BattleColosseum_4P/border.bin", + "blockdata_filepath": "data/layouts/BattleColosseum_4P/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL", + "name": "ContestHall_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHall/border.bin", + "blockdata_filepath": "data/layouts/ContestHall/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", + "name": "UnknownLinkContestRoom_25_29_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_29/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_29/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", + "name": "UnknownLinkContestRoom_25_30_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_30/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_30/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", + "name": "UnknownLinkContestRoom_25_31_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_31/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_31/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", + "name": "UnknownLinkContestRoom_25_32_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_32/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_32/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", + "name": "UnknownLinkContestRoom_25_33_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_33/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_33/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", + "name": "UnknownLinkContestRoom_25_34_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/UnknownLinkContestRoom_25_34/border.bin", + "blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL_BEAUTY", + "name": "ContestHallBeauty_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHallBeauty/border.bin", + "blockdata_filepath": "data/layouts/ContestHallBeauty/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL_TOUGH", + "name": "ContestHallTough_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHallTough/border.bin", + "blockdata_filepath": "data/layouts/ContestHallTough/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL_COOL", + "name": "ContestHallCool_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHallCool/border.bin", + "blockdata_filepath": "data/layouts/ContestHallCool/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL_SMART", + "name": "ContestHallSmart_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHallSmart/border.bin", + "blockdata_filepath": "data/layouts/ContestHallSmart/map.bin" + }, + { + "id": "LAYOUT_CONTEST_HALL_CUTE", + "name": "ContestHallCute_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Contest", + "border_filepath": "data/layouts/ContestHallCute/border.bin", + "blockdata_filepath": "data/layouts/ContestHallCute/map.bin" + }, + { + "id": "LAYOUT_INSIDE_OF_TRUCK", + "name": "InsideOfTruck_Layout", + "width": 5, + "height": 5, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideOfTruck", + "border_filepath": "data/layouts/InsideOfTruck/border.bin", + "blockdata_filepath": "data/layouts/InsideOfTruck/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_NORTHWEST", + "name": "SafariZone_Northwest_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_Northwest/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Northwest/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_NORTH", + "name": "SafariZone_North_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_North/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_North/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_SOUTHWEST", + "name": "SafariZone_Southwest_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_Southwest/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Southwest/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_SOUTH", + "name": "SafariZone_South_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_South/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_South/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_08447028", + "name": "Unknown_08447028_Layout", + "width": 58, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "0", + "border_filepath": "data/layouts/Unknown_08447028/border.bin", + "blockdata_filepath": "data/layouts/Unknown_08447028/map.bin" + }, + { + "id": "LAYOUT_ROUTE109_SEASHORE_HOUSE", + "name": "Route109_SeashoreHouse_Layout", + "width": 15, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_SeashoreHouse", + "border_filepath": "data/layouts/Route109_SeashoreHouse/border.bin", + "blockdata_filepath": "data/layouts/Route109_SeashoreHouse/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE", + "name": "Route110_TrickHouseEntrance_Layout", + "width": 12, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route110_TrickHouseEntrance/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHouseEntrance/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_END", + "name": "Route110_TrickHouseEnd_Layout", + "width": 12, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route110_TrickHouseEnd/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHouseEnd/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR", + "name": "Route110_TrickHouseCorridor_Layout", + "width": 15, + "height": 24, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route110_TrickHouseCorridor/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHouseCorridor/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1", + "name": "Route110_TrickHousePuzzle1_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle1/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle1/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2", + "name": "Route110_TrickHousePuzzle2_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle2/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle2/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3", + "name": "Route110_TrickHousePuzzle3_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle3/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle3/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4", + "name": "Route110_TrickHousePuzzle4_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle4/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle4/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5", + "name": "Route110_TrickHousePuzzle5_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle5/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle5/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6", + "name": "Route110_TrickHousePuzzle6_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle6/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle6/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7", + "name": "Route110_TrickHousePuzzle7_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle7/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle7/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8", + "name": "Route110_TrickHousePuzzle8_Layout", + "width": 15, + "height": 22, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrickHousePuzzle", + "border_filepath": "data/layouts/Route110_TrickHousePuzzle8/border.bin", + "blockdata_filepath": "data/layouts/Route110_TrickHousePuzzle8/map.bin" + }, + { + "id": "LAYOUT_FORTREE_CITY_DECORATION_SHOP", + "name": "FortreeCity_DecorationShop_Layout", + "width": 8, + "height": 6, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/FortreeCity_DecorationShop/border.bin", + "blockdata_filepath": "data/layouts/FortreeCity_DecorationShop/map.bin" + }, + { + "id": "LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE", + "name": "Route110_SeasideCyclingRoadEntrance_Layout", + "width": 15, + "height": 6, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/border.bin", + "blockdata_filepath": "data/layouts/Route110_SeasideCyclingRoadEntrance/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F", + "name": "LilycoveCity_DepartmentStore_1F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_1F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F", + "name": "LilycoveCity_DepartmentStore_2F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_2F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F", + "name": "LilycoveCity_DepartmentStore_3F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_3F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F", + "name": "LilycoveCity_DepartmentStore_4F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_4F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F", + "name": "LilycoveCity_DepartmentStore_5F_Layout", + "width": 18, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStore_5F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP", + "name": "LilycoveCity_DepartmentStoreRooftop_Layout", + "width": 18, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Shop", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreRooftop/map.bin" + }, + { + "id": "LAYOUT_ROUTE130", + "name": "Route130_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/Route130/border.bin", + "blockdata_filepath": "data/layouts/Route130/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY", + "name": "BattleFrontier_BattleTowerLobby_Layout", + "width": 25, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST", + "name": "BattleFrontier_OutsideWest_Layout", + "width": 56, + "height": 72, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattleFrontierOutsideWest", + "border_filepath": "data/layouts/BattleFrontier_OutsideWest/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_OutsideWest/map.bin" + }, + { + "id": "LAYOUT_BATTLE_ELEVATOR", + "name": "BattleElevator_Layout", + "width": 5, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleElevator/border.bin", + "blockdata_filepath": "data/layouts/BattleElevator/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR", + "name": "BattleFrontier_BattleTowerCorridor_Layout", + "width": 17, + "height": 5, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM", + "name": "BattleFrontier_BattleTowerBattleRoom_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerBattleRoom/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F", + "name": "RustboroCity_DevonCorp_3F_Layout", + "width": 19, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/RustboroCity_DevonCorp_3F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_DevonCorp_3F/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F", + "name": "EverGrandeCity_PokemonLeague_1F_Layout", + "width": 19, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_PokemonCenter", + "border_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_PokemonLeague_1F/map.bin" + }, + { + "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F", + "name": "Route119_WeatherInstitute_1F_Layout", + "width": 20, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Lab", + "border_filepath": "data/layouts/Route119_WeatherInstitute_1F/border.bin", + "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_1F/map.bin" + }, + { + "id": "LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F", + "name": "Route119_WeatherInstitute_2F_Layout", + "width": 20, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Lab", + "border_filepath": "data/layouts/Route119_WeatherInstitute_2F/border.bin", + "blockdata_filepath": "data/layouts/Route119_WeatherInstitute_2F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR", + "name": "LilycoveCity_DepartmentStoreElevator_Layout", + "width": 5, + "height": 6, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_DepartmentStoreElevator/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER1", + "name": "Underwater1_Layout", + "width": 80, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater1/border.bin", + "blockdata_filepath": "data/layouts/Underwater1/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F", + "name": "MossdeepCity_SpaceCenter_1F_Layout", + "width": 16, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_1F/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F", + "name": "MossdeepCity_SpaceCenter_2F_Layout", + "width": 16, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_SpaceCenter_2F/map.bin" + }, + { + "id": "LAYOUT_SS_TIDAL_CORRIDOR", + "name": "SSTidalCorridor_Layout", + "width": 18, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/SSTidalCorridor/border.bin", + "blockdata_filepath": "data/layouts/SSTidalCorridor/map.bin" + }, + { + "id": "LAYOUT_SS_TIDAL_LOWER_DECK", + "name": "SSTidalLowerDeck_Layout", + "width": 17, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/SSTidalLowerDeck/border.bin", + "blockdata_filepath": "data/layouts/SSTidalLowerDeck/map.bin" + }, + { + "id": "LAYOUT_SS_TIDAL_ROOMS", + "name": "SSTidalRooms_Layout", + "width": 36, + "height": 18, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/SSTidalRooms/border.bin", + "blockdata_filepath": "data/layouts/SSTidalRooms/map.bin" + }, + { + "id": "LAYOUT_ISLAND_CAVE", + "name": "IslandCave_Layout", + "width": 17, + "height": 33, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/IslandCave/border.bin", + "blockdata_filepath": "data/layouts/IslandCave/map.bin" + }, + { + "id": "LAYOUT_ANCIENT_TOMB", + "name": "AncientTomb_Layout", + "width": 17, + "height": 33, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/AncientTomb/border.bin", + "blockdata_filepath": "data/layouts/AncientTomb/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER_ROUTE134", + "name": "Underwater_Route134_Layout", + "width": 18, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater_Route134/border.bin", + "blockdata_filepath": "data/layouts/Underwater_Route134/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER_SEALED_CHAMBER", + "name": "Underwater_SealedChamber_Layout", + "width": 22, + "height": 48, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater_SealedChamber/border.bin", + "blockdata_filepath": "data/layouts/Underwater_SealedChamber/map.bin" + }, + { + "id": "LAYOUT_SEALED_CHAMBER_OUTER_ROOM", + "name": "SealedChamber_OuterRoom_Layout", + "width": 21, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SealedChamber_OuterRoom/border.bin", + "blockdata_filepath": "data/layouts/SealedChamber_OuterRoom/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_B1F", + "name": "VictoryRoad_B1F_Layout", + "width": 46, + "height": 31, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/VictoryRoad_B1F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_B1F/map.bin" + }, + { + "id": "LAYOUT_VICTORY_ROAD_B2F", + "name": "VictoryRoad_B2F_Layout", + "width": 46, + "height": 31, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/VictoryRoad_B2F/border.bin", + "blockdata_filepath": "data/layouts/VictoryRoad_B2F/map.bin" + }, + { + "id": "LAYOUT_ROUTE104_PROTOTYPE", + "name": "Route104_Prototype_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/Route104_Prototype/border.bin", + "blockdata_filepath": "data/layouts/Route104_Prototype/map.bin" + }, + { + "id": "LAYOUT_GRANITE_CAVE_STEVENS_ROOM", + "name": "GraniteCave_StevensRoom_Layout", + "width": 15, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/GraniteCave_StevensRoom/border.bin", + "blockdata_filepath": "data/layouts/GraniteCave_StevensRoom/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS", + "name": "AbandonedShip_HiddenFloorCorridors_Layout", + "width": 13, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorCorridors/map.bin" + }, + { + "id": "LAYOUT_SOUTHERN_ISLAND_EXTERIOR", + "name": "SouthernIsland_Exterior_Layout", + "width": 33, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/SouthernIsland_Exterior/border.bin", + "blockdata_filepath": "data/layouts/SouthernIsland_Exterior/map.bin" + }, + { + "id": "LAYOUT_SOUTHERN_ISLAND_INTERIOR", + "name": "SouthernIsland_Interior_Layout", + "width": 27, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/SouthernIsland_Interior/border.bin", + "blockdata_filepath": "data/layouts/SouthernIsland_Interior/map.bin" + }, + { + "id": "LAYOUT_JAGGED_PASS", + "name": "JaggedPass_Layout", + "width": 30, + "height": 46, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/JaggedPass/border.bin", + "blockdata_filepath": "data/layouts/JaggedPass/map.bin" + }, + { + "id": "LAYOUT_FIERY_PATH", + "name": "FieryPath_Layout", + "width": 35, + "height": 38, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/FieryPath/border.bin", + "blockdata_filepath": "data/layouts/FieryPath/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_FLAT2_1F", + "name": "RustboroCity_Flat2_1F_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_Flat2_1F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_1F/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_FLAT2_2F", + "name": "RustboroCity_Flat2_2F_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_Flat2_2F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_2F/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_FLAT2_3F", + "name": "RustboroCity_Flat2_3F_Layout", + "width": 14, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_Flat2_3F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Flat2_3F/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE", + "name": "SootopolisCity_LotadAndSeedotHouse_Layout", + "width": 8, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_LotadAndSeedotHouse/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME", + "name": "EverGrandeCity_HallOfFame_Layout", + "width": 15, + "height": 17, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_CableClub", + "border_filepath": "data/layouts/EverGrandeCity_HallOfFame/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_HallOfFame/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F", + "name": "LilycoveCity_CoveLilyMotel_1F_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_1F/map.bin" + }, + { + "id": "LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F", + "name": "LilycoveCity_CoveLilyMotel_2F_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/border.bin", + "blockdata_filepath": "data/layouts/LilycoveCity_CoveLilyMotel_2F/map.bin" + }, + { + "id": "LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE", + "name": "Route124_DivingTreasureHuntersHouse_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/border.bin", + "blockdata_filepath": "data/layouts/Route124_DivingTreasureHuntersHouse/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_EXTERIOR", + "name": "MtPyre_Exterior_Layout", + "width": 38, + "height": 51, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_Exterior/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_Exterior/map.bin" + }, + { + "id": "LAYOUT_MT_PYRE_SUMMIT", + "name": "MtPyre_Summit_Layout", + "width": 50, + "height": 37, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/MtPyre_Summit/border.bin", + "blockdata_filepath": "data/layouts/MtPyre_Summit/map.bin" + }, + { + "id": "LAYOUT_SEALED_CHAMBER_INNER_ROOM", + "name": "SealedChamber_InnerRoom_Layout", + "width": 21, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SealedChamber_InnerRoom/border.bin", + "blockdata_filepath": "data/layouts/SealedChamber_InnerRoom/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F", + "name": "MossdeepCity_GameCorner_1F_Layout", + "width": 12, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MossdeepGameCorner", + "border_filepath": "data/layouts/MossdeepCity_GameCorner_1F/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_1F/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F", + "name": "MossdeepCity_GameCorner_B1F_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_GameCorner_B1F/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE1", + "name": "SootopolisCity_House1_Layout", + "width": 8, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/SootopolisCity_House1/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_House1/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE2", + "name": "SootopolisCity_House2_Layout", + "width": 8, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/SootopolisCity_House2/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_House2/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_HOUSE3", + "name": "SootopolisCity_House3_Layout", + "width": 8, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/SootopolisCity_House3/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_House3/map.bin" + }, + { + "id": "LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS", + "name": "AbandonedShip_HiddenFloorRooms_Layout", + "width": 44, + "height": 15, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_InsideShip", + "border_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/border.bin", + "blockdata_filepath": "data/layouts/AbandonedShip_HiddenFloorRooms/map.bin" + }, + { + "id": "LAYOUT_SCORCHED_SLAB", + "name": "ScorchedSlab_Layout", + "width": 15, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ScorchedSlab/border.bin", + "blockdata_filepath": "data/layouts/ScorchedSlab/map.bin" + }, + { + "id": "LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA", + "name": "CaveOfOrigin_Unused_B4F_Lava_Layout", + "width": 19, + "height": 19, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/border.bin", + "blockdata_filepath": "data/layouts/CaveOfOrigin_Unused_B4F_Lava/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_FLAT1_1F", + "name": "RustboroCity_Flat1_1F_Layout", + "width": 14, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_Flat1_1F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Flat1_1F/map.bin" + }, + { + "id": "LAYOUT_RUSTBORO_CITY_FLAT1_2F", + "name": "RustboroCity_Flat1_2F_Layout", + "width": 14, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/RustboroCity_Flat1_2F/border.bin", + "blockdata_filepath": "data/layouts/RustboroCity_Flat1_2F/map.bin" + }, + { + "id": "LAYOUT_EVER_GRANDE_CITY_HALL4", + "name": "EverGrandeCity_Hall4_Layout", + "width": 11, + "height": 34, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_EliteFour", + "border_filepath": "data/layouts/EverGrandeCity_Hall4/border.bin", + "blockdata_filepath": "data/layouts/EverGrandeCity_Hall4/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1", + "name": "AquaHideout_UnusedRubyMap1_Layout", + "width": 28, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap1/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2", + "name": "AquaHideout_UnusedRubyMap2_Layout", + "width": 62, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap2/map.bin" + }, + { + "id": "LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3", + "name": "AquaHideout_UnusedRubyMap3_Layout", + "width": 34, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Facility", + "border_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/border.bin", + "blockdata_filepath": "data/layouts/AquaHideout_UnusedRubyMap3/map.bin" + }, + { + "id": "LAYOUT_ROUTE131_SKY_PILLAR", + "name": "Route131_SkyPillar_Layout", + "width": 60, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/Route131_SkyPillar/border.bin", + "blockdata_filepath": "data/layouts/Route131_SkyPillar/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_ENTRANCE", + "name": "SkyPillar_Entrance_Layout", + "width": 18, + "height": 18, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SkyPillar_Entrance/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_Entrance/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_OUTSIDE", + "name": "SkyPillar_Outside_Layout", + "width": 28, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_Outside/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_Outside/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_1F", + "name": "SkyPillar_1F_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_1F/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_1F/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_2F", + "name": "SkyPillar_2F_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_2F/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_2F/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_3F", + "name": "SkyPillar_3F_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_3F/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_3F/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_4F", + "name": "SkyPillar_4F_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_4F/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_4F/map.bin" + }, + { + "id": "LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA", + "name": "SeafloorCavern_Room9_Lava_Layout", + "width": 27, + "height": 46, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/SeafloorCavern_Room9_Lava/border.bin", + "blockdata_filepath": "data/layouts/SeafloorCavern_Room9_Lava/map.bin" + }, + { + "id": "LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE", + "name": "MossdeepCity_StevensHouse_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/MossdeepCity_StevensHouse/border.bin", + "blockdata_filepath": "data/layouts/MossdeepCity_StevensHouse/map.bin" + }, + { + "id": "LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM", + "name": "ShoalCave_LowTideIceRoom_Layout", + "width": 20, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ShoalCave_LowTideIceRoom/border.bin", + "blockdata_filepath": "data/layouts/ShoalCave_LowTideIceRoom/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE", + "name": "SafariZone_RestHouse_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_GenericBuilding", + "border_filepath": "data/layouts/SafariZone_RestHouse/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_5F", + "name": "SkyPillar_5F_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_5F/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_5F/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_TOP", + "name": "SkyPillar_Top_Layout", + "width": 27, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_Top/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_Top/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY", + "name": "BattleFrontier_BattleDomeLobby_Layout", + "width": 23, + "height": 17, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleDome", + "border_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR", + "name": "BattleFrontier_BattleDomeCorridor_Layout", + "width": 48, + "height": 7, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleDome", + "border_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM", + "name": "BattleFrontier_BattleDomePreBattleRoom_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleDome", + "border_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomePreBattleRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM", + "name": "BattleFrontier_BattleDomeBattleRoom_Layout", + "width": 20, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleDome", + "border_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleDomeBattleRoom/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_1F", + "name": "MagmaHideout_1F_Layout", + "width": 37, + "height": 38, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_1F/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_1F/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_2F_1R", + "name": "MagmaHideout_2F_1R_Layout", + "width": 33, + "height": 39, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_2F_1R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_2F_1R/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_2F_2R", + "name": "MagmaHideout_2F_2R_Layout", + "width": 49, + "height": 28, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_2F_2R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_2F_2R/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_3F_1R", + "name": "MagmaHideout_3F_1R_Layout", + "width": 28, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_3F_1R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_3F_1R/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_3F_2R", + "name": "MagmaHideout_3F_2R_Layout", + "width": 24, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_3F_2R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_3F_2R/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_4F", + "name": "MagmaHideout_4F_Layout", + "width": 59, + "height": 28, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_4F/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_4F/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY", + "name": "BattleFrontier_BattlePalaceLobby_Layout", + "width": 25, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePalace", + "border_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR", + "name": "BattleFrontier_BattlePalaceCorridor_Layout", + "width": 17, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattlePalace", + "border_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM", + "name": "BattleFrontier_BattlePalaceBattleRoom_Layout", + "width": 15, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattlePalace", + "border_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePalaceBattleRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST", + "name": "BattleFrontier_OutsideEast_Layout", + "width": 72, + "height": 72, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattleFrontierOutsideEast", + "border_filepath": "data/layouts/BattleFrontier_OutsideEast/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_OutsideEast/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY", + "name": "BattleFrontier_BattleFactoryLobby_Layout", + "width": 19, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFactory", + "border_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM", + "name": "BattleFrontier_BattleFactoryPreBattleRoom_Layout", + "width": 17, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFactory", + "border_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryPreBattleRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM", + "name": "BattleFrontier_BattleFactoryBattleRoom_Layout", + "width": 13, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFactory", + "border_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleFactoryBattleRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY", + "name": "BattleFrontier_BattlePikeLobby_Layout", + "width": 11, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR", + "name": "BattleFrontier_BattlePikeCorridor_Layout", + "width": 14, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM", + "name": "BattleFrontier_BattlePikeThreePathRoom_Layout", + "width": 13, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL", + "name": "BattleFrontier_BattlePikeRoomNormal_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL", + "name": "BattleFrontier_BattlePikeRoomFinal_Layout", + "width": 5, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY", + "name": "BattleFrontier_BattleArenaLobby_Layout", + "width": 16, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleArena", + "border_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR", + "name": "BattleFrontier_BattleArenaCorridor_Layout", + "width": 18, + "height": 14, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleArena", + "border_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM", + "name": "BattleFrontier_BattleArenaBattleRoom_Layout", + "width": 16, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleArena", + "border_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleArenaBattleRoom/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE", + "name": "SootopolisCity_LegendsBattle_Layout", + "width": 60, + "height": 60, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Sootopolis", + "border_filepath": "data/layouts/SootopolisCity_LegendsBattle/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS", + "name": "BattleFrontier_BattlePikeRoomWildMons_Layout", + "width": 9, + "height": 20, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin" + }, + { + "id": "LAYOUT_UNKNOWN_084693AC", + "name": "Unknown_084693AC_Layout", + "width": 1, + "height": 1, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePike", + "border_filepath": "data/layouts/Unknown_084693AC/border.bin", + "blockdata_filepath": "data/layouts/Unknown_084693AC/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY", + "name": "BattleFrontier_BattlePyramidLobby_Layout", + "width": 15, + "height": 18, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR", + "name": "BattleFrontier_BattlePyramidFloor_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE01", + "name": "BattlePyramidSquare01_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare01/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare01/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE02", + "name": "BattlePyramidSquare02_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare02/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare02/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE03", + "name": "BattlePyramidSquare03_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare03/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare03/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE04", + "name": "BattlePyramidSquare04_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare04/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare04/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE05", + "name": "BattlePyramidSquare05_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare05/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare05/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE06", + "name": "BattlePyramidSquare06_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare06/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare06/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE07", + "name": "BattlePyramidSquare07_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare07/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare07/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE08", + "name": "BattlePyramidSquare08_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare08/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare08/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE09", + "name": "BattlePyramidSquare09_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare09/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare09/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE10", + "name": "BattlePyramidSquare10_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare10/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare10/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE11", + "name": "BattlePyramidSquare11_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare11/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare11/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE12", + "name": "BattlePyramidSquare12_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare12/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare12/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE13", + "name": "BattlePyramidSquare13_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare13/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare13/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE14", + "name": "BattlePyramidSquare14_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare14/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare14/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE15", + "name": "BattlePyramidSquare15_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare15/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare15/map.bin" + }, + { + "id": "LAYOUT_BATTLE_PYRAMID_SQUARE16", + "name": "BattlePyramidSquare16_Layout", + "width": 8, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattlePyramidSquare16/border.bin", + "blockdata_filepath": "data/layouts/BattlePyramidSquare16/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP", + "name": "BattleFrontier_BattlePyramidTop_Layout", + "width": 34, + "height": 23, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattlePyramid", + "border_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidTop/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_3F_3R", + "name": "MagmaHideout_3F_3R_Layout", + "width": 33, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_3F_3R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_3F_3R/map.bin" + }, + { + "id": "LAYOUT_MAGMA_HIDEOUT_2F_3R", + "name": "MagmaHideout_2F_3R_Layout", + "width": 60, + "height": 19, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lavaridge", + "border_filepath": "data/layouts/MagmaHideout_2F_3R/border.bin", + "blockdata_filepath": "data/layouts/MagmaHideout_2F_3R/map.bin" + }, + { + "id": "LAYOUT_MIRAGE_TOWER_1F", + "name": "MirageTower_1F_Layout", + "width": 21, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MirageTower", + "border_filepath": "data/layouts/MirageTower_1F/border.bin", + "blockdata_filepath": "data/layouts/MirageTower_1F/map.bin" + }, + { + "id": "LAYOUT_MIRAGE_TOWER_2F", + "name": "MirageTower_2F_Layout", + "width": 21, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MirageTower", + "border_filepath": "data/layouts/MirageTower_2F/border.bin", + "blockdata_filepath": "data/layouts/MirageTower_2F/map.bin" + }, + { + "id": "LAYOUT_MIRAGE_TOWER_3F", + "name": "MirageTower_3F_Layout", + "width": 21, + "height": 17, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MirageTower", + "border_filepath": "data/layouts/MirageTower_3F/border.bin", + "blockdata_filepath": "data/layouts/MirageTower_3F/map.bin" + }, + { + "id": "LAYOUT_BATTLE_TENT_LOBBY", + "name": "BattleTentLobby_Layout", + "width": 13, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleTent", + "border_filepath": "data/layouts/BattleTentLobby/border.bin", + "blockdata_filepath": "data/layouts/BattleTentLobby/map.bin" + }, + { + "id": "LAYOUT_BATTLE_TENT_CORRIDOR", + "name": "BattleTentCorridor_Layout", + "width": 5, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleTent", + "border_filepath": "data/layouts/BattleTentCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleTentCorridor/map.bin" + }, + { + "id": "LAYOUT_BATTLE_TENT_BATTLE_ROOM", + "name": "BattleTentBattleRoom_Layout", + "width": 10, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleTent", + "border_filepath": "data/layouts/BattleTentBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleTentBattleRoom/map.bin" + }, + { + "id": "LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM", + "name": "VerdanturfTown_BattleTentBattleRoom_Layout", + "width": 13, + "height": 9, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattleTent", + "border_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/border.bin", + "blockdata_filepath": "data/layouts/VerdanturfTown_BattleTentBattleRoom/map.bin" + }, + { + "id": "LAYOUT_MIRAGE_TOWER_4F", + "name": "MirageTower_4F_Layout", + "width": 13, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MirageTower", + "border_filepath": "data/layouts/MirageTower_4F/border.bin", + "blockdata_filepath": "data/layouts/MirageTower_4F/map.bin" + }, + { + "id": "LAYOUT_DESERT_UNDERPASS", + "name": "DesertUnderpass_Layout", + "width": 139, + "height": 23, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/DesertUnderpass/border.bin", + "blockdata_filepath": "data/layouts/DesertUnderpass/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM", + "name": "BattleFrontier_BattleTowerMultiPartnerRoom_Layout", + "width": 21, + "height": 15, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR", + "name": "BattleFrontier_BattleTowerMultiCorridor_Layout", + "width": 17, + "height": 5, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/map.bin" + }, + { + "id": "LAYOUT_ROUTE111_NO_MIRAGE_TOWER", + "name": "Route111_NoMirageTower_Layout", + "width": 40, + "height": 140, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Mauville", + "border_filepath": "data/layouts/Route111_NoMirageTower/border.bin", + "blockdata_filepath": "data/layouts/Route111_NoMirageTower/map.bin" + }, + { + "id": "LAYOUT_UNION_ROOM", + "name": "UnionRoom_Layout", + "width": 15, + "height": 12, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_UnionRoom", + "border_filepath": "data/layouts/UnionRoom/border.bin", + "blockdata_filepath": "data/layouts/UnionRoom/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_NORTHEAST", + "name": "SafariZone_Northeast_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_Northeast/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Northeast/map.bin" + }, + { + "id": "LAYOUT_SAFARI_ZONE_SOUTHEAST", + "name": "SafariZone_Southeast_Layout", + "width": 40, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Lilycove", + "border_filepath": "data/layouts/SafariZone_Southeast/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_Southeast/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_RANKING_HALL", + "name": "BattleFrontier_RankingHall_Layout", + "width": 53, + "height": 15, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontierRankingHall", + "border_filepath": "data/layouts/BattleFrontier_RankingHall/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_RankingHall/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE1", + "name": "BattleFrontier_Lounge1_Layout", + "width": 13, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_Lounge1/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_Lounge1/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER", + "name": "BattleFrontier_ExchangeServiceCorner_Layout", + "width": 15, + "height": 11, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE", + "name": "BattleFrontier_ReceptionGate_Layout", + "width": 9, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_ReceptionGate/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_ReceptionGate/map.bin" + }, + { + "id": "LAYOUT_ARTISAN_CAVE_B1F", + "name": "ArtisanCave_B1F_Layout", + "width": 46, + "height": 54, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ArtisanCave_B1F/border.bin", + "blockdata_filepath": "data/layouts/ArtisanCave_B1F/map.bin" + }, + { + "id": "LAYOUT_ARTISAN_CAVE_1F", + "name": "ArtisanCave_1F_Layout", + "width": 21, + "height": 22, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/ArtisanCave_1F/border.bin", + "blockdata_filepath": "data/layouts/ArtisanCave_1F/map.bin" + }, + { + "id": "LAYOUT_FARAWAY_ISLAND_ENTRANCE", + "name": "FarawayIsland_Entrance_Layout", + "width": 34, + "height": 46, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Rustboro", + "border_filepath": "data/layouts/FarawayIsland_Entrance/border.bin", + "blockdata_filepath": "data/layouts/FarawayIsland_Entrance/map.bin" + }, + { + "id": "LAYOUT_FARAWAY_ISLAND_INTERIOR", + "name": "FarawayIsland_Interior_Layout", + "width": 29, + "height": 26, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Fortree", + "border_filepath": "data/layouts/FarawayIsland_Interior/border.bin", + "blockdata_filepath": "data/layouts/FarawayIsland_Interior/map.bin" + }, + { + "id": "LAYOUT_BIRTH_ISLAND_EXTERIOR", + "name": "BirthIsland_Exterior_Layout", + "width": 30, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/BirthIsland_Exterior/border.bin", + "blockdata_filepath": "data/layouts/BirthIsland_Exterior/map.bin" + }, + { + "id": "LAYOUT_ISLAND_HARBOR", + "name": "IslandHarbor_Layout", + "width": 17, + "height": 13, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_IslandHarbor", + "border_filepath": "data/layouts/IslandHarbor/border.bin", + "blockdata_filepath": "data/layouts/IslandHarbor/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER_MARINE_CAVE", + "name": "Underwater_MarineCave_Layout", + "width": 20, + "height": 10, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater_MarineCave/border.bin", + "blockdata_filepath": "data/layouts/Underwater_MarineCave/map.bin" + }, + { + "id": "LAYOUT_MARINE_CAVE_ENTRANCE", + "name": "MarineCave_Entrance_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/MarineCave_Entrance/border.bin", + "blockdata_filepath": "data/layouts/MarineCave_Entrance/map.bin" + }, + { + "id": "LAYOUT_TERRA_CAVE_ENTRANCE", + "name": "TerraCave_Entrance_Layout", + "width": 20, + "height": 20, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/TerraCave_Entrance/border.bin", + "blockdata_filepath": "data/layouts/TerraCave_Entrance/map.bin" + }, + { + "id": "LAYOUT_TERRA_CAVE_END", + "name": "TerraCave_End_Layout", + "width": 27, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/TerraCave_End/border.bin", + "blockdata_filepath": "data/layouts/TerraCave_End/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER6", + "name": "Underwater6_Layout", + "width": 40, + "height": 80, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater6/border.bin", + "blockdata_filepath": "data/layouts/Underwater6/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER7", + "name": "Underwater7_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater7/border.bin", + "blockdata_filepath": "data/layouts/Underwater7/map.bin" + }, + { + "id": "LAYOUT_UNDERWATER5", + "name": "Underwater5_Layout", + "width": 80, + "height": 40, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Underwater", + "border_filepath": "data/layouts/Underwater5/border.bin", + "blockdata_filepath": "data/layouts/Underwater5/map.bin" + }, + { + "id": "LAYOUT_MARINE_CAVE_END", + "name": "MarineCave_End_Layout", + "width": 27, + "height": 30, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/MarineCave_End/border.bin", + "blockdata_filepath": "data/layouts/MarineCave_End/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_ENTRANCE", + "name": "TrainerHill_Entrance_Layout", + "width": 19, + "height": 17, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_Entrance/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_Entrance/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_1F", + "name": "TrainerHill_1F_Layout", + "width": 16, + "height": 21, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_1F/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_1F/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_2F", + "name": "TrainerHill_2F_Layout", + "width": 16, + "height": 21, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_2F/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_2F/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_3F", + "name": "TrainerHill_3F_Layout", + "width": 16, + "height": 21, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_3F/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_3F/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_4F", + "name": "TrainerHill_4F_Layout", + "width": 16, + "height": 21, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_4F/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_4F/map.bin" + }, + { + "id": "LAYOUT_TRAINER_HILL_ROOF", + "name": "TrainerHill_Roof_Layout", + "width": 25, + "height": 16, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_TrainerHill", + "border_filepath": "data/layouts/TrainerHill_Roof/border.bin", + "blockdata_filepath": "data/layouts/TrainerHill_Roof/map.bin" + }, + { + "id": "LAYOUT_ALTERING_CAVE", + "name": "AlteringCave_Layout", + "width": 32, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "border_filepath": "data/layouts/AlteringCave/border.bin", + "blockdata_filepath": "data/layouts/AlteringCave/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_EXTERIOR", + "name": "NavelRock_Exterior_Layout", + "width": 21, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Dewford", + "border_filepath": "data/layouts/NavelRock_Exterior/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Exterior/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_ENTRANCE", + "name": "NavelRock_Entrance_Layout", + "width": 21, + "height": 32, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_Entrance/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Entrance/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_TOP", + "name": "NavelRock_Top_Layout", + "width": 25, + "height": 28, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_Top/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Top/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_BOTTOM", + "name": "NavelRock_Bottom_Layout", + "width": 22, + "height": 22, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_Bottom/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Bottom/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM1", + "name": "NavelRock_LadderRoom1_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_LadderRoom1/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_LadderRoom1/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_LADDER_ROOM2", + "name": "NavelRock_LadderRoom2_Layout", + "width": 9, + "height": 8, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_LadderRoom2/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_LadderRoom2/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_B1F", + "name": "NavelRock_B1F_Layout", + "width": 23, + "height": 11, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_B1F/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_B1F/map.bin" + }, + { + "id": "LAYOUT_NAVEL_ROCK_FORK", + "name": "NavelRock_Fork_Layout", + "width": 27, + "height": 86, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_NavelRock", + "border_filepath": "data/layouts/NavelRock_Fork/border.bin", + "blockdata_filepath": "data/layouts/NavelRock_Fork/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_LOUNGE2", + "name": "BattleFrontier_Lounge2_Layout", + "width": 9, + "height": 10, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_Lounge2/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_Lounge2/map.bin" + }, + { + "id": "LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE", + "name": "BattleFrontier_ScottsHouse_Layout", + "width": 6, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_BattleFrontier", + "border_filepath": "data/layouts/BattleFrontier_ScottsHouse/border.bin", + "blockdata_filepath": "data/layouts/BattleFrontier_ScottsHouse/map.bin" + }, + { + "id": "LAYOUT_METEOR_FALLS_STEVENS_CAVE", + "name": "MeteorFalls_StevensCave_Layout", + "width": 30, + "height": 32, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_MeteorFalls", + "border_filepath": "data/layouts/MeteorFalls_StevensCave/border.bin", + "blockdata_filepath": "data/layouts/MeteorFalls_StevensCave/map.bin" + }, + { + "id": "LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE", + "name": "LittlerootTown_ProfessorBirchsLabWithTable_Layout", + "width": 13, + "height": 13, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_Lab", + "border_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/border.bin", + "blockdata_filepath": "data/layouts/LittlerootTown_ProfessorBirchsLabWithTable/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_1F_CLEAN", + "name": "SkyPillar_1F_Clean_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_1F_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_1F_Clean/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_2F_CLEAN", + "name": "SkyPillar_2F_Clean_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_2F_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_2F_Clean/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_3F_CLEAN", + "name": "SkyPillar_3F_Clean_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_3F_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_3F_Clean/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_4F_CLEAN", + "name": "SkyPillar_4F_Clean_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_4F_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_4F_Clean/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_5F_CLEAN", + "name": "SkyPillar_5F_Clean_Layout", + "width": 14, + "height": 14, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_5F_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_5F_Clean/map.bin" + }, + { + "id": "LAYOUT_SKY_PILLAR_TOP_CLEAN", + "name": "SkyPillar_Top_Clean_Layout", + "width": 27, + "height": 24, + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Pacifidlog", + "border_filepath": "data/layouts/SkyPillar_Top_Clean/border.bin", + "blockdata_filepath": "data/layouts/SkyPillar_Top_Clean/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F", + "name": "SootopolisCity_MysteryEventsHouse_1F_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MysteryEventsHouse", + "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F", + "name": "SootopolisCity_MysteryEventsHouse_B1F_Layout", + "width": 12, + "height": 9, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MysteryEventsHouse", + "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_B1F/map.bin" + }, + { + "id": "LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED", + "name": "SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked_Layout", + "width": 11, + "height": 8, + "primary_tileset": "gTileset_Building", + "secondary_tileset": "gTileset_MysteryEventsHouse", + "border_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/border.bin", + "blockdata_filepath": "data/layouts/SootopolisCity_MysteryEventsHouse_1F_StairsUnblocked/map.bin" + }, + { + "blockdata_filepath": "data/layouts/CeruleanCave_1F/map.bin", + "border_filepath": "data/layouts/CeruleanCave_1F/border.bin", + "height": 23, + "id": "LAYOUT_CERULEAN_CAVE_1F", + "name": "CeruleanCave_1F_Layout", + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "width": 40 + }, + { + "blockdata_filepath": "data/layouts/CeruleanCave_2F/map.bin", + "border_filepath": "data/layouts/CeruleanCave_2F/border.bin", + "height": 23, + "id": "LAYOUT_CERULEAN_CAVE_2F", + "name": "CeruleanCave_2F_Layout", + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "width": 40 + }, + { + "blockdata_filepath": "data/layouts/CeruleanCave_B1F/map.bin", + "border_filepath": "data/layouts/CeruleanCave_B1F/border.bin", + "height": 23, + "id": "LAYOUT_CERULEAN_CAVE_B1F", + "name": "CeruleanCave_B1F_Layout", + "primary_tileset": "gTileset_General", + "secondary_tileset": "gTileset_Cave", + "width": 40 + } + ] } diff --git a/data/librfu_rodata.s b/data/librfu_rodata.s deleted file mode 100644 index aa8f5170d32c..000000000000 --- a/data/librfu_rodata.s +++ /dev/null @@ -1,17 +0,0 @@ - .section .rodata - -gUnknown_089A3220:: @ 89A3220 - .byte 2, 14, 0, 10, 9, 5, 7, 2 - .byte 0, 15, 1, 3, 3, 0, 31, 0 - .byte 3, 22, 18, 14, 13, 9, 11, 3 - .byte 15, 15, 1, 3, 3, 0, 0x7f, 0 - - .asciz "RFU_V1026" - - .align 2 -gUnknown_089A324C:: @ 89A324C - .asciz "RFU-MBOOT" - - .align 2 -gUnknown_089A3258:: @ 89A3258 - .asciz "NINTENDOSio32ID_030820" diff --git a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc index c56951a033c2..94ed2ef7e724 100644 --- a/data/maps/AbandonedShip_Corridors_B1F/scripts.inc +++ b/data/maps/AbandonedShip_Corridors_B1F/scripts.inc @@ -32,7 +32,7 @@ AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: @ 8237DC8 goto_if_eq AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked msgbox AbandonedShip_Corridors_B1F_Text_InsertedStorageKey, MSGBOX_DEFAULT playse SE_PIN - takeitem ITEM_STORAGE_KEY, 1 + removeitem ITEM_STORAGE_KEY setflag FLAG_USED_STORAGE_KEY call AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom special DrawWholeMapView diff --git a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc index 5fc4160f89c3..612d46a9a468 100644 --- a/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc +++ b/data/maps/AbandonedShip_HiddenFloorCorridors/scripts.inc @@ -58,7 +58,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: @ 8238A19 goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN - takeitem ITEM_ROOM_1_KEY, 1 + removeitem ITEM_ROOM_1_KEY setflag FLAG_USED_ROOM_1_KEY call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1 special DrawWholeMapView @@ -73,7 +73,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: @ 8238A50 goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN - takeitem ITEM_ROOM_2_KEY, 1 + removeitem ITEM_ROOM_2_KEY setflag FLAG_USED_ROOM_2_KEY call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2 special DrawWholeMapView @@ -88,7 +88,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: @ 8238A87 goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN - takeitem ITEM_ROOM_4_KEY, 1 + removeitem ITEM_ROOM_4_KEY setflag FLAG_USED_ROOM_4_KEY call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4 special DrawWholeMapView @@ -103,7 +103,7 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: @ 8238ABE goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT playse SE_PIN - takeitem ITEM_ROOM_6_KEY, 1 + removeitem ITEM_ROOM_6_KEY setflag FLAG_USED_ROOM_6_KEY call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6 special DrawWholeMapView diff --git a/data/maps/BattleColosseum2P/scripts.inc b/data/maps/BattleColosseum2P/scripts.inc deleted file mode 100644 index efa01af6c3b1..000000000000 --- a/data/maps/BattleColosseum2P/scripts.inc +++ /dev/null @@ -1,3 +0,0 @@ -BattleColosseum2P_MapScripts:: @ 823B77D - .byte 0 - diff --git a/data/maps/BattleColosseum4P/scripts.inc b/data/maps/BattleColosseum4P/scripts.inc deleted file mode 100644 index b1733aecd0fb..000000000000 --- a/data/maps/BattleColosseum4P/scripts.inc +++ /dev/null @@ -1,3 +0,0 @@ -BattleColosseum4P_MapScripts:: @ 823B780 - .byte 0 - diff --git a/data/maps/BattleColosseum2P/map.json b/data/maps/BattleColosseum_2P/map.json similarity index 86% rename from data/maps/BattleColosseum2P/map.json rename to data/maps/BattleColosseum_2P/map.json index 18df18491ab4..282be1e5cf55 100644 --- a/data/maps/BattleColosseum2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -1,6 +1,6 @@ { "id": "MAP_BATTLE_COLOSSEUM_2P", - "name": "BattleColosseum2P", + "name": "BattleColosseum_2P", "layout": "LAYOUT_BATTLE_COLOSSEUM_2P", "music": "MUS_RAINBOW", "region_map_section": "MAPSEC_DYNAMIC", @@ -24,7 +24,7 @@ "movement_range_y": 0, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleColosseum2P_EventScript_Attendant", + "script": "BattleColosseum_2P_EventScript_Attendant", "flag": "0" } ], @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum2P_PlayerSpot0" + "script": "EventScript_BattleColosseum_2P_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum2P_PlayerSpot1" + "script": "EventScript_BattleColosseum_2P_PlayerSpot1" } ], "bg_events": [] diff --git a/data/maps/BattleColosseum_2P/scripts.inc b/data/maps/BattleColosseum_2P/scripts.inc new file mode 100644 index 000000000000..97c6a5d0bddc --- /dev/null +++ b/data/maps/BattleColosseum_2P/scripts.inc @@ -0,0 +1,3 @@ +BattleColosseum_2P_MapScripts:: @ 823B77D + .byte 0 + diff --git a/data/maps/BattleColosseum4P/map.json b/data/maps/BattleColosseum_4P/map.json similarity index 84% rename from data/maps/BattleColosseum4P/map.json rename to data/maps/BattleColosseum_4P/map.json index d17851aaf38b..2b849cfc19d5 100644 --- a/data/maps/BattleColosseum4P/map.json +++ b/data/maps/BattleColosseum_4P/map.json @@ -1,6 +1,6 @@ { "id": "MAP_BATTLE_COLOSSEUM_4P", - "name": "BattleColosseum4P", + "name": "BattleColosseum_4P", "layout": "LAYOUT_BATTLE_COLOSSEUM_4P", "music": "MUS_RAINBOW", "region_map_section": "MAPSEC_DYNAMIC", @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum4P_PlayerSpot0" + "script": "EventScript_BattleColosseum_4P_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum4P_PlayerSpot2" + "script": "EventScript_BattleColosseum_4P_PlayerSpot2" }, { "type": "trigger", @@ -70,7 +70,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum4P_PlayerSpot1" + "script": "EventScript_BattleColosseum_4P_PlayerSpot1" }, { "type": "trigger", @@ -79,7 +79,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": "0", - "script": "EventScript_BattleColosseum4P_PlayerSpot3" + "script": "EventScript_BattleColosseum_4P_PlayerSpot3" } ], "bg_events": [] diff --git a/data/maps/BattleColosseum_4P/scripts.inc b/data/maps/BattleColosseum_4P/scripts.inc new file mode 100644 index 000000000000..70dca8e27674 --- /dev/null +++ b/data/maps/BattleColosseum_4P/scripts.inc @@ -0,0 +1,3 @@ +BattleColosseum_4P_MapScripts:: @ 823B780 + .byte 0 + diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 6edc0e1d5901..2d03b461a132 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -1,16 +1,20 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_MapScript2_24BD00 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_MapScript1_24C4F0 + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeBattleRoom_OnWarp + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_OnResume .byte 0 -BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 + .set NO_DRAW, 0 + .set DRAW_TRAINER, 1 + .set DRAW_TUCKER, 2 + +BattleFrontier_BattleDomeBattleRoom_OnTransition: @ 824BCB1 dome_setopponentgfx frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C919 + compare VAR_RESULT, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx end @@ -30,441 +34,431 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale:: @ 824BCFA setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattleDomeBattleRoom_MapScript2_24BD00: @ 824BD00 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A +BattleFrontier_BattleDomeBattleRoom_OnFrame: @ 824BD00 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A +BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: @ 824BD0A lockall - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C938 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum + compare VAR_RESULT, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C970, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome, MSGBOX_DEFAULT closemessage showobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E:: @ 824BD4E - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C775 - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A:: @ 824BD5A - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77F - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: @ 824BD4E + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter + goto BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer + +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: @ 824BD5A + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD61 playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82 + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 dome_getopponentname - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C990, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer, MSGBOX_DEFAULT closemessage - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77B - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C789 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward waitmovement 0 tower_getopponentintro 0 msgbox gStringVar4, MSGBOX_DEFAULT closemessage dome_initopponentparty - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440 - setvar VAR_TEMP_2, 0 + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle + setvar VAR_TEMP_2, NO_DRAW switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F - setvar VAR_TEMP_2, 1 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA86, MSGBOX_DEFAULT + case B_OUTCOME_WON, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent + setvar VAR_TEMP_2, DRAW_TRAINER +BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait, MSGBOX_DEFAULT closemessage playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 - applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_24C964 + applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeEnter waitmovement 0 - applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_24C969 + applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeFaceLeft waitmovement 0 delay 180 - applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_24C96B + applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeExit waitmovement 0 - compare VAR_TEMP_2, 2 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F + compare VAR_TEMP_2, DRAW_TUCKER @ Tucker always wins on a draw + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent dome_compareseeds switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F + case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 dome_getopponentname - compare VAR_TEMP_2, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1 - compare VAR_TEMP_2, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5 - compare VAR_TEMP_2, 2 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9 + compare VAR_TEMP_2, NO_DRAW + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon + compare VAR_TEMP_2, DRAW_TRAINER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw + compare VAR_TEMP_2, DRAW_TUCKER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D - dome_resolvewinners 2 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A +BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney:: @ 824BE8D + dome_resolvewinners DOME_PLAYER_LOST_MATCH +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: @ 824BE9A frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 -@ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5 + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon:: @ 824BEB1 frontier_gettrainername 1 - message BattleFrontier_BattleDomeBattleRoom_Text_24C9E1 + message BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5:: @ 824BEC5 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw:: @ 824BEC5 frontier_gettrainername 0 - message BattleFrontier_BattleDomeBattleRoom_Text_24CB34 + message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9:: @ 824BED9 - message BattleFrontier_BattleDomeBattleRoom_Text_24D6BE +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw:: @ 824BED9 + message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 +BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 - compare VAR_TEMP_2, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3 - compare VAR_TEMP_2, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC + compare VAR_TEMP_2, NO_DRAW + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon + compare VAR_TEMP_2, DRAW_TRAINER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 dome_getroundtext - dome_resolvewinners 1 + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + case DOME_ROUNDS_COUNT, BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney setvar VAR_0x8006, 1 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 3 waitstate -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62 - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77D +BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: @ 824BF62 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience waitmovement 0 frontier_get FRONTIER_DATA_LVL_MODE switch VAR_RESULT - case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA04, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96:: @ 824BF96 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA44, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E - special sub_8175280 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin + +BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: @ 824BF96 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E + special DoConfettiEffect playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C9BE, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon:: @ 824BFC3 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC:: @ 824BFCC - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CB9D, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw:: @ 824BFCC + msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5:: @ 824BFD5 - dome_get DOME_DATA_6 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C023 - dome_get DOME_DATA_7 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C076 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: @ 824BFD5 + dome_get DOME_DATA_ATTEMPTED_CHALLENGE + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt + dome_get DOME_DATA_HAS_WON_CHALLENGE + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon dome_get DOME_DATA_WIN_STREAK_ACTIVE compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9 + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak + goto BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C023:: @ 824C023 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt:: @ 824C023 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C05A - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C061 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C068 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C06F + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C05A:: @ 824C05A - message BattleFrontier_BattleDomeBattleRoom_Text_24CC06 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1:: @ 824C05A + message BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C061:: @ 824C061 - message BattleFrontier_BattleDomeBattleRoom_Text_24CC1C +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2:: @ 824C061 + message BattleFrontier_BattleDomeBattleRoom_Text_RisingStar waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C068:: @ 824C068 - message BattleFrontier_BattleDomeBattleRoom_Text_24CC2E +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal:: @ 824C068 + message BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C06F:: @ 824C06F - message BattleFrontier_BattleDomeBattleRoom_Text_24CC5B +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal:: @ 824C06F + message BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C076:: @ 824C076 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon:: @ 824C076 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0AD - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0B4 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0BB - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C2 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0AD:: @ 824C0AD - message BattleFrontier_BattleDomeBattleRoom_Text_24CC99 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1:: @ 824C0AD + message BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0B4:: @ 824C0B4 - message BattleFrontier_BattleDomeBattleRoom_Text_24CCC5 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2:: @ 824C0B4 + message BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0BB:: @ 824C0BB - message BattleFrontier_BattleDomeBattleRoom_Text_24CCFD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal:: @ 824C0BB + message BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C2:: @ 824C0C2 - message BattleFrontier_BattleDomeBattleRoom_Text_24CD33 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal:: @ 824C0C2 + message BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9:: @ 824C0C9 - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C105 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: @ 824C0C9 + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker switch VAR_TEMP_E - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C105:: @ 824C105 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker:: @ 824C105 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C13C - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C143 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C14A - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C151 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C13C:: @ 824C13C - message BattleFrontier_BattleDomeBattleRoom_Text_24CD72 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1:: @ 824C13C + message BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C143:: @ 824C143 - message BattleFrontier_BattleDomeBattleRoom_Text_24CD8C +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2:: @ 824C143 + message BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C14A:: @ 824C14A - message BattleFrontier_BattleDomeBattleRoom_Text_24CDB3 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal:: @ 824C14A + message BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C151:: @ 824C151 - message BattleFrontier_BattleDomeBattleRoom_Text_24CDDE +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal:: @ 824C151 + message BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C158:: @ 824C158 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEBE, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver:: @ 824C158 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C161:: @ 824C161 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D232, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold:: @ 824C161 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A:: @ 824C16A - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak:: @ 824C16A + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A1 - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A8 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1AF - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A1:: @ 824C1A1 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE10 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1:: @ 824C1A1 + message BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A8:: @ 824C1A8 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE33 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2:: @ 824C1A8 + message BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1AF:: @ 824C1AF - message BattleFrontier_BattleDomeBattleRoom_Text_24CE57 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal:: @ 824C1AF + message BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE94 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal:: @ 824C1B6 + message BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum:: @ 824C1BD frontier_get FRONTIER_DATA_BATTLE_NUM return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker:: @ 824C1CB switch VAR_TEMP_E - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC:: @ 824C1FC - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEDE, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C211 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C209:: @ 824C209 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D26C, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold + +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver:: @ 824C1FC + msgbox BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter + +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold:: @ 824C209 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 closemessage - applymovement 2, BattleFrontier_BattleDomeBattleRoom_Movement_24C94B - applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C78E + applymovement 2, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump + applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeMoveForTuckerEntrance + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse waitmovement 0 - message BattleFrontier_BattleDomeBattleRoom_Text_24CF7A + message BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant waitmessage playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse switch VAR_TEMP_E - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, MSGBOX_DEFAULT + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver + msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0D9, MSGBOX_DEFAULT - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - dome_resolvewinners 1 + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_DREW, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw + msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C82B + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D172, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass, MSGBOX_DEFAULT playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattleDomeBattleRoom_Text_24D1AA + message BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol waitmessage waitfanfare frontier_givesymbol - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D1E0, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro:: @ 824C346 frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, MSGBOX_DEFAULT + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold + msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D43E, MSGBOX_DEFAULT - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - dome_resolvewinners 1 + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_DREW, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw + msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C82B + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D47F, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed, MSGBOX_DEFAULT playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattleDomeBattleRoom_Text_24D522 + message BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine waitmessage waitfanfare frontier_givesymbol - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D54D, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_24C400:: @ 824C400 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D677, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker, MSGBOX_DEFAULT closemessage - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C787 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C829 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2 + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward waitmovement 0 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440 + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C420:: @ 824C420 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D127, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker, MSGBOX_DEFAULT playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D + goto BattleFrontier_BattleDomeBattleRoom_EventScript_LostTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 - setvar VAR_TEMP_2, 2 - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: @ 824C436 + setvar VAR_TEMP_2, DRAW_TUCKER + goto BattleFrontier_BattleDomeBattleRoom_EventScript_Draw -BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 +BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: @ 824C440 frontier_set FRONTIER_DATA_RECORD_DISABLED, FALSE special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_DOME @@ -478,56 +472,56 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 dome_resetsketch return -BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B +BattleFrontier_BattleDomeBattleRoom_OnWarp: @ 824C481 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B +BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: @ 824C48B hideobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502 + call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx setvar VAR_TEMP_1, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF + compare VAR_RESULT, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 15, 13, 9 removeobject 15 addobject 15 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C78B - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF:: @ 824C4EF + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp +BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects:: @ 824C4EF end -BattleFrontier_BattleDomeBattleRoom_MapScript1_24C4F0: @ 824C4F0 +BattleFrontier_BattleDomeBattleRoom_OnResume: @ 824C4F0 compare VAR_TEMP_9, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC:: @ 824C4FC - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502 +BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: @ 824C4FC + call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C502:: @ 824C502 - compare VAR_TEMP_F, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F - compare VAR_TEMP_F, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C530 - compare VAR_TEMP_F, 2 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C594 - compare VAR_TEMP_F, 3 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C652 +@ Add audience members to supplement the permanent object event audience +BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: @ 824C502 + compare VAR_TEMP_F, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience + compare VAR_TEMP_F, DOME_ROUND2 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience + compare VAR_TEMP_F, DOME_SEMIFINAL + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience + compare VAR_TEMP_F, DOME_FINAL + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F:: @ 824C52F +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience:: @ 824C52F return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C530:: @ 824C530 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: @ 824C530 createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -541,7 +535,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C530:: @ 824C530 createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C594:: @ 824C594 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: @ 824C594 createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -565,7 +559,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C594:: @ 824C594 createvobject EVENT_OBJ_GFX_WOMAN_5, 31, 8, 2, 3, 1 return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C652:: @ 824C652 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: @ 824C652 createvobject EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_BEAUTY, 2, 15, 0, 3, DIR_SOUTH @@ -604,23 +598,23 @@ BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible: @ 824C773 set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C775: @ 824C775 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter: @ 824C775 set_visible delay_16 walk_up walk_up walk_up walk_right - -BattleFrontier_BattleDomeBattleRoom_Movement_24C77B: @ 824C77B +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward: @ 824C77B walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C77D: @ 824C77D +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience: @ 824C77D walk_up step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C77F: @ 824C77F +@ Identical to Movement_PlayerEnter +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker: @ 824C77F set_visible delay_16 walk_up @@ -630,20 +624,20 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C77F: @ 824C77F walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C787: @ 824C787 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2: @ 824C787 walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C789: @ 824C789 +BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward: @ 824C789 walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C78B: @ 824C78B +BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp: @ 824C78B face_up set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C78E: @ 824C78E +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance: @ 824C78E set_visible walk_up walk_up @@ -752,7 +746,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C78E: @ 824C78E walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9: @ 824C7F9 +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeMoveForTuckerEntrance: @ 824C7F9 delay_16 delay_16 walk_left @@ -802,16 +796,16 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9: @ 824C7F9 walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C829: @ 824C829 +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward: @ 824C829 walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C82B: @ 824C82B +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer: @ 824C82B walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: @ 824C82E turnvobject 0, DIR_EAST turnvobject 2, DIR_EAST turnvobject 4, DIR_EAST @@ -880,21 +874,21 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E delay 20 return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5 +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: @ 824C8F5 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F:: @ 824C90F +BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: @ 824C90F warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 17, 11 waitstate end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C919:: @ 824C919 +@ On round 1 there's a 50% chance that a specific audience member will walk to his seat +BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: @ 824C919 random 2 copyvar VAR_TEMP_D, VAR_RESULT compare VAR_TEMP_D, 0 @@ -903,13 +897,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C919:: @ 824C919 setobjectmovementtype 6, MOVEMENT_TYPE_FACE_RIGHT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C938:: @ 824C938 +BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat:: @ 824C938 compare VAR_TEMP_D, 0 goto_if_eq Common_EventScript_NopReturn - applymovement 6, BattleFrontier_BattleDomeBattleRoom_Movement_24C95E + applymovement 6, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat return -BattleFrontier_BattleDomeBattleRoom_Movement_24C94B: @ 824C94B +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump: @ 824C94B delay_16 delay_16 delay_16 @@ -930,7 +924,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C94B: @ 824C94B enable_jump_landing_ground_effect step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C95E: @ 824C95E +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat: @ 824C95E walk_down walk_down walk_right @@ -938,52 +932,52 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C95E: @ 824C95E walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C964: @ 824C964 +BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeEnter: @ 824C964 walk_right walk_right walk_right walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C969: @ 824C969 +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeFaceLeft: @ 824C969 walk_in_place_fastest_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C96B: @ 824C96B +BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeExit: @ 824C96B walk_left walk_left walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Text_24C970: @ 824C970 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome: @ 824C970 .string "{PLAYER} has entered the BATTLE DOME!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C990: @ 824C990 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer: @ 824C990 .string "{STR_VAR_1}\n" .string "match!\p" .string "{PLAYER} versus {STR_VAR_2}!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C9BE: @ 824C9BE +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner: @ 824C9BE .string "{PLAYER} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C9E1: @ 824C9E1 +BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner: @ 824C9E1 .string "{STR_VAR_2} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA04: @ 824CA04 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ: @ 824CA04 .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA44: @ 824CA44 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp: @ 824CA44 .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA86: @ 824CA86 +BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait: @ 824CA86 .string "What an unbelievable finish!\n" .string "We have a double knockout!\p" .string "In this event, the Battle Tournament\n" @@ -991,7 +985,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CA86: @ 824CA86 .string "Please wait while the judging\n" .string "is under way.$" -BattleFrontier_BattleDomeBattleRoom_Text_24CB34: @ 824CB34 +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer: @ 824CB34 .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -999,7 +993,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CB34: @ 824CB34 .string "The winner is {STR_VAR_1}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CB9D: @ 824CB9D +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer: @ 824CB9D .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -1007,85 +1001,85 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CB9D: @ 824CB9D .string "The winner is {PLAYER}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC06: @ 824CC06 +BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope: @ 824CC06 .string "The bright new hope!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC1C: @ 824CC1C +BattleFrontier_BattleDomeBattleRoom_Text_RisingStar: @ 824CC1C .string "The rising star!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC2E: @ 824CC2E +BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship: @ 824CC2E .string "Will this TRAINER race to\n" .string "the championship?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC5B: @ 824CC5B +BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry: @ 824CC5B .string "Can the feat of a championship\n" .string "on the first try be achieved?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC99: @ 824CC99 +BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged: @ 824CC99 .string "Can the loss of the last match\n" .string "be avenged?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CCC5: @ 824CCC5 +BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship: @ 824CCC5 .string "The TRAINER is on fire for\n" .string "the first championship try!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CCFD: @ 824CCFD +BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal: @ 824CCFD .string "A win here means this TRAINER\n" .string "advances to the final!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD33: @ 824CD33 +BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue: @ 824CD33 .string "Will the long-held dream of\n" .string "a championship finally come true?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD72: @ 824CD72 +BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion: @ 824CD72 .string "The invincible champion!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD8C: @ 824CD8C +BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer: @ 824CD8C .string "Can anyone hope to beat this\n" .string "TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CDB3: @ 824CDB3 +BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer: @ 824CDB3 .string "Do battles exist solely for\n" .string "this TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CDDE: @ 824CDDE +BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle: @ 824CDDE .string "The current champion aiming to\n" .string "retain the title!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE10: @ 824CE10 +BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned: @ 824CE10 .string "The former champion has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE33: @ 824CE33 +BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned: @ 824CE33 .string "The former toughness has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE57: @ 824CE57 +BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals: @ 824CE57 .string "Will this TRAINER do as expected\n" .string "and advance to the finals?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE94: @ 824CE94 +BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory: @ 824CE94 .string "Will the former champ regain\n" .string "lost glory?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CEBE: @ 824CEBE +BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster: @ 824CEBE .string "Feel the glow of a true master!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CEDE: @ 824CEDE +BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker: @ 824CEDE .string "And now… The TRAINER standing in\n" .string "{PLAYER}'s record-setting path…\p" .string "Yes! The one and only!\n" @@ -1093,11 +1087,11 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CEDE: @ 824CEDE .string "Our very own DOME ACE!\l" .string "Make way for TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CF7A: @ 824CF7A +BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant: @ 824CF7A .string "Spectators: TUCKER! TUCKER!\n" .string "TUCKER! TUCKER! TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CFAE: @ 824CFAE +BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro: @ 824CFAE .string "TUCKER: Ahahah!\p" .string "Do you hear it? This crowd!\n" .string "They're all itching to see our match!\p" @@ -1109,37 +1103,37 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CFAE: @ 824CFAE .string "I, TUCKER the DOME ACE, will bathe you\l" .string "in my brilliant glow!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D0D9: @ 824D0D9 +BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy: @ 824D0D9 .string "Your strategy!\n" .string "Let's see it!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D0F6: @ 824D0F6 +BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer: @ 824D0F6 .string "Unbelievable! It's incredible!\n" .string "The victor is {PLAYER}!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D127: @ 824D127 +BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker: @ 824D127 .string "The winner is TUCKER!\n" .string "The DOME ACE has prevailed!\p" .string "Congratulations, TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D172: @ 824D172 +BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass: @ 824D172 .string "TUCKER: Rules are rules!\n" .string "Let me see your FRONTIER PASS.$" -BattleFrontier_BattleDomeBattleRoom_Text_24D1AA: @ 824D1AA +BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol: @ 824D1AA .string "The Tactics Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D1E0: @ 824D1E0 +BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime: @ 824D1E0 .string "… … … … … …\p" .string "I sorely underestimated you. I won't\n" .string "make the same mistake next time…$" -BattleFrontier_BattleDomeBattleRoom_Text_24D232: @ 824D232 +BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched: @ 824D232 .string "Can the win streak be stretched?\n" .string "The confidence is there!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D26C: @ 824D26C +BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker: @ 824D26C .string "Ladies and gentlemen!\n" .string "Boys, girls, and POKéMON!\p" .string "Finally!\n" @@ -1148,7 +1142,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D26C: @ 824D26C .string "Our very own DOME ACE!\l" .string "It's none other than TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D319: @ 824D319 +BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro: @ 824D319 .string "TUCKER: Ah…\n" .string "The pummeling roar of the crowd…\l" .string "Their furnace-like heat of excitement…\l" @@ -1160,22 +1154,22 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D319: @ 824D319 .string "Brighter and more brilliant!\l" .string "I must light all that gather here!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D43E: @ 824D43E +BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess: @ 824D43E .string "I will unleash all the power that\n" .string "I possess! Right here and now!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D47F: @ 824D47F +BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed: @ 824D47F .string "TUCKER: You're genuinely fantastic!\p" .string "Never before! I haven't ever lost in the\n" .string "times I've had to unleash my power.\p" .string "Yes, quite fantastic!\n" .string "Your FRONTIER PASS, please?$" -BattleFrontier_BattleDomeBattleRoom_Text_24D522: @ 824D522 +BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine: @ 824D522 .string "The Tactics Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D54D: @ 824D54D +BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter: @ 824D54D .string "You're strong, but above all,\n" .string "you have a unique charm!\p" .string "In you, I see a definite potential for\n" @@ -1183,22 +1177,24 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D54D: @ 824D54D .string "I will very much look forward to\n" .string "our next encounter!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D5F5: @ 824D5F5 +@ Unused +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ2: @ 824D5F5 .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D635: @ 824D635 +@ Unused +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp2: @ 824D635 .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D677: @ 824D677 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker: @ 824D677 .string "The final match!\p" .string "{PLAYER} versus the DOME ACE, TUCKER!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D6BE: @ 824D6BE +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker: @ 824D6BE .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 92be8bc3e21f..be8071c8c9d3 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -1,48 +1,48 @@ BattleFrontier_BattleDomeCorridor_MapScripts:: @ 824B0FE - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_MapScript2_24B104 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_OnFrame .byte 0 -BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_24B10E +BattleFrontier_BattleDomeCorridor_OnFrame: @ 824B104 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E +BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: @ 824B10E delay 16 setvar VAR_TEMP_0, 1 frontier_get FRONTIER_DATA_LVL_MODE compare VAR_RESULT, FRONTIER_LVL_OPEN - goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161 - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1 + goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50 waitmovement 0 opendoor 13, 3 waitdooranim - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1BE - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1AE + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50 waitmovement 0 closedoor 13, 3 waitdooranim - goto BattleFrontier_BattleDomeCorridor_EventScript_24B18F + goto BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom -BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161 - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1D6 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1C1 +BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: @ 824B161 + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen waitmovement 0 opendoor 37, 3 waitdooranim - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1E6 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1D2 + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen waitmovement 0 closedoor 37, 3 waitdooranim -BattleFrontier_BattleDomeCorridor_EventScript_24B18F:: @ 824B18F +BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: @ 824B18F waitmovement 0 setvar VAR_0x8006, 0 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 7 waitstate end -BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: @ 824B1A1 walk_up walk_left walk_left @@ -57,13 +57,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1AE: @ 824B1AE +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50: @ 824B1AE walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: @ 824B1B2 walk_left walk_left walk_left @@ -77,12 +77,12 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1BE: @ 824B1BE +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50: @ 824B1BE walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: @ 824B1C1 walk_up walk_right walk_right @@ -101,13 +101,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1D2: @ 824B1D2 +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen: @ 824B1D2 walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: @ 824B1D6 walk_right walk_right walk_right @@ -125,12 +125,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1E6: @ 824B1E6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen: @ 824B1E6 walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1E9: @ 824B1E9 +@ Unused +BattleFrontier_BattleDomeCorridor_Movement_WalkToBattleRoomMidRight: @ 824B1E9 walk_up walk_right walk_right diff --git a/data/maps/BattleFrontier_BattleDomeLobby/map.json b/data/maps/BattleFrontier_BattleDomeLobby/map.json index 89eeb60e46ca..3559d6e1dbd7 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/map.json +++ b/data/maps/BattleFrontier_BattleDomeLobby/map.json @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249A35", + "script": "BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E10", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Man", "flag": "0" }, { @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249DFE", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Lass", "flag": "0" }, { @@ -63,7 +63,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E07", + "script": "BattleFrontier_BattleDomeLobby_EventScript_FatMan", "flag": "0" }, { @@ -76,7 +76,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249DED", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Maniac", "flag": "0" }, { @@ -89,7 +89,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249A47", + "script": "BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant", "flag": "0" } ], @@ -117,7 +117,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D52" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults" }, { "type": "sign", @@ -125,7 +125,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D84" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree" }, { "type": "sign", @@ -133,7 +133,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D6B" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults" }, { "type": "sign", @@ -141,7 +141,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E34" + "script": "BattleFrontier_BattleDomeLobby_EventScript_RulesBoard" } ] } \ No newline at end of file diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index d776835648a0..788bcbaa2758 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -1,171 +1,168 @@ BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_MapScript1_2497F2 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_MapScript2_24980F + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeLobby_OnWarp .byte 0 -BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2 - dome_21 +BattleFrontier_BattleDomeLobby_OnResume: @ 82497F2 + dome_initresultstree end BattleFrontier_BattleDomeLobby_OnWarp: @ 82497FB - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_249805 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805 +BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth:: @ 8249805 setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_249842 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_2499F9 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_24989B - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_249940 +BattleFrontier_BattleDomeLobby_OnFrame: @ 824980F + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_WonChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839 +BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus:: @ 8249839 frontier_getstatus end -BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 +BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: @ 8249842 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A45F, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage dome_set DOME_DATA_WIN_STREAK, 0 dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE - dome_set DOME_DATA_6, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B +BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: @ 824989B call BattleFrontier_EventScript_IncrementWinStreak lockall frontier_isbrain compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1 - msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_2498C9 - -BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1 - msgbox BattleFrontier_BattleDomeLobby_Text_24AD67, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 - msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, MSGBOX_DEFAULT + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce + msgbox BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints + +BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce:: @ 82498C1 + msgbox BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: @ 82498C9 + msgbox BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS - message BattleFrontier_BattleDomeLobby_Text_24A5D6 + message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved waitmessage special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE frontier_checkairshow - dome_set DOME_DATA_6, 1 - dome_set DOME_DATA_7, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE + dome_set DOME_DATA_HAS_WON_CHALLENGE, TRUE dome_set DOME_DATA_WIN_STREAK_ACTIVE, TRUE special LoadPlayerParty special HealPlayerParty - goto BattleFrontier_BattleDomeLobby_EventScript_249991 + goto BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle -BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 +BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: @ 8249940 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A5BF, MSGBOX_DEFAULT - message BattleFrontier_BattleDomeLobby_Text_24A5D6 + msgbox BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying, MSGBOX_DEFAULT + message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved waitmessage special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE frontier_checkairshow dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE - dome_set DOME_DATA_6, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE special LoadPlayerParty special HealPlayerParty - -BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991 +BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991 dome_save 0 playse SE_SAVE waitse call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2499E9 - message BattleFrontier_BattleDomeLobby_Text_24AE17 + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge + message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomeLobby_EventScript_2499E9 - case 0, BattleFrontier_BattleDomeLobby_EventScript_2499E4 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_2499E9 + case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge + case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge -BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4 +BattleFrontier_BattleDomeLobby_EventScript_RecordBattle:: @ 82499E4 call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9 - msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_EndChallenge:: @ 82499E9 + msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 +BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: @ 82499F9 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A5FE, MSGBOX_DEFAULT - message BattleFrontier_BattleDomeLobby_Text_24A61A + msgbox BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou, MSGBOX_DEFAULT + message BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2 waitmessage dome_save CHALLENGE_STATUS_SAVING playse SE_SAVE waitse frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 - goto BattleFrontier_BattleDomeLobby_EventScript_249BC2 + goto BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge -BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35 +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: @ 8249A35 lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - goto BattleFrontier_BattleDomeLobby_EventScript_249A59 + goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: @ 8249A47 lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - goto BattleFrontier_BattleDomeLobby_EventScript_249A59 + goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59 +BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: @ 8249A59 special SavePlayerParty compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CFD + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D06 - -BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles +BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D0F + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D15 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249ABF - case 1, BattleFrontier_BattleDomeLobby_EventScript_249BFA - case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge + case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge + case 2, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF - message BattleFrontier_BattleDomeLobby_Text_24A210 +BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF + message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_249C64 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge frontier_checkineligible compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT - msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT @@ -173,14 +170,14 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF special ChoosePartyForBattleFrontier waitstate compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C61 - msgbox BattleFrontier_BattleDomeLobby_Text_24A1C6, MSGBOX_YESNO + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge + msgbox BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT - case NO, BattleFrontier_BattleDomeLobby_EventScript_249C61 - case YES, BattleFrontier_BattleDomeLobby_EventScript_249B60 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C61 + case NO, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge + case YES, BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 +BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: @ 8249B60 setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER dome_init @@ -192,137 +189,135 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed dome_inittrainers -BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 +BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: @ 8249BC2 special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE dome_settrainers - msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleDomeLobby_EventScript_249C6E + call BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor special HealPlayerParty warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 255, 23, 6 setvar VAR_TEMP_0, 0 waitstate end -BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA +BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: @ 8249BFA compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D1B + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D24 - goto BattleFrontier_BattleDomeLobby_EventScript_249A72 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge + goto BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C15:: @ 8249C15 +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: @ 8249C15 switch VAR_RESULT - case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_249C30 - case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_249C3D + case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattleDomeLobby_EventScript_249C30:: @ 8249C30 - msgbox BattleFrontier_BattleDomeLobby_Text_24A353, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249C6C +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50:: @ 8249C30 + msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D - msgbox BattleFrontier_BattleDomeLobby_Text_24A2AB, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249C6C +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8249C3D + msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A +BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed:: @ 8249C4A frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - goto BattleFrontier_BattleDomeLobby_EventScript_249C64 + goto BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61 +BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge:: @ 8249C61 special LoadPlayerParty - -BattleFrontier_BattleDomeLobby_EventScript_249C64:: @ 8249C64 - msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C +BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge:: @ 8249C64 + msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: @ 8249C6C release end -BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E +BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: @ 8249C6E compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CDD + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CE5 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor waitmovement 0 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D2D + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D33 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor waitdooranim compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CED + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CF5 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor waitmovement 0 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D39 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D3F + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor waitdooranim return -BattleFrontier_BattleDomeLobby_EventScript_249CDD:: @ 8249CDD - applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D45 +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor:: @ 8249CDD + applymovement 1, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CE5:: @ 8249CE5 - applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D45 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor:: @ 8249CE5 + applymovement 6, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CED:: @ 8249CED - applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D4B +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor:: @ 8249CED + applymovement 1, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CF5:: @ 8249CF5 - applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D4B +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor:: @ 8249CF5 + applymovement 6, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CFD:: @ 8249CFD - msgbox BattleFrontier_BattleDomeLobby_Text_249EB7, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles:: @ 8249CFD + msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D06:: @ 8249D06 - msgbox BattleFrontier_BattleDomeLobby_Text_24A664, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles:: @ 8249D06 + msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D0F:: @ 8249D0F - message BattleFrontier_BattleDomeLobby_Text_249F3A +BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge:: @ 8249D0F + message BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_249D15:: @ 8249D15 - message BattleFrontier_BattleDomeLobby_Text_24A6E7 +BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge:: @ 8249D15 + message BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_249D1B:: @ 8249D1B - msgbox BattleFrontier_BattleDomeLobby_Text_249F8E, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge:: @ 8249D1B + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D24:: @ 8249D24 - msgbox BattleFrontier_BattleDomeLobby_Text_24A721, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge:: @ 8249D24 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D2D:: @ 8249D2D +BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor:: @ 8249D2D opendoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D33:: @ 8249D33 +BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor:: @ 8249D33 opendoor 17, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D39:: @ 8249D39 +BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor:: @ 8249D39 closedoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D3F:: @ 8249D3F +BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor:: @ 8249D3F closedoor 17, 4 return -BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45 +BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: @ 8249D45 walk_up walk_up walk_up @@ -330,18 +325,18 @@ BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45 walk_up step_end -BattleFrontier_BattleDomeLobby_Movement_249D4B: @ 8249D4B +BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor: @ 8249D4B walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_Movement_249D4E: @ 8249D4E +BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor: @ 8249D4E walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 +BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: @ 8249D52 lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES waitbuttonpress @@ -349,7 +344,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B +BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -357,119 +352,121 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B releaseall end -BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84 - dome_get DOME_DATA_9 +BattleFrontier_BattleDomeLobby_EventScript_ShowPrevTourneyTree:: @ 8249D84 + dome_get DOME_DATA_PREV_TOURNEY_TYPE compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DC9 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50 compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DD2 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50 compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DDB + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DE4 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen fadescreen FADE_TO_BLACK - dome_showresultstree + dome_showprevtourneytree waitstate end -BattleFrontier_BattleDomeLobby_EventScript_249DC9:: @ 8249DC9 - msgbox BattleFrontier_BattleDomeLobby_Text_24A966, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLv50:: @ 8249DC9 + msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DD2:: @ 8249DD2 - msgbox BattleFrontier_BattleDomeLobby_Text_24A9A9, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLv50:: @ 8249DD2 + msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DDB:: @ 8249DDB - msgbox BattleFrontier_BattleDomeLobby_Text_24A9EC, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsSinglesLvOpen:: @ 8249DDB + msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4 - msgbox BattleFrontier_BattleDomeLobby_Text_24AA31, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_PrevTourneyResultsDoublesLvOpen:: @ 8249DE4 + msgbox BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED +BattleFrontier_BattleDomeLobby_EventScript_Maniac:: @ 8249DED dome_getwinnersname - msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, MSGBOX_NPC + msgbox BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249DFE:: @ 8249DFE - msgbox BattleFrontier_BattleDomeLobby_Text_24AB94, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_Lass:: @ 8249DFE + msgbox BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E07:: @ 8249E07 - msgbox BattleFrontier_BattleDomeLobby_Text_24AC76, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_FatMan:: @ 8249E07 + msgbox BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E10:: @ 8249E10 - msgbox BattleFrontier_BattleDomeLobby_Text_24ACD3, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_Man:: @ 8249E10 + msgbox BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully, MSGBOX_NPC end @ A few OutsideWest event scripts are inserted here instead, two of which are unused BattleFrontier_OutsideWest_EventScript_Man3:: @ 8249E19 - msgbox BattleFrontier_OutsideWest_Text_24AB06, MSGBOX_NPC + msgbox BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier, MSGBOX_NPC end +@ Unused BattleFrontier_OutsideWest_EventScript_BattleDomeSign2:: @ 8249E22 msgbox BattleFrontier_OutsideWest_Text_BattleDomeSign2, MSGBOX_NPC end +@ Unused BattleFrontier_OutsideWest_EventScript_UnderConstructionSign:: @ 8249E2B msgbox BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E34:: @ 8249E34 +BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: @ 8249E34 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24AE63, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 + msgbox BattleFrontier_BattleDomeLobby_Text_RulesAreListed, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249E43:: @ 8249E43 - message BattleFrontier_BattleDomeLobby_Text_24AE8B +BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43 + message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading waitmessage multichoice 17, 4, MULTI_BATTLE_DOME_RULES, 0 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249E8B - case 1, BattleFrontier_BattleDomeLobby_EventScript_249E99 - case 2, BattleFrontier_BattleDomeLobby_EventScript_249EA7 - case 3, BattleFrontier_BattleDomeLobby_EventScript_249EB5 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249EB5 + case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup + case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree + case 2, BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO + case 3, BattleFrontier_BattleDomeLobby_EventScript_ExitRules + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_ExitRules end -BattleFrontier_BattleDomeLobby_EventScript_249E8B:: @ 8249E8B - msgbox BattleFrontier_BattleDomeLobby_Text_24AEAE, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup:: @ 8249E8B + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249E99:: @ 8249E99 - msgbox BattleFrontier_BattleDomeLobby_Text_24AF4C, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree:: @ 8249E99 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249EA7:: @ 8249EA7 - msgbox BattleFrontier_BattleDomeLobby_Text_24B073, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO:: @ 8249EA7 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249EB5:: @ 8249EB5 +BattleFrontier_BattleDomeLobby_EventScript_ExitRules:: @ 8249EB5 releaseall end -BattleFrontier_BattleDomeLobby_Text_249EB7: @ 8249EB7 +BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle: @ 8249EB7 .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the SINGLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_249F3A: @ 8249F3A +BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge: @ 8249F3A .string "Would you like to challenge\n" .string "the SINGLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_249F74: @ 8249F74 +BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain: @ 8249F74 .string "We hope to see you again.$" -BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E +BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: @ 8249F8E .string "The SINGLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of SINGLE BATTLES.\p" @@ -490,20 +487,20 @@ BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_24A1C6: @ 824A1C6 +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge: @ 824A1C6 .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_24A210: @ 824A210 +BattleFrontier_BattleDomeLobby_Text_WhichLevelMode: @ 824A210 .string "The tournament offers two levels\n" .string "of challenge, Level 50 and Open Level.\l" .string "Which is your choice?$" -BattleFrontier_BattleDomeLobby_Text_24A26E: @ 824A26E +BattleFrontier_BattleDomeLobby_Text_SelectThreeMons: @ 824A26E .string "Now select the three POKéMON that\n" .string "you wish to enter, please.$" -BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: @ 824A2AB .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "Also, the POKéMON must be holding\n" @@ -511,7 +508,7 @@ BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353 +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: @ 824A353 .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "You must have three different POKéMON\n" @@ -521,25 +518,27 @@ BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353 .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_24A437: @ 824A437 +BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome: @ 824A437 .string "I will now show you to\n" .string "the BATTLE DOME.$" -BattleFrontier_BattleDomeLobby_Text_24A45F: @ 824A45F +BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting: @ 824A45F .string "Excuse me!\p" .string "You didn't save before you quit your\n" .string "challenge last time.\p" .string "Because of that, your challenge so far\n" .string "has been disqualified. Sorry!$" -BattleFrontier_BattleDomeLobby_Text_24A4E9: @ 824A4E9 +BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney: @ 824A4E9 .string "Congratulations for winning\n" .string "your Battle Tournament!$" -BattleFrontier_BattleDomeLobby_Text_24A51D: @ 824A51D +@ Unused +BattleFrontier_BattleDomeLobby_Text_HereIsYourPrize: @ 824A51D .string "Here is your prize for your Battle\n" .string "Tournament victory.$" +@ Used by Verdanturf Tent BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: @ 824A554 .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @@ -550,32 +549,32 @@ BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: @ 824A56E .string "Please make room in your BAG, then come\n" .string "see me.$" -BattleFrontier_BattleDomeLobby_Text_24A5BF: @ 824A5BF +BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying: @ 824A5BF .string "Thank you for playing!$" -BattleFrontier_BattleDomeLobby_Text_24A5D6: @ 824A5D6 +BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved: @ 824A5D6 .string "Your record will be saved.\n" .string "Please wait.$" -BattleFrontier_BattleDomeLobby_Text_24A5FE: @ 824A5FE +BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou: @ 824A5FE .string "We've been waiting for you!$" -BattleFrontier_BattleDomeLobby_Text_24A61A: @ 824A61A +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2: @ 824A61A .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_24A664: @ 824A664 +BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle: @ 824A664 .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the DOUBLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A6E7: @ 824A6E7 +BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge: @ 824A6E7 .string "Would you like to challenge\n" .string "the DOUBLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721 +BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721 .string "The DOUBLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of DOUBLE BATTLES.\p" @@ -596,23 +595,23 @@ BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_24A966: @ 824A966 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLv50: @ 824A966 .string "They're the results of the last\n" .string "Level 50 SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A9A9: @ 824A9A9 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLv50: @ 824A9A9 .string "They're the results of the last\n" .string "Level 50 DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A9EC: @ 824A9EC +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsSinglesLvOpen: @ 824A9EC .string "They're the results of the last\n" .string "Open Level SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24AA31: @ 824AA31 +BattleFrontier_BattleDomeLobby_Text_PrevTourneyResultsDoublesLvOpen: @ 824AA31 .string "They're the results of the last\n" .string "Open Level DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76 +BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: @ 824AA76 .string "Did you see it?\n" .string "The last Battle Tournament?\p" .string "The winner, {STR_VAR_1}, was seriously\n" @@ -620,19 +619,21 @@ BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76 .string "You should check out the results\n" .string "on the monitor beside the PC.$" -BattleFrontier_OutsideWest_Text_24AB06: @ 824AB06 +BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier: @ 824AB06 .string "The BATTLE FRONTIER…\n" .string "I've long dreamed about a place like it.$" +@ Functionally unused BattleFrontier_OutsideWest_Text_BattleDomeSign2: @ 824AB44 .string "The BATTLE DOME\n" .string "Become the Unbeatable Superstar!$" +@ Functionally unused BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction: @ 824AB75 .string "The ??????\n" .string "Under Construction!$" -BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94 +BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: @ 824AB94 .string "When a TRAINER chains tournament\n" .string "wins at the BATTLE DOME, he or she\l" .string "gains a reputation as a star.\p" @@ -641,48 +642,48 @@ BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94 .string "A true superstar is a TRAINER who\n" .string "can keep winning tournaments.$" -BattleFrontier_BattleDomeLobby_Text_24AC76: @ 824AC76 +BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound: @ 824AC76 .string "I ran into one of the tournament\n" .string "favorites in the very first round.\p" .string "Of course I got trashed…$" -BattleFrontier_BattleDomeLobby_Text_24ACD3: @ 824ACD3 +BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully: @ 824ACD3 .string "I would've won if I'd kept this POKéMON\n" .string "held in reserve.\p" .string "You need to check your opponent's\n" .string "POKéMON carefully before choosing\l" .string "your battling POKéMON.$" -BattleFrontier_BattleDomeLobby_Text_24AD67: @ 824AD67 +BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker: @ 824AD67 .string "Congratulations!\p" .string "You defeated the DOME ACE and won\n" .string "the Battle Tournament!$" -BattleFrontier_BattleDomeLobby_Text_24ADB1: @ 824ADB1 +BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints: @ 824ADB1 .string "In recognition of your strategy--\n" .string "a thing of beauty it was, too--\l" .string "we award you these Battle Point(s)!$" -BattleFrontier_BattleDomeLobby_Text_24AE17: @ 824AE17 +BattleFrontier_BattleDomeLobby_Text_RecordLastMatch: @ 824AE17 .string "Would you like to record your\n" .string "last BATTLE DOME match on your\l" .string "FRONTIER PASS?$" -BattleFrontier_BattleDomeLobby_Text_24AE63: @ 824AE63 +BattleFrontier_BattleDomeLobby_Text_RulesAreListed: @ 824AE63 .string "The Battle Tournament rules\n" .string "are listed.$" -BattleFrontier_BattleDomeLobby_Text_24AE8B: @ 824AE8B +BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading: @ 824AE8B .string "Which heading do you want to read?$" -BattleFrontier_BattleDomeLobby_Text_24AEAE: @ 824AEAE +BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules: @ 824AEAE .string "The tournament matchups are drawn up\n" .string "based on the toughness of POKéMON\l" .string "held by TRAINERS.\p" .string "The matchups avoid having tough\n" .string "TRAINERS face each other right away.$" -BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C +BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: @ 824AF4C .string "The tournament chart, or as we call it,\n" .string "the “Tree,” is available for viewing\l" .string "in the Waiting Room from any guide.\p" @@ -693,7 +694,7 @@ BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C .string "by TRAINERS, and the battle styles of\l" .string "TRAINERS.$" -BattleFrontier_BattleDomeLobby_Text_24B073: @ 824B073 +BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules: @ 824B073 .string "If battling POKéMON faint at the same\n" .string "time--a double KO--in a tournament\l" .string "match, the REFEREES will review\l" diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index 9dc268b4c6df..ffc3991421f2 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -1,92 +1,91 @@ BattleFrontier_BattleDomePreBattleRoom_MapScripts:: @ 824B1F9 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnWarp .byte 0 -BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204: @ 824B204 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E +BattleFrontier_BattleDomePreBattleRoom_OnWarp: @ 824B204 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E:: @ 824B20E +BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth:: @ 824B20E setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222 +BattleFrontier_BattleDomePreBattleRoom_OnFrame: @ 824B218 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 +BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: @ 824B222 compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle frontier_set FRONTIER_DATA_RECORD_DISABLED, TRUE setvar VAR_TEMP_0, 1 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter waitmovement 0 lockall - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F:: @ 824B24F - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B24F + call BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage waitmessage - switch VAR_RESULT + switch VAR_RESULT @ No case? call BattleFrontier_EventScript_GetCantRecordBattle compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1 + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, 1 switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349 - case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1:: @ 824B2C1 + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree + case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge + case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle + case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge + case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1 multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, 1 switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349 - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D:: @ 824B30D - message BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7 + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree + case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge + case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge + case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D + message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F:: @ 824B33F +BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle:: @ 824B33F call BattleFrontier_EventScript_SaveBattle - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349:: @ 824B349 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA69, MSGBOX_YESNO +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: @ 824B349 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT - case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377 - message BattleFrontier_BattleDomePreBattleRoom_Text_24BA93 +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377 + message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9 - dome_resolvewinners 9 - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A +BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge:: @ 824B3A9 + dome_resolvewinners DOME_PLAYER_RETIRED + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB - message BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3 +BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: @ 824B3BB + message BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait waitmessage dome_save CHALLENGE_STATUS_PAUSED playse SE_SAVE @@ -95,70 +94,70 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB frontier_reset end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo:: @ 824B3DD + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK dome_showopponentinfo waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree:: @ 824B3F5 + call BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage fadescreen FADE_TO_BLACK dome_showtourneytree waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: @ 824B40A frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449 - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464 + case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449:: @ 824B449 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1:: @ 824B449 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452:: @ 824B452 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2:: @ 824B452 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B:: @ 824B45B - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA21, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals:: @ 824B45B + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464:: @ 824B464 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA46, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals:: @ 824B464 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D - message BattleFrontier_BattleDomePreBattleRoom_Text_24B70C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: @ 824B46D + message BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons waitmessage waitbuttonpress fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT - setvar VAR_0x8005, 2 @ 2 of the 3 party mons are selected for battle + setvar VAR_0x8005, DOME_BATTLE_PARTY_SIZE @ 2 of the 3 party mons are selected for battle special ChoosePartyForBattleFrontier waitstate frontier_resetsketch compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - dome_set DOME_DATA_8 + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + dome_set DOME_DATA_SELECTED_MONS dome_reduceparty dome_setopponent - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage - applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F + applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside waitmovement 0 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B657 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor waitmovement 0 opendoor 5, 1 waitdooranim - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B659 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor waitmovement 0 closedoor 5, 1 waitdooranim @@ -167,224 +166,229 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: @ 824B4FB frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546 - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C + case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A:: @ 824B53A - message BattleFrontier_BattleDomePreBattleRoom_Text_24B65C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1:: @ 824B53A + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540:: @ 824B540 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B689 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2:: @ 824B540 + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals:: @ 824B546 + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: @ 824B54C frontier_getbrainstatus switch VAR_RESULT - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B:: @ 824B58B - goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver:: @ 824B58B + goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0:: @ 824B5A0 - goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold:: @ 824B5A0 + goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5:: @ 824B5B5 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort:: @ 824B5B5 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE:: @ 824B5BE - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC63, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort:: @ 824B5BE + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 setvar VAR_TEMP_0, 1 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600 + call BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage fadescreen FADE_TO_BLACK dome_showstatictourneytree waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600 +BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: @ 824B600 frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634:: @ 824B634 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete:: @ 824B634 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D:: @ 824B63D - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete:: @ 824B63D + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646:: @ 824B646 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B83F, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete:: @ 824B646 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F: @ 824B64F +BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside: @ 824B64F walk_right face_left step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B652: @ 824B652 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter: @ 824B652 walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B657: @ 824B657 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor: @ 824B657 walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B659: @ 824B659 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor: @ 824B659 walk_up set_invisible step_end -BattleFrontier_BattleDomePreBattleRoom_Text_24B65C: @ 824B65C +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1: @ 824B65C .string "Your 1st-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B689: @ 824B689 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2: @ 824B689 .string "Your 2nd-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6: @ 824B6B6 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals: @ 824B6B6 .string "Your semifinal match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3: @ 824B6E3 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals: @ 824B6E3 .string "Your final match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B70C: @ 824B70C +BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons: @ 824B70C .string "Please choose the two POKéMON\n" .string "that are to appear in battle.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B748: @ 824B748 +BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay: @ 824B748 .string "Right this way, please.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B760: @ 824B760 +BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth: @ 824B760 .string "Thank you for competing!\p" .string "I'll restore your POKéMON to\n" .string "full health.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3: @ 824B7A3 +BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete: @ 824B7A3 .string "All 1st-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1: @ 824B7F1 +BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete: @ 824B7F1 .string "All 2nd-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B83F: @ 824B83F +BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete: @ 824B83F .string "All semifinal matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B88D: @ 824B88D +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForRound2: @ 824B88D .string "Congratulations for getting through\n" .string "the 1st round.\p" .string "The 2nd round is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B8E6: @ 824B8E6 +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForSemifinals: @ 824B8E6 .string "Congratulations for advancing\n" .string "to the semifinals.\p" .string "The best four teams meet in this round.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B94E: @ 824B94E +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForFinals: @ 824B94E .string "Congratulations for advancing\n" .string "to the final match.\p" .string "You're one win from the championship.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5: @ 824B9B5 +BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer: @ 824B9B5 .string "{PLAYER}'s next opponent\n" .string "is this TRAINER.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9: @ 824B9D9 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1: @ 824B9D9 .string "The tournament is in the 1st round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD: @ 824B9FD +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2: @ 824B9FD .string "The tournament is in the 2nd round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA21: @ 824BA21 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals: @ 824BA21 .string "The tournament is in the semifinals.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA46: @ 824BA46 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals: @ 824BA46 .string "The tournament is up to the final.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA69: @ 824BA69 +BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame: @ 824BA69 .string "Would you like to save and\n" .string "quit the game?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA93: @ 824BA93 +BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge: @ 824BA93 .string "Would you like to retire from your\n" .string "Battle Tournament challenge?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3: @ 824BAD3 +BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait: @ 824BAD3 .string "I am saving your data.\n" .string "Please wait.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7: @ 824BAF7 +BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch: @ 824BAF7 .string "Should I record your last match\n" .string "on your FRONTIER PASS?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E: @ 824BB2E +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: @ 824BB2E .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" .string "the DOME ACE TUCKER.\p" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC: @ 824BBAC +@ Identical to ReadyForTuckerSilver +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold: @ 824BBAC .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" .string "the DOME ACE TUCKER.\p" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A: @ 824BC2A +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort: @ 824BC2A .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BC63: @ 824BC63 +@ Identical again +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort: @ 824BC63 .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" diff --git a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc b/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc deleted file mode 100644 index 6d7bb156f59f..000000000000 --- a/data/maps/BattleFrontier_BattleTowerBattleRoom2/scripts.inc +++ /dev/null @@ -1,507 +0,0 @@ -BattleFrontier_BattleTowerBattleRoom2_MapScripts:: @ 8248EE8 - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F33 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F43 - .byte 0 - -BattleFrontier_BattleTowerBattleRoom2_MapScript1_248EF8: @ 8248EF8 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_MULTIS - call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248F0F:: @ 8248F0F - setvar VAR_0x8004, BATTLE_TOWER_FUNC_14 - special CallBattleTowerFunc - checkplayergender - compare VAR_RESULT, FEMALE - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29 - setvar VAR_OBJ_GFX_ID_F, EVENT_OBJ_GFX_BRENDAN_NORMAL - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248F29:: @ 8248F29 - setvar VAR_OBJ_GFX_ID_F, EVENT_OBJ_GFX_MAY_NORMAL - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248F2F:: @ 8248F2F - special SetBattleTowerLinkPlayerGfx - return - -BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F33: @ 8248F33 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D - .2byte 0 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248F3D:: @ 8248F3D - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2 - end - -BattleFrontier_BattleTowerBattleRoom2_MapScript2_248F43: @ 8248F43 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D - .2byte 0 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248F4D:: @ 8248F4D - setvar VAR_TEMP_0, 1 - applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249518 - applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_24951E - waitmovement 0 - frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4 - applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E - applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E - waitmovement 0 - applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 - applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 - waitmovement 0 - frontier_set FRONTIER_DATA_6, 1 - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4:: @ 8248FB4 - tower_setopponent - addobject 1 - addobject 4 - applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249528 - applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_24952E - waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249026 - tower_getopponentintro 0 - delay 15 - applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249545 - waitmovement 0 - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - tower_getopponentintro 1 - applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249545 - waitmovement 0 - msgbox gStringVar4, MSGBOX_DEFAULT - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249069 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249026:: @ 8249026 - tower_getopponentintro 0 - delay 15 - applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249545 - waitmovement 0 - messageautoscroll gStringVar4 - waitmessage - delay 48 - tower_getopponentintro 1 - applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249545 - waitmovement 0 - messageautoscroll gStringVar4 - waitmessage - delay 48 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249069:: @ 8249069 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_24210E - switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA - -BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E:: @ 824907E - frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - tower_set TOWER_DATA_LVL_MODE - setvar VAR_0x8004, 3 - special Script_TryGainNewFanFromCounter - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2490AA:: @ 82490AA - call BattleFrontier_EventScript_IncrementWinStreak - tower_setbattlewon - switch VAR_RESULT - case 7, BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF - applymovement 4, BattleFrontier_BattleTowerBattleRoom2_Movement_249534 - applymovement 1, BattleFrontier_BattleTowerBattleRoom2_Movement_249539 - waitmovement 0 - removeobject 1 - removeobject 4 - applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E - applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_24953E - waitmovement 0 - applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 - applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249524 - waitmovement 0 - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249118 - msgbox BattleFrontier_BattleTowerBattleRoom2_Text_242217, MSGBOX_DEFAULT - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249121 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249118:: @ 8249118 - messageautoscroll BattleFrontier_BattleTowerBattleRoom2_Text_242217 - waitmessage - delay 48 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249121:: @ 8249121 - special LoadPlayerParty - frontier_setpartyorder FRONTIER_MULTI_PARTY_SIZE - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - call_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249514 - playfanfare MUS_ME_ASA - waitfanfare - special HealPlayerParty - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249143:: @ 8249143 - frontier_get FRONTIER_DATA_BATTLE_NUM - call BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 - call BattleFrontier_BattleTowerBattleRoom2_EventScript_23E8E0 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_2491B1 - multichoice 19, 4, MULTI_GO_ON_RECORD_REST_RETIRE, 1 - switch VAR_RESULT - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7 - case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249223 - case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_249251 - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2491B1:: @ 82491B1 - multichoice 20, 6, MULTI_GO_ON_REST_RETIRE, 1 - switch VAR_RESULT - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249283 - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249223 - case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249251 - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2491E7:: @ 82491E7 - message BattleFrontier_BattleTowerBattleRoom2_Text_2423A3 - waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 - switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249219 - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249219:: @ 8249219 - call BattleFrontier_EventScript_SaveBattle - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249223:: @ 8249223 - msgbox BattleFrontier_BattleTowerBattleRoom2_Text_2423FC, MSGBOX_YESNO - switch VAR_RESULT - case NO, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - case YES, BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249251:: @ 8249251 - message BattleFrontier_BattleTowerBattleRoom2_Text_24244C - waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 - switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249283:: @ 8249283 - closemessage - clearflag FLAG_TEMP_2 - applymovement 5, BattleFrontier_BattleTowerBattleRoom2_Movement_249526 - applymovement 6, BattleFrontier_BattleTowerBattleRoom2_Movement_249526 - waitmovement 0 - applymovement 2, BattleFrontier_BattleTowerBattleRoom2_Movement_249541 - applymovement 3, BattleFrontier_BattleTowerBattleRoom2_Movement_249541 - waitmovement 0 - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_248FB4 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2492AF:: @ 82492AF - frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON - tower_set TOWER_DATA_LVL_MODE - setvar VAR_0x8004, 3 - special Script_TryGainNewFanFromCounter - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_2421B8 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2492DB:: @ 82492DB - message BattleFrontier_BattleTowerBattleRoom2_Text_242426 - waitmessage - tower_save CHALLENGE_STATUS_PAUSED - playse SE_SAVE - waitse - fadescreen FADE_TO_BLACK - frontier_reset - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2492FD:: @ 82492FD - compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_LINK_MULTIS - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E - copyvar VAR_TEMP_F, VAR_RESULT - switch VAR_TEMP_F - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249354 - case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_24935B - case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_249362 - case 4, BattleFrontier_BattleTowerBattleRoom2_EventScript_249369 - case 5, BattleFrontier_BattleTowerBattleRoom2_EventScript_249370 - case 6, BattleFrontier_BattleTowerBattleRoom2_EventScript_249377 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249354:: @ 8249354 - message BattleFrontier_BattleTowerBattleRoom2_Text_249547 - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_24935B:: @ 824935B - message BattleFrontier_BattleTowerBattleRoom2_Text_249578 - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249362:: @ 8249362 - message BattleFrontier_BattleTowerBattleRoom2_Text_2495A9 - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249369:: @ 8249369 - message BattleFrontier_BattleTowerBattleRoom2_Text_2495DA - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249370:: @ 8249370 - message BattleFrontier_BattleTowerBattleRoom2_Text_24960B - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249377:: @ 8249377 - message BattleFrontier_BattleTowerBattleRoom2_Text_24963C - waitmessage - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_24937E:: @ 824937E - copyvar VAR_TEMP_F, VAR_RESULT - switch VAR_TEMP_F - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493CA - case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493D6 - case 3, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493E2 - case 4, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493EE - case 5, BattleFrontier_BattleTowerBattleRoom2_EventScript_2493FA - case 6, BattleFrontier_BattleTowerBattleRoom2_EventScript_249406 - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2493CA:: @ 82493CA - message BattleFrontier_BattleTowerBattleRoom2_Text_249547 - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2493D6:: @ 82493D6 - message BattleFrontier_BattleTowerBattleRoom2_Text_249578 - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2493E2:: @ 82493E2 - message BattleFrontier_BattleTowerBattleRoom2_Text_2495A9 - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2493EE:: @ 82493EE - message BattleFrontier_BattleTowerBattleRoom2_Text_2495DA - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2493FA:: @ 82493FA - message BattleFrontier_BattleTowerBattleRoom2_Text_24960B - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249406:: @ 8249406 - message BattleFrontier_BattleTowerBattleRoom2_Text_24963C - waitmessage - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249417 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249412:: @ 8249412 - waitmessage - delay 48 - return - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249417:: @ 8249417 - goto_if_set FLAG_TEMP_2, BattleFrontier_BattleTowerBattleRoom2_EventScript_249457 - multichoice 19, 6, MULTI_GO_ON_RECORD_RETIRE, 1 - switch VAR_RESULT - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249483 - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8 - case 2, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249457:: @ 8249457 - multichoice 20, 8, MULTI_GO_ON_RETIRE, 1 - switch VAR_RESULT - case 0, BattleFrontier_BattleTowerBattleRoom2_EventScript_249483 - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249483:: @ 8249483 - setvar VAR_0x8004, 0 - setvar VAR_0x8005, 0 - message gText_LinkStandby3 - waitmessage - special sub_813B568 - waitstate - compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249412 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2494A8:: @ 82494A8 - message BattleFrontier_BattleTowerBattleRoom2_Text_2423A3 - waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 - switch VAR_RESULT - case 1, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - case MULTI_B_PRESSED, BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - call BattleFrontier_EventScript_SaveBattle - setflag FLAG_TEMP_2 - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2494DD:: @ 82494DD - message BattleFrontier_BattleTowerBattleRoom2_Text_24244C - waitmessage - multichoicedefault 20, 8, MULTI_YESNO, 1, 0 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleTowerBattleRoom2_EventScript_2494FA - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_249143 - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_2494FA:: @ 82494FA - setvar VAR_0x8004, 1 - setvar VAR_0x8005, 0 - message gText_LinkStandby3 - waitmessage - special sub_813B568 - waitstate - goto BattleFrontier_BattleTowerBattleRoom2_EventScript_24907E - end - -BattleFrontier_BattleTowerBattleRoom2_EventScript_249514:: @ 8249514 - special sub_813B534 - return - -BattleFrontier_BattleTowerBattleRoom2_Movement_249518: @ 8249518 - walk_up - walk_up - walk_up - walk_up - face_right - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_24951E: @ 824951E - walk_left - walk_up - walk_up - walk_up - face_right - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249524: @ 8249524 - face_left - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249526: @ 8249526 - walk_in_place_fastest_right - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249528: @ 8249528 - walk_down - walk_down - walk_down - walk_down - face_left - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_24952E: @ 824952E - walk_right - walk_down - walk_down - walk_down - face_left - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249534: @ 8249534 - walk_up - walk_up - walk_up - set_invisible - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249539: @ 8249539 - walk_up - walk_up - walk_up - walk_up - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_24953E: @ 824953E - walk_right - walk_right - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249541: @ 8249541 - walk_left - walk_left - walk_in_place_fastest_right - step_end - -BattleFrontier_BattleTowerBattleRoom2_Movement_249545: @ 8249545 - walk_in_place_left - step_end - -BattleFrontier_BattleTowerBattleRoom2_Text_249547: @ 8249547 - .string "The 2nd set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_249578: @ 8249578 - .string "The 3rd set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_2495A9: @ 82495A9 - .string "The 4th set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_2495DA: @ 82495DA - .string "The 5th set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24960B: @ 824960B - .string "The 6th set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24963C: @ 824963C - .string "The 7th set of opponents is next.\n" - .string "Are you ready?$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24966D: @ 824966D - .string "The 2nd set of opponents is next.\n" - .string "Do your best!$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24969D: @ 824969D - .string "The 3rd set of opponents is next.\n" - .string "Do your best!$" - -BattleFrontier_BattleTowerBattleRoom2_Text_2496CD: @ 82496CD - .string "The 4th set of opponents is next.\n" - .string "Do your best!$" - -BattleFrontier_BattleTowerBattleRoom2_Text_2496FD: @ 82496FD - .string "The 5th set of opponents is next.\n" - .string "Do your best!$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24972D: @ 824972D - .string "The 6th set of opponents is next.\n" - .string "Do your best!$" - -BattleFrontier_BattleTowerBattleRoom2_Text_24975D: @ 824975D - .string "The 7th set of opponents is next.\n" - .string "Do your best!$" - -gText_LinkStandby3:: @ 824978D - .string "Link standby…$" - -gText_YourPartnerHasRetired:: @ 824979B - .string "Your partner has retired.\p" - .string "Your BATTLE ROOM challenge\n" - .string "will be canceled.$" diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index b3fd57a0a776..297f05fb0729 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -6,7 +6,7 @@ BattleFrontier_BattleTowerLobby_MapScripts:: @ 823E67B .byte 0 BattleFrontier_BattleTowerLobby_OnResume: @ 823E690 - special sub_81653CC + special TryHideBattleTowerReporter end BattleFrontier_BattleTowerLobby_OnTransition: @ 823E694 @@ -857,7 +857,7 @@ BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful:: @ 823F3AF waitstate playse SE_SAVE waitse - special sub_80B3BC4 + special TrySetBattleTowerLinkType goto BattleFrontier_BattleTowerLobby_EventScript_EnterElevator end diff --git a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc index a822c463b2ba..f0fb42bb4953 100644 --- a/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc +++ b/data/maps/BattleFrontier_ExchangeServiceCorner/scripts.inc @@ -40,7 +40,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveDecor:: @ 825F0E5 goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_NoRoomForDecor copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints - givedecoration VAR_0x8009 + adddecoration VAR_0x8009 special UpdateBattlePointsWindow playse SE_REGI msgbox BattleFrontier_ExchangeServiceCorner_Text_WellSendItToPC, MSGBOX_DEFAULT @@ -61,7 +61,7 @@ BattleFrontier_ExchangeServiceCorner_EventScript_TryGiveItem:: @ 825F12A goto_if_eq BattleFrontier_ExchangeServiceCorner_EventScript_BagFull copyvar VAR_0x8004, VAR_0x8008 special TakeFrontierBattlePoints - giveitem VAR_0x8009, 1 + additem VAR_0x8009 special UpdateBattlePointsWindow playse SE_REGI msgbox BattleFrontier_ExchangeServiceCorner_Text_HereIsYourPrize, MSGBOX_DEFAULT diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index 0f3663f1ab41..e4b0c28e9b8c 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -32,7 +32,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckSilverSymbols:: @ 8263704 goto_if_unset FLAG_SYS_PIKE_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_PYRAMID_SILVER, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield msgbox BattleFrontier_ScottsHouse_Text_YouveCollectedAllSilverSymbols, MSGBOX_DEFAULT - giveitem_std ITEM_LANSAT_BERRY + giveitem ITEM_LANSAT_BERRY compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ScottsHouse_EventScript_BerryPocketFull setflag FLAG_COLLECTED_ALL_SILVER_SYMBOLS @@ -49,7 +49,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGoldSymbols:: @ 826376A goto_if_unset FLAG_SYS_PIKE_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield goto_if_unset FLAG_SYS_PYRAMID_GOLD, BattleFrontier_ScottsHouse_EventScript_CheckGiveShield msgbox BattleFrontier_ScottsHouse_Text_YouveCollectedAllGoldSymbols, MSGBOX_DEFAULT - giveitem_std ITEM_STARF_BERRY + giveitem ITEM_STARF_BERRY compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ScottsHouse_EventScript_BerryPocketFull setflag FLAG_COLLECTED_ALL_GOLD_SYMBOLS @@ -102,7 +102,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveSilverShield:: @ 826381B BattleFrontier_ScottsHouse_EventScript_GiveSilverShield:: @ 826387A msgbox BattleFrontier_ScottsHouse_Text_Beat50TrainersInARow, MSGBOX_DEFAULT - givedecoration_std DECOR_SILVER_SHIELD + givedecoration DECOR_SILVER_SHIELD compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ScottsHouse_EventScript_NoRoomForShield setflag FLAG_RECEIVED_SILVER_SHIELD @@ -135,7 +135,7 @@ BattleFrontier_ScottsHouse_EventScript_CheckGiveGoldShield:: @ 82638B4 BattleFrontier_ScottsHouse_EventScript_GiveGoldShield:: @ 8263913 msgbox BattleFrontier_ScottsHouse_Text_Beat100TrainersInARow, MSGBOX_DEFAULT - givedecoration_std DECOR_GOLD_SHIELD + givedecoration DECOR_GOLD_SHIELD compare VAR_RESULT, FALSE goto_if_eq BattleFrontier_ScottsHouse_EventScript_NoRoomForShield setflag FLAG_RECEIVED_GOLD_SHIELD diff --git a/data/maps/DesertUnderpass/scripts.inc b/data/maps/DesertUnderpass/scripts.inc index 437f5de4b8bb..bba7dfe081f2 100644 --- a/data/maps/DesertUnderpass/scripts.inc +++ b/data/maps/DesertUnderpass/scripts.inc @@ -15,13 +15,13 @@ DesertUnderpass_EventScript_Fossil:: @ 823AF41 end DesertUnderpass_EventScript_GiveClawFossil:: @ 823AF57 - giveitem_std ITEM_CLAW_FOSSIL + giveitem ITEM_CLAW_FOSSIL removeobject 1 release end DesertUnderpass_EventScript_GiveRootFossil:: @ 823AF68 - giveitem_std ITEM_ROOT_FOSSIL + giveitem ITEM_ROOT_FOSSIL removeobject 1 release end diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index 137b394b19e7..62bd1506319f 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -83,7 +83,7 @@ DewfordTown_EventScript_OldRodFisherman:: @ 81E95D5 DewfordTown_EventScript_GiveOldRod:: @ 81E95FF msgbox DewfordTown_Text_GiveYouOneOfMyRods, MSGBOX_DEFAULT - giveitem_std ITEM_OLD_ROD + giveitem ITEM_OLD_ROD setflag FLAG_RECEIVED_OLD_ROD msgbox DewfordTown_Text_ThrowInFishingAdvice, MSGBOX_DEFAULT release diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index 2ccb62c79212..5f7f7af8df5c 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -7,8 +7,7 @@ DewfordTown_Gym_OnTransition: @ 81FC642 end DewfordTown_Gym_EventScript_SetFlashRadius:: @ 81FC648 - checktrainerflag TRAINER_BRAWLY_1 - goto_if_eq DewfordTown_Gym_EventScript_SetLightsOn + goto_if_defeated TRAINER_BRAWLY_1, DewfordTown_Gym_EventScript_SetLightsOn call DewfordTown_Gym_EventScript_CountTrainersDefeated copyvar VAR_0x8001, VAR_0x8000 compare VAR_0x8000, 0 @@ -124,34 +123,28 @@ DewfordTown_Gym_EventScript_AnimateFlashFullBrightness:: @ 81FC75D DewfordTown_Gym_EventScript_CountTrainersDefeated:: @ 81FC768 setvar VAR_0x8000, 0 - checktrainerflag TRAINER_TAKAO - goto_if_lt DewfordTown_Gym_EventScript_CheckJocelyn + goto_if_not_defeated TRAINER_TAKAO, DewfordTown_Gym_EventScript_CheckJocelyn addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_CheckJocelyn:: @ 81FC77B - checktrainerflag TRAINER_JOCELYN - goto_if_lt DewfordTown_Gym_EventScript_CheckLaura + goto_if_not_defeated TRAINER_JOCELYN, DewfordTown_Gym_EventScript_CheckLaura addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_CheckLaura:: @ 81FC789 - checktrainerflag TRAINER_LAURA - goto_if_lt DewfordTown_Gym_EventScript_CheckBrenden + goto_if_not_defeated TRAINER_LAURA, DewfordTown_Gym_EventScript_CheckBrenden addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_CheckBrenden:: @ 81FC797 - checktrainerflag TRAINER_BRENDEN - goto_if_lt DewfordTown_Gym_EventScript_CheckCristian + goto_if_not_defeated TRAINER_BRENDEN, DewfordTown_Gym_EventScript_CheckCristian addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_CheckCristian:: @ 81FC7A5 - checktrainerflag TRAINER_CRISTIAN - goto_if_lt DewfordTown_Gym_EventScript_CheckLilith + goto_if_not_defeated TRAINER_CRISTIAN, DewfordTown_Gym_EventScript_CheckLilith addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_CheckLilith:: @ 81FC7B3 - checktrainerflag TRAINER_LILITH - goto_if_lt DewfordTown_Gym_EventScript_StopCountingTrainers + goto_if_not_defeated TRAINER_LILITH, DewfordTown_Gym_EventScript_StopCountingTrainers addvar VAR_0x8000, 1 DewfordTown_Gym_EventScript_StopCountingTrainers:: @ 81FC7C1 return DewfordTown_Gym_EventScript_Brawly:: @ 81FC7C2 - trainerbattle_single TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyPreBattle, DewfordTown_Gym_Text_BrawlyDefeat, DewfordTown_Gym_EventScript_BrawlyDefeated, NO_MUSIC + trainerbattle_single TRAINER_BRAWLY_1, DewfordTown_Gym_Text_BrawlyIntro, DewfordTown_Gym_Text_BrawlyDefeat, DewfordTown_Gym_EventScript_BrawlyDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq DewfordTown_Gym_EventScript_BrawlyRematch @@ -188,7 +181,7 @@ DewfordTown_Gym_EventScript_BrawlyDefeated:: @ 81FC7F7 end DewfordTown_Gym_EventScript_GiveBulkUp:: @ 81FC855 - giveitem_std ITEM_TM08 + giveitem ITEM_TM08 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT @@ -196,7 +189,7 @@ DewfordTown_Gym_EventScript_GiveBulkUp:: @ 81FC855 return DewfordTown_Gym_EventScript_GiveBulkUp2: @ 81FC878 - giveitem_std ITEM_TM08 + giveitem ITEM_TM08 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox DewfordTown_Gym_Text_ExplainBulkUp, MSGBOX_DEFAULT @@ -210,7 +203,7 @@ DewfordTown_Gym_EventScript_BrawlyRematch:: @ 81FC89C end DewfordTown_Gym_EventScript_Takao:: @ 81FC8B7 - trainerbattle_single TRAINER_TAKAO, DewfordTown_Gym_Text_TakaoPreBattle, DewfordTown_Gym_Text_TakaoDefeat, DewfordTown_Gym_EventScript_TakaoBrightenRoom + trainerbattle_single TRAINER_TAKAO, DewfordTown_Gym_Text_TakaoIntro, DewfordTown_Gym_Text_TakaoDefeat, DewfordTown_Gym_EventScript_TakaoBrightenRoom msgbox DewfordTown_Gym_Text_TakaoPostBattle, MSGBOX_AUTOCLOSE end @@ -220,7 +213,7 @@ DewfordTown_Gym_EventScript_TakaoBrightenRoom:: @ 81FC8D2 end DewfordTown_Gym_EventScript_Jocelyn:: @ 81FC8D9 - trainerbattle_single TRAINER_JOCELYN, DewfordTown_Gym_Text_JocelynPreBattle, DewfordTown_Gym_Text_JocelynDefeat, DewfordTown_Gym_EventScript_JocelynBrightenRoom + trainerbattle_single TRAINER_JOCELYN, DewfordTown_Gym_Text_JocelynIntro, DewfordTown_Gym_Text_JocelynDefeat, DewfordTown_Gym_EventScript_JocelynBrightenRoom msgbox DewfordTown_Gym_Text_JocelynPostBattle, MSGBOX_AUTOCLOSE end @@ -230,7 +223,7 @@ DewfordTown_Gym_EventScript_JocelynBrightenRoom:: @ 81FC8F4 end DewfordTown_Gym_EventScript_Laura:: @ 81FC8FB - trainerbattle_single TRAINER_LAURA, DewfordTown_Gym_Text_LauraPreBattle, DewfordTown_Gym_Text_LauraDefeat, DewfordTown_Gym_EventScript_LauraBrightenRoom + trainerbattle_single TRAINER_LAURA, DewfordTown_Gym_Text_LauraIntro, DewfordTown_Gym_Text_LauraDefeat, DewfordTown_Gym_EventScript_LauraBrightenRoom msgbox DewfordTown_Gym_Text_LauraPostBattle, MSGBOX_AUTOCLOSE end @@ -240,7 +233,7 @@ DewfordTown_Gym_EventScript_LauraBrightenRoom:: @ 81FC916 end DewfordTown_Gym_EventScript_Brenden:: @ 81FC91D - trainerbattle_single TRAINER_BRENDEN, DewfordTown_Gym_Text_BrendenPreBattle, DewfordTown_Gym_Text_BrendenDefeat, DewfordTown_Gym_EventScript_BrendenBrightenRoom + trainerbattle_single TRAINER_BRENDEN, DewfordTown_Gym_Text_BrendenIntro, DewfordTown_Gym_Text_BrendenDefeat, DewfordTown_Gym_EventScript_BrendenBrightenRoom msgbox DewfordTown_Gym_Text_BrendenPostBattle, MSGBOX_AUTOCLOSE end @@ -250,7 +243,7 @@ DewfordTown_Gym_EventScript_BrendenBrightenRoom:: @ 81FC938 end DewfordTown_Gym_EventScript_Cristian:: @ 81FC93F - trainerbattle_single TRAINER_CRISTIAN, DewfordTown_Gym_Text_CristianPreBattle, DewfordTown_Gym_Text_CristianDefeat, DewfordTown_Gym_EventScript_CristianBrightenRoom + trainerbattle_single TRAINER_CRISTIAN, DewfordTown_Gym_Text_CristianIntro, DewfordTown_Gym_Text_CristianDefeat, DewfordTown_Gym_EventScript_CristianBrightenRoom msgbox DewfordTown_Gym_Text_CristianPostBattle, MSGBOX_AUTOCLOSE end @@ -260,7 +253,7 @@ DewfordTown_Gym_EventScript_CristianBrightenRoom:: @ 81FC95A end DewfordTown_Gym_EventScript_Lilith:: @ 81FC961 - trainerbattle_single TRAINER_LILITH, DewfordTown_Gym_Text_LilithPreBattle, DewfordTown_Gym_Text_LilithDefeat, DewfordTown_Gym_EventScript_LilithBrightenRoom + trainerbattle_single TRAINER_LILITH, DewfordTown_Gym_Text_LilithIntro, DewfordTown_Gym_Text_LilithDefeat, DewfordTown_Gym_EventScript_LilithBrightenRoom msgbox DewfordTown_Gym_Text_LilithPostBattle, MSGBOX_AUTOCLOSE end @@ -324,7 +317,7 @@ DewfordTown_Gym_Text_GymGuidePostVictory: @ 81FCB5C .string "Whoah! It's turned too bright in here!\p" .string "Your future is bright, too man!$" -DewfordTown_Gym_Text_TakaoPreBattle: @ 81FCB9F +DewfordTown_Gym_Text_TakaoIntro: @ 81FCB9F .string "Might is right!\n" .string "Let's get naked!$" @@ -335,7 +328,7 @@ DewfordTown_Gym_Text_TakaoPostBattle: @ 81FCBCA .string "Your skill overcame my strength!\n" .string "Your technique is commendable!$" -DewfordTown_Gym_Text_JocelynPreBattle: @ 81FCC0A +DewfordTown_Gym_Text_JocelynIntro: @ 81FCC0A .string "There's no need for BRAWLY to be\n" .string "involved!\p" .string "I'll fuck u up!$" @@ -351,7 +344,7 @@ DewfordTown_Gym_Text_JocelynPostBattle: @ 81FCC6B .string "No, I'll become the POKéMON LEAGUE\n" .string "CHAMPION!$" -DewfordTown_Gym_Text_LauraPreBattle: @ 81FCD01 +DewfordTown_Gym_Text_LauraIntro: @ 81FCD01 .string "Don't you dare brush me off!\n" .string "It's not my fault if you fucking cry!$" @@ -365,7 +358,7 @@ DewfordTown_Gym_Text_LauraPostBattle: @ 81FCD4F .string "But because it's so dark, I can never\n" .string "see BRAWLY's beautiful face…$" -DewfordTown_Gym_Text_LilithPreBattle: @ 81FCDB8 +DewfordTown_Gym_Text_LilithIntro: @ 81FCDB8 .string "Ufufu…\n" .string "Are you stumbling around in the dark?$" @@ -377,7 +370,7 @@ DewfordTown_Gym_Text_LilithPostBattle: @ 81FCE08 .string "You deserve to stay lost and end up\n" .string "back at the entrance again!$" -DewfordTown_Gym_Text_BrendenPreBattle: @ 81FCE48 +DewfordTown_Gym_Text_BrendenIntro: @ 81FCE48 .string "I'll show you the gumption of\n" .string "a sailing man!$" @@ -389,7 +382,7 @@ DewfordTown_Gym_Text_BrendenPostBattle: @ 81FCEAB .string "Oh, aye! You're worthy of seeing\n" .string "our GYM LEADER.$" -DewfordTown_Gym_Text_CristianPreBattle: @ 81FCEDC +DewfordTown_Gym_Text_CristianIntro: @ 81FCEDC .string "If you mean to pass, it has to be\n" .string "my ass!$" @@ -401,14 +394,11 @@ DewfordTown_Gym_Text_CristianPostBattle: @ 81FCF26 .string "You win!\n" .string "Go after that BADGE!$" -DewfordTown_Gym_Text_BrawlyPreBattle: @ 81FCF44 +DewfordTown_Gym_Text_BrawlyIntro: @ 81FCF44 .string "AHHHHHHHHHHHHHHHHHH\n" .string "ME DEWFORD's GYM LEADER!\p" .string "AHHHHHHHHHHHHHHHHHHH\n" .string "FUCKKKKKKKKKKK\l" - .string "in the pitch-black cave!\p" - .string "So you wanted to challenge me?\n" - .string "Let's GOOOOOOOOOO!$" DewfordTown_Gym_Text_BrawlyDefeat: @ 81FD008 .string "WHAT THE FUCK\n" diff --git a/data/maps/DewfordTown_Hall/scripts.inc b/data/maps/DewfordTown_Hall/scripts.inc index 971dd2321517..6065bc957645 100644 --- a/data/maps/DewfordTown_Hall/scripts.inc +++ b/data/maps/DewfordTown_Hall/scripts.inc @@ -29,7 +29,7 @@ DewfordTown_Hall_EventScript_Man:: @ 81FD50A lock faceplayer call Common_EventScript_BufferTrendyPhrase - special sub_811EF6C + special BufferDeepLinkPhrase msgbox DewfordTown_Hall_Text_DeepLinkBetweenXAndY, MSGBOX_YESNO compare VAR_RESULT, YES goto_if_eq DewfordTown_Hall_EventScript_ConfirmTrendLink @@ -254,7 +254,7 @@ DewfordTown_Hall_EventScript_SludgeBombMan:: @ 81FD7DA call Common_EventScript_BufferTrendyPhrase goto_if_set FLAG_RECEIVED_TM36, DewfordTown_Hall_EventScript_ReceivedSludgeBomb msgbox DewfordTown_Hall_Text_GiveYouSludgeBomb, MSGBOX_DEFAULT - giveitem_std ITEM_TM36 + giveitem ITEM_TM36 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM36 diff --git a/data/maps/DewfordTown_House2/scripts.inc b/data/maps/DewfordTown_House2/scripts.inc index 43d2c1b5e684..4a57cfdcf51f 100644 --- a/data/maps/DewfordTown_House2/scripts.inc +++ b/data/maps/DewfordTown_House2/scripts.inc @@ -6,7 +6,7 @@ DewfordTown_House2_EventScript_Man:: @ 81FE22E faceplayer goto_if_set FLAG_RECEIVED_SILK_SCARF, DewfordTown_House2_EventScript_ExplainSilkScarf msgbox DewfordTown_House2_Text_WantYouToHaveSilkScarf, MSGBOX_DEFAULT - giveitem_std ITEM_SILK_SCARF + giveitem ITEM_SILK_SCARF compare VAR_RESULT, FALSE goto_if_eq DewfordTown_House2_EventScript_NoRoomForScarf setflag FLAG_RECEIVED_SILK_SCARF diff --git a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc index 22acc0361d58..69abb2974dd0 100644 --- a/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc +++ b/data/maps/EverGrandeCity_ChampionsRoom/scripts.inc @@ -39,7 +39,7 @@ EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: @ 8228A42 EverGrandeCity_ChampionsRoom_EventScript_Wallace:: @ 8228A45 playbgm MUS_DAIGO, 0 - msgbox EverGrandeCity_ChampionsRoom_Text_PreBattleSpeech, MSGBOX_DEFAULT + msgbox EverGrandeCity_ChampionsRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_WALLACE, EverGrandeCity_ChampionsRoom_Text_Defeat goto EverGrandeCity_ChampionsRoom_EventScript_Defeated end @@ -225,7 +225,7 @@ EverGrandeCity_ChampionsRoom_Movement_BirchArrives: @ 8228C43 walk_in_place_fastest_left step_end -EverGrandeCity_ChampionsRoom_Text_PreBattleSpeech: @ 8228C4C +EverGrandeCity_ChampionsRoom_Text_IntroSpeech: @ 8228C4C .string "WALLACE: Welcome, {PLAYER}{KUN}.\p" .string "That incident in SOOTOPOLIS CITY…\n" .string "That was superb work, putting an end\l" diff --git a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc index 139154fa952c..0b5462c1c6e4 100644 --- a/data/maps/EverGrandeCity_DrakesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_DrakesRoom/scripts.inc @@ -43,7 +43,7 @@ EverGrandeCity_DrakesRoom_EventScript_Drake:: @ 82286F3 faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_PostBattleSpeech playbgm MUS_SITENNOU, 0 - msgbox EverGrandeCity_DrakesRoom_Text_PreBattleSpeech, MSGBOX_DEFAULT + msgbox EverGrandeCity_DrakesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_DRAKE, EverGrandeCity_DrakesRoom_Text_Defeat goto EverGrandeCity_DrakesRoom_EventScript_Defeated end @@ -62,7 +62,7 @@ EverGrandeCity_DrakesRoom_EventScript_Defeated:: @ 8228724 release end -EverGrandeCity_DrakesRoom_Text_PreBattleSpeech: @ 822873E +EverGrandeCity_DrakesRoom_Text_IntroSpeech: @ 822873E .string "I am the last of the POKéMON LEAGUE\n" .string "ELITE FOUR, DRAKE the DRAGON master!\p" .string "In their natural state, POKéMON are\n" diff --git a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc index 6836b886dbd9..f852015a7963 100644 --- a/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc +++ b/data/maps/EverGrandeCity_GlaciasRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_GlaciasRoom_EventScript_Glacia:: @ 8228469 faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_PostBattleSpeech playbgm MUS_SITENNOU, 0 - msgbox EverGrandeCity_GlaciasRoom_Text_PreBattleSpeech, MSGBOX_DEFAULT + msgbox EverGrandeCity_GlaciasRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GLACIA, EverGrandeCity_GlaciasRoom_Text_Defeat goto EverGrandeCity_GlaciasRoom_EventScript_Defeated end @@ -59,7 +59,7 @@ EverGrandeCity_GlaciasRoom_EventScript_Defeated:: @ 822849A release end -EverGrandeCity_GlaciasRoom_Text_PreBattleSpeech: @ 82284AC +EverGrandeCity_GlaciasRoom_Text_IntroSpeech: @ 82284AC .string "Welcome, my name is GLACIA\n" .string "of the ELITE FOUR.\p" .string "I've traveled from afar to HOENN\n" diff --git a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc index 4843359c011d..538e561cf410 100644 --- a/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc +++ b/data/maps/EverGrandeCity_PhoebesRoom/scripts.inc @@ -42,7 +42,7 @@ EverGrandeCity_PhoebesRoom_EventScript_Phoebe:: @ 82281CB faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_PostBattleSpeech playbgm MUS_SITENNOU, 0 - msgbox EverGrandeCity_PhoebesRoom_Text_PreBattleSpeech, MSGBOX_DEFAULT + msgbox EverGrandeCity_PhoebesRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_PHOEBE, EverGrandeCity_PhoebesRoom_Text_Defeat goto EverGrandeCity_PhoebesRoom_EventScript_Defeated end @@ -59,7 +59,7 @@ EverGrandeCity_PhoebesRoom_EventScript_Defeated:: @ 82281FC release end -EverGrandeCity_PhoebesRoom_Text_PreBattleSpeech: @ 822820E +EverGrandeCity_PhoebesRoom_Text_IntroSpeech: @ 822820E .string "Ahahaha!\p" .string "I'm PHOEBE of the ELITE FOUR.\n" .string "I did my training on MT. PYRE.\p" diff --git a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc index 74cd384fb9e5..d671f492356a 100644 --- a/data/maps/EverGrandeCity_SidneysRoom/scripts.inc +++ b/data/maps/EverGrandeCity_SidneysRoom/scripts.inc @@ -48,7 +48,7 @@ EverGrandeCity_SidneysRoom_EventScript_Sidney:: @ 8227F64 faceplayer goto_if_set FLAG_DEFEATED_ELITE_4_SIDNEY, EverGrandeCity_SidneysRoom_EventScript_PostBattleSpeech playbgm MUS_SITENNOU, 0 - msgbox EverGrandeCity_SidneysRoom_Text_PreBattleSpeech, MSGBOX_DEFAULT + msgbox EverGrandeCity_SidneysRoom_Text_IntroSpeech, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_SIDNEY, EverGrandeCity_SidneysRoom_Text_Defeat goto EverGrandeCity_SidneysRoom_EventScript_Defeated end @@ -65,7 +65,7 @@ EverGrandeCity_SidneysRoom_EventScript_Defeated:: @ 8227F95 release end -EverGrandeCity_SidneysRoom_Text_PreBattleSpeech: @ 8227FA7 +EverGrandeCity_SidneysRoom_Text_IntroSpeech: @ 8227FA7 .string "Welcome, challenger!\n" .string "I'm SIDNEY of the ELITE FOUR.\p" .string "I like that look you're giving me.\n" diff --git a/data/maps/FallarborTown_CozmosHouse/scripts.inc b/data/maps/FallarborTown_CozmosHouse/scripts.inc index 224147bc5314..3f4db18d3a7b 100644 --- a/data/maps/FallarborTown_CozmosHouse/scripts.inc +++ b/data/maps/FallarborTown_CozmosHouse/scripts.inc @@ -18,7 +18,7 @@ FallarborTown_CozmosHouse_EventScript_PlayerHasMeteorite:: @ 8200F38 compare VAR_RESULT, NO goto_if_eq FallarborTown_CozmosHouse_EventScript_DeclineGiveMeteorite msgbox FallarborTown_CozmosHouse_Text_PleaseUseThisTM, MSGBOX_DEFAULT - giveitem_std ITEM_TM27 + giveitem ITEM_TM27 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setvar VAR_0x8004, ITEM_METEORITE diff --git a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc index 788ee088d094..ac0f42f2034a 100644 --- a/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc +++ b/data/maps/FallarborTown_MoveRelearnersHouse/scripts.inc @@ -42,7 +42,7 @@ FallarborTown_MoveRelearnersHouse_EventScript_ChooseMove:: @ 820140C compare VAR_0x8004, 0 goto_if_eq FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon msgbox FallarborTown_MoveRelearnersHouse_Text_HandedOverHeartScale, MSGBOX_DEFAULT - takeitem ITEM_HEART_SCALE, 1 + removeitem ITEM_HEART_SCALE goto FallarborTown_MoveRelearnersHouse_EventScript_ComeBackWithHeartScale end diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index f69ec82040ce..15e359175926 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -16,7 +16,7 @@ FortreeCity_Gym_EventScript_InitRotatingGates:: @ 82165C4 end FortreeCity_Gym_EventScript_Winona:: @ 82165C8 - trainerbattle_single TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaPreBattle, FortreeCity_Gym_Text_WinonaDefeat, FortreeCity_Gym_EventScript_WinonaDefeated, NO_MUSIC + trainerbattle_single TRAINER_WINONA_1, FortreeCity_Gym_Text_WinonaIntro, FortreeCity_Gym_Text_WinonaDefeat, FortreeCity_Gym_EventScript_WinonaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq FortreeCity_Gym_EventScript_WinonaRematch @@ -49,7 +49,7 @@ FortreeCity_Gym_EventScript_WinonaDefeated:: @ 82165FD end FortreeCity_Gym_EventScript_GiveAerialAce2:: @ 8216646 - giveitem_std ITEM_TM40 + giveitem ITEM_TM40 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT @@ -58,7 +58,7 @@ FortreeCity_Gym_EventScript_GiveAerialAce2:: @ 8216646 end FortreeCity_Gym_EventScript_GiveAerialAce:: @ 821666A - giveitem_std ITEM_TM40 + giveitem ITEM_TM40 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox FortreeCity_Gym_Text_ExplainAerialAce, MSGBOX_DEFAULT @@ -71,32 +71,32 @@ FortreeCity_Gym_EventScript_WinonaRematch:: @ 821668D end FortreeCity_Gym_EventScript_Jared:: @ 82166A8 - trainerbattle_single TRAINER_JARED, FortreeCity_Gym_Text_JaredPreBattle, FortreeCity_Gym_Text_JaredDefeat + trainerbattle_single TRAINER_JARED, FortreeCity_Gym_Text_JaredIntro, FortreeCity_Gym_Text_JaredDefeat msgbox FortreeCity_Gym_Text_JaredPostBattle, MSGBOX_AUTOCLOSE end FortreeCity_Gym_EventScript_Edwardo:: @ 82166BF - trainerbattle_single TRAINER_EDWARDO, FortreeCity_Gym_Text_EdwardoPreBattle, FortreeCity_Gym_Text_EdwardoDefeat + trainerbattle_single TRAINER_EDWARDO, FortreeCity_Gym_Text_EdwardoIntro, FortreeCity_Gym_Text_EdwardoDefeat msgbox FortreeCity_Gym_Text_EdwardoPostBattle, MSGBOX_AUTOCLOSE end FortreeCity_Gym_EventScript_Flint:: @ 82166D6 - trainerbattle_single TRAINER_FLINT, FortreeCity_Gym_Text_FlintPreBattle, FortreeCity_Gym_Text_FlintDefeat + trainerbattle_single TRAINER_FLINT, FortreeCity_Gym_Text_FlintIntro, FortreeCity_Gym_Text_FlintDefeat msgbox FortreeCity_Gym_Text_FlintPostBattle, MSGBOX_AUTOCLOSE end FortreeCity_Gym_EventScript_Ashley:: @ 82166ED - trainerbattle_single TRAINER_ASHLEY, FortreeCity_Gym_Text_AshleyPreBattle, FortreeCity_Gym_Text_AshleyDefeat + trainerbattle_single TRAINER_ASHLEY, FortreeCity_Gym_Text_AshleyIntro, FortreeCity_Gym_Text_AshleyDefeat msgbox FortreeCity_Gym_Text_AshleyPostBattle, MSGBOX_AUTOCLOSE end FortreeCity_Gym_EventScript_Humberto:: @ 8216704 - trainerbattle_single TRAINER_HUMBERTO, FortreeCity_Gym_Text_HumbertoPreBattle, FortreeCity_Gym_Text_HumbertoDefeat + trainerbattle_single TRAINER_HUMBERTO, FortreeCity_Gym_Text_HumbertoIntro, FortreeCity_Gym_Text_HumbertoDefeat msgbox FortreeCity_Gym_Text_HumbertoPostBattle, MSGBOX_AUTOCLOSE end FortreeCity_Gym_EventScript_Darius:: @ 821671B - trainerbattle_single TRAINER_DARIUS, FortreeCity_Gym_Text_DariusPreBattle, FortreeCity_Gym_Text_DariusDefeat + trainerbattle_single TRAINER_DARIUS, FortreeCity_Gym_Text_DariusIntro, FortreeCity_Gym_Text_DariusDefeat msgbox FortreeCity_Gym_Text_DariusPostBattle, MSGBOX_AUTOCLOSE end @@ -150,7 +150,7 @@ FortreeCity_Gym_Text_GymGuidePostVictory: @ 821687D .string "You did it!\n" .string "You've achieved liftoff!$" -FortreeCity_Gym_Text_JaredPreBattle: @ 82168A2 +FortreeCity_Gym_Text_JaredIntro: @ 82168A2 .string "Behold the elegant battle style of\n" .string "BIRD POKéMON!$" @@ -164,7 +164,7 @@ FortreeCity_Gym_Text_JaredPostBattle: @ 82168E7 .string "Do you have the smarts to get to\n" .string "our LEADER?$" -FortreeCity_Gym_Text_EdwardoPreBattle: @ 821695A +FortreeCity_Gym_Text_EdwardoIntro: @ 821695A .string "The lovers of BIRD POKéMON aspire\n" .string "to join this GYM.\p" .string "As a member of the FORTREE GYM,\n" @@ -180,7 +180,7 @@ FortreeCity_Gym_Text_EdwardoPostBattle: @ 82169F1 .string "I'm going to keep training and make\n" .string "myself even stronger.$" -FortreeCity_Gym_Text_FlintPreBattle: @ 8216A66 +FortreeCity_Gym_Text_FlintIntro: @ 8216A66 .string "There's no need for WINONA, our GYM\n" .string "LEADER, to deal with you!\p" .string "I'm plenty good enough for you!$" @@ -194,7 +194,7 @@ FortreeCity_Gym_Text_FlintPostBattle: @ 8216AD7 .string "She's the ultimate LEADER!\p" .string "Blush…$" -FortreeCity_Gym_Text_AshleyPreBattle: @ 8216B1A +FortreeCity_Gym_Text_AshleyIntro: @ 8216B1A .string "WINONA taught me personally!\n" .string "You can't beat me easily!$" @@ -205,7 +205,7 @@ FortreeCity_Gym_Text_AshleyPostBattle: @ 8216B5F .string "Thanks to WINONA, the people of\n" .string "FORTREE can live without fear.$" -FortreeCity_Gym_Text_HumbertoPreBattle: @ 8216B9E +FortreeCity_Gym_Text_HumbertoIntro: @ 8216B9E .string "When WINONA takes to battle, her face\n" .string "shines with beautiful determination…\p" .string "I'm not letting you witness that\n" @@ -220,7 +220,7 @@ FortreeCity_Gym_Text_HumbertoPostBattle: @ 8216C32 .string "Don't get distracted staring at WINONA\l" .string "or you'll go crashing down in a heap!$" -FortreeCity_Gym_Text_DariusPreBattle: @ 8216C96 +FortreeCity_Gym_Text_DariusIntro: @ 8216C96 .string "You'd better know that there are all\n" .string "sorts of FLYING-type POKéMON.\p" .string "You do know that, right?$" @@ -233,7 +233,7 @@ FortreeCity_Gym_Text_DariusPostBattle: @ 8216D0F .string "But you'd better watch it! Our LEADER\l" .string "WINONA's POKéMON are all business.$" -FortreeCity_Gym_Text_WinonaPreBattle: @ 8216D75 +FortreeCity_Gym_Text_WinonaIntro: @ 8216D75 .string "I am WINONA. I am the LEADER of\n" .string "the FORTREE POKéMON GYM.\p" .string "I have become one with BIRD POKéMON\n" diff --git a/data/maps/FortreeCity_House2/scripts.inc b/data/maps/FortreeCity_House2/scripts.inc index bfbe40ff4bbb..98b8272fe772 100644 --- a/data/maps/FortreeCity_House2/scripts.inc +++ b/data/maps/FortreeCity_House2/scripts.inc @@ -19,7 +19,7 @@ FortreeCity_House2_EventScript_HiddenPowerGiver:: @ 82177CB switch VAR_RESULT case 0, FortreeCity_House2_EventScript_WrongGuess msgbox FortreeCity_House2_Text_YourHiddenPowerHasAwoken, MSGBOX_DEFAULT - giveitem_std ITEM_TM10 + giveitem ITEM_TM10 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM10 diff --git a/data/maps/FortreeCity_House4/scripts.inc b/data/maps/FortreeCity_House4/scripts.inc index b050ba3f97e7..be5ff9c6e715 100644 --- a/data/maps/FortreeCity_House4/scripts.inc +++ b/data/maps/FortreeCity_House4/scripts.inc @@ -31,7 +31,7 @@ FortreeCity_House4_EventScript_WingullReturned:: @ 8217CD8 applymovement VAR_LAST_TALKED, Common_Movement_FacePlayer waitmovement 0 msgbox FortreeCity_House4_Text_WelcomeWingullTakeMentalHerb, MSGBOX_DEFAULT - giveitem_std ITEM_MENTAL_HERB + giveitem ITEM_MENTAL_HERB compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MENTAL_HERB diff --git a/data/maps/GraniteCave_1F/scripts.inc b/data/maps/GraniteCave_1F/scripts.inc index 9aa0332f7d17..a35147691961 100644 --- a/data/maps/GraniteCave_1F/scripts.inc +++ b/data/maps/GraniteCave_1F/scripts.inc @@ -6,7 +6,7 @@ GraniteCave_1F_EventScript_Hiker:: @ 822DA5E faceplayer goto_if_set FLAG_RECEIVED_HM05, GraniteCave_1F_EventScript_ReceivedFlash msgbox GraniteCave_1F_Text_GetsDarkAheadHereYouGo, MSGBOX_DEFAULT - giveitem_std ITEM_HM05 + giveitem ITEM_HM05 setflag FLAG_RECEIVED_HM05 msgbox GraniteCave_1F_Text_ExplainFlash, MSGBOX_DEFAULT release diff --git a/data/maps/GraniteCave_StevensRoom/scripts.inc b/data/maps/GraniteCave_StevensRoom/scripts.inc index 0456f5eafddb..1e8c44766b99 100644 --- a/data/maps/GraniteCave_StevensRoom/scripts.inc +++ b/data/maps/GraniteCave_StevensRoom/scripts.inc @@ -9,7 +9,7 @@ GraniteCave_StevensRoom_EventScript_Steven:: @ 822DC7B call Common_EventScript_PlayerHandedOverTheItem setflag FLAG_DELIVERED_STEVEN_LETTER msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM47 + giveitem ITEM_TM47 compare VAR_RESULT, FALSE call_if_eq GraniteCave_StevensRoom_EventScript_BagFull msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT diff --git a/data/maps/LavaridgeTown/scripts.inc b/data/maps/LavaridgeTown/scripts.inc index dc45f94d4410..5d86f3652838 100644 --- a/data/maps/LavaridgeTown/scripts.inc +++ b/data/maps/LavaridgeTown/scripts.inc @@ -70,7 +70,7 @@ LavaridgeTown_EventScript_RivalGiveGoGoggles:: @ 81EA551 LavaridgeTown_EventScript_MayGiveGoGoggles:: @ 81EA5B5 msgbox LavaridgeTown_Text_MayNiceBadgesTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_GO_GOGGLES + giveitem ITEM_GO_GOGGLES setflag FLAG_RECEIVED_GO_GOGGLES msgbox LavaridgeTown_Text_MayExplainGoGogglesChallengeDad, MSGBOX_DEFAULT goto LavaridgeTown_EventScript_RivalExit @@ -78,7 +78,7 @@ LavaridgeTown_EventScript_MayGiveGoGoggles:: @ 81EA5B5 LavaridgeTown_EventScript_BrendanGiveGoGoggles:: @ 81EA5DA msgbox LavaridgeTown_Text_BrendanNiceBadgesTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_GO_GOGGLES + giveitem ITEM_GO_GOGGLES setflag FLAG_RECEIVED_GO_GOGGLES msgbox LavaridgeTown_Text_BrendanExplainGoGogglesChallengeDad, MSGBOX_DEFAULT goto LavaridgeTown_EventScript_RivalExit diff --git a/data/maps/LavaridgeTown_Gym_1F/scripts.inc b/data/maps/LavaridgeTown_Gym_1F/scripts.inc index db9b5b74eba9..cc6e930ff877 100644 --- a/data/maps/LavaridgeTown_Gym_1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_1F/scripts.inc @@ -14,45 +14,37 @@ LavaridgeTown_Gym_1F_EventScript_SetTrainerTempVars:: @ 81FE705 setvar VAR_TEMP_D, 0 setvar VAR_TEMP_E, 0 setvar VAR_TEMP_F, 0 - checktrainerflag TRAINER_COLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar + goto_if_defeated TRAINER_COLE LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar setvar VAR_TEMP_B, 1 LavaridgeTown_Gym_1F_EventScript_SetGeraldTempVar:: @ 81FE72C - checktrainerflag TRAINER_GERALD - goto_if_eq LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar + goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar setvar VAR_TEMP_C, 1 LavaridgeTown_Gym_1F_EventScript_SetAxleTempVar:: @ 81FE73A - checktrainerflag TRAINER_AXLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar + goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar setvar VAR_TEMP_D, 1 LavaridgeTown_Gym_1F_EventScript_SetDanielleTempVar:: @ 81FE748 - checktrainerflag TRAINER_DANIELLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars + goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars setvar VAR_TEMP_E, 1 LavaridgeTown_Gym_1F_EventScript_EndSetTrainerTempVars:: @ 81FE756 return LavaridgeTown_Gym_1F_EventScript_CheckHideTrainers:: @ 81FE757 - checktrainerflag TRAINER_COLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_CheckHideGerald + goto_if_defeated TRAINER_COLE, LavaridgeTown_Gym_1F_EventScript_CheckHideGerald setobjectmovementtype 2, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_1F_EventScript_CheckHideGerald:: @ 81FE764 - checktrainerflag TRAINER_GERALD - goto_if_eq LavaridgeTown_Gym_1F_EventScript_CheckHideAxle + goto_if_defeated TRAINER_GERALD, LavaridgeTown_Gym_1F_EventScript_CheckHideAxle setobjectmovementtype 3, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_1F_EventScript_CheckHideAxle:: @ 81FE771 - checktrainerflag TRAINER_AXLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle + goto_if_defeated TRAINER_AXLE, LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle setobjectmovementtype 4, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_1F_EventScript_CheckHideDanielle:: @ 81FE77E - checktrainerflag TRAINER_DANIELLE - goto_if_eq LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers + goto_if_defeated TRAINER_DANIELLE, LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers setobjectmovementtype 5, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_1F_EventScript_EndCheckHideTrainers:: @ 81FE78B return LavaridgeTown_Gym_1F_EventScript_Flannery:: @ 81FE78C - trainerbattle_single TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryPreBattle, LavaridgeTown_Gym_1F_Text_FlanneryDefeat, LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated, NO_MUSIC + trainerbattle_single TRAINER_FLANNERY_1, LavaridgeTown_Gym_1F_Text_FlanneryIntro, LavaridgeTown_Gym_1F_Text_FlanneryDefeat, LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, 1 goto_if_eq LavaridgeTown_Gym_1F_EventScript_FlanneryRematch @@ -89,7 +81,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryDefeated:: @ 81FE7C1 end LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: @ 81FE81D - giveitem_std ITEM_TM50 + giveitem ITEM_TM50 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT @@ -98,7 +90,7 @@ LavaridgeTown_Gym_1F_EventScript_GiveOverheat2:: @ 81FE81D end LavaridgeTown_Gym_1F_EventScript_GiveOverheat:: @ 81FE841 - giveitem_std ITEM_TM50 + giveitem ITEM_TM50 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox LavaridgeTown_Gym_1F_Text_ExplainOverheat, MSGBOX_DEFAULT @@ -111,7 +103,7 @@ LavaridgeTown_Gym_1F_EventScript_FlanneryRematch:: @ 81FE864 end LavaridgeTown_Gym_1F_EventScript_Cole:: @ 81FE87F - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_COLE, 2, LavaridgeTown_Gym_1F_Text_ColePreBattle, LavaridgeTown_Gym_1F_Text_ColeDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_COLE, 2, LavaridgeTown_Gym_1F_Text_ColeIntro, LavaridgeTown_Gym_1F_Text_ColeDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_ColePostBattle MSGBOX_AUTOCLOSE end @@ -124,37 +116,37 @@ LavaridgeTown_Gym_EventScript_CheckTrainerScript:: @ 81FE89A end LavaridgeTown_Gym_1F_EventScript_Axle:: @ 81FE8AF - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_AXLE, 4, LavaridgeTown_Gym_1F_Text_AxlePreBattle, LavaridgeTown_Gym_1F_Text_AxleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_AXLE, 4, LavaridgeTown_Gym_1F_Text_AxleIntro, LavaridgeTown_Gym_1F_Text_AxleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_AxlePostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_B1F_EventScript_Keegan:: @ 81FE8CA - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_KEEGAN, 2, LavaridgeTown_Gym_B1F_Text_KeeganPreBattle, LavaridgeTown_Gym_B1F_Text_KeeganDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_KEEGAN, 2, LavaridgeTown_Gym_B1F_Text_KeeganIntro, LavaridgeTown_Gym_B1F_Text_KeeganDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_KeeganPostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_1F_EventScript_Danielle:: @ 81FE8E5 - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_DANIELLE, 5, LavaridgeTown_Gym_1F_Text_DaniellePreBattle, LavaridgeTown_Gym_1F_Text_DanielleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_DANIELLE, 5, LavaridgeTown_Gym_1F_Text_DanielleIntro, LavaridgeTown_Gym_1F_Text_DanielleDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_DaniellePostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_1F_EventScript_Gerald:: @ 81FE900 - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_GERALD, 3, LavaridgeTown_Gym_1F_Text_GeraldPreBattle, LavaridgeTown_Gym_1F_Text_GeraldDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_GERALD, 3, LavaridgeTown_Gym_1F_Text_GeraldIntro, LavaridgeTown_Gym_1F_Text_GeraldDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_1F_Text_GeraldPostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_B1F_EventScript_Jace:: @ 81FE91B - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JACE, 1, LavaridgeTown_Gym_B1F_Text_JacePreBattle, LavaridgeTown_Gym_B1F_Text_JaceDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JACE, 1, LavaridgeTown_Gym_B1F_Text_JaceIntro, LavaridgeTown_Gym_B1F_Text_JaceDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_JacePostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_B1F_EventScript_Jeff:: @ 81FE936 - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JEFF, 3, LavaridgeTown_Gym_B1F_Text_JeffPreBattle, LavaridgeTown_Gym_B1F_Text_JeffDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_JEFF, 3, LavaridgeTown_Gym_B1F_Text_JeffIntro, LavaridgeTown_Gym_B1F_Text_JeffDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_JeffPostBattle, MSGBOX_AUTOCLOSE end LavaridgeTown_Gym_B1F_EventScript_Eli:: @ 81FE951 - trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_ELI, 4, LavaridgeTown_Gym_B1F_Text_EliPreBattle, LavaridgeTown_Gym_B1F_Text_EliDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript + trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, TRAINER_ELI, 4, LavaridgeTown_Gym_B1F_Text_EliIntro, LavaridgeTown_Gym_B1F_Text_EliDefeat, LavaridgeTown_Gym_EventScript_CheckTrainerScript msgbox LavaridgeTown_Gym_B1F_Text_EliPostBattle, MSGBOX_AUTOCLOSE end @@ -207,7 +199,7 @@ LavaridgeTown_Gym_1F_Text_GymGuideAdvice: @ 81FE9BF LavaridgeTown_Gym_1F_Text_GymGuidePostVictory: @ 81FEAB8 .string "Yow! That was a scorching-hot battle!$" -LavaridgeTown_Gym_1F_Text_ColePreBattle: @ 81FEADE +LavaridgeTown_Gym_1F_Text_ColeIntro: @ 81FEADE .string "Owowowowow!\n" .string "Yikes, it's hot!$" @@ -220,7 +212,7 @@ LavaridgeTown_Gym_1F_Text_ColePostBattle: @ 81FEB1C .string "It's effective for healing pain in\n" .string "your joints.$" -LavaridgeTown_Gym_1F_Text_AxlePreBattle: @ 81FEB7B +LavaridgeTown_Gym_1F_Text_AxleIntro: @ 81FEB7B .string "I'm trying to relieve my stress.\n" .string "Don't come along and stress me out!$" @@ -232,7 +224,7 @@ LavaridgeTown_Gym_1F_Text_AxlePostBattle: @ 81FEBE1 .string "If you spend too much time buried in\n" .string "hot sand, it tuckers you out…$" -LavaridgeTown_Gym_B1F_Text_KeeganPreBattle: @ 81FEC31 +LavaridgeTown_Gym_B1F_Text_KeeganIntro: @ 81FEC31 .string "You must be getting tired by now.\n" .string "You'd like to rest in the hot sand,\l" .string "wouldn't you?\p" @@ -249,7 +241,7 @@ LavaridgeTown_Gym_B1F_Text_KeeganPostBattle: @ 81FED02 .string "If you don't watch yourself, you'll be\n" .string "burned seriously.$" -LavaridgeTown_Gym_1F_Text_GeraldPreBattle: @ 81FED72 +LavaridgeTown_Gym_1F_Text_GeraldIntro: @ 81FED72 .string "Can your POKéMON withstand\n" .string "392-degree heat?$" @@ -262,7 +254,7 @@ LavaridgeTown_Gym_1F_Text_GeraldPostBattle: @ 81FEDBB .string "Your POKéMON beat me, so they should\n" .string "easily survive in magma.$" -LavaridgeTown_Gym_1F_Text_DaniellePreBattle: @ 81FEE22 +LavaridgeTown_Gym_1F_Text_DanielleIntro: @ 81FEE22 .string "Um…\n" .string "Okay, I'll battle with you.$" @@ -273,7 +265,7 @@ LavaridgeTown_Gym_1F_Text_DaniellePostBattle: @ 81FEE5D .string "I'm going to be a pretty and strong\n" .string "TRAINER just like FLANNERY.$" -LavaridgeTown_Gym_B1F_Text_JacePreBattle: @ 81FEE9D +LavaridgeTown_Gym_B1F_Text_JaceIntro: @ 81FEE9D .string "Come on, get with it!\n" .string "Let's go before my feelings cool!$" @@ -286,7 +278,7 @@ LavaridgeTown_Gym_B1F_Text_JacePostBattle: @ 81FEF07 .string "within you, you may stand a chance\l" .string "against our LEADER.$" -LavaridgeTown_Gym_B1F_Text_JeffPreBattle: @ 81FEF60 +LavaridgeTown_Gym_B1F_Text_JeffIntro: @ 81FEF60 .string "See how the flames blaze wildly?\n" .string "They flare in anticipation of my win!$" @@ -298,7 +290,7 @@ LavaridgeTown_Gym_B1F_Text_JeffPostBattle: @ 81FEFC2 .string "I can walk on hot coals barefoot!\p" .string "…Don't even think about trying it!$" -LavaridgeTown_Gym_B1F_Text_EliPreBattle: @ 81FF025 +LavaridgeTown_Gym_B1F_Text_EliIntro: @ 81FF025 .string "As much as I love mountains,\n" .string "I especially love volcanoes.$" @@ -311,8 +303,8 @@ LavaridgeTown_Gym_B1F_Text_EliPostBattle: @ 81FF09A .string "of FLANNERY's power.\p" .string "Hehehehe.$" -LavaridgeTown_Gym_1F_Text_FlanneryPreBattle: @ 81FF0DC - .string "SLurp\p" +LavaridgeTown_Gym_1F_Text_FlanneryIntro: @ 81FF0DC + .string "Welcome… No, wait.\p" .string "Puny TRAINER, how good to see you've\n" .string "made it here!\p" .string "I have been entrusted with the…\n" diff --git a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc index 9be4e297512e..3a8f71fadfef 100644 --- a/data/maps/LavaridgeTown_Gym_B1F/scripts.inc +++ b/data/maps/LavaridgeTown_Gym_B1F/scripts.inc @@ -13,39 +13,31 @@ LavaridgeTown_Gym_B1F_EventScript_SetTrainerTempVars:: @ 81FF88F setvar VAR_TEMP_8, 0 setvar VAR_TEMP_9, 0 setvar VAR_TEMP_A, 0 - checktrainerflag TRAINER_KEEGAN - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar + goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar setvar VAR_TEMP_7, 1 LavaridgeTown_Gym_B1F_EventScript_SetJaceTempVar:: @ 81FF8B1 - checktrainerflag TRAINER_JACE - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar + goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar setvar VAR_TEMP_8, 1 LavaridgeTown_Gym_B1F_EventScript_SetJeffTempVar:: @ 81FF8BF - checktrainerflag TRAINER_JEFF - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar + goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar setvar VAR_TEMP_9, 1 LavaridgeTown_Gym_B1F_EventScript_SetEliTempVar:: @ 81FF8CD - checktrainerflag TRAINER_ELI - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars + goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars setvar VAR_TEMP_A, 1 LavaridgeTown_Gym_B1F_EventScript_EndSetTrainerTempVars:: @ 81FF8DB return LavaridgeTown_Gym_B1F_EventScript_CheckHideTrainers:: @ 81FF8DC - checktrainerflag TRAINER_KEEGAN - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_CheckHideJace + goto_if_defeated TRAINER_KEEGAN, LavaridgeTown_Gym_B1F_EventScript_CheckHideJace setobjectmovementtype 2, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_B1F_EventScript_CheckHideJace:: @ 81FF8E9 - checktrainerflag TRAINER_JACE - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff + goto_if_defeated TRAINER_JACE, LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff setobjectmovementtype 1, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_B1F_EventScript_CheckHideJeff:: @ 81FF8F6 - checktrainerflag TRAINER_JEFF - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_CheckHideEli + goto_if_defeated TRAINER_JEFF, LavaridgeTown_Gym_B1F_EventScript_CheckHideEli setobjectmovementtype 3, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_B1F_EventScript_CheckHideEli:: @ 81FF903 - checktrainerflag TRAINER_ELI - goto_if_eq LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers + goto_if_defeated TRAINER_ELI, LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers setobjectmovementtype 4, MOVEMENT_TYPE_HIDDEN LavaridgeTown_Gym_B1F_EventScript_EndCheckHideTrainers:: @ 81FF910 return diff --git a/data/maps/LavaridgeTown_HerbShop/scripts.inc b/data/maps/LavaridgeTown_HerbShop/scripts.inc index c324685896aa..5f320a9423e7 100644 --- a/data/maps/LavaridgeTown_HerbShop/scripts.inc +++ b/data/maps/LavaridgeTown_HerbShop/scripts.inc @@ -30,7 +30,7 @@ LavaridgeTown_HerbShop_EventScript_OldMan:: @ 81FE505 faceplayer goto_if_set FLFLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_ExplainCharcoal msgbox LavaridgeTown_HerbShop_Text_YouveComeToLookAtHerbalMedicine, MSGBOX_DEFAULT - giveitem_std ITEM_CHARCOAL + giveitem ITEM_CHARCOAL compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLFLAG_RECEIVED_CHARCOAL diff --git a/data/maps/LilycoveCity/scripts.inc b/data/maps/LilycoveCity/scripts.inc index e2f76c163ff4..fb3775f95eee 100644 --- a/data/maps/LilycoveCity/scripts.inc +++ b/data/maps/LilycoveCity/scripts.inc @@ -38,7 +38,7 @@ LilycoveCity_EventScript_BerryGentleman:: @ 81E2BD8 msgbox LilycoveCity_Text_BerrySuitsYou, MSGBOX_DEFAULT random 10 addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_LILYCOVE_RECEIVED_BERRY @@ -296,32 +296,32 @@ LilycoveCity_EventScript_DeclineBrendanBattle:: @ 81E2ECD end LilycoveCity_EventScript_BattleMayTreecko:: @ 81E2EDE - trainerbattle_no_intro TRAINER_MAY_12, LilycoveCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_LILYCOVE_TREECKO, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end LilycoveCity_EventScript_BattleMayTorchic:: @ 81E2EEE - trainerbattle_no_intro TRAINER_MAY_13, LilycoveCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_LILYCOVE_TORCHIC, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end LilycoveCity_EventScript_BattleMayMudkip:: @ 81E2EFE - trainerbattle_no_intro TRAINER_MAY_11, LilycoveCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_LILYCOVE_MUDKIP, LilycoveCity_Text_MayDefeat goto LilycoveCity_EventScript_DefeatedMay end LilycoveCity_EventScript_BattleBrendanTreecko:: @ 81E2F0E - trainerbattle_no_intro TRAINER_BRENDAN_14, LilycoveCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_TREECKO, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end LilycoveCity_EventScript_BattleBrendanTorchic:: @ 81E2F1E - trainerbattle_no_intro TRAINER_BRENDAN_15, LilycoveCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_TORCHIC, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end LilycoveCity_EventScript_BattleBrendanMudkip:: @ 81E2F2E - trainerbattle_no_intro TRAINER_BRENDAN_13, LilycoveCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_LILYCOVE_MUDKIP, LilycoveCity_Text_BrendanDefeat goto LilycoveCity_EventScript_DefeatedBrendan end diff --git a/data/maps/LilycoveCity_ContestLobby/scripts.inc b/data/maps/LilycoveCity_ContestLobby/scripts.inc index bdfce43253f2..3dd3259c71f6 100644 --- a/data/maps/LilycoveCity_ContestLobby/scripts.inc +++ b/data/maps/LilycoveCity_ContestLobby/scripts.inc @@ -360,7 +360,7 @@ LilycoveCity_ContestLobby_EventScript_SetMasterContestType:: @ 821A5C9 LilycoveCity_ContestLobby_EventScript_SetDebug:: @ 821A5CF setflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR copyvar VAR_LILYCOVE_MUSEUM_2F_STATE, 1 - giveitem ITEM_CONTEST_PASS, 1 + additem ITEM_CONTEST_PASS setvar VAR_0x800B, 8 setvar VAR_CONTEST_RANK, CONTEST_RANK_MASTER setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 1 diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 906286bc7853..12cb4727c3c2 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -113,16 +113,16 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_CheckMoneyLemonade:: @ 8220313 checkmoney 350, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneyFreshWater:: @ 822031A - takemoney 200, 0 +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater:: @ 822031A + removemoney 200, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneySodaPop:: @ 8220321 - takemoney 300, 0 +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop:: @ 8220321 + removemoney 300, 0 return -LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneyLemonade:: @ 8220328 - takemoney 350, 0 +LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade:: @ 8220328 + removemoney 350, 0 return LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F @@ -138,16 +138,16 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink compare VAR_TEMP_1, 0 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneyFreshWater + call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyFreshWater compare VAR_TEMP_1, 1 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneySodaPop + call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneySodaPop compare VAR_TEMP_1, 2 - call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_TakeMoneyLemonade + call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_RemoveMoneyLemonade updatemoneybox 0, 0 bufferitemname 0, VAR_TEMP_0 playse SE_JIHANKI msgbox LilycoveCity_DepartmentStoreRooftop_Text_CanOfDrinkDroppedDown, MSGBOX_DEFAULT - giveitem VAR_TEMP_0, 1 + additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 bufferstdstring 2, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT @@ -159,7 +159,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink playse SE_JIHANKI msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT - giveitem VAR_TEMP_0, 1 + additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 bufferstdstring 2, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT @@ -171,7 +171,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_TryBuyDrink:: @ 822032F goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_NoRoomForDrink playse SE_JIHANKI msgbox LilycoveCity_DepartmentStoreRooftop_Text_ExtraCanOfDrinkDroppedDown, MSGBOX_DEFAULT - giveitem VAR_TEMP_0, 1 + additem VAR_TEMP_0 bufferitemname 1, VAR_TEMP_0 bufferstdstring 2, STDSTRING_ITEMS msgbox gText_PutItemInPocket, MSGBOX_DEFAULT diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index 117dc60347ee..a3cf54ee0205 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -48,7 +48,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_LotteryClerk:: @ 821F69C call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_FourDigitMatch compare VAR_0x8004, 4 call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_FullMatch - giveitem_std VAR_0x8005 + giveitem VAR_0x8005 compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_RecordPrizeNoRoom special TryPutLotteryWinnerReportOnAir @@ -112,7 +112,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize:: @ 821F7ED LilycoveCity_DepartmentStore_1F_EventScript_GivePrizeFromEarlier:: @ 821F7F7 msgbox LilycoveCity_DepartmentStore_1F_Text_PrizeWeveBeenHolding, MSGBOX_DEFAULT - giveitem_std VAR_POKELOT_PRIZE_ITEM + giveitem VAR_POKELOT_PRIZE_ITEM compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_NoRoomForPrize copyvar VAR_0x8004, VAR_POKELOT_PRIZE_PLACE diff --git a/data/maps/LilycoveCity_Harbor/scripts.inc b/data/maps/LilycoveCity_Harbor/scripts.inc index cf273bcb81d1..355b813de907 100644 --- a/data/maps/LilycoveCity_Harbor/scripts.inc +++ b/data/maps/LilycoveCity_Harbor/scripts.inc @@ -364,7 +364,7 @@ LilycoveCity_Harbor_EventScript_BoardFerryWithSailor:: @ 821E514 compare VAR_FACING, DIR_EAST call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast delay 30 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 setvar VAR_0x8004, 2 call Common_EventScript_FerryDepart return @@ -428,7 +428,7 @@ LilycoveCity_Harbor_EventScript_BoardFerry:: @ 821E5CC compare VAR_FACING, DIR_EAST call_if_eq LilycoveCity_Harbor_EventScript_PlayerBoardFerryEast delay 30 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 setvar VAR_0x8004, 2 call Common_EventScript_FerryDepart return @@ -457,8 +457,7 @@ LilycoveCity_Harbor_Movement_PlayerBoardFerryNorth: @ 821E633 walk_up step_end -@ Unused -LilycoveCity_Harbor_Movement_21E635: @ 821E635 +LilycoveCity_Harbor_Movement_UnusedBoardFerry: @ 821E635 walk_up step_end diff --git a/data/maps/LilycoveCity_House2/scripts.inc b/data/maps/LilycoveCity_House2/scripts.inc index 517ba0434784..29d741abd4be 100644 --- a/data/maps/LilycoveCity_House2/scripts.inc +++ b/data/maps/LilycoveCity_House2/scripts.inc @@ -6,7 +6,7 @@ LilycoveCity_House2_EventScript_FatMan:: @ 821ED75 faceplayer goto_if_set FLAG_RECEIVED_TM44, LilycoveCity_House2_EventScript_ReceivedRest msgbox LilycoveCity_House2_Text_NotAwakeYetHaveThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM44 + giveitem ITEM_TM44 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM44 diff --git a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc index f3328a979553..0d06d8af4cd4 100644 --- a/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc +++ b/data/maps/LilycoveCity_LilycoveMuseum_2F/scripts.inc @@ -118,7 +118,7 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_ThankPlayer:: @ 82198C3 LilycoveCity_LilycoveMuseum_2F_EventScript_GiveGlassOrnament:: @ 82198EA applymovement 1, Common_Movement_FacePlayer msgbox LilycoveCity_LilycoveMuseum_2F_Text_TokenOfGratitude, MSGBOX_DEFAULT - givedecoration_std DECOR_GLASS_ORNAMENT + givedecoration DECOR_GLASS_ORNAMENT compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_NoRoomForGlassOrnament setflag FLAG_RECEIVED_GLASS_ORNAMENT diff --git a/data/maps/LittlerootTown/scripts.inc b/data/maps/LittlerootTown/scripts.inc index 06e37bbea8ad..0ae6cca6fd5f 100644 --- a/data/maps/LittlerootTown/scripts.inc +++ b/data/maps/LittlerootTown/scripts.inc @@ -167,7 +167,7 @@ LittlerootTown_EventScript_GoInsideWithMom:: @ 81E7F17 waitmovement 0 setflag FLAG_HIDE_LITTLEROOT_TOWN_MOM_OUTSIDE setvar VAR_LITTLEROOT_INTRO_STATE, 3 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor VAR_0x8004, VAR_0x8005 waitdooranim clearflag FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index ab9504d6897a..45ad13440fc5 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -563,7 +563,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_GivePokedex:: @ 81FA2F8 LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: @ 81FA352 msgbox LittlerootTown_ProfessorBirchsLab_Text_MayGotPokedexTooTakeThese, MSGBOX_DEFAULT - giveitem_std ITEM_POKE_BALL, 5 + giveitem ITEM_POKE_BALL, 5 compare VAR_RESULT, FALSE call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_MayNoRoomForPokeBalls msgbox LittlerootTown_ProfessorBirchsLab_Text_CatchCutePokemonWithPokeBalls, MSGBOX_DEFAULT @@ -572,7 +572,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_MayGivePokeBalls:: @ 81FA352 LittlerootTown_ProfessorBirchsLab_EventScript_BrendanGivePokeBalls:: @ 81FA37F msgbox LittlerootTown_ProfessorBirchsLab_Text_BrendanGotPokedexTooTakeThese, MSGBOX_DEFAULT - giveitem_std ITEM_POKE_BALL, 5 + giveitem ITEM_POKE_BALL, 5 compare VAR_RESULT, FALSE call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_BrendanNoRoomForPokeBalls msgbox LittlerootTown_ProfessorBirchsLab_Text_CatchCoolPokemonWithPokeBalls, MSGBOX_DEFAULT diff --git a/data/maps/MagmaHideout_4F/scripts.inc b/data/maps/MagmaHideout_4F/scripts.inc index e536709b1cd3..5251c75ae45d 100644 --- a/data/maps/MagmaHideout_4F/scripts.inc +++ b/data/maps/MagmaHideout_4F/scripts.inc @@ -54,7 +54,7 @@ MagmaHideout_4F_EventScript_Maxie:: @ 823A560 waitmovement 0 msgbox MagmaHideout_4F_Text_MaxieOhItWasYou, MSGBOX_DEFAULT closemessage - trainerbattle_no_intro TRAINER_MAXIE_1, MagmaHideout_4F_Text_MaxieDefeat + trainerbattle_no_intro TRAINER_MAXIE_MAGMA_HIDEOUT, MagmaHideout_4F_Text_MaxieDefeat msgbox MagmaHideout_4F_Text_MaxieImGoingAfterGroudon, MSGBOX_DEFAULT closemessage clearflag FLAG_HIDE_SLATEPORT_CITY_CAPTAIN_STERN @@ -121,7 +121,7 @@ MagmaHideout_4F_EventScript_Grunt13:: @ 823A6BA end MagmaHideout_4F_EventScript_Tabitha:: @ 823A6D1 - trainerbattle_single TRAINER_TABITHA_3, MagmaHideout_4F_Text_TabithaIntro, MagmaHideout_4F_Text_TabithaDefeat + trainerbattle_single TRAINER_TABITHA_MAGMA_HIDEOUT, MagmaHideout_4F_Text_TabithaIntro, MagmaHideout_4F_Text_TabithaDefeat msgbox MagmaHideout_4F_Text_TabithaPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 3410664a1998..fac5e84ce551 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -204,7 +204,7 @@ MauvilleCity_EventScript_ScottExitEast:: @ 81DF628 MauvilleCity_EventScript_BattleWally:: @ 81DF63A msgbox MauvilleCity_Text_WallyHereICome, MSGBOX_DEFAULT - trainerbattle_no_intro TRAINER_WALLY_2, MauvilleCity_Text_WallyDefeat + trainerbattle_no_intro TRAINER_WALLY_MAUVILLE, MauvilleCity_Text_WallyDefeat applymovement 6, Common_Movement_WalkInPlaceFastestRight waitmovement 0 msgbox MauvilleCity_Text_WallyIllGoBackToVerdanturf, MSGBOX_DEFAULT @@ -425,7 +425,7 @@ MauvilleCity_EventScript_Wattson:: @ 81DF73A goto_if_eq MauvilleCity_EventScript_CompletedNewMauville goto_if_set FLAG_GOT_BASEMENT_KEY_FROM_WATTSON, MauvilleCity_EventScript_BegunNewMauville msgbox MauvilleCity_Text_WattsonNeedFavorTakeKey, MSGBOX_DEFAULT - giveitem_std ITEM_BASEMENT_KEY + giveitem ITEM_BASEMENT_KEY setflag FLAG_GOT_BASEMENT_KEY_FROM_WATTSON msgbox MauvilleCity_Text_WattsonWontBeChallenge, MSGBOX_DEFAULT release @@ -438,7 +438,7 @@ MauvilleCity_EventScript_BegunNewMauville:: @ 81DF77A MauvilleCity_EventScript_CompletedNewMauville:: @ 81DF784 msgbox MauvilleCity_Text_WattsonThanksTakeTM, MSGBOX_DEFAULT - giveitem_std ITEM_TM24 + giveitem ITEM_TM24 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_GOT_TM24_FROM_WATTSON diff --git a/data/maps/MauvilleCity_BikeShop/scripts.inc b/data/maps/MauvilleCity_BikeShop/scripts.inc index 723caf2d77ff..3dac5d6d44ff 100644 --- a/data/maps/MauvilleCity_BikeShop/scripts.inc +++ b/data/maps/MauvilleCity_BikeShop/scripts.inc @@ -44,13 +44,13 @@ MauvilleCity_BikeShop_EventScript_YesFar:: @ 820EC4A MauvilleCity_BikeShop_EventScript_GetMachBike:: @ 820EC53 msgbox MauvilleCity_BikeShop_Text_ChoseMachBike, MSGBOX_DEFAULT - giveitem_std ITEM_MACH_BIKE + giveitem ITEM_MACH_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end MauvilleCity_BikeShop_EventScript_GetAcroBike:: @ 820EC6D msgbox MauvilleCity_BikeShop_Text_ChoseAcroBike, MSGBOX_DEFAULT - giveitem_std ITEM_ACRO_BIKE + giveitem ITEM_ACRO_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end @@ -89,16 +89,16 @@ MauvilleCity_BikeShop_EventScript_KeepBike:: @ 820ECE5 MauvilleCity_BikeShop_EventScript_SwitchAcroForMach:: @ 820ECEF incrementgamestat GAME_STAT_TRADED_BIKES msgbox MauvilleCity_BikeShop_Text_ExchangedAcroForMach, MSGBOX_DEFAULT - takeitem ITEM_ACRO_BIKE, 1 - giveitem_std ITEM_MACH_BIKE + removeitem ITEM_ACRO_BIKE + giveitem ITEM_MACH_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end MauvilleCity_BikeShop_EventScript_SwitchMachForAcro:: @ 820ED10 incrementgamestat GAME_STAT_TRADED_BIKES msgbox MauvilleCity_BikeShop_Text_ExchangedMachForAcro, MSGBOX_DEFAULT - takeitem ITEM_MACH_BIKE, 1 - giveitem_std ITEM_ACRO_BIKE + removeitem ITEM_MACH_BIKE + giveitem ITEM_ACRO_BIKE goto MauvilleCity_BikeShop_EventScript_ComeBackToSwitchBikes end diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 2bafd056efac..3401251cf073 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -49,8 +49,8 @@ MauvilleCity_GameCorner_EventScript_Buy50Coins:: @ 820FC33 checkmoney COINS_PRICE_50, 0 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NotEnoughMoney - givecoins 50 - takemoney COINS_PRICE_50, 0 + addcoins 50 + removemoney COINS_PRICE_50, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 playse SE_REGI @@ -67,8 +67,8 @@ MauvilleCity_GameCorner_EventScript_Buy500Coins:: @ 820FC75 checkmoney COINS_PRICE_500, 0 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NotEnoughMoney - givecoins 500 - takemoney COINS_PRICE_500, 0 + addcoins 500 + removemoney COINS_PRICE_500, 0 updatemoneybox 0, 0 updatecoinsbox 1, 6 playse SE_REGI @@ -169,8 +169,8 @@ MauvilleCity_GameCorner_EventScript_BuyTreeckoDoll:: @ 820FDCB checkdecorspace DECOR_TREECKO_DOLL compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll - takecoins DOLL_COINS - givedecoration DECOR_TREECKO_DOLL + removecoins DOLL_COINS + adddecoration DECOR_TREECKO_DOLL updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT @@ -185,8 +185,8 @@ MauvilleCity_GameCorner_EventScript_BuyTorchicDoll:: @ 820FE05 checkdecorspace DECOR_TORCHIC_DOLL compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll - takecoins DOLL_COINS - givedecoration DECOR_TORCHIC_DOLL + removecoins DOLL_COINS + adddecoration DECOR_TORCHIC_DOLL updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT @@ -201,8 +201,8 @@ MauvilleCity_GameCorner_EventScript_BuyMudkipDoll:: @ 820FE3F checkdecorspace DECOR_MUDKIP_DOLL compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForDoll - takecoins DOLL_COINS - givedecoration DECOR_MUDKIP_DOLL + removecoins DOLL_COINS + adddecoration DECOR_MUDKIP_DOLL updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_SendToYourHomePC, MSGBOX_DEFAULT @@ -309,8 +309,8 @@ MauvilleCity_GameCorner_EventScript_BuyTM32:: @ 820FFDD checkitemspace ITEM_TM32, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM - takecoins TM32_COINS - giveitem ITEM_TM32, 1 + removecoins TM32_COINS + additem ITEM_TM32 updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT @@ -324,8 +324,8 @@ MauvilleCity_GameCorner_EventScript_BuyTM29:: @ 8210017 checkitemspace ITEM_TM29, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM - takecoins TM29_COINS - giveitem ITEM_TM29, 1 + removecoins TM29_COINS + additem ITEM_TM29 updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT @@ -339,8 +339,8 @@ MauvilleCity_GameCorner_EventScript_BuyTM35:: @ 8210051 checkitemspace ITEM_TM35, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM - takecoins TM35_COINS - giveitem ITEM_TM35, 1 + removecoins TM35_COINS + additem ITEM_TM35 updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT @@ -354,8 +354,8 @@ MauvilleCity_GameCorner_EventScript_BuyTM24:: @ 821008B checkitemspace ITEM_TM24, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM - takecoins TM24_COINS - giveitem ITEM_TM24, 1 + removecoins TM24_COINS + additem ITEM_TM24 updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT @@ -369,8 +369,8 @@ MauvilleCity_GameCorner_EventScript_BuyTM13:: @ 82100C5 checkitemspace ITEM_TM13, 1 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForTM - takecoins TM13_COINS - giveitem ITEM_TM13, 1 + removecoins TM13_COINS + additem ITEM_TM13 updatecoinsbox 1, 1 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_HereYouGo, MSGBOX_DEFAULT @@ -420,7 +420,7 @@ MauvilleCity_GameCorner_EventScript_GiveTreeckoDoll:: @ 821017C compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT - givedecoration_std DECOR_TREECKO_DOLL + givedecoration DECOR_TREECKO_DOLL setflag FLAG_RECEIVED_STARTER_DOLL goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end @@ -431,7 +431,7 @@ MauvilleCity_GameCorner_EventScript_GiveTorchicDoll:: @ 82101A6 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT - givedecoration_std DECOR_TORCHIC_DOLL + givedecoration DECOR_TORCHIC_DOLL setflag FLAG_RECEIVED_STARTER_DOLL goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end @@ -442,7 +442,7 @@ MauvilleCity_GameCorner_EventScript_GiveMudkipDoll:: @ 82101D0 compare VAR_RESULT, FALSE goto_if_eq MauvilleCity_GameCorner_EventScript_NoRoomForStarterDoll msgbox MauvilleCity_GameCorner_Text_HereYouGo2, MSGBOX_DEFAULT - givedecoration_std DECOR_MUDKIP_DOLL + givedecoration DECOR_MUDKIP_DOLL setflag FLAG_RECEIVED_STARTER_DOLL goto MauvilleCity_GameCorner_EventScript_ReceivedStarterDoll end @@ -479,7 +479,7 @@ MauvilleCity_GameCorner_EventScript_TryGive20Coins:: @ 821023D compare VAR_TEMP_1, 1 @ Only give 20 coins if player has no coins goto_if_ge MauvilleCity_GameCorner_EventScript_PokefanMNormal setflag FLAG_RECEIVED_20_COINS - givecoins 20 + addcoins 20 msgbox MauvilleCity_GameCorner_Text_LuckOnlyLastSoLongTakeCoins, MSGBOX_DEFAULT playse SE_REGI goto MauvilleCity_GameCorner_EventScript_PokefanMNormal diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index c5f0cde80ccc..bdf982309235 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -74,7 +74,7 @@ MauvilleCity_Gym_EventScript_DeactivatePuzzle:: @ 820DEE7 end MauvilleCity_Gym_EventScript_Wattson:: @ 820DEEB - trainerbattle_single TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonPreBattle, MauvilleCity_Gym_Text_WattsonDefeat, MauvilleCity_Gym_EventScript_WattsonDefeated, NO_MUSIC + trainerbattle_single TRAINER_WATTSON_1, MauvilleCity_Gym_Text_WattsonIntro, MauvilleCity_Gym_Text_WattsonDefeat, MauvilleCity_Gym_EventScript_WattsonDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq MauvilleCity_Gym_EventScript_WattsonRematch @@ -115,7 +115,7 @@ MauvilleCity_Gym_EventScript_WattsonDefeated:: @ 820DF2B end MauvilleCity_Gym_EventScript_GiveShockWave2:: @ 820DF8D - giveitem_std ITEM_TM34 + giveitem ITEM_TM34 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT @@ -124,7 +124,7 @@ MauvilleCity_Gym_EventScript_GiveShockWave2:: @ 820DF8D end MauvilleCity_Gym_EventScript_GiveShockWave:: @ 820DFB1 - giveitem_std ITEM_TM34 + giveitem ITEM_TM34 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox MauvilleCity_Gym_Text_ExplainShockWave, MSGBOX_DEFAULT @@ -206,27 +206,27 @@ MauvilleCity_Gym_EventScript_ClearBarriersAltState:: @ 820E0B4 end MauvilleCity_Gym_EventScript_Kirk:: @ 820E0B9 - trainerbattle_single TRAINER_KIRK, MauvilleCity_Gym_Text_KirkPreBattle, MauvilleCity_Gym_Text_KirkDefeat + trainerbattle_single TRAINER_KIRK, MauvilleCity_Gym_Text_KirkIntro, MauvilleCity_Gym_Text_KirkDefeat msgbox MauvilleCity_Gym_Text_KirkPostBattle, MSGBOX_AUTOCLOSE end MauvilleCity_Gym_EventScript_Shawn:: @ 820E0D0 - trainerbattle_single TRAINER_SHAWN, MauvilleCity_Gym_Text_ShawnPreBattle, MauvilleCity_Gym_Text_ShawnDefeat + trainerbattle_single TRAINER_SHAWN, MauvilleCity_Gym_Text_ShawnIntro, MauvilleCity_Gym_Text_ShawnDefeat msgbox MauvilleCity_Gym_Text_ShawnPostBattle, MSGBOX_AUTOCLOSE end MauvilleCity_Gym_EventScript_Ben:: @ 820E0E7 - trainerbattle_single TRAINER_BEN, MauvilleCity_Gym_Text_BenPreBattle, MauvilleCity_Gym_Text_BenDefeat + trainerbattle_single TRAINER_BEN, MauvilleCity_Gym_Text_BenIntro, MauvilleCity_Gym_Text_BenDefeat msgbox MauvilleCity_Gym_Text_BenPostBattle, MSGBOX_AUTOCLOSE end MauvilleCity_Gym_EventScript_Vivian:: @ 820E0FE - trainerbattle_single TRAINER_VIVIAN, MauvilleCity_Gym_Text_VivianPreBattle, MauvilleCity_Gym_Text_VivianDefeat + trainerbattle_single TRAINER_VIVIAN, MauvilleCity_Gym_Text_VivianIntro, MauvilleCity_Gym_Text_VivianDefeat msgbox MauvilleCity_Gym_Text_VivianPostBattle, MSGBOX_AUTOCLOSE end MauvilleCity_Gym_EventScript_Angelo:: @ 820E115 - trainerbattle_single TRAINER_ANGELO, MauvilleCity_Gym_Text_AngeloPreBattle, MauvilleCity_Gym_Text_AngeloDefeat + trainerbattle_single TRAINER_ANGELO, MauvilleCity_Gym_Text_AngeloIntro, MauvilleCity_Gym_Text_AngeloDefeat msgbox MauvilleCity_Gym_Text_AngeloPostBattle, MSGBOX_AUTOCLOSE end @@ -280,9 +280,8 @@ MauvilleCity_Gym_Text_GymGuidePostVictory: @ 820E283 .string "Fuck bro, you're shocking!\n" .string "BEEP BOOP BEEP!$" -MauvilleCity_Gym_Text_KirkPreBattle: @ 820E2BC - .string "BEEP BOOP BEEP\n" - .string "dreams whole, whoa-yeahah!$" +MauvilleCity_Gym_Text_KirkIntro: @ 820E2BC + .string "BEEP BOOP BEEP\n$" MauvilleCity_Gym_Text_KirkDefeat: @ 820E2FC .string "BEEP BOOP BEEP,\n" @@ -292,7 +291,7 @@ MauvilleCity_Gym_Text_KirkPostBattle: @ 820E336 .string "BEEP BOOP BEEP,\n" .string "whoa-yeah!$" -MauvilleCity_Gym_Text_ShawnPreBattle: @ 820E369 +MauvilleCity_Gym_Text_ShawnIntro: @ 820E369 .string "BEEP BOOP BEEP!\n" .string "BEEP BOOP BEEP!$" @@ -305,7 +304,7 @@ MauvilleCity_Gym_Text_ShawnPostBattle: @ 820E3C1 .string "He was battling even before your\n" .string "ugly daddy was born.$" -MauvilleCity_Gym_Text_BenPreBattle: @ 820E443 +MauvilleCity_Gym_Text_BenIntro: @ 820E443 .string "This GYM's got puzzles!\n" .string "Isn't it fun?$" @@ -316,7 +315,7 @@ MauvilleCity_Gym_Text_BenPostBattle: @ 820E47E .string "WATTSON says he likes setting up\n" .string "little traps with switches.$" -MauvilleCity_Gym_Text_VivianPreBattle: @ 820E4BB +MauvilleCity_Gym_Text_VivianIntro: @ 820E4BB .string "With my charm and my POKéMON's moves,\n" .string "you'll be shocked!$" @@ -330,7 +329,7 @@ MauvilleCity_Gym_Text_VivianPostBattle: @ 820E50F .string "became TRAINERS.\l" .string "He must know all sorts of things!$" -MauvilleCity_Gym_Text_AngeloPreBattle: @ 820E593 +MauvilleCity_Gym_Text_AngeloIntro: @ 820E593 .string "I love shiny things!$" MauvilleCity_Gym_Text_AngeloDefeat: @ 820E5A8 @@ -341,7 +340,7 @@ MauvilleCity_Gym_Text_AngeloPostBattle: @ 820E5C2 .string "MAUVILLE GYM's WATTSON has a shiny\n" .string "forehead. It makes me happy!$" -MauvilleCity_Gym_Text_WattsonPreBattle: @ 820E602 +MauvilleCity_Gym_Text_WattsonIntro: @ 820E602 .string "I've given up on my plans to convert\n" .string "the city, I have.\p" .string "And so, I put my time into making\n" diff --git a/data/maps/MauvilleCity_House1/scripts.inc b/data/maps/MauvilleCity_House1/scripts.inc index eff01eb949d8..21655a1b8610 100644 --- a/data/maps/MauvilleCity_House1/scripts.inc +++ b/data/maps/MauvilleCity_House1/scripts.inc @@ -6,7 +6,7 @@ MauvilleCity_House1_EventScript_RockSmashDude:: @ 820F976 faceplayer goto_if_set FLAG_RECEIVED_HM06, MauvilleCity_House1_EventScript_ReceivedRockSmash msgbox MauvilleCity_House1_Text_ImRockSmashDudeTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_HM06 + giveitem ITEM_HM06 setflag FLAG_RECEIVED_HM06 setflag FLAG_HIDE_ROUTE_111_ROCK_SMASH_TIP_GUY msgbox MauvilleCity_House1_Text_ExplainRockSmash, MSGBOX_DEFAULT diff --git a/data/maps/MauvilleCity_House2/scripts.inc b/data/maps/MauvilleCity_House2/scripts.inc index 5dbf5d411485..06ec830ea1c1 100644 --- a/data/maps/MauvilleCity_House2/scripts.inc +++ b/data/maps/MauvilleCity_House2/scripts.inc @@ -27,8 +27,8 @@ MauvilleCity_House2_EventScript_AskToTradeForHarborMail:: @ 8210C82 MauvilleCity_House2_EventScript_AcceptTrade:: @ 8210CB8 msgbox MauvilleCity_House2_Text_IllTradeYouCoinCase, MSGBOX_DEFAULT - takeitem ITEM_HARBOR_MAIL, 1 - giveitem_std ITEM_COIN_CASE + removeitem ITEM_HARBOR_MAIL + giveitem ITEM_COIN_CASE setflag FLAG_RECEIVED_COIN_CASE goto MauvilleCity_House2_EventScript_ReceivedCoinCase end diff --git a/data/maps/MeteorFalls_StevensCave/scripts.inc b/data/maps/MeteorFalls_StevensCave/scripts.inc index 408a4d16106b..6049587f25c0 100644 --- a/data/maps/MeteorFalls_StevensCave/scripts.inc +++ b/data/maps/MeteorFalls_StevensCave/scripts.inc @@ -31,7 +31,7 @@ MeteorFalls_StevensCave_EventScript_GiveTicket:: checkitemspace ITEM_AURORA_TICKET, 1 compare VAR_RESULT, FALSE vgoto_if_eq MeteorFalls_StevensCave_AuroraTicket_NoBagSpace - giveitem_std ITEM_AURORA_TICKET + giveitem ITEM_AURORA_TICKET setflag FLAG_ENABLE_SHIP_BIRTH_ISLAND setflag FLAG_RECEIVED_AURORA_TICKET vmessage MeteorFalls_StevensCave_Text_AuroraTicketUseAtPort diff --git a/data/maps/MirageTower_4F/scripts.inc b/data/maps/MirageTower_4F/scripts.inc index d23cb160e705..ceb78ab459d1 100644 --- a/data/maps/MirageTower_4F/scripts.inc +++ b/data/maps/MirageTower_4F/scripts.inc @@ -7,7 +7,7 @@ MirageTower_4F_EventScript_RootFossil:: @ 823AD48 msgbox MirageTower_4F_Text_TakeRootFossil, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq MirageTower_4F_EventScript_LeaveRootFossil - giveitem_std ITEM_ROOT_FOSSIL + giveitem ITEM_ROOT_FOSSIL closemessage setflag FLAG_HIDE_MIRAGE_TOWER_ROOT_FOSSIL setflag FLAG_HIDE_MIRAGE_TOWER_CLAW_FOSSIL @@ -28,7 +28,7 @@ MirageTower_4F_EventScript_ClawFossil:: @ 823AD89 msgbox MirageTower_4F_Text_TakeClawFossil, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq MirageTower_4F_EventScript_LeaveClawFossil - giveitem_std ITEM_CLAW_FOSSIL + giveitem ITEM_CLAW_FOSSIL closemessage setflag FLAG_HIDE_MIRAGE_TOWER_CLAW_FOSSIL setflag FLAG_HIDE_MIRAGE_TOWER_ROOT_FOSSIL diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index ce53af42787a..945a92dfb4ff 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -229,7 +229,7 @@ MossdeepCity_EventScript_KingsRockBoy:: @ 81E4C26 compare VAR_RESULT, NO goto_if_eq MossdeepCity_EventScript_DeclineKingsRock msgbox MossdeepCity_Text_YouCanKeepIt, MSGBOX_DEFAULT - giveitem_std ITEM_KINGS_ROCK + giveitem ITEM_KINGS_ROCK compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_KINGS_ROCK diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index ec5e2bb70441..ab6677ff5f0a 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -49,7 +49,7 @@ MossdeepCity_Gym_EventScript_SetSwitch4Metatiles:: @ 8220885 end MossdeepCity_Gym_EventScript_TateAndLiza:: @ 8220898 - trainerbattle_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaPreBattle, MossdeepCity_Gym_Text_TateAndLizaDefeat, MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons, MossdeepCity_Gym_EventScript_TateAndLizaDefeated, NO_MUSIC + trainerbattle_double TRAINER_TATE_AND_LIZA_1, MossdeepCity_Gym_Text_TateAndLizaIntro, MossdeepCity_Gym_Text_TateAndLizaDefeat, MossdeepCity_Gym_Text_TateAndLizaNeedTwoMons, MossdeepCity_Gym_EventScript_TateAndLizaDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq MossdeepCity_Gym_EventScript_TateAndLizaRematch @@ -91,7 +91,7 @@ MossdeepCity_Gym_EventScript_TateAndLizaDefeated:: @ 82208D1 end MossdeepCity_Gym_EventScript_GiveCalmMind2:: @ 8220937 - giveitem_std ITEM_TM04 + giveitem ITEM_TM04 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT @@ -100,7 +100,7 @@ MossdeepCity_Gym_EventScript_GiveCalmMind2:: @ 8220937 end MossdeepCity_Gym_EventScript_GiveCalmMind:: @ 822095B - giveitem_std ITEM_TM04 + giveitem ITEM_TM04 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox MossdeepCity_Gym_Text_ExplainCalmMind, MSGBOX_DEFAULT @@ -207,62 +207,62 @@ MossdeepCity_Gym_EventScript_WarpToEntrance:: @ 8220AF1 end MossdeepCity_Gym_EventScript_Preston:: @ 8220AFD - trainerbattle_single TRAINER_PRESTON, MossdeepCity_Gym_Text_PrestonPreBattle, MossdeepCity_Gym_Text_PrestonDefeat + trainerbattle_single TRAINER_PRESTON, MossdeepCity_Gym_Text_PrestonIntro, MossdeepCity_Gym_Text_PrestonDefeat msgbox MossdeepCity_Gym_Text_PrestonPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Virgil:: @ 8220B14 - trainerbattle_single TRAINER_VIRGIL, MossdeepCity_Gym_Text_VirgilPreBattle, MossdeepCity_Gym_Text_VirgilDefeat + trainerbattle_single TRAINER_VIRGIL, MossdeepCity_Gym_Text_VirgilIntro, MossdeepCity_Gym_Text_VirgilDefeat msgbox MossdeepCity_Gym_Text_VirgilPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Blake:: @ 8220B2B - trainerbattle_single TRAINER_BLAKE, MossdeepCity_Gym_Text_BlakePreBattle, MossdeepCity_Gym_Text_BlakeDefeat + trainerbattle_single TRAINER_BLAKE, MossdeepCity_Gym_Text_BlakeIntro, MossdeepCity_Gym_Text_BlakeDefeat msgbox MossdeepCity_Gym_Text_BlakePostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Hannah:: @ 8220B42 - trainerbattle_single TRAINER_HANNAH, MossdeepCity_Gym_Text_HannahPreBattle, MossdeepCity_Gym_Text_HannahDefeat + trainerbattle_single TRAINER_HANNAH, MossdeepCity_Gym_Text_HannahIntro, MossdeepCity_Gym_Text_HannahDefeat msgbox MossdeepCity_Gym_Text_HannahPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Samantha:: @ 8220B59 - trainerbattle_single TRAINER_SAMANTHA, MossdeepCity_Gym_Text_SamanthaPreBattle, MossdeepCity_Gym_Text_SamanthaDefeat + trainerbattle_single TRAINER_SAMANTHA, MossdeepCity_Gym_Text_SamanthaIntro, MossdeepCity_Gym_Text_SamanthaDefeat msgbox MossdeepCity_Gym_Text_SamanthaPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Maura:: @ 8220B70 - trainerbattle_single TRAINER_MAURA, MossdeepCity_Gym_Text_MauraPreBattle, MossdeepCity_Gym_Text_MauraDefeat + trainerbattle_single TRAINER_MAURA, MossdeepCity_Gym_Text_MauraIntro, MossdeepCity_Gym_Text_MauraDefeat msgbox MossdeepCity_Gym_Text_MauraPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Sylvia:: @ 8220B87 - trainerbattle_single TRAINER_SYLVIA, MossdeepCity_Gym_Text_SylviaPreBattle, MossdeepCity_Gym_Text_SylviaDefeat + trainerbattle_single TRAINER_SYLVIA, MossdeepCity_Gym_Text_SylviaIntro, MossdeepCity_Gym_Text_SylviaDefeat msgbox MossdeepCity_Gym_Text_SylviaPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Nate:: @ 8220B9E - trainerbattle_single TRAINER_NATE, MossdeepCity_Gym_Text_NatePreBattle, MossdeepCity_Gym_Text_NateDefeat + trainerbattle_single TRAINER_NATE, MossdeepCity_Gym_Text_NateIntro, MossdeepCity_Gym_Text_NateDefeat msgbox MossdeepCity_Gym_Text_NatePostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Macey:: @ 8220BB5 - trainerbattle_single TRAINER_MACEY, MossdeepCity_Gym_Text_MaceyPreBattle, MossdeepCity_Gym_Text_MaceyDefeat + trainerbattle_single TRAINER_MACEY, MossdeepCity_Gym_Text_MaceyIntro, MossdeepCity_Gym_Text_MaceyDefeat msgbox MossdeepCity_Gym_Text_MaceyPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Clifford:: @ 8220BCC - trainerbattle_single TRAINER_CLIFFORD, MossdeepCity_Gym_Text_CliffordPreBattle, MossdeepCity_Gym_Text_CliffordDefeat + trainerbattle_single TRAINER_CLIFFORD, MossdeepCity_Gym_Text_CliffordIntro, MossdeepCity_Gym_Text_CliffordDefeat msgbox MossdeepCity_Gym_Text_CliffordPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Nicholas:: @ 8220BE3 - trainerbattle_single TRAINER_NICHOLAS, MossdeepCity_Gym_Text_NicholasPreBattle, MossdeepCity_Gym_Text_NicholasDefeat + trainerbattle_single TRAINER_NICHOLAS, MossdeepCity_Gym_Text_NicholasIntro, MossdeepCity_Gym_Text_NicholasDefeat msgbox MossdeepCity_Gym_Text_NicholasPostBattle, MSGBOX_AUTOCLOSE end MossdeepCity_Gym_EventScript_Kathleen:: @ 8220BFA - trainerbattle_single TRAINER_KATHLEEN, MossdeepCity_Gym_Text_KathleenPreBattle, MossdeepCity_Gym_Text_KathleenDefeat + trainerbattle_single TRAINER_KATHLEEN, MossdeepCity_Gym_Text_KathleenIntro, MossdeepCity_Gym_Text_KathleenDefeat msgbox MossdeepCity_Gym_Text_KathleenPostBattle, MSGBOX_AUTOCLOSE end @@ -385,7 +385,7 @@ MossdeepCity_Gym_Text_GymGuidePostVictory: @ 8220E2A .string "Wow, you're astounding!\n" .string "You're one great TRAINER!$" -MossdeepCity_Gym_Text_PrestonPreBattle: @ 8220E5C +MossdeepCity_Gym_Text_PrestonIntro: @ 8220E5C .string "Battles hinge on the strength of your\n" .string "spirit! The weak-spirited will never win!$" @@ -397,7 +397,7 @@ MossdeepCity_Gym_Text_PrestonPostBattle: @ 8220ED3 .string "The indecisive lose.\n" .string "That's my warning to you.$" -MossdeepCity_Gym_Text_VirgilPreBattle: @ 8220F02 +MossdeepCity_Gym_Text_VirgilIntro: @ 8220F02 .string "Let me see your talent!$" MossdeepCity_Gym_Text_VirgilDefeat: @ 8220F1A @@ -409,7 +409,7 @@ MossdeepCity_Gym_Text_VirgilPostBattle: @ 8220F3A .string "However, you may be even more talented\n" .string "than them…$" -MossdeepCity_Gym_Text_BlakePreBattle: @ 8220FB0 +MossdeepCity_Gym_Text_BlakeIntro: @ 8220FB0 .string "Fufufufu… Watch me levitate a POKé\n" .string "BALL telekinetically!\p" .string "Wrooooooooaaaar!\n" @@ -428,7 +428,7 @@ MossdeepCity_Gym_Text_BlakePostBattle: @ 8221055 .string "No, I'm not cheating!\n" .string "I didn't blow on it! Honestly!$" -MossdeepCity_Gym_Text_HannahPreBattle: @ 82210EE +MossdeepCity_Gym_Text_HannahIntro: @ 82210EE .string "When you lose to me, don't be too hard\n" .string "on yourself.\p" .string "It's not that you're weak--I'm just\n" @@ -443,7 +443,7 @@ MossdeepCity_Gym_Text_HannahPostBattle: @ 822116A .string "Positive thinking--that's my strong\n" .string "point!$" -MossdeepCity_Gym_Text_SamanthaPreBattle: @ 82211E2 +MossdeepCity_Gym_Text_SamanthaIntro: @ 82211E2 .string "I see it…\n" .string "I see your future…\p" .string "If you can beat me, I will tell you\n" @@ -458,7 +458,7 @@ MossdeepCity_Gym_Text_SamanthaPostBattle: @ 822123D .string "The result…\n" .string "You won't hear it from me!$" -MossdeepCity_Gym_Text_MauraPreBattle: @ 82212A6 +MossdeepCity_Gym_Text_MauraIntro: @ 82212A6 .string "The roads you have traveled…\n" .string "What you have experienced…\p" .string "Come at me with everything you've\n" @@ -474,7 +474,7 @@ MossdeepCity_Gym_Text_MauraPostBattle: @ 822132E .string "only despair at the end.\p" .string "What goes around comes around…$" -MossdeepCity_Gym_Text_SylviaPreBattle: @ 82213C2 +MossdeepCity_Gym_Text_SylviaIntro: @ 82213C2 .string "Even at the risk of life, I will win\n" .string "this battle!$" @@ -487,7 +487,7 @@ MossdeepCity_Gym_Text_SylviaPostBattle: @ 8221412 .string "It won't be my fault if something\n" .string "horrible befalls you…$" -MossdeepCity_Gym_Text_NatePreBattle: @ 8221460 +MossdeepCity_Gym_Text_NateIntro: @ 8221460 .string "Hohoho.\p" .string "You need me to show you how tenacious\n" .string "the PSYCHIC type can be.$" @@ -500,7 +500,7 @@ MossdeepCity_Gym_Text_NatePostBattle: @ 82214D3 .string "I… I don't let defeat rattle m-me,\n" .string "however b-badly.$" -MossdeepCity_Gym_Text_KathleenPreBattle: @ 8221507 +MossdeepCity_Gym_Text_KathleenIntro: @ 8221507 .string "Let me show you a perfectly awful,\n" .string "horrifying time!$" @@ -511,7 +511,7 @@ MossdeepCity_Gym_Text_KathleenPostBattle: @ 8221545 .string "Your vitality is contagious!\n" .string "Get away from me quickly!$" -MossdeepCity_Gym_Text_CliffordPreBattle: @ 822157C +MossdeepCity_Gym_Text_CliffordIntro: @ 822157C .string "I may be past my prime, but I suggest\n" .string "you not patronize me.$" @@ -523,7 +523,7 @@ MossdeepCity_Gym_Text_CliffordPostBattle: @ 82215E2 .string "It seems that I could not overcome\n" .string "your youthful energy.$" -MossdeepCity_Gym_Text_MaceyPreBattle: @ 822161B +MossdeepCity_Gym_Text_MaceyIntro: @ 822161B .string "You're not getting through to the end!\n" .string "Not if I can help it!$" @@ -536,7 +536,7 @@ MossdeepCity_Gym_Text_MaceyPostBattle: @ 8221680 .string "not suitable for the PSYCHIC type!\p" .string "The way you battle is somehow brutal!$" -MossdeepCity_Gym_Text_NicholasPreBattle: @ 82216EE +MossdeepCity_Gym_Text_NicholasIntro: @ 82216EE .string "Wroooar! Have a taste of my super\n" .string "POKéMON hard-battling power!$" @@ -548,7 +548,7 @@ MossdeepCity_Gym_Text_NicholasPostBattle: @ 822173A .string "All right! I think I'll develop a special\n" .string "invincible POKéMON power next.$" -MossdeepCity_Gym_Text_TateAndLizaPreBattle: @ 8221783 +MossdeepCity_Gym_Text_TateAndLizaIntro: @ 8221783 .string "TATE: Hehehe… Were you surprised?\p" .string "LIZA: Fufufu… Were you surprised?\p" .string "TATE: That there are two GYM LEADERS?\n" diff --git a/data/maps/MossdeepCity_House3/scripts.inc b/data/maps/MossdeepCity_House3/scripts.inc index 96285cf2579a..b968dfc045cd 100644 --- a/data/maps/MossdeepCity_House3/scripts.inc +++ b/data/maps/MossdeepCity_House3/scripts.inc @@ -9,7 +9,7 @@ MossdeepCity_House3_EventScript_SuperRodFisherman:: @ 82225C3 compare VAR_RESULT, NO goto_if_eq MossdeepCity_House3_EventScript_DeclineSuperRod msgbox MossdeepCity_House3_Text_SuperRodIsSuper, MSGBOX_DEFAULT - giveitem_std ITEM_SUPER_ROD + giveitem ITEM_SUPER_ROD setflag FLAG_RECEIVED_SUPER_ROD msgbox MossdeepCity_House3_Text_TryDroppingRodInWater, MSGBOX_DEFAULT release diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index 3499244edc6a..05c14f11a5a1 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -119,7 +119,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_SunStoneMan:: @ 822308E goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone msgbox MossdeepCity_SpaceCenter_1F_Text_FoundThisYouCanHaveIt, MSGBOX_DEFAULT - giveitem_std ITEM_SUN_STONE + giveitem ITEM_SUN_STONE compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP @@ -135,7 +135,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStone:: @ 82230D0 MossdeepCity_SpaceCenter_1F_EventScript_SunStoneManMagma:: @ 82230DA goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_GaveSunStoneMagma msgbox MossdeepCity_SpaceCenter_1F_Text_MagmaCantStealFuelTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_SUN_STONE + giveitem ITEM_SUN_STONE compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 32fb2aa7bad1..bd1c9e15ca95 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -337,11 +337,11 @@ MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest:: @ 8224152 return MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer:: @ 8224157 - trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_3, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand + trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_MOSSDEEP, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand end MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer:: @ 8224166 - trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_1, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat + trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_MOSSDEEP, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat end MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: @ 8224175 diff --git a/data/maps/MossdeepCity_StevensHouse/scripts.inc b/data/maps/MossdeepCity_StevensHouse/scripts.inc index b5598e60d460..bc71c6ca4a38 100644 --- a/data/maps/MossdeepCity_StevensHouse/scripts.inc +++ b/data/maps/MossdeepCity_StevensHouse/scripts.inc @@ -38,7 +38,7 @@ MossdeepCity_StevensHouse_EventScript_StevenGivesDive:: @ 82227CA applymovement 1, MossdeepCity_StevensHouse_Movement_StevenApproachPlayer waitmovement 0 msgbox MossdeepCity_StevensHouse_Text_YouveEarnedHMDive, MSGBOX_DEFAULT - giveitem_std ITEM_HM08 + giveitem ITEM_HM08 setflag FLAG_RECEIVED_HM08 setflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER msgbox MossdeepCity_StevensHouse_Text_ExplainDive, MSGBOX_DEFAULT @@ -149,7 +149,7 @@ MossdeepCity_StevensHouse_EventScript_Letter:: @ 822291B @ Unused, leftover from RS MossdeepCity_StevensHouse_EventScript_DiveItemBall:: @ 8222926 - finditem_std ITEM_HM08 + finditem ITEM_HM08 setflag FLAG_RECEIVED_HM08 end diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index e57260b2a45c..8371d811b8dc 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -43,7 +43,7 @@ MtChimney_EventScript_Maxie:: @ 822EE0B applymovement 2, Common_Movement_Delay48 waitmovement 0 msgbox MtChimney_Text_MaxieIntro, MSGBOX_DEFAULT - trainerbattle_no_intro TRAINER_MAXIE_2, MtChimney_Text_MaxieDefeat + trainerbattle_no_intro TRAINER_MAXIE_MT_CHIMNEY, MtChimney_Text_MaxieDefeat msgbox MtChimney_Text_MaxieYouHaventSeenLastOfMagma, MSGBOX_DEFAULT closemessage delay 30 @@ -110,8 +110,8 @@ MtChimney_EventScript_LavaCookieLady:: @ 822EEF3 msgbox MtChimney_Text_ThankYouDear, MSGBOX_DEFAULT checkitemspace ITEM_LAVA_COOKIE, 1 compare VAR_RESULT, TRUE - call_if_eq MtChimney_EventScript_TakeMoney - giveitem_std ITEM_LAVA_COOKIE + call_if_eq MtChimney_EventScript_RemoveMoney + giveitem ITEM_LAVA_COOKIE compare VAR_RESULT, FALSE goto_if_eq MtChimney_EventScript_BagIsFull hidemoneybox @@ -124,8 +124,8 @@ MtChimney_EventScript_BagIsFull:: @ 822EF51 release end -MtChimney_EventScript_TakeMoney:: @ 822EF5E - takemoney 200, 0 +MtChimney_EventScript_RemoveMoney:: @ 822EF5E + removemoney 200, 0 updatemoneybox 0, 0 return @@ -184,8 +184,7 @@ MtChimney_Movement_ArchieExitNorth: @ 822EF9C walk_down step_end -@ Unused -MtChimney_Movement_22EFA6: @ 822EFA6 +MtChimney_Movement_Unused1: @ 822EFA6 walk_down walk_down walk_down @@ -205,8 +204,7 @@ MtChimney_Movement_22EFA6: @ 822EFA6 walk_down step_end -@ Unused -MtChimney_Movement_22EFB8: @ 822EFB8 +MtChimney_Movement_Unused2: @ 822EFB8 walk_down walk_down walk_down @@ -217,8 +215,7 @@ MtChimney_Movement_22EFB8: @ 822EFB8 walk_down step_end -@ Unused -MtChimney_Movement_22EFC1: @ 822EFC1 +MtChimney_Movement_Unused3: @ 822EFC1 walk_right walk_down walk_down @@ -235,8 +232,7 @@ MtChimney_Movement_22EFC1: @ 822EFC1 walk_down step_end -@ Unused -MtChimney_Movement_22EFD0: @ 822EFD0 +MtChimney_Movement_Unused4: @ 822EFD0 walk_fast_down walk_fast_down walk_fast_down @@ -263,8 +259,7 @@ MtChimney_Movement_22EFD0: @ 822EFD0 walk_down step_end -@ Unused -MtChimney_Movement_22EFE9: @ 822EFE9 +MtChimney_Movement_Unused5: @ 822EFE9 delay_16 delay_16 delay_16 @@ -277,8 +272,7 @@ MtChimney_Movement_22EFE9: @ 822EFE9 walk_down step_end -@ Unused -MtChimney_Movement_22EFF4: @ 822EFF4 +MtChimney_Movement_Unused6: @ 822EFF4 delay_16 walk_left walk_down @@ -296,8 +290,7 @@ MtChimney_Movement_22EFF4: @ 822EFF4 walk_down step_end -@ Unused -MtChimney_Movement_22F004: @ 822F004 +MtChimney_Movement_Unused7: @ 822F004 delay_16 walk_left walk_left @@ -316,8 +309,7 @@ MtChimney_Movement_22F004: @ 822F004 walk_down step_end -@ Unused -MtChimney_Movement_22F015: @ 822F015 +MtChimney_Movement_Unused8: @ 822F015 delay_16 walk_down walk_left @@ -327,8 +319,7 @@ MtChimney_Movement_22F015: @ 822F015 walk_in_place_fastest_down step_end -@ Unused -MtChimney_Movement_22F01D: @ 822F01D +MtChimney_Movement_Unused9: @ 822F01D walk_down walk_down walk_down @@ -344,13 +335,11 @@ MtChimney_Movement_22F01D: @ 822F01D walk_down step_end -@ Unused -MtChimney_Movement_22F02B: @ 822F02B +MtChimney_Movement_Unused10: @ 822F02B walk_down step_end -@ Unused -MtChimney_Movement_22F02D: @ 822F02D +MtChimney_Movement_Unused11: @ 822F02D walk_down walk_down walk_down @@ -360,8 +349,7 @@ MtChimney_Movement_22F02D: @ 822F02D walk_down step_end -@ Unused -MtChimney_Movement_22F035: @ 822F035 +MtChimney_Movement_Unused12: @ 822F035 delay_16 delay_16 walk_in_place_fastest_left @@ -373,8 +361,7 @@ MtChimney_Movement_22F035: @ 822F035 walk_down step_end -@ Unused -MtChimney_Movement_22F03F: @ 822F03F +MtChimney_Movement_Unused13: @ 822F03F delay_16 delay_16 delay_16 @@ -387,16 +374,14 @@ MtChimney_Movement_22F03F: @ 822F03F walk_down step_end -@ Unused -MtChimney_Movement_22F04A: @ 822F04A +MtChimney_Movement_Unused14: @ 822F04A lock_facing_direction walk_fast_left unlock_facing_direction face_right step_end -@ Unused -MtChimney_Movement_22F04F: @ 822F04F +MtChimney_Movement_Unused15: @ 822F04F walk_left walk_in_place_fastest_right delay_16 @@ -415,7 +400,7 @@ MtChimney_EventScript_BusyAquaGrunt3:: @ 822F065 end MtChimney_EventScript_Tabitha:: @ 822F06E - trainerbattle_single TRAINER_TABITHA_2, MtChimney_Text_TabithaIntro, MtChimney_Text_TabithaDefeat + trainerbattle_single TRAINER_TABITHA_MT_CHIMNEY, MtChimney_Text_TabithaIntro, MtChimney_Text_TabithaDefeat msgbox MtChimney_Text_TabithaPostBattle, MSGBOX_AUTOCLOSE end @@ -464,7 +449,7 @@ MtChimney_EventScript_MeteoriteMachine:: @ 822F0E4 compare VAR_RESULT, NO goto_if_eq MtChimney_EventScript_LeaveMeteoriteAlone msgbox MtChimney_Text_PlayerRemovedMeteorite, MSGBOX_DEFAULT - giveitem_std ITEM_METEORITE + giveitem ITEM_METEORITE setflag FLAG_RECEIVED_METEORITE releaseall end diff --git a/data/maps/MtPyre_1F/scripts.inc b/data/maps/MtPyre_1F/scripts.inc index 2574e685160e..a303cb2c1066 100644 --- a/data/maps/MtPyre_1F/scripts.inc +++ b/data/maps/MtPyre_1F/scripts.inc @@ -6,7 +6,7 @@ MtPyre_1F_EventScript_CleanseTagWoman:: @ 8230F3F faceplayer goto_if_set FLAG_RECEIVED_CLEANSE_TAG, MtPyre_1F_EventScript_ReceivedCleanseTag msgbox MtPyre_1F_Text_TakeThisForYourOwnGood, MSGBOX_DEFAULT - giveitem_std ITEM_CLEANSE_TAG + giveitem ITEM_CLEANSE_TAG compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_CLEANSE_TAG diff --git a/data/maps/MtPyre_Summit/scripts.inc b/data/maps/MtPyre_Summit/scripts.inc index c13dd0da7bc7..2b475b1ae947 100644 --- a/data/maps/MtPyre_Summit/scripts.inc +++ b/data/maps/MtPyre_Summit/scripts.inc @@ -64,7 +64,7 @@ MtPyre_Summit_EventScript_TeamAquaExits:: @ 823203C compare VAR_0x8008, 2 call_if_eq MtPyre_Summit_EventScript_OldLadyApproachPlayer2 msgbox MtPyre_Summit_Text_BothOrbsTakenMagmaLeftThis, MSGBOX_DEFAULT - giveitem_std ITEM_MAGMA_EMBLEM + giveitem ITEM_MAGMA_EMBLEM setflag FLAG_RECEIVED_RED_OR_BLUE_ORB setflag FLAG_HIDE_JAGGED_PASS_MAGMA_GUARD releaseall diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index 88f73d39bd0a..754e322a00ff 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -71,7 +71,7 @@ OldaleTown_EventScript_GoToMartEast:: @ 81E8F75 OldaleTown_EventScript_ExplainPokemonMart:: @ 81E8F8C msgbox OldaleTown_Text_ThisIsAPokemonMart, MSGBOX_DEFAULT - giveitem_std ITEM_POTION + giveitem ITEM_POTION compare VAR_RESULT, 0 goto_if_eq OldaleTown_EventScript_BagIsFull msgbox OldaleTown_Text_PotionExplanation, MSGBOX_DEFAULT diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index d22a87dc9cdc..2dcff9f29edb 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -41,7 +41,7 @@ PacifidlogTown_House2_EventScript_ClearReceivedFanClubTM:: @ 8203812 PacifidlogTown_House2_EventScript_GiveReturn:: @ 8203816 msgbox PacifidlogTown_House2_Text_AdoringPokemonTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM27 + giveitem ITEM_TM27 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK @@ -57,7 +57,7 @@ PacifidlogTown_House2_EventScript_PutInEffort:: @ 8203845 PacifidlogTown_House2_EventScript_GiveFrustration:: @ 820384F msgbox PacifidlogTown_House2_Text_ViciousPokemonTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM21 + giveitem ITEM_TM21 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index f2285ce728be..745badd31334 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -351,7 +351,8 @@ PetalburgCity_EventScript_LeadPlayerToGym3:: @ 81DC5FF waitmovement 0 return -PetalburgCity_Movement_1DC611:: @ 81DC611 +@ Unused +PetalburgCity_Movement_Delay48:: @ 81DC611 delay_16 delay_16 delay_16 diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 0083804ae704..62e2fc40117c 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -16,20 +16,13 @@ PetalburgCity_Gym_OnLoad: @ 820489E PetalburgCity_Gym_EventScript_OpenUnlockedDoors:: @ 82048B5 setvar VAR_0x8005, 1 call PetalburgCity_Gym_EventScript_OpenGymEntranceDoors - checktrainerflag TRAINER_RANDALL - call_if_eq PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors - checktrainerflag TRAINER_MARY - call_if_eq PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors - checktrainerflag TRAINER_PARKER - call_if_eq PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors - checktrainerflag TRAINER_ALEXIA - call_if_eq PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors - checktrainerflag TRAINER_GEORGE - call_if_eq PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors - checktrainerflag TRAINER_JODY - call_if_eq PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors - checktrainerflag TRAINER_BERKE - call_if_eq PetalburgCity_Gym_EventScript_OpenOHKORoomDoors + call_if_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_OpenSpeedRoomDoors + call_if_defeated TRAINER_MARY, PetalburgCity_Gym_EventScript_OpenAccuracyRoomDoors + call_if_defeated TRAINER_PARKER, PetalburgCity_Gym_EventScript_OpenConfusionRoomDoors + call_if_defeated TRAINER_ALEXIA, PetalburgCity_Gym_EventScript_OpenDefenseRoomDoors + call_if_defeated TRAINER_GEORGE, PetalburgCity_Gym_EventScript_OpenRecoveryRoomDoors + call_if_defeated TRAINER_JODY, PetalburgCity_Gym_EventScript_OpenStrengthRoomDoors + call_if_defeated TRAINER_BERKE, PetalburgCity_Gym_EventScript_OpenOHKORoomDoors end PetalburgCity_Gym_EventScript_UnlockAllDoors:: @ 82048FF @@ -403,7 +396,7 @@ PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry:: @ 8204E17 return PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: @ 8204E1D - giveitem_std ITEM_ENIGMA_BERRY + giveitem ITEM_ENIGMA_BERRY compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setvar VAR_ENIGMA_BERRY_AVAILABLE, 0 @@ -411,7 +404,7 @@ PetalburgCity_Gym_EventScript_GiveEnigmaBerry:: @ 8204E1D end PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B - msgbox PetalburgCity_Gym_Text_NormanPreBattle, MSGBOX_DEFAULT + msgbox PetalburgCity_Gym_Text_NormanIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_NORMAN_1, PetalburgCity_Gym_Text_NormanDefeat message PetalburgCity_Gym_Text_ReceivedBalanceBadge waitmessage @@ -444,7 +437,7 @@ PetalburgCity_Gym_EventScript_NormanBattle:: @ 8204E3B end PetalburgCity_Gym_EventScript_GiveFacade:: @ 8204ED2 - giveitem_std ITEM_TM42 + giveitem ITEM_TM42 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull setflag FLAG_RECEIVED_TM42 @@ -673,8 +666,7 @@ PetalburgCity_Gym_Movement_WallysUncleApproachPlayerWest: @ 82050D0 walk_up step_end -@ Unused -PetalburgCity_Gym_Movement_2050D8: @ 82050D8 +PetalburgCity_Gym_Movement_Unused: @ 82050D8 walk_in_place_fastest_up delay_16 delay_16 @@ -830,8 +822,7 @@ PetalburgCity_Gym_EventScript_AccuracyRoomDoor:: @ 8205187 PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: @ 82051BC lockall - checktrainerflag TRAINER_RANDALL - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 46 msgbox PetalburgCity_Gym_Text_EnterConfusionRoom, MSGBOX_YESNO @@ -843,8 +834,7 @@ PetalburgCity_Gym_EventScript_ConfusionRoomDoor:: @ 82051BC PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: @ 82051EF lockall - checktrainerflag TRAINER_RANDALL - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_RANDALL, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 59 msgbox PetalburgCity_Gym_Text_EnterDefenseRoom, MSGBOX_YESNO @@ -856,8 +846,7 @@ PetalburgCity_Gym_EventScript_LeftDefenseRoomDoor:: @ 82051EF PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: @ 8205222 lockall - checktrainerflag TRAINER_MARY - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_MARY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 59 msgbox PetalburgCity_Gym_Text_EnterDefenseRoom, MSGBOX_YESNO @@ -869,8 +858,7 @@ PetalburgCity_Gym_EventScript_RightDefenseRoomDoor:: @ 8205222 PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: @ 8205255 lockall - checktrainerflag TRAINER_MARY - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_MARY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 72 msgbox PetalburgCity_Gym_Text_EnterRecoveryRoom, MSGBOX_YESNO @@ -882,8 +870,7 @@ PetalburgCity_Gym_EventScript_RecoveryRoomDoor:: @ 8205255 PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: @ 8205288 lockall - checktrainerflag TRAINER_PARKER - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_PARKER, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 20 msgbox PetalburgCity_Gym_Text_EnterStrengthRoom, MSGBOX_YESNO @@ -895,8 +882,7 @@ PetalburgCity_Gym_EventScript_LeftStrengthRoomDoor:: @ 8205288 PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: @ 82052BB lockall - checktrainerflag TRAINER_ALEXIA - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_ALEXIA, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 20 msgbox PetalburgCity_Gym_Text_EnterStrengthRoom, MSGBOX_YESNO @@ -908,8 +894,7 @@ PetalburgCity_Gym_EventScript_RightStrengthRoomDoor:: @ 82052BB PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: @ 82052EE lockall - checktrainerflag TRAINER_ALEXIA - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_ALEXIA, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 33 msgbox PetalburgCity_Gym_Text_EnterOHKORoom, MSGBOX_YESNO @@ -921,8 +906,7 @@ PetalburgCity_Gym_EventScript_LeftOHKORoomDoor:: @ 82052EE PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: @ 8205321 lockall - checktrainerflag TRAINER_GEORGE - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_GEORGE, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 33 msgbox PetalburgCity_Gym_Text_EnterOHKORoom, MSGBOX_YESNO @@ -934,8 +918,7 @@ PetalburgCity_Gym_EventScript_RightOHKORoomDoor:: @ 8205321 PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: @ 8205354 lockall - checktrainerflag TRAINER_JODY - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_JODY, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 1 setvar VAR_0x8009, 7 msgbox PetalburgCity_Gym_Text_EnterGymLeadersRoom, MSGBOX_YESNO @@ -947,8 +930,7 @@ PetalburgCity_Gym_EventScript_LeftGymLeadersRoomDoor:: @ 8205354 PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: @ 8205387 lockall - checktrainerflag TRAINER_BERKE - goto_if_lt PetalburgCity_Gym_EventScript_DoorLocked + goto_if_not_defeated TRAINER_BERKE, PetalburgCity_Gym_EventScript_DoorLocked setvar VAR_0x8008, 7 setvar VAR_0x8009, 7 msgbox PetalburgCity_Gym_Text_EnterGymLeadersRoom, MSGBOX_YESNO @@ -959,7 +941,7 @@ PetalburgCity_Gym_EventScript_RightGymLeadersRoomDoor:: @ 8205387 end PetalburgCity_Gym_EventScript_Randall:: @ 82053BA - trainerbattle_single TRAINER_RANDALL, PetalburgCity_Gym_Text_RandallPreBattle, PetalburgCity_Gym_Text_RandallDefeat, PetalburgCity_Gym_EventScript_SlideOpenSpeedRoomDoors + trainerbattle_single TRAINER_RANDALL, PetalburgCity_Gym_Text_RandallIntro, PetalburgCity_Gym_Text_RandallDefeat, PetalburgCity_Gym_EventScript_SlideOpenSpeedRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_RandallPostBadge msgbox PetalburgCity_Gym_Text_RandallPostBattle, MSGBOX_AUTOCLOSE end @@ -976,7 +958,7 @@ PetalburgCity_Gym_EventScript_RandallPostBadge:: @ 82053ED end PetalburgCity_Gym_EventScript_Parker:: @ 82053F6 - trainerbattle_single TRAINER_PARKER, PetalburgCity_Gym_Text_ParkerPreBattle, PetalburgCity_Gym_Text_ParkerDefeat, PetalburgCity_Gym_EventScript_SlideOpenConfusionRoomDoors + trainerbattle_single TRAINER_PARKER, PetalburgCity_Gym_Text_ParkerIntro, PetalburgCity_Gym_Text_ParkerDefeat, PetalburgCity_Gym_EventScript_SlideOpenConfusionRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_ParkerPostBadge msgbox PetalburgCity_Gym_Text_ParkerPostBattle, MSGBOX_AUTOCLOSE end @@ -993,7 +975,7 @@ PetalburgCity_Gym_EventScript_ParkerPostBadge:: @ 8205429 end PetalburgCity_Gym_EventScript_George:: @ 8205432 - trainerbattle_single TRAINER_GEORGE, PetalburgCity_Gym_Text_GeorgePreBattle, PetalburgCity_Gym_Text_GeorgeDefeat, PetalburgCity_Gym_EventScript_SlideOpenRecoveryRoomDoors + trainerbattle_single TRAINER_GEORGE, PetalburgCity_Gym_Text_GeorgeIntro, PetalburgCity_Gym_Text_GeorgeDefeat, PetalburgCity_Gym_EventScript_SlideOpenRecoveryRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_GeorgePostBadge msgbox PetalburgCity_Gym_Text_GeorgePostBattle, MSGBOX_AUTOCLOSE end @@ -1010,7 +992,7 @@ PetalburgCity_Gym_EventScript_GeorgePostBadge:: @ 8205465 end PetalburgCity_Gym_EventScript_Berke:: @ 820546E - trainerbattle_single TRAINER_BERKE, PetalburgCity_Gym_Text_BerkePreBattle, PetalburgCity_Gym_Text_BerkeDefeat, PetalburgCity_Gym_EventScript_SlideOpenOHKORoomDoors + trainerbattle_single TRAINER_BERKE, PetalburgCity_Gym_Text_BerkeIntro, PetalburgCity_Gym_Text_BerkeDefeat, PetalburgCity_Gym_EventScript_SlideOpenOHKORoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_BerkePostBadge msgbox PetalburgCity_Gym_Text_BerkePostBattle, MSGBOX_AUTOCLOSE end @@ -1027,7 +1009,7 @@ PetalburgCity_Gym_EventScript_BerkePostBadge:: @ 82054A1 end PetalburgCity_Gym_EventScript_Mary:: @ 82054AA - trainerbattle_single TRAINER_MARY, PetalburgCity_Gym_Text_MaryPreBattle, PetalburgCity_Gym_Text_MaryDefeat, PetalburgCity_Gym_EventScript_SlideOpenAccuracyRoomDoors + trainerbattle_single TRAINER_MARY, PetalburgCity_Gym_Text_MaryIntro, PetalburgCity_Gym_Text_MaryDefeat, PetalburgCity_Gym_EventScript_SlideOpenAccuracyRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_MaryPostBadge msgbox PetalburgCity_Gym_Text_MaryPostBattle, MSGBOX_AUTOCLOSE end @@ -1044,7 +1026,7 @@ PetalburgCity_Gym_EventScript_MaryPostBadge:: @ 82054DD end PetalburgCity_Gym_EventScript_Alexia:: @ 82054E6 - trainerbattle_single TRAINER_ALEXIA, PetalburgCity_Gym_Text_AlexiaPreBattle, PetalburgCity_Gym_Text_AlexiaDefeat, PetalburgCity_Gym_EventScript_SlideOpenDefenseRoomDoors + trainerbattle_single TRAINER_ALEXIA, PetalburgCity_Gym_Text_AlexiaIntro, PetalburgCity_Gym_Text_AlexiaDefeat, PetalburgCity_Gym_EventScript_SlideOpenDefenseRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_AlexiaPostBadge msgbox PetalburgCity_Gym_Text_AlexiaPostBattle, MSGBOX_AUTOCLOSE end @@ -1061,7 +1043,7 @@ PetalburgCity_Gym_EventScript_AlexiaPostBadge:: @ 8205519 end PetalburgCity_Gym_EventScript_Jody:: @ 8205522 - trainerbattle_single TRAINER_JODY, PetalburgCity_Gym_Text_JodyPreBattle, PetalburgCity_Gym_Text_JodyDefeat, PetalburgCity_Gym_EventScript_SlideOpenStrengthRoomDoors + trainerbattle_single TRAINER_JODY, PetalburgCity_Gym_Text_JodyIntro, PetalburgCity_Gym_Text_JodyDefeat, PetalburgCity_Gym_EventScript_SlideOpenStrengthRoomDoors goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_JodyPostBadge msgbox PetalburgCity_Gym_Text_JodyPostBattle, MSGBOX_AUTOCLOSE end @@ -1358,7 +1340,7 @@ PetalburgCity_Gym_Text_YouHaveGottenStronger: @ 8205F87 .string "I can tell by the number of BADGES\n" .string "that you've earned.$" -PetalburgCity_Gym_Text_NormanPreBattle: @ 8205FE5 +PetalburgCity_Gym_Text_NormanIntro: @ 8205FE5 .string "DAD: Hm…\n" .string "So, you did get four GYM BADGES.\p" .string "Fine, as I promised, we will have\n" @@ -1455,7 +1437,7 @@ PetalburgCity_Gym_Text_GymGuidePostVictory: @ 82066F3 .string "Like, whoa!\n" .string "What a stunning turn of events!$" -PetalburgCity_Gym_Text_RandallPreBattle: @ 820674F +PetalburgCity_Gym_Text_RandallIntro: @ 820674F .string "The ability to attack before the\n" .string "opponent…\p" .string "Just that alone puts me at a great\n" @@ -1478,7 +1460,7 @@ PetalburgCity_Gym_Text_RandallPostBadge: @ 820685E .string "That's what I think being a\n" .string "GYM LEADER is all about.$" -PetalburgCity_Gym_Text_ParkerPreBattle: @ 82068FD +PetalburgCity_Gym_Text_ParkerIntro: @ 82068FD .string "This is the CONFUSION ROOM.\p" .string "Let me see how well bonded you are\n" .string "with your POKéMON!$" @@ -1495,7 +1477,7 @@ PetalburgCity_Gym_Text_ParkerPostBadge: @ 82069D9 .string "After you beat our LEADER, the\n" .string "training has become a lot tougher.$" -PetalburgCity_Gym_Text_GeorgePreBattle: @ 8206A1B +PetalburgCity_Gym_Text_GeorgeIntro: @ 8206A1B .string "Just when you think you're going to\n" .string "win, your opponent restores HP…\p" .string "Can you just imagine how awful that\n" @@ -1520,7 +1502,7 @@ PetalburgCity_Gym_Text_GeorgePostBadge: @ 8206BB1 .string "I'm going to keep training at GYMS.\n" .string "One day, I'll become a LEADER.$" -PetalburgCity_Gym_Text_BerkePreBattle: @ 8206BF4 +PetalburgCity_Gym_Text_BerkeIntro: @ 8206BF4 .string "I'm not going to take it easy just\n" .string "because you're our LEADER's kid.\p" .string "I'll show you how horrid it is for\n" @@ -1543,7 +1525,7 @@ PetalburgCity_Gym_Text_BerkePostBadge: @ 8206D56 .string "the TRAINERS of PETALBURG CITY have\l" .string "become a lot tougher.$" -PetalburgCity_Gym_Text_MaryPreBattle: @ 8206DB2 +PetalburgCity_Gym_Text_MaryIntro: @ 8206DB2 .string "Giggle…\n" .string "This is the ACCURACY ROOM.\p" .string "It's pretty nasty when every attack\n" @@ -1566,7 +1548,7 @@ PetalburgCity_Gym_Text_MaryPostBadge: @ 8206ED8 .string "We're striving to become soul mates\n" .string "with our POKéMON.$" -PetalburgCity_Gym_Text_AlexiaPreBattle: @ 8206F44 +PetalburgCity_Gym_Text_AlexiaIntro: @ 8206F44 .string "The higher the DEFENSE, the more\n" .string "reckless I can be in attack.$" @@ -1586,7 +1568,7 @@ PetalburgCity_Gym_Text_AlexiaPostBattle: @ 8206F9F PetalburgCity_Gym_Text_AlexiaPostBadge: @ 8207069 .string "Hi! Have you tried using SURF?$" -PetalburgCity_Gym_Text_JodyPreBattle: @ 8207088 +PetalburgCity_Gym_Text_JodyIntro: @ 8207088 .string "Our GYM LEADER told us to go all out\n" .string "and beat you.\p" .string "Even if you happen to be the\n" diff --git a/data/maps/PetalburgCity_WallysHouse/scripts.inc b/data/maps/PetalburgCity_WallysHouse/scripts.inc index 786fb26e787f..2da3bf870475 100644 --- a/data/maps/PetalburgCity_WallysHouse/scripts.inc +++ b/data/maps/PetalburgCity_WallysHouse/scripts.inc @@ -19,7 +19,7 @@ PetalburgCity_WallysHouse_OnFrame: @ 8204247 PetalburgCity_WallysHouse_EventScript_GiveHM03Surf:: @ 8204251 lockall msgbox PetalburgCity_WallysHouse_Text_PleaseExcuseUs, MSGBOX_DEFAULT - giveitem_std ITEM_HM03 + giveitem ITEM_HM03 setflag FLAG_RECEIVED_HM03 msgbox PetalburgCity_WallysHouse_Text_SurfGoAllSortsOfPlaces, MSGBOX_DEFAULT setvar VAR_PETALBURG_CITY_STATE, 5 diff --git a/data/maps/PetalburgWoods/scripts.inc b/data/maps/PetalburgWoods/scripts.inc index 4c53891fd1fb..9b2d9d58602f 100644 --- a/data/maps/PetalburgWoods/scripts.inc +++ b/data/maps/PetalburgWoods/scripts.inc @@ -88,7 +88,7 @@ PetalburgWoods_EventScript_DevonResearcherPostBattle:: @ 822E138 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 msgbox PetalburgWoods_Text_ThatWasAwfullyClose, MSGBOX_DEFAULT - giveitem_std ITEM_GREAT_BALL + giveitem ITEM_GREAT_BALL compare VAR_RESULT, 0 goto_if_eq PetalburgWoods_EventScript_BagFull goto PetalburgWoods_EventScript_DevonResearcherFinish @@ -251,7 +251,7 @@ PetalburgWoods_EventScript_Girl:: @ 822E222 faceplayer goto_if_set FLAG_RECEIVED_MIRACLE_SEED, PetalburgWoods_EventScript_ExplainMiracleSeed msgbox PetalburgWoods_Text_TryUsingThisItem, MSGBOX_DEFAULT - giveitem_std ITEM_MIRACLE_SEED + giveitem ITEM_MIRACLE_SEED compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MIRACLE_SEED diff --git a/data/maps/Route103/scripts.inc b/data/maps/Route103/scripts.inc index ea6822f135ac..00acbab4db5b 100644 --- a/data/maps/Route103/scripts.inc +++ b/data/maps/Route103/scripts.inc @@ -61,32 +61,32 @@ Route103_EventScript_RivalBrendan:: @ 81EC434 end Route103_EventScript_StartMayBattleTreecko:: @ 81EC48E - trainerbattle_no_intro TRAINER_MAY_4, Route103_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_103_TREECKO, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end Route103_EventScript_StartMayBattleTorchic:: @ 81EC49E - trainerbattle_no_intro TRAINER_MAY_7, Route103_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_103_TORCHIC, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end Route103_EventScript_StartMayBattleMudkip:: @ 81EC4AE - trainerbattle_no_intro TRAINER_MAY_1, Route103_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_103_MUDKIP, Route103_Text_MayDefeated goto Route103_EventScript_AfterMayBattle end Route103_EventScript_StartBrendanBattleTreecko:: @ 81EC4BE - trainerbattle_no_intro TRAINER_BRENDAN_4, Route103_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_TREECKO, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end Route103_EventScript_StartBrendanBattleTorchic:: @ 81EC4CE - trainerbattle_no_intro TRAINER_BRENDAN_7, Route103_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_TORCHIC, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end Route103_EventScript_StartBrendanBattleMudkip:: @ 81EC4DE - trainerbattle_no_intro TRAINER_BRENDAN_1, Route103_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_103_MUDKIP, Route103_Text_BrendanDefeated goto Route103_EventScript_AfterBrendanBattle end diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index ac5924d94724..5e0ed6f3c887 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -167,19 +167,19 @@ Route104_EventScript_RestoreMusic:: @ 81ECE31 return Route104_EventScript_BattleMayTreecko:: @ 81ECE36 - trainerbattle_no_intro TRAINER_MAY_14, Route104_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TREECKO, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end Route104_EventScript_BattleMayTorchic:: @ 81ECE49 - trainerbattle_no_intro TRAINER_MAY_15, Route104_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TORCHIC, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end Route104_EventScript_BattleMayMudkip:: @ 81ECE5C - trainerbattle_no_intro TRAINER_MAY_10, Route104_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_MUDKIP, Route104_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_MayDefeated end @@ -237,19 +237,19 @@ Route104_EventScript_BrendanDefeated:: @ 81ECF38 end Route104_EventScript_BattleBrendanTreecko:: @ 81ECF4D - trainerbattle_no_intro TRAINER_BRENDAN_10, Route104_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TREECKO, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end Route104_EventScript_BattleBrendanTorchic:: @ 81ECF60 - trainerbattle_no_intro TRAINER_BRENDAN_12, Route104_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TORCHIC, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end Route104_EventScript_BattleBrendanMudkip:: @ 81ECF73 - trainerbattle_no_intro TRAINER_BRENDAN_11, Route104_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_MUDKIP, Route104_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_ROUTE_104 goto Route104_EventScript_BrendanDefeated end @@ -269,7 +269,7 @@ Route104_EventScript_ExpertF:: @ 81ECF8C faceplayer goto_if_set FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104, Route104_EventScript_ReceivedBerry msgbox Route104_Text_PlantBerriesInSoilTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_CHESTO_BERRY + giveitem ITEM_CHESTO_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_CHESTO_BERRY_ROUTE_104 @@ -287,7 +287,7 @@ Route104_EventScript_WhiteHerbFlorist:: @ 81ECFCD faceplayer goto_if_set FLAG_RECEIVED_WHITE_HERB, Route104_EventScript_ReceivedWhiteHerb msgbox Route104_Text_DontNeedThisTakeIt, MSGBOX_DEFAULT - giveitem_std ITEM_WHITE_HERB + giveitem ITEM_WHITE_HERB compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_WHITE_HERB @@ -340,7 +340,7 @@ Route104_EventScript_Boy2:: @ 81ED057 faceplayer goto_if_set FLAG_RECEIVED_TM09, Route104_EventScript_ReceivedBulletSeed msgbox Route104_Text_LikeFillingMouthWithSeedsTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM09 + giveitem ITEM_TM09 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM09 diff --git a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc index fe0dbf632bf5..253ae71923a9 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc +++ b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc @@ -75,7 +75,7 @@ Route104_PrettyPetalFlowerShop_EventScript_WailmerPailGirl:: @ 822A40C Route104_PrettyPetalFlowerShop_EventScript_GiveWailmerPail:: @ 822A421 msgbox Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis, MSGBOX_DEFAULT - giveitem_std ITEM_WAILMER_PAIL + giveitem ITEM_WAILMER_PAIL msgbox Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation, MSGBOX_DEFAULT setflag FLAG_RECEIVED_WAILMER_PAIL release @@ -89,7 +89,7 @@ Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl:: @ 822A442 msgbox Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers, MSGBOX_DEFAULT random 8 addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY diff --git a/data/maps/Route109/scripts.inc b/data/maps/Route109/scripts.inc index 94bcece22f25..2fe9020aedfb 100644 --- a/data/maps/Route109/scripts.inc +++ b/data/maps/Route109/scripts.inc @@ -330,7 +330,7 @@ Route109_EventScript_SoftSandGirl:: @ 81EE9B5 special GetPlayerBigGuyGirlString goto_if_set FLAG_RECEIVED_SOFT_SAND, Route109_EventScript_AlreadyReceivedSoftSand msgbox Route109_Text_YouCanHaveThis, MSGBOX_DEFAULT - giveitem_std ITEM_SOFT_SAND + giveitem ITEM_SOFT_SAND compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull closemessage diff --git a/data/maps/Route109_SeashoreHouse/scripts.inc b/data/maps/Route109_SeashoreHouse/scripts.inc index b0c5865dcd1d..1c640d4a4de3 100644 --- a/data/maps/Route109_SeashoreHouse/scripts.inc +++ b/data/maps/Route109_SeashoreHouse/scripts.inc @@ -24,7 +24,7 @@ Route109_SeashoreHouse_EventScript_AlreadyGaveIntroduction:: @ 8269428 Route109_SeashoreHouse_EventScript_DefeatedTrainers:: @ 8269432 msgbox Route109_SeashoreHouse_Text_TakeTheseSodaPopBottles, MSGBOX_DEFAULT - giveitem_std ITEM_SODA_POP, 6 + giveitem ITEM_SODA_POP, 6 compare VAR_RESULT, 0 goto_if_eq Route109_SeashoreHouse_EventScript_BagFull setflag FLAG_RECEIVED_6_SODA_POP @@ -54,9 +54,9 @@ Route109_SeashoreHouse_EventScript_BuySodaPop:: @ 8269484 compare VAR_RESULT, FALSE goto_if_eq Route109_SeashoreHouse_EventScript_NotEnoughSpace msgbox Route109_SeashoreHouse_Text_HereYouGo, MSGBOX_DEFAULT - takemoney 300, 0 + removemoney 300, 0 updatemoneybox 0, 0 - giveitem_std ITEM_SODA_POP + giveitem ITEM_SODA_POP hidemoneybox release end @@ -89,12 +89,9 @@ Route109_SeashoreHouse_EventScript_Simon:: @ 8269518 end Route109_SeashoreHouse_EventScript_CheckTrainersCompletion:: @ 8269533 - checktrainerflag TRAINER_DWAYNE - goto_if_lt Route109_SeashoreHouse_EventScript_TrainersNotCompleted - checktrainerflag TRAINER_JOHANNA - goto_if_lt Route109_SeashoreHouse_EventScript_TrainersNotCompleted - checktrainerflag TRAINER_SIMON - goto_if_lt Route109_SeashoreHouse_EventScript_TrainersNotCompleted + goto_if_not_defeated TRAINER_DWAYNE, Route109_SeashoreHouse_EventScript_TrainersNotCompleted + goto_if_not_defeated TRAINER_JOHANNA, Route109_SeashoreHouse_EventScript_TrainersNotCompleted + goto_if_not_defeated TRAINER_SIMON, Route109_SeashoreHouse_EventScript_TrainersNotCompleted setflag FLAG_DEFEATED_SEASHORE_HOUSE release end diff --git a/data/maps/Route110/scripts.inc b/data/maps/Route110/scripts.inc index 5da3e98ebf5f..faf9509e7d61 100644 --- a/data/maps/Route110/scripts.inc +++ b/data/maps/Route110/scripts.inc @@ -421,17 +421,17 @@ Route110_EventScript_MayBattle:: @ 81EF7EB end Route110_EventScript_MayBattleTreecko:: @ 81EF81A - trainerbattle_no_intro TRAINER_MAY_5, Route110_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_110_TREECKO, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end Route110_EventScript_MayBattleTorchic:: @ 81EF82A - trainerbattle_no_intro TRAINER_MAY_8, Route110_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_110_TORCHIC, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end Route110_EventScript_MayBattleMudkip:: @ 81EF83A - trainerbattle_no_intro TRAINER_MAY_2, Route110_Text_MayDefeated + trainerbattle_no_intro TRAINER_MAY_ROUTE_110_MUDKIP, Route110_Text_MayDefeated goto Route110_EventScript_MayDefeated end @@ -451,17 +451,17 @@ Route110_EventScript_BrendanBattle:: @ 81EF865 end Route110_EventScript_BrendanBattleTreecko:: @ 81EF894 - trainerbattle_no_intro TRAINER_BRENDAN_5, Route110_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_TREECKO, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end Route110_EventScript_BrendanBattleTorchic:: @ 81EF8A4 - trainerbattle_no_intro TRAINER_BRENDAN_8, Route110_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_TORCHIC, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end Route110_EventScript_BrendanBattleMudkip:: @ 81EF8B4 - trainerbattle_no_intro TRAINER_BRENDAN_2, Route110_Text_BrendanDefeated + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_110_MUDKIP, Route110_Text_BrendanDefeated goto Route110_EventScript_BrendanDefeated end @@ -473,7 +473,7 @@ Route110_EventScript_BrendanDefeated:: @ 81EF8C4 end Route110_EventScript_GiveItemfinder:: @ 81EF8DF - giveitem_std ITEM_ITEMFINDER + giveitem ITEM_ITEMFINDER return Route110_EventScript_RivalExit:: @ 81EF8EC diff --git a/data/maps/Route110_TrickHouseEnd/scripts.inc b/data/maps/Route110_TrickHouseEnd/scripts.inc index 91d70160f3d9..7fec5ffa7191 100644 --- a/data/maps/Route110_TrickHouseEnd/scripts.inc +++ b/data/maps/Route110_TrickHouseEnd/scripts.inc @@ -13,7 +13,7 @@ Route110_TrickHouseEnd_OnResume: @ 826ACC4 Route110_TrickHouseEnd_OnTransition: @ 826ACD0 setvar VAR_TEMP_1, 0 setvar VAR_TEMP_2, 0 - special SetTrickHouseEndRoomFlag + special SetTrickHouseNuggetFlag end Route110_TrickHouseEnd_OnWarp: @ 826ACDE @@ -60,7 +60,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle1:: @ 826AD84 msgbox Route110_TrickHouseEnd_Text_AllNightToPlantTrees, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_RARE_CANDY + giveitem ITEM_RARE_CANDY compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -73,7 +73,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle2:: @ 826ADC0 msgbox Route110_TrickHouseEnd_Text_AllNightToMakeMaze, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_TIMER_BALL + giveitem ITEM_TIMER_BALL compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -86,7 +86,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle3:: @ 826ADFC msgbox Route110_TrickHouseEnd_Text_AllNightToPreparePanels, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_HARD_STONE + giveitem ITEM_HARD_STONE compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -99,7 +99,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle4:: @ 826AE38 msgbox Route110_TrickHouseEnd_Text_AllNightToShoveBoulders, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_SMOKE_BALL + giveitem ITEM_SMOKE_BALL compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -112,7 +112,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle5:: @ 826AE74 msgbox Route110_TrickHouseEnd_Text_AllNightToMakeMechadolls, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_TM12 + giveitem ITEM_TM12 compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -125,7 +125,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle6:: @ 826AEB0 msgbox Route110_TrickHouseEnd_Text_AllNightToInstallDoors, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_MAGNET + giveitem ITEM_MAGNET compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -138,7 +138,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle7:: @ 826AEEC msgbox Route110_TrickHouseEnd_Text_AllNightSettingUpArrows, MSGBOX_DEFAULT msgbox Route110_TrickHouseEnd_Text_YouHaveEarnedThisReward, MSGBOX_DEFAULT setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0 - giveitem_std ITEM_PP_MAX + giveitem ITEM_PP_MAX compare VAR_RESULT, FALSE call_if_eq Route110_TrickHouseEnd_EventScript_BagFull msgbox Route110_TrickHouseEnd_Text_MakeNewTricksToStumpYou, MSGBOX_DEFAULT @@ -171,7 +171,7 @@ Route110_TrickHouseEnd_EventScript_CompletedPuzzle8:: @ 826AF28 call_if_eq Route110_TrickHouseEnd_EventScript_NoRoomForTent msgbox Route110_TrickHouseEnd_Text_LeavingOnJourney, MSGBOX_DEFAULT call Route110_TrickHouseEnd_EventScript_TrickMasterExit - special ResetTrickHouseEndRoomFlag + special ResetTrickHouseNuggetFlag release end @@ -182,11 +182,11 @@ Route110_TrickHouseEnd_EventScript_ChooseTent:: @ 826AFA5 goto Route110_TrickHouseEnd_EventScript_GiveBlueTent Route110_TrickHouseEnd_EventScript_GiveRedTent:: @ 826AFBF - givedecoration_std DECOR_RED_TENT + givedecoration DECOR_RED_TENT return Route110_TrickHouseEnd_EventScript_GiveBlueTent:: @ 826AFC7 - givedecoration_std DECOR_BLUE_TENT + givedecoration DECOR_BLUE_TENT return Route110_TrickHouseEnd_EventScript_TrickMasterExit:: @ 826AFCF diff --git a/data/maps/Route110_TrickHouseEntrance/scripts.inc b/data/maps/Route110_TrickHouseEntrance/scripts.inc index 0de4153cca80..06cd236519c4 100644 --- a/data/maps/Route110_TrickHouseEntrance/scripts.inc +++ b/data/maps/Route110_TrickHouseEntrance/scripts.inc @@ -367,7 +367,7 @@ Route110_TrickHouseEntrance_EventScript_GiveReward:: @ 8269E8F end Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: @ 8269EEF - giveitem_std ITEM_RARE_CANDY + giveitem ITEM_RARE_CANDY compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -377,7 +377,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle1Reward:: @ 8269EEF end Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: @ 8269F1B - giveitem_std ITEM_TIMER_BALL + giveitem ITEM_TIMER_BALL compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -387,7 +387,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle2Reward:: @ 8269F1B end Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: @ 8269F47 - giveitem_std ITEM_HARD_STONE + giveitem ITEM_HARD_STONE compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -397,7 +397,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle3Reward:: @ 8269F47 end Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: @ 8269F73 - giveitem_std ITEM_SMOKE_BALL + giveitem ITEM_SMOKE_BALL compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -407,7 +407,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle4Reward:: @ 8269F73 end Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: @ 8269F9F - giveitem_std ITEM_TM12 + giveitem ITEM_TM12 compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -417,7 +417,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle5Reward:: @ 8269F9F end Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: @ 8269FCB - giveitem_std ITEM_MAGNET + giveitem ITEM_MAGNET compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -427,7 +427,7 @@ Route110_TrickHouseEntrance_EventScript_GivePuzzle6Reward:: @ 8269FCB end Route110_TrickHouseEntrance_EventScript_GivePuzzle7Reward:: @ 8269FF7 - giveitem_std ITEM_PP_MAX + giveitem ITEM_PP_MAX compare VAR_RESULT, TRUE goto_if_eq Route110_TrickHouseEntrance_EventScript_GotReward compare VAR_RESULT, FALSE @@ -464,11 +464,11 @@ Route110_TrickHouseEntrance_EventScript_ChooseTent:: @ 826A070 goto Route110_TrickHouseEntrance_EventScript_GiveBlueTent Route110_TrickHouseEntrance_EventScript_GiveRedTent:: @ 826A08A - givedecoration_std DECOR_RED_TENT + givedecoration DECOR_RED_TENT return Route110_TrickHouseEntrance_EventScript_GiveBlueTent:: @ 826A092 - givedecoration_std DECOR_BLUE_TENT + givedecoration DECOR_BLUE_TENT return Route110_TrickHouseEntrance_EventScript_ReceivedTent:: @ 826A09A diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index ebda5713e6a9..07ab218c9f6b 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -48,8 +48,7 @@ Route111_OnTransition: @ 81F0D87 call_if_eq Route111_EventScript_SetMirageTowerGone call Route111_EventScript_CheckSetSandstorm call GabbyAndTy_EventScript_UpdateLocation - checktrainerflag TRAINER_VICKY - goto_if_lt Route111_EventScript_SetWinstratesNotDefeated + goto_if_not_defeated TRAINER_VICKY, Route111_EventScript_SetWinstratesNotDefeated end Route111_EventScript_SetFallingPlayerGfx:: @ 81F0DC2 @@ -162,7 +161,7 @@ Route111_EventScript_Girl:: @ 81F0EB9 dotimebasedevents goto_if_set FLAG_DAILY_ROUTE_111_RECEIVED_BERRY, Route111_EventScript_ReceivedBerry msgbox Route111_Text_WateredPlantsEveryDayTakeBerry, MSGBOX_DEFAULT - giveitem_std ITEM_RAZZ_BERRY + giveitem ITEM_RAZZ_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_111_RECEIVED_BERRY diff --git a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc index 387b8f63021d..499459c240a2 100644 --- a/data/maps/Route111_WinstrateFamilysHouse/scripts.inc +++ b/data/maps/Route111_WinstrateFamilysHouse/scripts.inc @@ -15,7 +15,7 @@ Route111_WinstrateFamilysHouse_EventScript_Victoria:: @ 822A4A2 setvar VAR_0x8008, 3 goto_if_set FLAG_RECEIVED_MACHO_BRACE, Route111_WinstrateFamilysHouse_EventScript_ReceivedMachoBrace msgbox Route111_WinstrateFamilysHouse_Text_LikeYouToHaveMachoBrace, MSGBOX_DEFAULT - giveitem_std ITEM_MACHO_BRACE + giveitem ITEM_MACHO_BRACE compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_MACHO_BRACE diff --git a/data/maps/Route113_GlassWorkshop/scripts.inc b/data/maps/Route113_GlassWorkshop/scripts.inc index 57c5f9f57228..eed6d8eaba3b 100644 --- a/data/maps/Route113_GlassWorkshop/scripts.inc +++ b/data/maps/Route113_GlassWorkshop/scripts.inc @@ -31,7 +31,7 @@ Route113_GlassWorkshop_EventScript_GlassWorker:: @ 826ED1E compare VAR_GLASS_WORKSHOP_STATE, 1 goto_if_eq Route113_GlassWorkshop_EventScript_ExplainSootSack msgbox Route113_GlassWorkshop_Text_GoCollectAshWithThis, MSGBOX_DEFAULT - giveitem_std ITEM_SOOT_SACK + giveitem ITEM_SOOT_SACK setvar VAR_GLASS_WORKSHOP_STATE, 1 msgbox Route113_GlassWorkshop_Text_ExplainSootSack, MSGBOX_DEFAULT release @@ -220,13 +220,13 @@ Route113_GlassWorkshop_EventScript_MakeGlassItem:: @ 826F00F end Route113_GlassWorkshop_EventScript_GiveGlassFlute:: @ 826F047 - giveitem_std VAR_0x8008 + giveitem VAR_0x8008 compare VAR_RESULT, FALSE goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForFlute return Route113_GlassWorkshop_EventScript_GiveGlassDecor:: @ 826F05F - givedecoration_std VAR_0x8008 + givedecoration VAR_0x8008 compare VAR_RESULT, FALSE goto_if_eq Route113_GlassWorkshop_EventScript_NoRoomForDecor return diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index 9b4631dd0e50..ab072d983737 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -33,7 +33,7 @@ Route114_EventScript_Man:: @ 81F2582 random NUM_ROUTE_114_MAN_BERRIES addvar VAR_RESULT, NUM_ROUTE_114_MAN_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_114_RECEIVED_BERRY @@ -51,7 +51,7 @@ Route114_EventScript_RoarGentleman:: @ 81F25D1 faceplayer goto_if_set FLAG_RECEIVED_TM05, Route114_EventScript_ReceivedRoar msgbox Route114_Text_AllMyMonDoesIsRoarTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM05 + giveitem ITEM_TM05 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM05 diff --git a/data/maps/Route114_FossilManiacsHouse/scripts.inc b/data/maps/Route114_FossilManiacsHouse/scripts.inc index 5313f8705ae2..8db686d10b69 100644 --- a/data/maps/Route114_FossilManiacsHouse/scripts.inc +++ b/data/maps/Route114_FossilManiacsHouse/scripts.inc @@ -11,7 +11,7 @@ Route114_FossilManiacsHouse_EventScript_FossilManiacsBrother:: @ 822AD3A faceplayer goto_if_set FLAG_RECEIVED_TM28, Route114_FossilManiacsHouse_EventScript_ReceivedDig msgbox Route114_FossilManiacsHouse_Text_HaveThisToDigLikeMyBrother, MSGBOX_DEFAULT - giveitem_std ITEM_TM28 + giveitem ITEM_TM28 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM28 diff --git a/data/maps/Route114_LanettesHouse/scripts.inc b/data/maps/Route114_LanettesHouse/scripts.inc index b772228e400b..cd2f808fca8a 100644 --- a/data/maps/Route114_LanettesHouse/scripts.inc +++ b/data/maps/Route114_LanettesHouse/scripts.inc @@ -12,7 +12,7 @@ Route114_LanettesHouse_EventScript_Lanette:: @ 822B2D2 goto_if_set FLAG_RECEIVED_DOLL_LANETTE, Route114_LanettesHouse_EventScript_OfferAdvice setflag FLAG_SYS_PC_LANETTE msgbox Route114_LanettesHouse_Text_EverythingClutteredKeepThis, MSGBOX_DEFAULT - givedecoration_std DECOR_LOTAD_DOLL + givedecoration DECOR_LOTAD_DOLL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowNoRoomForDecor setflag FLAG_RECEIVED_DOLL_LANETTE diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index fa27ca9b23e5..d1676a6b86a8 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -58,7 +58,7 @@ Route116_EventScript_DevonEmployee:: @ 81F2CA2 Route116_EventScript_GiveRepeatBall:: @ 81F2CBB setflag FLAG_MET_DEVON_EMPLOYEE - giveitem_std ITEM_REPEAT_BALL + giveitem ITEM_REPEAT_BALL compare VAR_RESULT, FALSE goto_if_eq Route116_EventScript_NoRoomForRepeatBall msgbox Route116_Text_NewBallAvailableAtMart, MSGBOX_DEFAULT diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index cccbe0085112..af77193bad35 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -38,7 +38,7 @@ Route118_EventScript_GoodRodFisherman:: @ 81F3E14 Route118_EventScript_ReceiveGoodRod:: @ 81F3E3E msgbox Route118_Text_IdenticalMindsTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_GOOD_ROD + giveitem ITEM_GOOD_ROD setflag FLAG_RECEIVED_GOOD_ROD msgbox Route118_Text_TryYourLuckFishing, MSGBOX_DEFAULT release diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 1987f34ed923..a04031829d02 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -86,17 +86,17 @@ Route119_EventScript_BattleMay:: @ 81F450B end Route119_EventScript_BattleMayTreecko:: @ 81F453A - trainerbattle_no_intro TRAINER_MAY_6, Route119_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_ROUTE_119_TREECKO, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end Route119_EventScript_BattleMayTorchic:: @ 81F454A - trainerbattle_no_intro TRAINER_MAY_9, Route119_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_ROUTE_119_TORCHIC, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end Route119_EventScript_BattleMayMudkip:: @ 81F455A - trainerbattle_no_intro TRAINER_MAY_3, Route119_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_ROUTE_119_MUDKIP, Route119_Text_MayDefeat goto Route119_EventScript_DefeatedMay end @@ -116,17 +116,17 @@ Route119_EventScript_BattleBrendan:: @ 81F4585 end Route119_EventScript_BattleBrendanTreecko:: @ 81F45B4 - trainerbattle_no_intro TRAINER_BRENDAN_6, Route119_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_TREECKO, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end Route119_EventScript_BattleBrendanTorchic:: @ 81F45C4 - trainerbattle_no_intro TRAINER_BRENDAN_9, Route119_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_TORCHIC, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end Route119_EventScript_BattleBrendanMudkip:: @ 81F45D4 - trainerbattle_no_intro TRAINER_BRENDAN_3, Route119_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_ROUTE_119_MUDKIP, Route119_Text_BrendanDefeat goto Route119_EventScript_DefeatedBrendan end @@ -138,7 +138,7 @@ Route119_EventScript_DefeatedBrendan:: @ 81F45E4 end Route119_EventScript_GiveFlyHM:: @ 81F45FF - giveitem_std ITEM_HM02 + giveitem ITEM_HM02 setflag FLAG_RECEIVED_HM02 return diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 7363b1331bd7..6ffc19de8116 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -41,7 +41,7 @@ Route119_WeatherInstitute_2F_EventScript_Grunt3:: @ 826FF96 end Route119_WeatherInstitute_2F_EventScript_Shelly:: @ 826FFAD - trainerbattle_single TRAINER_SHELLY_1, Route119_WeatherInstitute_2F_Text_ShellyIntro, Route119_WeatherInstitute_2F_Text_ShellyDefeat, Route119_WeatherInstitute_2F_EventScript_ShellyDefeated + trainerbattle_single TRAINER_SHELLY_WEATHER_INSTITUTE, Route119_WeatherInstitute_2F_Text_ShellyIntro, Route119_WeatherInstitute_2F_Text_ShellyDefeat, Route119_WeatherInstitute_2F_EventScript_ShellyDefeated msgbox Route119_WeatherInstitute_2F_Text_ShellyPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/Route120/scripts.inc b/data/maps/Route120/scripts.inc index 6018e2d95d8c..2c97da9e116e 100644 --- a/data/maps/Route120/scripts.inc +++ b/data/maps/Route120/scripts.inc @@ -145,7 +145,7 @@ Route120_EventScript_GiveIapapaBerry:: @ 81F55F6 end Route120_EventScript_GiveBerry:: @ 81F5601 - giveitem_std VAR_0x8004 + giveitem VAR_0x8004 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_ROUTE_120_RECEIVED_BERRY @@ -237,7 +237,7 @@ Route120_EventScript_StevenGiveDeconScope:: @ 81F572C applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestUp waitmovement 0 msgbox Route120_Text_StevenGiveDevonScope, MSGBOX_DEFAULT - giveitem_std ITEM_DEVON_SCOPE + giveitem ITEM_DEVON_SCOPE setflag FLAG_RECEIVED_DEVON_SCOPE msgbox Route120_Text_StevenGoodbye, MSGBOX_DEFAULT closemessage diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 6da6396be28c..f29fe583e158 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -66,7 +66,7 @@ Route121_SafariZoneEntrance_EventScript_TryEnterSafariZone:: @ 822BC48 goto_if_eq Route121_SafariZoneEntrance_EventScript_NotEnoughMoney playse SE_REGI msgbox Route121_SafariZoneEntrance_Text_ThatWillBe500Please, MSGBOX_DEFAULT - takemoney 500, 0 + removemoney 500, 0 updatemoneybox 0, 0 msgbox Route121_SafariZoneEntrance_Text_HereAreYourSafariBalls, MSGBOX_DEFAULT playfanfare MUS_FANFA4 diff --git a/data/maps/Route123/scripts.inc b/data/maps/Route123/scripts.inc index 27a037a3a004..f85c8b889b37 100644 --- a/data/maps/Route123/scripts.inc +++ b/data/maps/Route123/scripts.inc @@ -15,7 +15,7 @@ Route123_EventScript_GigaDrainGirl:: @ 81F6151 compare VAR_RESULT, FALSE goto_if_eq Route123_EventScript_NoGrassMons msgbox Route123_Text_YouLikeGrassMonsTooHaveThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM19 + giveitem ITEM_TM19 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM19 diff --git a/data/maps/Route123_BerryMastersHouse/scripts.inc b/data/maps/Route123_BerryMastersHouse/scripts.inc index 9e63dc608368..8b2cc5919136 100644 --- a/data/maps/Route123_BerryMastersHouse/scripts.inc +++ b/data/maps/Route123_BerryMastersHouse/scripts.inc @@ -15,7 +15,7 @@ Route123_BerryMastersHouse_EventScript_BerryMaster:: @ 826F845 random NUM_BERRY_MASTER_BERRIES addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY @@ -23,7 +23,7 @@ Route123_BerryMastersHouse_EventScript_BerryMaster:: @ 826F845 random NUM_BERRY_MASTER_BERRIES addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop, MSGBOX_DEFAULT @@ -76,7 +76,7 @@ Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: @ 826F94C msgbox Route123_BerryMastersHouse_Text_GoodSayingTakeThis, MSGBOX_DEFAULT random NUM_BERRY_MASTER_WIFE_BERRIES addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull goto Route123_BerryMastersHouse_EventScript_GaveBerry @@ -86,7 +86,7 @@ Route123_BerryMastersHouse_EventScript_GiveNormalBerry:: @ 826F94C Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: @ 826F97A goto_if_set FLAG_RECEIVED_SPELON_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_SPELON_BERRY + giveitem ITEM_SPELON_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SPELON_BERRY @@ -96,7 +96,7 @@ Route123_BerryMastersHouse_EventScript_GiveSpelonBerry:: @ 826F97A Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: @ 826F9AB goto_if_set FLAG_RECEIVED_PAMTRE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_PAMTRE_BERRY + giveitem ITEM_PAMTRE_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_PAMTRE_BERRY @@ -106,7 +106,7 @@ Route123_BerryMastersHouse_EventScript_GivePamtreBerry:: @ 826F9AB Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: @ 826F9DC goto_if_set FLAG_RECEIVED_WATMEL_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_WATMEL_BERRY + giveitem ITEM_WATMEL_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_WATMEL_BERRY @@ -116,7 +116,7 @@ Route123_BerryMastersHouse_EventScript_GiveWatmelBerry:: @ 826F9DC Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: @ 826FA0D goto_if_set FLAG_RECEIVED_DURIN_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_DURIN_BERRY + giveitem ITEM_DURIN_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_DURIN_BERRY @@ -126,7 +126,7 @@ Route123_BerryMastersHouse_EventScript_GiveDurinBerry:: @ 826FA0D Route123_BerryMastersHouse_EventScript_GiveBelueBerry:: @ 826FA3E goto_if_set FLAG_RECEIVED_BELUE_BERRY, Route123_BerryMastersHouse_EventScript_GiveNormalBerry msgbox Route123_BerryMastersHouse_Text_InspirationalTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_BELUE_BERRY + giveitem ITEM_BELUE_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_BELUE_BERRY diff --git a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc index b2c00c1cc528..c5d43799d91a 100644 --- a/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc +++ b/data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc @@ -258,8 +258,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_TryTradeShard:: @ 8270EC0 end Route124_DivingTreasureHuntersHouse_EventScript_TradeShard:: @ 8270F01 - takeitem VAR_0x8008, 1 - giveitem_std VAR_0x8009 + removeitem VAR_0x8008 + giveitem VAR_0x8009 msgbox Route124_DivingTreasureHuntersHouse_Text_ItsADeal, MSGBOX_DEFAULT call Route124_DivingTreasureHuntersHouse_EventScript_GetPlayersShards compare VAR_TEMP_1, 0 diff --git a/data/maps/Route128/scripts.inc b/data/maps/Route128/scripts.inc index 2ea7a5d06431..90abbddd5b40 100644 --- a/data/maps/Route128/scripts.inc +++ b/data/maps/Route128/scripts.inc @@ -78,13 +78,11 @@ Route128_EventScript_KyogreAwakenedScene:: @ 81F6B57 releaseall end -@ Unused -Route128_Movement_1F6C76: @ 81F6C76 +Route128_Movement_Unused1: @ 81F6C76 walk_fast_left step_end -@ Unused -Route128_Movement_1F6C78: @ 81F6C78 +Route128_Movement_Unused2: @ 81F6C78 walk_left walk_left walk_left diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index 04c7ea50577a..2c710a075f60 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -605,7 +605,7 @@ RustboroCity_EventScript_ReturnGoods:: @ 81E0C5B compare VAR_TEMP_1, 4 call_if_eq RustboroCity_EventScript_EmployeeFacePlayerRight msgbox RustboroCity_Text_YouGotItThankYou, MSGBOX_DEFAULT - giveitem_std ITEM_GREAT_BALL + giveitem ITEM_GREAT_BALL compare VAR_RESULT, FALSE call_if_eq RustboroCity_EventScript_BagFull msgbox RustboroCity_Text_PleaseComeWithMe, MSGBOX_DEFAULT @@ -896,19 +896,19 @@ RustboroCity_EventScript_RestoreBgm:: @ 81E10D6 return RustboroCity_EventScript_BattleMayTreecko:: @ 81E10DB - trainerbattle_no_intro TRAINER_MAY_14, RustboroCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TREECKO, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end RustboroCity_EventScript_BattleMayTorchic:: @ 81E10EE - trainerbattle_no_intro TRAINER_MAY_15, RustboroCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_TORCHIC, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end RustboroCity_EventScript_BattleMayMudkip:: @ 81E1101 - trainerbattle_no_intro TRAINER_MAY_10, RustboroCity_Text_MayDefeat + trainerbattle_no_intro TRAINER_MAY_RUSTBORO_MUDKIP, RustboroCity_Text_MayDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_MayBrineyHint end @@ -960,19 +960,19 @@ RustboroCity_EventScript_BrendanBrineyHint:: @ 81E11C0 end RustboroCity_EventScript_BattleBrendanTreecko:: @ 81E11D5 - trainerbattle_no_intro TRAINER_BRENDAN_10, RustboroCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TREECKO, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end RustboroCity_EventScript_BattleBrendanTorchic:: @ 81E11E8 - trainerbattle_no_intro TRAINER_BRENDAN_12, RustboroCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_TORCHIC, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end RustboroCity_EventScript_BattleBrendanMudkip:: @ 81E11FB - trainerbattle_no_intro TRAINER_BRENDAN_11, RustboroCity_Text_BrendanDefeat + trainerbattle_no_intro TRAINER_BRENDAN_RUSTBORO_MUDKIP, RustboroCity_Text_BrendanDefeat setflag FLAG_DEFEATED_RIVAL_RUSTBORO goto RustboroCity_EventScript_BrendanBrineyHint end diff --git a/data/maps/RustboroCity_CuttersHouse/scripts.inc b/data/maps/RustboroCity_CuttersHouse/scripts.inc index f19d56a2dc18..9ee4fc57565c 100644 --- a/data/maps/RustboroCity_CuttersHouse/scripts.inc +++ b/data/maps/RustboroCity_CuttersHouse/scripts.inc @@ -6,7 +6,7 @@ RustboroCity_CuttersHouse_EventScript_Cutter:: @ 8215BD4 faceplayer goto_if_set FLAG_RECEIVED_HM01, RustboroCity_CuttersHouse_EventScript_ExplainCut msgbox RustboroCity_CuttersHouse_Text_YouCanPutThisHMToGoodUse, MSGBOX_DEFAULT - giveitem_std ITEM_HM01 + giveitem ITEM_HM01 setflag FLAG_RECEIVED_HM01 msgbox RustboroCity_CuttersHouse_Text_ExplainCut, MSGBOX_DEFAULT release diff --git a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc index 7b8dbdadf29b..9df6d7ab6e20 100644 --- a/data/maps/RustboroCity_DevonCorp_2F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_2F/scripts.inc @@ -96,7 +96,7 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeRootFossil:: @ 8211933 RustboroCity_DevonCorp_2F_EventScript_GiveRootFossil:: @ 8211974 bufferitemname 0, ITEM_ROOT_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT - takeitem ITEM_ROOT_FOSSIL, 1 + removeitem ITEM_ROOT_FOSSIL setvar VAR_FOSSIL_RESURRECTION_STATE, 1 setvar VAR_WHICH_FOSSIL_REVIVED, 1 release @@ -121,7 +121,7 @@ RustboroCity_DevonCorp_2F_EventScript_NoticeClawFossil:: @ 8211991 RustboroCity_DevonCorp_2F_EventScript_GiveClawFossil:: @ 82119D2 bufferitemname 0, ITEM_CLAW_FOSSIL msgbox RustboroCity_DevonCorp_2F_Text_HandedFossilToResearcher, MSGBOX_DEFAULT - takeitem ITEM_CLAW_FOSSIL, 1 + removeitem ITEM_CLAW_FOSSIL setvar VAR_FOSSIL_RESURRECTION_STATE, 1 setvar VAR_WHICH_FOSSIL_REVIVED, 2 release diff --git a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc index 143ff45430ba..9e918ca6338d 100644 --- a/data/maps/RustboroCity_DevonCorp_3F/scripts.inc +++ b/data/maps/RustboroCity_DevonCorp_3F/scripts.inc @@ -48,7 +48,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E applymovement EVENT_OBJ_ID_PLAYER, RustboroCity_DevonCorp_3F_Movement_PlayerApproachDesk waitmovement 0 msgbox RustboroCity_DevonCorp_3F_Text_MrStoneIHaveFavor, MSGBOX_DEFAULT - giveitem_std ITEM_LETTER + giveitem ITEM_LETTER msgbox RustboroCity_DevonCorp_3F_Text_MrStoneWantYouToHaveThis, MSGBOX_DEFAULT playfanfare MUS_FANFA4 message RustboroCity_DevonCorp_3F_Text_ReceivedPokenav @@ -72,8 +72,7 @@ RustboroCity_DevonCorp_3F_EventScript_MeetPresident:: @ 821246E releaseall end -@ Unused -RustboroCity_DevonCorp_3F_Movement_21252F: @ 821252F +RustboroCity_DevonCorp_3F_Movement_Unused: @ 821252F walk_up walk_up walk_up @@ -162,7 +161,7 @@ RustboroCity_DevonCorp_3F_EventScript_MrStone:: @ 821256C RustboroCity_DevonCorp_3F_EventScript_GiveExpShare:: @ 8212595 msgbox RustboroCity_DevonCorp_3F_Text_ThankYouForDeliveringLetter, MSGBOX_DEFAULT - giveitem_std ITEM_EXP_SHARE + giveitem ITEM_EXP_SHARE compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_EXP_SHARE diff --git a/data/maps/RustboroCity_Flat2_2F/scripts.inc b/data/maps/RustboroCity_Flat2_2F/scripts.inc index f328b71c1591..1caeda683aef 100644 --- a/data/maps/RustboroCity_Flat2_2F/scripts.inc +++ b/data/maps/RustboroCity_Flat2_2F/scripts.inc @@ -10,7 +10,7 @@ RustboroCity_Flat2_2F_EventScript_NinjaBoy:: @ 8215FE1 faceplayer goto_if_set FLAG_RECEIVED_PREMIER_BALL_RUSTBORO, RustboroCity_Flat2_2F_EventScript_GavePremierBall msgbox RustboroCity_Flat2_2F_Text_MyDaddyMadeThisYouCanHaveIt, MSGBOX_DEFAULT - giveitem_std ITEM_PREMIER_BALL + giveitem ITEM_PREMIER_BALL compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_PREMIER_BALL_RUSTBORO diff --git a/data/maps/RustboroCity_Gym/scripts.inc b/data/maps/RustboroCity_Gym/scripts.inc index 0be442b36857..48af432cd1ad 100644 --- a/data/maps/RustboroCity_Gym/scripts.inc +++ b/data/maps/RustboroCity_Gym/scripts.inc @@ -2,7 +2,7 @@ RustboroCity_Gym_MapScripts:: @ 8212F30 .byte 0 RustboroCity_Gym_EventScript_Roxanne:: @ 8212F31 - trainerbattle_single TRAINER_ROXANNE_1, RustboroCity_Gym_Text_RoxannePreBattle, RustboroCity_Gym_Text_RoxanneDefeat, RustboroCity_Gym_EventScript_RoxanneDefeated, NO_MUSIC + trainerbattle_single TRAINER_ROXANNE_1, RustboroCity_Gym_Text_RoxanneIntro, RustboroCity_Gym_Text_RoxanneDefeat, RustboroCity_Gym_EventScript_RoxanneDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq RustboroCity_Gym_EventScript_RoxanneRematch @@ -28,7 +28,7 @@ RustboroCity_Gym_EventScript_RoxanneDefeated:: @ 8212F66 end RustboroCity_Gym_EventScript_GiveRockTomb:: @ 8212FA4 - giveitem_std ITEM_TM39 + giveitem ITEM_TM39 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM39 @@ -42,17 +42,17 @@ RustboroCity_Gym_EventScript_RoxanneRematch:: @ 8212FC8 end RustboroCity_Gym_EventScript_Josh:: @ 8212FE3 - trainerbattle_single TRAINER_JOSH, RustboroCity_Gym_Text_JoshPreBattle, RustboroCity_Gym_Text_JoshDefeat + trainerbattle_single TRAINER_JOSH, RustboroCity_Gym_Text_JoshIntro, RustboroCity_Gym_Text_JoshDefeat msgbox RustboroCity_Gym_Text_JoshPostBattle, MSGBOX_AUTOCLOSE end RustboroCity_Gym_EventScript_Tommy:: @ 8212FFA - trainerbattle_single TRAINER_TOMMY, RustboroCity_Gym_Text_TommyPreBattle, RustboroCity_Gym_Text_TommyDefeat + trainerbattle_single TRAINER_TOMMY, RustboroCity_Gym_Text_TommyIntro, RustboroCity_Gym_Text_TommyDefeat msgbox RustboroCity_Gym_Text_TommyPostBattle, MSGBOX_AUTOCLOSE end RustboroCity_Gym_EventScript_Marc:: @ 8213011 - trainerbattle_single TRAINER_MARC, RustboroCity_Gym_Text_MarcPreBattle, RustboroCity_Gym_Text_MarcDefeat + trainerbattle_single TRAINER_MARC, RustboroCity_Gym_Text_MarcIntro, RustboroCity_Gym_Text_MarcDefeat msgbox RustboroCity_Gym_Text_MarcPostBattle, MSGBOX_AUTOCLOSE end @@ -140,9 +140,9 @@ RustboroCity_Gym_Text_GymGuidePostVictory: @ 82132E2 .string "the blunt!\p" .string "That's got to feel fuckin sick!$" -RustboroCity_Gym_Text_JoshPreBattle: @ 82133E9 - .string "Don't take us rocks lightly!\n" - .string "I'll show you why we're rad!$" +RustboroCity_Gym_Text_JoshIntro: @ 82133E9 + .string "Don't take us GYM TRAINERS lightly!\n" + .string "I'll show you why we're better!$" RustboroCity_Gym_Text_JoshDefeat: @ 821342D .string "FUCKKKKKKKKKKKKKKKK$" @@ -151,7 +151,7 @@ RustboroCity_Gym_Text_JoshPostBattle: @ 8213447 .string "You haven't seen anything of the ROCK\n" .string "type's terrifying power!$" -RustboroCity_Gym_Text_TommyPreBattle: @ 8213486 +RustboroCity_Gym_Text_TommyIntro: @ 8213486 .string "If you can't beat me, you won't stand\n" .string "a chance against ROXANNE!$" @@ -163,7 +163,7 @@ RustboroCity_Gym_Text_TommyPostBattle: @ 82134E6 .string "several times.\p" .string "You'd better be on your guard!$" -RustboroCity_Gym_Text_MarcPreBattle: @ 8213533 +RustboroCity_Gym_Text_MarcIntro: @ 8213533 .string "We might be in the middle of town,\n" .string "but so what?\p" .string "My ROCK POKéMON need room to\n" @@ -178,7 +178,7 @@ RustboroCity_Gym_Text_MarcPostBattle: @ 82135C0 .string "It took smarts and sense for her to\n" .string "pick the ROCK type at her young age.$" -RustboroCity_Gym_Text_RoxannePreBattle: @ 821362A +RustboroCity_Gym_Text_RoxanneIntro: @ 821362A .string "Hello, I am ROXANNE, the RUSTBORO\n" .string "POKéMON GYM LEADER.\p" .string "I became a GYM LEADER so that I might\n" diff --git a/data/maps/RustboroCity_PokemonSchool/scripts.inc b/data/maps/RustboroCity_PokemonSchool/scripts.inc index 9fb4146da14d..6e5bf0fcedc4 100644 --- a/data/maps/RustboroCity_PokemonSchool/scripts.inc +++ b/data/maps/RustboroCity_PokemonSchool/scripts.inc @@ -83,7 +83,7 @@ RustboroCity_PokemonSchool_EventScript_Teacher:: @ 8213F95 compare VAR_FACING, DIR_WEST call_if_eq RustboroCity_PokemonSchool_EventScript_TeacherCheckOnStudentsWest msgbox RustboroCity_PokemonSchool_Text_StudentsWhoDontStudyGetQuickClaw, MSGBOX_DEFAULT - giveitem_std ITEM_QUICK_CLAW + giveitem ITEM_QUICK_CLAW compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull closemessage diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 6a9df09bcabc..a5dd819bbc06 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -62,7 +62,7 @@ RusturfTunnel_EventScript_ClearTunnelScene:: @ 822CEAE call_if_eq RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer compare VAR_TEMP_1, 3 call_if_eq RusturfTunnel_EventScript_WandasBoyfriendApproachPlayer - giveitem_std ITEM_HM04 + giveitem ITEM_HM04 setflag FLAG_RECEIVED_HM04 msgbox RusturfTunnel_Text_ExplainStrength, MSGBOX_DEFAULT closemessage @@ -184,22 +184,19 @@ RusturfTunnel_Movement_PlayerWatchWandaExit: @ 822D02F walk_in_place_fastest_right step_end -@ Unused -RusturfTunnel_Movement_22D035: @ 822D035 +RusturfTunnel_Movement_Unused1: @ 822D035 walk_left walk_in_place_fastest_right step_end -@ Unused -RusturfTunnel_Movement_22D038: @ 822D038 +RusturfTunnel_Movement_Unused2: @ 822D038 walk_down walk_in_place_fastest_up delay_8 walk_in_place_fastest_right step_end -@ Unused -RusturfTunnel_Movement_22D03D: @ 822D03D +RusturfTunnel_Movement_Unused3: @ 822D03D walk_up walk_in_place_fastest_down delay_8 @@ -317,7 +314,7 @@ RusturfTunnel_EventScript_Grunt:: @ 822D0C2 msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT - giveitem_std ITEM_DEVON_GOODS + giveitem ITEM_DEVON_GOODS closemessage applymovement EVENT_OBJ_ID_PLAYER, RusturfTunnel_Movement_PushPlayerAsideForGrunt applymovement 6, RusturfTunnel_Movement_GruntEscape diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index 6b88b7ae19d4..a276be20f878 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -174,22 +174,14 @@ SSTidalCorridor_EventScript_EnjoyYourCruise:: @ 823C1BD end SSTidalCorridor_EventScript_CheckIfTrainersDefeated:: @ 823C1C7 - checktrainerflag TRAINER_PHILLIP - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_LEONARD - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_COLTON - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_MICAH - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_THOMAS - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_LEA_AND_JED - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_GARRET - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated - checktrainerflag TRAINER_NAOMI - goto_if_lt SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_PHILLIP, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_LEONARD, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_COLTON, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_MICAH, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_THOMAS, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_LEA_AND_JED, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_GARRET, SSTidalCorridor_EventScript_TrainerNotDefeated + goto_if_not_defeated TRAINER_NAOMI, SSTidalCorridor_EventScript_TrainerNotDefeated setflag FLAG_DEFEATED_SS_TIDAL_TRAINERS goto SSTidalCorridor_EventScript_EnjoyYourCruise return diff --git a/data/maps/SSTidalRooms/scripts.inc b/data/maps/SSTidalRooms/scripts.inc index bf2c5e36b2d9..1cf464d0de96 100644 --- a/data/maps/SSTidalRooms/scripts.inc +++ b/data/maps/SSTidalRooms/scripts.inc @@ -6,7 +6,7 @@ SSTidalRooms_EventScript_SnatchGiver:: @ 823C9F2 faceplayer goto_if_set FLAG_RECEIVED_TM49, SSTidalRooms_EventScript_ExplainSnatch msgbox SSTidalRooms_Text_NotSuspiciousTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM49 + giveitem ITEM_TM49 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM49 diff --git a/data/maps/SeafloorCavern_Room3/scripts.inc b/data/maps/SeafloorCavern_Room3/scripts.inc index 29cd0dbed716..1cfb702c81fe 100644 --- a/data/maps/SeafloorCavern_Room3/scripts.inc +++ b/data/maps/SeafloorCavern_Room3/scripts.inc @@ -2,7 +2,7 @@ SeafloorCavern_Room3_MapScripts:: @ 8234937 .byte 0 SeafloorCavern_Room3_EventScript_Shelly:: @ 8234938 - trainerbattle_single TRAINER_SHELLY_2, SeafloorCavern_Room3_Text_ShellyIntro, SeafloorCavern_Room3_Text_ShellyDefeat + trainerbattle_single TRAINER_SHELLY_SEAFLOOR_CAVERN, SeafloorCavern_Room3_Text_ShellyIntro, SeafloorCavern_Room3_Text_ShellyDefeat msgbox SeafloorCavern_Room3_Text_ShellyPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 43c503682dd6..46d1a1f363cc 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -153,8 +153,7 @@ SeafloorCavern_Room9_Movement_ArchieApproachPlayer: @ 823502A walk_right step_end -@ Unused -SeafloorCavern_Room9_Movement_235032: @ 8235032 +SeafloorCavern_Room9_Movement_Unused1: @ 8235032 walk_left walk_left step_end @@ -164,8 +163,7 @@ SeafloorCavern_Room9_Movement_ArchieListenMessage: @ 8235035 delay_16 step_end -@ Unused -SeafloorCavern_Room9_Movement_235038: @ 8235038 +SeafloorCavern_Room9_Movement_Unused2: @ 8235038 walk_right step_end diff --git a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc index 8713578cff25..89cadd56d11f 100644 --- a/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideEntranceRoom/scripts.inc @@ -35,9 +35,9 @@ ShoalCave_LowTideEntranceRoom_EventScript_ShellBellExpert:: @ 8236DD9 compare VAR_RESULT, 2 goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_NoRoomForShellBell msgbox ShoalCave_LowTideEntranceRoom_Text_MakeShellBellRightAway, MSGBOX_DEFAULT - takeitem ITEM_SHOAL_SALT, 4 - takeitem ITEM_SHOAL_SHELL, 4 - giveitem_std ITEM_SHELL_BELL + removeitem ITEM_SHOAL_SALT, 4 + removeitem ITEM_SHOAL_SHELL, 4 + giveitem ITEM_SHELL_BELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox ShoalCave_LowTideEntranceRoom_Text_ExplainShellBell, MSGBOX_DEFAULT diff --git a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc index 089d38458af4..69ef1e75f7fc 100644 --- a/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideInnerRoom/scripts.inc @@ -62,7 +62,7 @@ ShoalCave_LowTideInnerRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8236FB9 ShoalCave_LowTideInnerRoom_EventScript_ShoalShell1:: @ 8236FBA lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell - giveitem_std ITEM_SHOAL_SHELL + giveitem ITEM_SHOAL_SHELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 41, 20, METATILE_Cave_ShoalCave_BlueStone_Small, 0 @@ -79,7 +79,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell:: @ 8236FEC ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: @ 8236FF6 lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell - giveitem_std ITEM_SHOAL_SHELL + giveitem ITEM_SHOAL_SHELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 41, 10, METATILE_Cave_ShoalCave_BlueStone_Small, 0 @@ -91,7 +91,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell2:: @ 8236FF6 ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: @ 8237028 lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell - giveitem_std ITEM_SHOAL_SHELL + giveitem ITEM_SHOAL_SHELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 6, 9, METATILE_Cave_ShoalCave_BlueStone_Small, 0 @@ -103,7 +103,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell3:: @ 8237028 ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: @ 823705A lockall goto_if_set FLAG_RECEIVED_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalShell - giveitem_std ITEM_SHOAL_SHELL + giveitem ITEM_SHOAL_SHELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 16, 13, METATILE_Cave_ShoalCave_BlueStone_Small, 0 @@ -115,7 +115,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ShoalShell4:: @ 823705A ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt1:: @ 823708C lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt - giveitem_std ITEM_SHOAL_SALT + giveitem ITEM_SHOAL_SALT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 31, 8, METATILE_Cave_ShoalCave_DirtPile_Small, 0 @@ -132,7 +132,7 @@ ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt:: @ 82370BE ShoalCave_LowTideInnerRoom_EventScript_ShoalSalt2:: @ 82370C8 lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_ReceivedShoalSalt - giveitem_std ITEM_SHOAL_SALT + giveitem ITEM_SHOAL_SALT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 14, 26, METATILE_Cave_ShoalCave_DirtPile_Small, 0 diff --git a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc index 2cbf8138d11f..0c259ff235df 100644 --- a/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideLowerRoom/scripts.inc @@ -17,7 +17,7 @@ ShoalCave_LowTideLowerRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8237175 ShoalCave_LowTideLowerRoom_EventScript_ShoalSalt4:: @ 8237176 lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_ReceivedShoalSalt - giveitem_std ITEM_SHOAL_SALT + giveitem ITEM_SHOAL_SALT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 18, 2, METATILE_Cave_ShoalCave_DirtPile_Small, 0 @@ -36,7 +36,7 @@ ShoalCave_LowTideLowerRoom_EventScript_BlackBelt:: @ 82371B2 faceplayer goto_if_set FLAG_RECEIVED_FOCUS_BAND, ShoalCave_LowTideLowerRoom_EventScript_ReceivedFocusBand msgbox ShoalCave_LowTideLowerRoom_Text_CanOvercomeColdWithFocus, MSGBOX_DEFAULT - giveitem_std ITEM_FOCUS_BAND + giveitem ITEM_FOCUS_BAND compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_FOCUS_BAND diff --git a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc index 32ec5b2987a6..6bbdf03457bc 100644 --- a/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc +++ b/data/maps/ShoalCave_LowTideStairsRoom/scripts.inc @@ -17,7 +17,7 @@ ShoalCave_LowTideStairsRoom_EventScript_SetShoalItemMetatilesEnd:: @ 8237119 ShoalCave_LowTideStairsRoom_EventScript_ShoalSalt3:: @ 823711A lockall goto_if_set FLAG_RECEIVED_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_ReceivedShoalSalt - giveitem_std ITEM_SHOAL_SALT + giveitem ITEM_SHOAL_SALT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setmetatile 11, 11, METATILE_Cave_ShoalCave_DirtPile_Small, 0 diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 9f951e83d3f7..11045361f103 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -668,8 +668,7 @@ SlateportCity_Movement_TyExit: @ 81DD326 walk_left step_end -@ Unused -SlateportCity_Movement_1DD334: @ 81DD334 +SlateportCity_Movement_Unused: @ 81DD334 walk_down walk_in_place_fastest_up step_end @@ -727,7 +726,7 @@ SlateportCity_EventScript_BerryPowderClerk:: @ 81DD36E faceplayer goto_if_set FLAG_RECEIVED_POWDER_JAR, SlateportCity_EventScript_ReceivedPowderJar msgbox SlateportCity_Text_ExplainBerries, MSGBOX_DEFAULT - giveitem_std ITEM_POWDER_JAR + giveitem ITEM_POWDER_JAR setflag FLAG_RECEIVED_POWDER_JAR msgbox SlateportCity_Text_ExplainBerryPowder, MSGBOX_DEFAULT release @@ -861,7 +860,7 @@ SlateportCity_EventScript_TryBuyBerryPowderItem:: @ 81DD557 specialvar VAR_RESULT, HasEnoughBerryPowder compare VAR_RESULT, FALSE goto_if_eq SlateportCity_EventScript_NotEnoughBerryPowder - giveitem_std VAR_0x8008 + giveitem VAR_0x8008 compare VAR_RESULT, FALSE goto_if_eq SlateportCity_EventScript_NoRoomForBerryPowderItem copyvar VAR_0x8004, VAR_0x8009 diff --git a/data/maps/SlateportCity_BattleTentLobby/scripts.inc b/data/maps/SlateportCity_BattleTentLobby/scripts.inc index 6a74d6a6f3cc..e0969a591072 100644 --- a/data/maps/SlateportCity_BattleTentLobby/scripts.inc +++ b/data/maps/SlateportCity_BattleTentLobby/scripts.inc @@ -201,7 +201,7 @@ SlateportCity_BattleTentLobby_EventScript_TormentGiver:: @ 8208A3D faceplayer goto_if_set FLAG_RECEIVED_TM41, SlateportCity_BattleTentLobby_EventScript_ReceivedTorment msgbox SlateportCity_BattleTentLobby_Text_CouldntFindMonForMe, MSGBOX_DEFAULT - giveitem_std ITEM_TM41 + giveitem ITEM_TM41 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM41 diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 1abb66b5791d..39025033e12d 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -237,7 +237,7 @@ SlateportCity_Harbor_EventScript_BoardFerry:: @ 820CBE9 compare VAR_FACING, DIR_EAST call_if_eq SlateportCity_Harbor_EventScript_BoardFerryEast delay 30 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 setvar VAR_0x8004, 5 call Common_EventScript_FerryDepart return @@ -358,10 +358,10 @@ SlateportCity_Harbor_EventScript_DeepSeaTooth:: @ 820CD7B msgbox SlateportCity_Harbor_Text_TradeForDeepSeaTooth, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade - giveitem_std ITEM_DEEP_SEA_TOOTH + giveitem ITEM_DEEP_SEA_TOOTH compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull - takeitem ITEM_SCANNER, 1 + removeitem ITEM_SCANNER msgbox SlateportCity_Harbor_Text_HandedScannerToStern, MSGBOX_DEFAULT setflag FLAG_EXCHANGED_SCANNER goto SlateportCity_Harbor_EventScript_TradedScanner @@ -371,10 +371,10 @@ SlateportCity_Harbor_EventScript_DeepSeaScale:: @ 820CDBB msgbox SlateportCity_Harbor_Text_TradeForDeepSeaScale, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SlateportCity_Harbor_EventScript_ChooseDifferentTrade - giveitem_std ITEM_DEEP_SEA_SCALE + giveitem ITEM_DEEP_SEA_SCALE compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull - takeitem ITEM_SCANNER, 1 + removeitem ITEM_SCANNER msgbox SlateportCity_Harbor_Text_HandedScannerToStern, MSGBOX_DEFAULT setflag FLAG_EXCHANGED_SCANNER goto SlateportCity_Harbor_EventScript_TradedScanner diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index a6e6541da71a..aeb9f3ac9054 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -36,7 +36,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_CheckMoneyForFee:: @ 820ADE8 compare VAR_RESULT, 0 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NotEnoughMoney playse SE_REGI - takemoney 50, 0 + removemoney 50, 0 updatemoneybox 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_PleaseEnjoyYourself, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 @@ -151,7 +151,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_FamiliarGrunt:: @ 820AEF8 applymovement 13, Common_Movement_Delay48 waitmovement 0 msgbox SlateportCity_OceanicMuseum_1F_Text_RememberMeTakeThis, MSGBOX_DEFAULT - giveitem_std ITEM_TM46 + giveitem ITEM_TM46 compare VAR_RESULT, 0 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_NoRoomForThief setflag FLAG_RECEIVED_TM46 diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 38fb70e7d073..7593b7824852 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -129,8 +129,7 @@ SlateportCity_OceanicMuseum_2F_Movement_PlayerApproachGruntWest: @ 820BCC2 walk_in_place_fastest_left step_end -@ Unused -SlateportCity_OceanicMuseum_2F_Movement_20BCC8: @ 820BCC8 +SlateportCity_OceanicMuseum_2F_Movement_Unused: @ 820BCC8 walk_up walk_left walk_left diff --git a/data/maps/SlateportCity_PokemonFanClub/scripts.inc b/data/maps/SlateportCity_PokemonFanClub/scripts.inc index 25de15889cb1..e4086fa19578 100644 --- a/data/maps/SlateportCity_PokemonFanClub/scripts.inc +++ b/data/maps/SlateportCity_PokemonFanClub/scripts.inc @@ -77,7 +77,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveRedScarf:: @ 8209FE0 goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_RED_SCARF - giveitem_std ITEM_RED_SCARF + giveitem ITEM_RED_SCARF msgbox SlateportCity_PokemonFanClub_Text_ExplainRedScarf, MSGBOX_DEFAULT release end @@ -88,7 +88,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveBlueScarf:: @ 820A011 goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_BLUE_SCARF - giveitem_std ITEM_BLUE_SCARF + giveitem ITEM_BLUE_SCARF msgbox SlateportCity_PokemonFanClub_Text_ExplainBlueScarf, MSGBOX_DEFAULT release end @@ -99,7 +99,7 @@ SlateportCity_PokemonFanClub_EventScript_GivePinkScarf:: @ 820A042 goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_PINK_SCARF - giveitem_std ITEM_PINK_SCARF + giveitem ITEM_PINK_SCARF msgbox SlateportCity_PokemonFanClub_Text_ExplainPinkScarf, MSGBOX_DEFAULT release end @@ -110,7 +110,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveGreenScarf:: @ 820A073 goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_GREEN_SCARF - giveitem_std ITEM_GREEN_SCARF + giveitem ITEM_GREEN_SCARF msgbox SlateportCity_PokemonFanClub_Text_ExplainGreenScarf, MSGBOX_DEFAULT release end @@ -121,7 +121,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveYellowScarf:: @ 820A0A4 goto_if_eq SlateportCity_PokemonFanClub_EventScript_NoRoomForScarf msgbox SlateportCity_PokemonFanClub_Text_MonMostImpressiveGiveItThis, MSGBOX_DEFAULT setflag FLAG_RECEIVED_YELLOW_SCARF - giveitem_std ITEM_YELLOW_SCARF + giveitem ITEM_YELLOW_SCARF msgbox SlateportCity_PokemonFanClub_Text_ExplainYellowScarf, MSGBOX_DEFAULT release end @@ -216,7 +216,7 @@ SlateportCity_PokemonFanClub_EventScript_GiveSootheBell:: @ 820A1A3 applymovement VAR_LAST_TALKED, Common_Movement_Delay48 waitmovement 0 msgbox SlateportCity_PokemonFanClub_Text_PokemonAdoresYou, MSGBOX_DEFAULT - giveitem_std ITEM_SOOTHE_BELL + giveitem ITEM_SOOTHE_BELL compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_SOOTHE_BELL diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 8a4c6ea4e1cd..35cbcc42504b 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -755,7 +755,7 @@ SootopolisCity_EventScript_KiriGiveBerry:: @ 81E5F1B random NUM_KIRI_BERRIES addvar VAR_RESULT, NUM_KIRI_BERRIES_SKIPPED addvar VAR_RESULT, FIRST_BERRY_INDEX - giveitem_std VAR_RESULT + giveitem VAR_RESULT compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY @@ -768,7 +768,7 @@ SootopolisCity_EventScript_KiriGiveBerry:: @ 81E5F1B end SootopolisCity_EventScript_GiveFigyBerry:: @ 81E5F79 - giveitem_std ITEM_FIGY_BERRY + giveitem ITEM_FIGY_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Text_WhatKindOfWishInYourName, MSGBOX_DEFAULT @@ -776,7 +776,7 @@ SootopolisCity_EventScript_GiveFigyBerry:: @ 81E5F79 end SootopolisCity_EventScript_GiveIapapaBerry:: @ 81E5F9A - giveitem_std ITEM_IAPAPA_BERRY + giveitem ITEM_IAPAPA_BERRY compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Text_WhatKindOfWishInYourName, MSGBOX_DEFAULT @@ -1356,7 +1356,7 @@ SootopolisCity_EventScript_Wallace:: @ 81E6446 SootopolisCity_EventScript_GiveWaterfall:: @ 81E646F msgbox SootopolisCity_Text_ThankYouForHelpAcceptThis, MSGBOX_DEFAULT - giveitem_std ITEM_HM07 + giveitem ITEM_HM07 setflag FLAG_RECEIVED_HM07 msgbox SootopolisCity_Text_ExplainWaterfallGoToGym, MSGBOX_DEFAULT closemessage diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index c4550922552a..2d4e43671257 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -83,7 +83,7 @@ SootopolisCity_Gym_1F_Movement_FallThroughIce: @ 8224F42 step_end SootopolisCity_Gym_1F_EventScript_Juan:: @ 8224F44 - trainerbattle_single TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanPreBattle, SootopolisCity_Gym_1F_Text_JuanDefeat, SootopolisCity_Gym_1F_EventScript_JuanDefeated, NO_MUSIC + trainerbattle_single TRAINER_JUAN_1, SootopolisCity_Gym_1F_Text_JuanIntro, SootopolisCity_Gym_1F_Text_JuanDefeat, SootopolisCity_Gym_1F_EventScript_JuanDefeated, NO_MUSIC specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq SootopolisCity_Gym_1F_EventScript_JuanRematch @@ -120,7 +120,7 @@ SootopolisCity_Gym_1F_EventScript_JuanDefeated:: @ 8224F82 end SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: @ 8224FD4 - giveitem_std ITEM_TM03 + giveitem ITEM_TM03 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_BagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT @@ -128,7 +128,7 @@ SootopolisCity_Gym_1F_EventScript_GiveWaterPulse:: @ 8224FD4 return SootopolisCity_Gym_1F_EventScript_GiveWaterPulse2:: @ 8224FF7 - giveitem_std ITEM_TM03 + giveitem ITEM_TM03 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull msgbox SootopolisCity_Gym_1F_Text_ExplainWaterPulse, MSGBOX_DEFAULT @@ -200,7 +200,7 @@ SootopolisCity_Gym_1F_Text_GymGuidePostVictory: @ 82251AF .string "If you've gotten all the BADGES, you're\n" .string "set for the POKéMON LEAGUE challenge!$" -SootopolisCity_Gym_1F_Text_JuanPreBattle: @ 8225268 +SootopolisCity_Gym_1F_Text_JuanIntro: @ 8225268 .string "Let me ask you.\n" .string "Did you know?\l" .string "Ah, I should not be so coy.\p" diff --git a/data/maps/SootopolisCity_Gym_B1F/scripts.inc b/data/maps/SootopolisCity_Gym_B1F/scripts.inc index fad5878fbbe1..735722db5a2b 100644 --- a/data/maps/SootopolisCity_Gym_B1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_B1F/scripts.inc @@ -2,56 +2,56 @@ SootopolisCity_Gym_B1F_MapScripts:: @ 8225C8A .byte 0 SootopolisCity_Gym_B1F_EventScript_Andrea:: @ 8225C8B - trainerbattle_single TRAINER_ANDREA, SootopolisCity_Gym_B1F_Text_AndreaPreBattle, SootopolisCity_Gym_B1F_Text_AndreaDefeat + trainerbattle_single TRAINER_ANDREA, SootopolisCity_Gym_B1F_Text_AndreaIntro, SootopolisCity_Gym_B1F_Text_AndreaDefeat msgbox SootopolisCity_Gym_B1F_Text_AndreaPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Crissy:: @ 8225CA2 - trainerbattle_single TRAINER_CRISSY, SootopolisCity_Gym_B1F_Text_CrissyPreBattle, SootopolisCity_Gym_B1F_Text_CrissyDefeat + trainerbattle_single TRAINER_CRISSY, SootopolisCity_Gym_B1F_Text_CrissyIntro, SootopolisCity_Gym_B1F_Text_CrissyDefeat msgbox SootopolisCity_Gym_B1F_Text_CrissyPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Brianna:: @ 8225CB9 - trainerbattle_single TRAINER_BRIANNA, SootopolisCity_Gym_B1F_Text_BriannaPreBattle, SootopolisCity_Gym_B1F_Text_BriannaDefeat + trainerbattle_single TRAINER_BRIANNA, SootopolisCity_Gym_B1F_Text_BriannaIntro, SootopolisCity_Gym_B1F_Text_BriannaDefeat msgbox SootopolisCity_Gym_B1F_Text_BriannaPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Connie:: @ 8225CD0 - trainerbattle_single TRAINER_CONNIE, SootopolisCity_Gym_B1F_Text_ConniePreBattle, SootopolisCity_Gym_B1F_Text_ConnieDefeat + trainerbattle_single TRAINER_CONNIE, SootopolisCity_Gym_B1F_Text_ConnieIntro, SootopolisCity_Gym_B1F_Text_ConnieDefeat msgbox SootopolisCity_Gym_B1F_Text_ConniePostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Bridget:: @ 8225CE7 - trainerbattle_single TRAINER_BRIDGET, SootopolisCity_Gym_B1F_Text_BridgetPreBattle, SootopolisCity_Gym_B1F_Text_BridgetDefeat + trainerbattle_single TRAINER_BRIDGET, SootopolisCity_Gym_B1F_Text_BridgetIntro, SootopolisCity_Gym_B1F_Text_BridgetDefeat msgbox SootopolisCity_Gym_B1F_Text_BridgetPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Olivia:: @ 8225CFE - trainerbattle_single TRAINER_OLIVIA, SootopolisCity_Gym_B1F_Text_OliviaPreBattle, SootopolisCity_Gym_B1F_Text_OliviaDefeat + trainerbattle_single TRAINER_OLIVIA, SootopolisCity_Gym_B1F_Text_OliviaIntro, SootopolisCity_Gym_B1F_Text_OliviaDefeat msgbox SootopolisCity_Gym_B1F_Text_OliviaPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Tiffany:: @ 8225D15 - trainerbattle_single TRAINER_TIFFANY, SootopolisCity_Gym_B1F_Text_TiffanyPreBattle, SootopolisCity_Gym_B1F_Text_TiffanyDefeat + trainerbattle_single TRAINER_TIFFANY, SootopolisCity_Gym_B1F_Text_TiffanyIntro, SootopolisCity_Gym_B1F_Text_TiffanyDefeat msgbox SootopolisCity_Gym_B1F_Text_TiffanyPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Bethany:: @ 8225D2C - trainerbattle_single TRAINER_BETHANY, SootopolisCity_Gym_B1F_Text_BethanyPreBattle, SootopolisCity_Gym_B1F_Text_BethanyDefeat + trainerbattle_single TRAINER_BETHANY, SootopolisCity_Gym_B1F_Text_BethanyIntro, SootopolisCity_Gym_B1F_Text_BethanyDefeat msgbox SootopolisCity_Gym_B1F_Text_BethanyPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Annika:: @ 8225D43 - trainerbattle_single TRAINER_ANNIKA, SootopolisCity_Gym_B1F_Text_AnnikaPreBattle, SootopolisCity_Gym_B1F_Text_AnnikaDefeat + trainerbattle_single TRAINER_ANNIKA, SootopolisCity_Gym_B1F_Text_AnnikaIntro, SootopolisCity_Gym_B1F_Text_AnnikaDefeat msgbox SootopolisCity_Gym_B1F_Text_AnnikaPostBattle, MSGBOX_AUTOCLOSE end SootopolisCity_Gym_B1F_EventScript_Daphne:: @ 8225D5A - trainerbattle_single TRAINER_DAPHNE, SootopolisCity_Gym_B1F_Text_DaphnePreBattle, SootopolisCity_Gym_B1F_Text_DaphneDefeat + trainerbattle_single TRAINER_DAPHNE, SootopolisCity_Gym_B1F_Text_DaphneIntro, SootopolisCity_Gym_B1F_Text_DaphneDefeat msgbox SootopolisCity_Gym_B1F_Text_DaphnePostBattle, MSGBOX_AUTOCLOSE end -SootopolisCity_Gym_B1F_Text_AndreaPreBattle: @ 8225D71 +SootopolisCity_Gym_B1F_Text_AndreaIntro: @ 8225D71 .string "I'll show you the sublime techniques\n" .string "I learned from our LEADER JUAN!$" @@ -62,7 +62,7 @@ SootopolisCity_Gym_B1F_Text_AndreaPostBattle: @ 8225DCF .string "Watch what happens if you crack all\n" .string "the floor tiles.$" -SootopolisCity_Gym_B1F_Text_CrissyPreBattle: @ 8225E04 +SootopolisCity_Gym_B1F_Text_CrissyIntro: @ 8225E04 .string "You came all the way here, but you won't\n" .string "get to see JUAN.\p" .string "Not if you lose to me, you won't!$" @@ -75,7 +75,7 @@ SootopolisCity_Gym_B1F_Text_CrissyPostBattle: @ 8225E90 .string "You might be good enough to avoid\n" .string "being wiped out in one hit by JUAN.$" -SootopolisCity_Gym_B1F_Text_DaphnePreBattle: @ 8225ED6 +SootopolisCity_Gym_B1F_Text_DaphneIntro: @ 8225ED6 .string "The sight of JUAN conducting\n" .string "a battle…\p" .string "The very beauty of it compelled me to\n" @@ -91,7 +91,7 @@ SootopolisCity_Gym_B1F_Text_DaphnePostBattle: @ 8225F67 .string "Oh… I'm so fortunate to have found\n" .string "POKéMON.$" -SootopolisCity_Gym_B1F_Text_ConniePreBattle: @ 8225FBE +SootopolisCity_Gym_B1F_Text_ConnieIntro: @ 8225FBE .string "I should teach you how harsh battles\n" .string "can be.$" @@ -104,7 +104,7 @@ SootopolisCity_Gym_B1F_Text_ConniePostBattle: @ 8225FFE .string "If you want to reach JUAN, you\n" .string "need to walk on each floor tile once.$" -SootopolisCity_Gym_B1F_Text_BridgetPreBattle: @ 8226061 +SootopolisCity_Gym_B1F_Text_BridgetIntro: @ 8226061 .string "The POKéMON GYM of the highest level\n" .string "in the HOENN region…\p" .string "That's the SOOTOPOLIS GYM.$" @@ -118,7 +118,7 @@ SootopolisCity_Gym_B1F_Text_BridgetPostBattle: @ 82260D1 .string "other places will make you stronger.\l" .string "But above all, it looks more fun.$" -SootopolisCity_Gym_B1F_Text_OliviaPreBattle: @ 8226164 +SootopolisCity_Gym_B1F_Text_OliviaIntro: @ 8226164 .string "I train my POKéMON together with\n" .string "JUAN.\p" .string "Don't think I'm a pushover.$" @@ -130,7 +130,7 @@ SootopolisCity_Gym_B1F_Text_OliviaPostBattle: @ 82261B5 .string "I think you have potential.\n" .string "Why don't you stay and train with us?$" -SootopolisCity_Gym_B1F_Text_TiffanyPreBattle: @ 82261F7 +SootopolisCity_Gym_B1F_Text_TiffanyIntro: @ 82261F7 .string "A graceful glide across the ice while\n" .string "crossing no lines…\p" .string "A TRAINER putting on that performance\n" @@ -144,7 +144,7 @@ SootopolisCity_Gym_B1F_Text_TiffanyPostBattle: @ 8226286 .string "you are as a TRAINER has nothing to do\l" .string "with how young or old you are.$" -SootopolisCity_Gym_B1F_Text_BethanyPreBattle: @ 82262F3 +SootopolisCity_Gym_B1F_Text_BethanyIntro: @ 82262F3 .string "When I'm with my POKéMON, the time\n" .string "flies by before you can say, “Oops!”$" @@ -155,7 +155,7 @@ SootopolisCity_Gym_B1F_Text_BethanyPostBattle: @ 8226341 .string "I wish I could forget about lost causes\n" .string "before I can manage an “Oops!”$" -SootopolisCity_Gym_B1F_Text_AnnikaPreBattle: @ 8226388 +SootopolisCity_Gym_B1F_Text_AnnikaIntro: @ 8226388 .string "I can battle with really rare POKéMON\n" .string "if you'd like.$" @@ -169,7 +169,7 @@ SootopolisCity_Gym_B1F_Text_AnnikaPostBattle: @ 82263F4 .string "Oh, if only I'd met JUAN years ago\n" .string "when I was younger…$" -SootopolisCity_Gym_B1F_Text_BriannaPreBattle: @ 822646E +SootopolisCity_Gym_B1F_Text_BriannaIntro: @ 822646E .string "Giggle…\n" .string "Your grim look is so charming.$" diff --git a/data/maps/SootopolisCity_House1/scripts.inc b/data/maps/SootopolisCity_House1/scripts.inc index d38e35494d6a..90a429c2c1ac 100644 --- a/data/maps/SootopolisCity_House1/scripts.inc +++ b/data/maps/SootopolisCity_House1/scripts.inc @@ -6,7 +6,7 @@ SootopolisCity_House1_EventScript_BrickBreakBlackBelt:: @ 822694D faceplayer goto_if_set FLAG_RECEIVED_TM31, SootopolisCity_House1_EventScript_ReceivedBrickBreak msgbox SootopolisCity_House1_Text_DevelopedThisTM, MSGBOX_DEFAULT - giveitem_std ITEM_TM31 + giveitem ITEM_TM31 compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM31 diff --git a/data/maps/SootopolisCity_House6/scripts.inc b/data/maps/SootopolisCity_House6/scripts.inc index bd3ce0742a4c..d62273864584 100644 --- a/data/maps/SootopolisCity_House6/scripts.inc +++ b/data/maps/SootopolisCity_House6/scripts.inc @@ -9,7 +9,7 @@ SootopolisCity_House6_EventScript_Woman:: @ 8226F5C compare VAR_RESULT, NO call_if_eq SootopolisCity_House6_EventScript_DeclineWailmerDoll msgbox SootopolisCity_House6_Text_TakeGoodCareOfIt, MSGBOX_DEFAULT - givedecoration_std DECOR_WAILMER_DOLL + givedecoration DECOR_WAILMER_DOLL compare VAR_RESULT, FALSE goto_if_eq SootopolisCity_House6_EventScript_NoRoomForWailmerDoll setflag FLAG_RECEIVED_WAILMER_DOLL diff --git a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc index a9f3ffdf490d..1951a33d55ad 100644 --- a/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc +++ b/data/maps/SootopolisCity_LotadAndSeedotHouse/scripts.inc @@ -38,7 +38,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SmallSeedot:: @ 8227286 SootopolisCity_LotadAndSeedotHouse_EventScript_BigSeedot:: @ 8227290 msgbox SootopolisCity_LotadAndSeedotHouse_Text_GoshMightBeBiggerThanLotad, MSGBOX_DEFAULT - giveitem_std ITEM_ELIXIR + giveitem ITEM_ELIXIR compare VAR_RESULT, FALSE goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir1 closemessage @@ -87,7 +87,7 @@ SootopolisCity_LotadAndSeedotHouse_EventScript_SmallLotad:: @ 8227317 SootopolisCity_LotadAndSeedotHouse_EventScript_BigLotad:: @ 8227321 msgbox SootopolisCity_LotadAndSeedotHouse_Text_WowMightBeBiggerThanSeedot, MSGBOX_DEFAULT - giveitem_std ITEM_ELIXIR + giveitem ITEM_ELIXIR compare VAR_RESULT, FALSE goto_if_eq SootopolisCity_LotadAndSeedotHouse_EventScript_NoRoomForElixir2 closemessage diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index 882b0e887496..8a0de33f5c07 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -229,7 +229,7 @@ VerdanturfTown_BattleTentLobby_EventScript_AttractGiver:: @ 8201A7B faceplayer goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_BattleTentLobby_EventScript_ReceivedAttract msgbox VerdanturfTown_BattleTentLobby_Text_AttractionRunsDeep, MSGBOX_DEFAULT - giveitem_std ITEM_TM45 + giveitem ITEM_TM45 compare VAR_RESULT, 0 goto_if_eq Common_EventScript_ShowBagIsFull setflag FLAG_RECEIVED_TM45 diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc index 6536be9348c1..b400df12d163 100644 --- a/data/maps/VictoryRoad_1F/scripts.inc +++ b/data/maps/VictoryRoad_1F/scripts.inc @@ -41,7 +41,7 @@ VictoryRoad_1F_EventScript_WallyEntranceBattle:: @ 8235DE1 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceFastestDown waitmovement 0 msgbox VictoryRoad_1F_Text_WallyNotGoingToLoseAnymore, MSGBOX_DEFAULT - trainerbattle_no_intro TRAINER_WALLY_1, VictoryRoad_1F_Text_WallyEntranceDefeat + trainerbattle_no_intro TRAINER_WALLY_VR_1, VictoryRoad_1F_Text_WallyEntranceDefeat msgbox VictoryRoad_1F_Text_WallyPostEntranceBattle, MSGBOX_DEFAULT clearflag FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY copyobjectxytoperm 4 @@ -84,7 +84,7 @@ VictoryRoad_1F_EventScript_EntranceWally:: @ 8235E2C @ This Wally appears and remains at the exit after the Hall of Fame is entered VictoryRoad_1F_EventScript_ExitWally:: @ 8235E35 - trainerbattle_single TRAINER_WALLY_3, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat + trainerbattle_single TRAINER_WALLY_VR_2, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat specialvar VAR_RESULT, ShouldTryRematchBattle compare VAR_RESULT, TRUE goto_if_eq VictoryRoad_1F_EventScript_RematchWally @@ -92,7 +92,7 @@ VictoryRoad_1F_EventScript_ExitWally:: @ 8235E35 end VictoryRoad_1F_EventScript_RematchWally:: @ 8235E5C - trainerbattle_rematch TRAINER_WALLY_3, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat + trainerbattle_rematch TRAINER_WALLY_VR_2, VictoryRoad_1F_Text_WallyIntro, VictoryRoad_1F_Text_WallyDefeat msgbox VictoryRoad_1F_Text_WallyPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index b8615a5182be..bfa332642828 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -1,628 +1,694 @@ { - "gMapGroup0": [ - "PetalburgCity", - "SlateportCity", - "MauvilleCity", - "RustboroCity", - "FortreeCity", - "LilycoveCity", - "MossdeepCity", - "SootopolisCity", - "EverGrandeCity", - "LittlerootTown", - "OldaleTown", - "DewfordTown", - "LavaridgeTown", - "FallarborTown", - "VerdanturfTown", - "PacifidlogTown", - "Route101", - "Route102", - "Route103", - "Route104", - "Route105", - "Route106", - "Route107", - "Route108", - "Route109", - "Route110", - "Route111", - "Route112", - "Route113", - "Route114", - "Route115", - "Route116", - "Route117", - "Route118", - "Route119", - "Route120", - "Route121", - "Route122", - "Route123", - "Route124", - "Route125", - "Route126", - "Route127", - "Route128", - "Route129", - "Route130", - "Route131", - "Route132", - "Route133", - "Route134", - "Underwater1", - "Underwater2", - "Underwater3", - "Underwater4", - "Underwater5", - "Underwater6", - "Underwater7" - ], - "gMapGroup1": [ - "LittlerootTown_BrendansHouse_1F", - "LittlerootTown_BrendansHouse_2F", - "LittlerootTown_MaysHouse_1F", - "LittlerootTown_MaysHouse_2F", - "LittlerootTown_ProfessorBirchsLab" - ], - "gMapGroup10": [ - "MauvilleCity_Gym", - "MauvilleCity_BikeShop", - "MauvilleCity_House1", - "MauvilleCity_GameCorner", - "MauvilleCity_House2", - "MauvilleCity_PokemonCenter_1F", - "MauvilleCity_PokemonCenter_2F", - "MauvilleCity_Mart" - ], - "gMapGroup11": [ - "RustboroCity_DevonCorp_1F", - "RustboroCity_DevonCorp_2F", - "RustboroCity_DevonCorp_3F", - "RustboroCity_Gym", - "RustboroCity_PokemonSchool", - "RustboroCity_PokemonCenter_1F", - "RustboroCity_PokemonCenter_2F", - "RustboroCity_Mart", - "RustboroCity_Flat1_1F", - "RustboroCity_Flat1_2F", - "RustboroCity_House1", - "RustboroCity_CuttersHouse", - "RustboroCity_House2", - "RustboroCity_Flat2_1F", - "RustboroCity_Flat2_2F", - "RustboroCity_Flat2_3F", - "RustboroCity_House3" - ], - "gMapGroup12": [ - "FortreeCity_House1", - "FortreeCity_Gym", - "FortreeCity_PokemonCenter_1F", - "FortreeCity_PokemonCenter_2F", - "FortreeCity_Mart", - "FortreeCity_House2", - "FortreeCity_House3", - "FortreeCity_House4", - "FortreeCity_House5", - "FortreeCity_DecorationShop" - ], - "gMapGroup13": [ - "LilycoveCity_CoveLilyMotel_1F", - "LilycoveCity_CoveLilyMotel_2F", - "LilycoveCity_LilycoveMuseum_1F", - "LilycoveCity_LilycoveMuseum_2F", - "LilycoveCity_ContestLobby", - "LilycoveCity_ContestHall", - "LilycoveCity_PokemonCenter_1F", - "LilycoveCity_PokemonCenter_2F", - "LilycoveCity_UnusedMart", - "LilycoveCity_PokemonTrainerFanClub", - "LilycoveCity_Harbor", - "LilycoveCity_MoveDeletersHouse", - "LilycoveCity_House1", - "LilycoveCity_House2", - "LilycoveCity_House3", - "LilycoveCity_House4", - "LilycoveCity_DepartmentStore_1F", - "LilycoveCity_DepartmentStore_2F", - "LilycoveCity_DepartmentStore_3F", - "LilycoveCity_DepartmentStore_4F", - "LilycoveCity_DepartmentStore_5F", - "LilycoveCity_DepartmentStoreRooftop", - "LilycoveCity_DepartmentStoreElevator" - ], - "gMapGroup14": [ - "MossdeepCity_Gym", - "MossdeepCity_House1", - "MossdeepCity_House2", - "MossdeepCity_PokemonCenter_1F", - "MossdeepCity_PokemonCenter_2F", - "MossdeepCity_Mart", - "MossdeepCity_House3", - "MossdeepCity_StevensHouse", - "MossdeepCity_House4", - "MossdeepCity_SpaceCenter_1F", - "MossdeepCity_SpaceCenter_2F", - "MossdeepCity_GameCorner_1F", - "MossdeepCity_GameCorner_B1F" - ], - "gMapGroup15": [ - "SootopolisCity_Gym_1F", - "SootopolisCity_Gym_B1F", - "SootopolisCity_PokemonCenter_1F", - "SootopolisCity_PokemonCenter_2F", - "SootopolisCity_Mart", - "SootopolisCity_House1", - "SootopolisCity_House2", - "SootopolisCity_House3", - "SootopolisCity_House4", - "SootopolisCity_House5", - "SootopolisCity_House6", - "SootopolisCity_House7", - "SootopolisCity_LotadAndSeedotHouse", - "SootopolisCity_MysteryEventsHouse_1F", - "SootopolisCity_MysteryEventsHouse_B1F" - ], - "gMapGroup16": [ - "EverGrandeCity_SidneysRoom", - "EverGrandeCity_PhoebesRoom", - "EverGrandeCity_GlaciasRoom", - "EverGrandeCity_DrakesRoom", - "EverGrandeCity_ChampionsRoom", - "EverGrandeCity_Hall1", - "EverGrandeCity_Hall2", - "EverGrandeCity_Hall3", - "EverGrandeCity_Hall4", - "EverGrandeCity_Hall5", - "EverGrandeCity_PokemonLeague_1F", - "EverGrandeCity_HallOfFame", - "EverGrandeCity_PokemonCenter_1F", - "EverGrandeCity_PokemonCenter_2F", - "EverGrandeCity_PokemonLeague_2F" - ], - "gMapGroup17": [ - "Route104_MrBrineysHouse", - "Route104_PrettyPetalFlowerShop" - ], - "gMapGroup18": [ - "Route111_WinstrateFamilysHouse", - "Route111_OldLadysRestStop" - ], - "gMapGroup19": [ - "Route112_CableCarStation", - "MtChimney_CableCarStation" - ], - "gMapGroup2": [ - "OldaleTown_House1", - "OldaleTown_House2", - "OldaleTown_PokemonCenter_1F", - "OldaleTown_PokemonCenter_2F", - "OldaleTown_Mart" - ], - "gMapGroup20": [ - "Route114_FossilManiacsHouse", - "Route114_FossilManiacsTunnel", - "Route114_LanettesHouse" - ], - "gMapGroup21": [ - "Route116_TunnelersRestHouse" - ], - "gMapGroup22": [ - "Route117_PokemonDayCare" - ], - "gMapGroup23": [ - "Route121_SafariZoneEntrance" - ], - "gMapGroup24": [ - "MeteorFalls_1F_1R", - "MeteorFalls_1F_2R", - "MeteorFalls_B1F_1R", - "MeteorFalls_B1F_2R", - "RusturfTunnel", - "Underwater_SootopolisCity", - "DesertRuins", - "GraniteCave_1F", - "GraniteCave_B1F", - "GraniteCave_B2F", - "GraniteCave_StevensRoom", - "PetalburgWoods", - "MtChimney", - "JaggedPass", - "FieryPath", - "MtPyre_1F", - "MtPyre_2F", - "MtPyre_3F", - "MtPyre_4F", - "MtPyre_5F", - "MtPyre_6F", - "MtPyre_Exterior", - "MtPyre_Summit", - "AquaHideout_1F", - "AquaHideout_B1F", - "AquaHideout_B2F", - "Underwater_SeafloorCavern", - "SeafloorCavern_Entrance", - "SeafloorCavern_Room1", - "SeafloorCavern_Room2", - "SeafloorCavern_Room3", - "SeafloorCavern_Room4", - "SeafloorCavern_Room5", - "SeafloorCavern_Room6", - "SeafloorCavern_Room7", - "SeafloorCavern_Room8", - "SeafloorCavern_Room9", - "CaveOfOrigin_Entrance", - "CaveOfOrigin_1F", - "CaveOfOrigin_UnusedRubySapphireMap1", - "CaveOfOrigin_UnusedRubySapphireMap2", - "CaveOfOrigin_UnusedRubySapphireMap3", - "CaveOfOrigin_B1F", - "VictoryRoad_1F", - "VictoryRoad_B1F", - "VictoryRoad_B2F", - "ShoalCave_LowTideEntranceRoom", - "ShoalCave_LowTideInnerRoom", - "ShoalCave_LowTideStairsRoom", - "ShoalCave_LowTideLowerRoom", - "ShoalCave_HighTideEntranceRoom", - "ShoalCave_HighTideInnerRoom", - "NewMauville_Entrance", - "NewMauville_Inside", - "AbandonedShip_Deck", - "AbandonedShip_Corridors_1F", - "AbandonedShip_Rooms_1F", - "AbandonedShip_Corridors_B1F", - "AbandonedShip_Rooms_B1F", - "AbandonedShip_Rooms2_B1F", - "AbandonedShip_Underwater1", - "AbandonedShip_Room_B1F", - "AbandonedShip_Rooms2_1F", - "AbandonedShip_CaptainsOffice", - "AbandonedShip_Underwater2", - "AbandonedShip_HiddenFloorCorridors", - "AbandonedShip_HiddenFloorRooms", - "IslandCave", - "AncientTomb", - "Underwater_Route134", - "Underwater_SealedChamber", - "SealedChamber_OuterRoom", - "SealedChamber_InnerRoom", - "ScorchedSlab", - "AquaHideout_UnusedRubyMap1", - "AquaHideout_UnusedRubyMap2", - "AquaHideout_UnusedRubyMap3", - "SkyPillar_Entrance", - "SkyPillar_Outside", - "SkyPillar_1F", - "SkyPillar_2F", - "SkyPillar_3F", - "SkyPillar_4F", - "ShoalCave_LowTideIceRoom", - "SkyPillar_5F", - "SkyPillar_Top", - "MagmaHideout_1F", - "MagmaHideout_2F_1R", - "MagmaHideout_2F_2R", - "MagmaHideout_3F_1R", - "MagmaHideout_3F_2R", - "MagmaHideout_4F", - "MagmaHideout_3F_3R", - "MagmaHideout_2F_3R", - "MirageTower_1F", - "MirageTower_2F", - "MirageTower_3F", - "MirageTower_4F", - "DesertUnderpass", - "ArtisanCave_B1F", - "ArtisanCave_1F", - "Underwater_MarineCave", - "MarineCave_Entrance", - "MarineCave_End", - "TerraCave_Entrance", - "TerraCave_End", - "AlteringCave", - "MeteorFalls_StevensCave" - ], - "gMapGroup25": [ - "SecretBase_RedCave1", - "SecretBase_BrownCave1", - "SecretBase_BlueCave1", - "SecretBase_YellowCave1", - "SecretBase_Tree1", - "SecretBase_Shrub1", - "SecretBase_RedCave2", - "SecretBase_BrownCave2", - "SecretBase_BlueCave2", - "SecretBase_YellowCave2", - "SecretBase_Tree2", - "SecretBase_Shrub2", - "SecretBase_RedCave3", - "SecretBase_BrownCave3", - "SecretBase_BlueCave3", - "SecretBase_YellowCave3", - "SecretBase_Tree3", - "SecretBase_Shrub3", - "SecretBase_RedCave4", - "SecretBase_BrownCave4", - "SecretBase_BlueCave4", - "SecretBase_YellowCave4", - "SecretBase_Tree4", - "SecretBase_Shrub4", - "BattleColosseum2P", - "TradeCenter", - "RecordCorner", - "BattleColosseum4P", - "ContestHall", - "UnknownLinkContestRoom_25_29", - "UnknownLinkContestRoom_25_30", - "UnknownLinkContestRoom_25_31", - "UnknownLinkContestRoom_25_32", - "UnknownLinkContestRoom_25_33", - "UnknownLinkContestRoom_25_34", - "ContestHallBeauty", - "ContestHallTough", - "ContestHallCool", - "ContestHallSmart", - "ContestHallCute", - "InsideOfTruck", - "SSTidalCorridor", - "SSTidalLowerDeck", - "SSTidalRooms", - "BattlePyramidSquare01", - "BattlePyramidSquare02", - "BattlePyramidSquare03", - "BattlePyramidSquare04", - "BattlePyramidSquare05", - "BattlePyramidSquare06", - "BattlePyramidSquare07", - "BattlePyramidSquare08", - "BattlePyramidSquare09", - "BattlePyramidSquare10", - "BattlePyramidSquare11", - "BattlePyramidSquare12", - "BattlePyramidSquare13", - "BattlePyramidSquare14", - "BattlePyramidSquare15", - "BattlePyramidSquare16", - "UnionRoom" - ], - "gMapGroup26": [ - "SafariZone_Northwest", - "SafariZone_North", - "SafariZone_Southwest", - "SafariZone_South", - "BattleFrontier_OutsideWest", - "BattleFrontier_BattleTowerLobby", - "BattleFrontier_BattleTowerElevator", - "BattleFrontier_BattleTowerCorridor", - "BattleFrontier_BattleTowerBattleRoom", - "SouthernIsland_Exterior", - "SouthernIsland_Interior", - "SafariZone_RestHouse", - "SafariZone_Northeast", - "SafariZone_Southeast", - "BattleFrontier_OutsideEast", - "BattleFrontier_BattleTowerMultiPartnerRoom", - "BattleFrontier_BattleTowerMultiCorridor", - "BattleFrontier_BattleTowerMultiBattleRoom", - "BattleFrontier_BattleDomeLobby", - "BattleFrontier_BattleDomeCorridor", - "BattleFrontier_BattleDomePreBattleRoom", - "BattleFrontier_BattleDomeBattleRoom", - "BattleFrontier_BattlePalaceLobby", - "BattleFrontier_BattlePalaceCorridor", - "BattleFrontier_BattlePalaceBattleRoom", - "BattleFrontier_BattlePyramidLobby", - "BattleFrontier_BattlePyramidFloor", - "BattleFrontier_BattlePyramidTop", - "BattleFrontier_BattleArenaLobby", - "BattleFrontier_BattleArenaCorridor", - "BattleFrontier_BattleArenaBattleRoom", - "BattleFrontier_BattleFactoryLobby", - "BattleFrontier_BattleFactoryPreBattleRoom", - "BattleFrontier_BattleFactoryBattleRoom", - "BattleFrontier_BattlePikeLobby", - "BattleFrontier_BattlePikeCorridor", - "BattleFrontier_BattlePikeThreePathRoom", - "BattleFrontier_BattlePikeRoomNormal", - "BattleFrontier_BattlePikeRoomFinal", - "BattleFrontier_BattlePikeRoomWildMons", - "BattleFrontier_RankingHall", - "BattleFrontier_Lounge1", - "BattleFrontier_ExchangeServiceCorner", - "BattleFrontier_Lounge2", - "BattleFrontier_Lounge3", - "BattleFrontier_Lounge4", - "BattleFrontier_ScottsHouse", - "BattleFrontier_Lounge5", - "BattleFrontier_Lounge6", - "BattleFrontier_Lounge7", - "BattleFrontier_ReceptionGate", - "BattleFrontier_Lounge8", - "BattleFrontier_Lounge9", - "BattleFrontier_PokemonCenter_1F", - "BattleFrontier_PokemonCenter_2F", - "BattleFrontier_Mart", - "FarawayIsland_Entrance", - "FarawayIsland_Interior", - "BirthIsland_Exterior", - "BirthIsland_Harbor", - "TrainerHill_Entrance", - "TrainerHill_1F", - "TrainerHill_2F", - "TrainerHill_3F", - "TrainerHill_4F", - "TrainerHill_Roof", - "NavelRock_Exterior", - "NavelRock_Harbor", - "NavelRock_Entrance", - "NavelRock_B1F", - "NavelRock_Fork", - "NavelRock_Up1", - "NavelRock_Up2", - "NavelRock_Up3", - "NavelRock_Up4", - "NavelRock_Top", - "NavelRock_Down01", - "NavelRock_Down02", - "NavelRock_Down03", - "NavelRock_Down04", - "NavelRock_Down05", - "NavelRock_Down06", - "NavelRock_Down07", - "NavelRock_Down08", - "NavelRock_Down09", - "NavelRock_Down10", - "NavelRock_Down11", - "NavelRock_Bottom", - "TrainerHill_Elevator", - "CeruleanCave_1F", - "CeruleanCave_2F", - "CeruleanCave_B1F" - ], - "gMapGroup27": [ - "Route104_Prototype", - "Route104_PrototypePrettyPetalFlowerShop" - ], - "gMapGroup28": [ - "Route109_SeashoreHouse" - ], - "gMapGroup29": [ - "Route110_TrickHouseEntrance", - "Route110_TrickHouseEnd", - "Route110_TrickHouseCorridor", - "Route110_TrickHousePuzzle1", - "Route110_TrickHousePuzzle2", - "Route110_TrickHousePuzzle3", - "Route110_TrickHousePuzzle4", - "Route110_TrickHousePuzzle5", - "Route110_TrickHousePuzzle6", - "Route110_TrickHousePuzzle7", - "Route110_TrickHousePuzzle8", - "Route110_SeasideCyclingRoadNorthEntrance", - "Route110_SeasideCyclingRoadSouthEntrance" - ], - "gMapGroup3": [ - "DewfordTown_House1", - "DewfordTown_PokemonCenter_1F", - "DewfordTown_PokemonCenter_2F", - "DewfordTown_Gym", - "DewfordTown_Hall", - "DewfordTown_House2" - ], - "gMapGroup30": [ - "Route113_GlassWorkshop" - ], - "gMapGroup31": [ - "Route123_BerryMastersHouse" - ], - "gMapGroup32": [ - "Route119_WeatherInstitute_1F", - "Route119_WeatherInstitute_2F", - "Route119_House" - ], - "gMapGroup33": [ - "Route124_DivingTreasureHuntersHouse" - ], - "gMapGroup4": [ - "LavaridgeTown_HerbShop", - "LavaridgeTown_Gym_1F", - "LavaridgeTown_Gym_B1F", - "LavaridgeTown_House", - "LavaridgeTown_Mart", - "LavaridgeTown_PokemonCenter_1F", - "LavaridgeTown_PokemonCenter_2F" - ], - "gMapGroup5": [ - "FallarborTown_Mart", - "FallarborTown_BattleTentLobby", - "FallarborTown_BattleTentCorridor", - "FallarborTown_BattleTentBattleRoom", - "FallarborTown_PokemonCenter_1F", - "FallarborTown_PokemonCenter_2F", - "FallarborTown_CozmosHouse", - "FallarborTown_MoveRelearnersHouse" - ], - "gMapGroup6": [ - "VerdanturfTown_BattleTentLobby", - "VerdanturfTown_BattleTentCorridor", - "VerdanturfTown_BattleTentBattleRoom", - "VerdanturfTown_Mart", - "VerdanturfTown_PokemonCenter_1F", - "VerdanturfTown_PokemonCenter_2F", - "VerdanturfTown_WandasHouse", - "VerdanturfTown_FriendshipRatersHouse", - "VerdanturfTown_House" - ], - "gMapGroup7": [ - "PacifidlogTown_PokemonCenter_1F", - "PacifidlogTown_PokemonCenter_2F", - "PacifidlogTown_House1", - "PacifidlogTown_House2", - "PacifidlogTown_House3", - "PacifidlogTown_House4", - "PacifidlogTown_House5" - ], - "gMapGroup8": [ - "PetalburgCity_WallysHouse", - "PetalburgCity_Gym", - "PetalburgCity_House1", - "PetalburgCity_House2", - "PetalburgCity_PokemonCenter_1F", - "PetalburgCity_PokemonCenter_2F", - "PetalburgCity_Mart" - ], - "gMapGroup9": [ - "SlateportCity_SternsShipyard_1F", - "SlateportCity_SternsShipyard_2F", - "SlateportCity_BattleTentLobby", - "SlateportCity_BattleTentCorridor", - "SlateportCity_BattleTentBattleRoom", - "SlateportCity_NameRatersHouse", - "SlateportCity_PokemonFanClub", - "SlateportCity_OceanicMuseum_1F", - "SlateportCity_OceanicMuseum_2F", - "SlateportCity_Harbor", - "SlateportCity_House", - "SlateportCity_PokemonCenter_1F", - "SlateportCity_PokemonCenter_2F", - "SlateportCity_Mart" - ], - "group_order": [ - "gMapGroup0", - "gMapGroup1", - "gMapGroup2", - "gMapGroup3", - "gMapGroup4", - "gMapGroup5", - "gMapGroup6", - "gMapGroup7", - "gMapGroup8", - "gMapGroup9", - "gMapGroup10", - "gMapGroup11", - "gMapGroup12", - "gMapGroup13", - "gMapGroup14", - "gMapGroup15", - "gMapGroup16", - "gMapGroup17", - "gMapGroup18", - "gMapGroup19", - "gMapGroup20", - "gMapGroup21", - "gMapGroup22", - "gMapGroup23", - "gMapGroup24", - "gMapGroup25", - "gMapGroup26", - "gMapGroup27", - "gMapGroup28", - "gMapGroup29", - "gMapGroup30", - "gMapGroup31", - "gMapGroup32", - "gMapGroup33" - ], - "layouts_table_label": "gMapLayouts" + "group_order": [ + "gMapGroup0", + "gMapGroup1", + "gMapGroup2", + "gMapGroup3", + "gMapGroup4", + "gMapGroup5", + "gMapGroup6", + "gMapGroup7", + "gMapGroup8", + "gMapGroup9", + "gMapGroup10", + "gMapGroup11", + "gMapGroup12", + "gMapGroup13", + "gMapGroup14", + "gMapGroup15", + "gMapGroup16", + "gMapGroup17", + "gMapGroup18", + "gMapGroup19", + "gMapGroup20", + "gMapGroup21", + "gMapGroup22", + "gMapGroup23", + "gMapGroup24", + "gMapGroup25", + "gMapGroup26", + "gMapGroup27", + "gMapGroup28", + "gMapGroup29", + "gMapGroup30", + "gMapGroup31", + "gMapGroup32", + "gMapGroup33" + ], + "gMapGroup0": [ + "PetalburgCity", + "SlateportCity", + "MauvilleCity", + "RustboroCity", + "FortreeCity", + "LilycoveCity", + "MossdeepCity", + "SootopolisCity", + "EverGrandeCity", + "LittlerootTown", + "OldaleTown", + "DewfordTown", + "LavaridgeTown", + "FallarborTown", + "VerdanturfTown", + "PacifidlogTown", + "Route101", + "Route102", + "Route103", + "Route104", + "Route105", + "Route106", + "Route107", + "Route108", + "Route109", + "Route110", + "Route111", + "Route112", + "Route113", + "Route114", + "Route115", + "Route116", + "Route117", + "Route118", + "Route119", + "Route120", + "Route121", + "Route122", + "Route123", + "Route124", + "Route125", + "Route126", + "Route127", + "Route128", + "Route129", + "Route130", + "Route131", + "Route132", + "Route133", + "Route134", + "Underwater1", + "Underwater2", + "Underwater3", + "Underwater4", + "Underwater5", + "Underwater6", + "Underwater7" + ], + "gMapGroup1": [ + "LittlerootTown_BrendansHouse_1F", + "LittlerootTown_BrendansHouse_2F", + "LittlerootTown_MaysHouse_1F", + "LittlerootTown_MaysHouse_2F", + "LittlerootTown_ProfessorBirchsLab" + ], + "gMapGroup2": [ + "OldaleTown_House1", + "OldaleTown_House2", + "OldaleTown_PokemonCenter_1F", + "OldaleTown_PokemonCenter_2F", + "OldaleTown_Mart" + ], + "gMapGroup3": [ + "DewfordTown_House1", + "DewfordTown_PokemonCenter_1F", + "DewfordTown_PokemonCenter_2F", + "DewfordTown_Gym", + "DewfordTown_Hall", + "DewfordTown_House2" + ], + "gMapGroup4": [ + "LavaridgeTown_HerbShop", + "LavaridgeTown_Gym_1F", + "LavaridgeTown_Gym_B1F", + "LavaridgeTown_House", + "LavaridgeTown_Mart", + "LavaridgeTown_PokemonCenter_1F", + "LavaridgeTown_PokemonCenter_2F" + ], + "gMapGroup5": [ + "FallarborTown_Mart", + "FallarborTown_BattleTentLobby", + "FallarborTown_BattleTentCorridor", + "FallarborTown_BattleTentBattleRoom", + "FallarborTown_PokemonCenter_1F", + "FallarborTown_PokemonCenter_2F", + "FallarborTown_CozmosHouse", + "FallarborTown_MoveRelearnersHouse" + ], + "gMapGroup6": [ + "VerdanturfTown_BattleTentLobby", + "VerdanturfTown_BattleTentCorridor", + "VerdanturfTown_BattleTentBattleRoom", + "VerdanturfTown_Mart", + "VerdanturfTown_PokemonCenter_1F", + "VerdanturfTown_PokemonCenter_2F", + "VerdanturfTown_WandasHouse", + "VerdanturfTown_FriendshipRatersHouse", + "VerdanturfTown_House" + ], + "gMapGroup7": [ + "PacifidlogTown_PokemonCenter_1F", + "PacifidlogTown_PokemonCenter_2F", + "PacifidlogTown_House1", + "PacifidlogTown_House2", + "PacifidlogTown_House3", + "PacifidlogTown_House4", + "PacifidlogTown_House5" + ], + "gMapGroup8": [ + "PetalburgCity_WallysHouse", + "PetalburgCity_Gym", + "PetalburgCity_House1", + "PetalburgCity_House2", + "PetalburgCity_PokemonCenter_1F", + "PetalburgCity_PokemonCenter_2F", + "PetalburgCity_Mart" + ], + "gMapGroup9": [ + "SlateportCity_SternsShipyard_1F", + "SlateportCity_SternsShipyard_2F", + "SlateportCity_BattleTentLobby", + "SlateportCity_BattleTentCorridor", + "SlateportCity_BattleTentBattleRoom", + "SlateportCity_NameRatersHouse", + "SlateportCity_PokemonFanClub", + "SlateportCity_OceanicMuseum_1F", + "SlateportCity_OceanicMuseum_2F", + "SlateportCity_Harbor", + "SlateportCity_House", + "SlateportCity_PokemonCenter_1F", + "SlateportCity_PokemonCenter_2F", + "SlateportCity_Mart" + ], + "gMapGroup10": [ + "MauvilleCity_Gym", + "MauvilleCity_BikeShop", + "MauvilleCity_House1", + "MauvilleCity_GameCorner", + "MauvilleCity_House2", + "MauvilleCity_PokemonCenter_1F", + "MauvilleCity_PokemonCenter_2F", + "MauvilleCity_Mart" + ], + "gMapGroup11": [ + "RustboroCity_DevonCorp_1F", + "RustboroCity_DevonCorp_2F", + "RustboroCity_DevonCorp_3F", + "RustboroCity_Gym", + "RustboroCity_PokemonSchool", + "RustboroCity_PokemonCenter_1F", + "RustboroCity_PokemonCenter_2F", + "RustboroCity_Mart", + "RustboroCity_Flat1_1F", + "RustboroCity_Flat1_2F", + "RustboroCity_House1", + "RustboroCity_CuttersHouse", + "RustboroCity_House2", + "RustboroCity_Flat2_1F", + "RustboroCity_Flat2_2F", + "RustboroCity_Flat2_3F", + "RustboroCity_House3" + ], + "gMapGroup12": [ + "FortreeCity_House1", + "FortreeCity_Gym", + "FortreeCity_PokemonCenter_1F", + "FortreeCity_PokemonCenter_2F", + "FortreeCity_Mart", + "FortreeCity_House2", + "FortreeCity_House3", + "FortreeCity_House4", + "FortreeCity_House5", + "FortreeCity_DecorationShop" + ], + "gMapGroup13": [ + "LilycoveCity_CoveLilyMotel_1F", + "LilycoveCity_CoveLilyMotel_2F", + "LilycoveCity_LilycoveMuseum_1F", + "LilycoveCity_LilycoveMuseum_2F", + "LilycoveCity_ContestLobby", + "LilycoveCity_ContestHall", + "LilycoveCity_PokemonCenter_1F", + "LilycoveCity_PokemonCenter_2F", + "LilycoveCity_UnusedMart", + "LilycoveCity_PokemonTrainerFanClub", + "LilycoveCity_Harbor", + "LilycoveCity_MoveDeletersHouse", + "LilycoveCity_House1", + "LilycoveCity_House2", + "LilycoveCity_House3", + "LilycoveCity_House4", + "LilycoveCity_DepartmentStore_1F", + "LilycoveCity_DepartmentStore_2F", + "LilycoveCity_DepartmentStore_3F", + "LilycoveCity_DepartmentStore_4F", + "LilycoveCity_DepartmentStore_5F", + "LilycoveCity_DepartmentStoreRooftop", + "LilycoveCity_DepartmentStoreElevator" + ], + "gMapGroup14": [ + "MossdeepCity_Gym", + "MossdeepCity_House1", + "MossdeepCity_House2", + "MossdeepCity_PokemonCenter_1F", + "MossdeepCity_PokemonCenter_2F", + "MossdeepCity_Mart", + "MossdeepCity_House3", + "MossdeepCity_StevensHouse", + "MossdeepCity_House4", + "MossdeepCity_SpaceCenter_1F", + "MossdeepCity_SpaceCenter_2F", + "MossdeepCity_GameCorner_1F", + "MossdeepCity_GameCorner_B1F" + ], + "gMapGroup15": [ + "SootopolisCity_Gym_1F", + "SootopolisCity_Gym_B1F", + "SootopolisCity_PokemonCenter_1F", + "SootopolisCity_PokemonCenter_2F", + "SootopolisCity_Mart", + "SootopolisCity_House1", + "SootopolisCity_House2", + "SootopolisCity_House3", + "SootopolisCity_House4", + "SootopolisCity_House5", + "SootopolisCity_House6", + "SootopolisCity_House7", + "SootopolisCity_LotadAndSeedotHouse", + "SootopolisCity_MysteryEventsHouse_1F", + "SootopolisCity_MysteryEventsHouse_B1F" + ], + "gMapGroup16": [ + "EverGrandeCity_SidneysRoom", + "EverGrandeCity_PhoebesRoom", + "EverGrandeCity_GlaciasRoom", + "EverGrandeCity_DrakesRoom", + "EverGrandeCity_ChampionsRoom", + "EverGrandeCity_Hall1", + "EverGrandeCity_Hall2", + "EverGrandeCity_Hall3", + "EverGrandeCity_Hall4", + "EverGrandeCity_Hall5", + "EverGrandeCity_PokemonLeague_1F", + "EverGrandeCity_HallOfFame", + "EverGrandeCity_PokemonCenter_1F", + "EverGrandeCity_PokemonCenter_2F", + "EverGrandeCity_PokemonLeague_2F" + ], + "gMapGroup17": [ + "Route104_MrBrineysHouse", + "Route104_PrettyPetalFlowerShop" + ], + "gMapGroup18": [ + "Route111_WinstrateFamilysHouse", + "Route111_OldLadysRestStop" + ], + "gMapGroup19": [ + "Route112_CableCarStation", + "MtChimney_CableCarStation" + ], + "gMapGroup20": [ + "Route114_FossilManiacsHouse", + "Route114_FossilManiacsTunnel", + "Route114_LanettesHouse" + ], + "gMapGroup21": [ + "Route116_TunnelersRestHouse" + ], + "gMapGroup22": [ + "Route117_PokemonDayCare" + ], + "gMapGroup23": [ + "Route121_SafariZoneEntrance" + ], + "gMapGroup24": [ + "MeteorFalls_1F_1R", + "MeteorFalls_1F_2R", + "MeteorFalls_B1F_1R", + "MeteorFalls_B1F_2R", + "RusturfTunnel", + "Underwater_SootopolisCity", + "DesertRuins", + "GraniteCave_1F", + "GraniteCave_B1F", + "GraniteCave_B2F", + "GraniteCave_StevensRoom", + "PetalburgWoods", + "MtChimney", + "JaggedPass", + "FieryPath", + "MtPyre_1F", + "MtPyre_2F", + "MtPyre_3F", + "MtPyre_4F", + "MtPyre_5F", + "MtPyre_6F", + "MtPyre_Exterior", + "MtPyre_Summit", + "AquaHideout_1F", + "AquaHideout_B1F", + "AquaHideout_B2F", + "Underwater_SeafloorCavern", + "SeafloorCavern_Entrance", + "SeafloorCavern_Room1", + "SeafloorCavern_Room2", + "SeafloorCavern_Room3", + "SeafloorCavern_Room4", + "SeafloorCavern_Room5", + "SeafloorCavern_Room6", + "SeafloorCavern_Room7", + "SeafloorCavern_Room8", + "SeafloorCavern_Room9", + "CaveOfOrigin_Entrance", + "CaveOfOrigin_1F", + "CaveOfOrigin_UnusedRubySapphireMap1", + "CaveOfOrigin_UnusedRubySapphireMap2", + "CaveOfOrigin_UnusedRubySapphireMap3", + "CaveOfOrigin_B1F", + "VictoryRoad_1F", + "VictoryRoad_B1F", + "VictoryRoad_B2F", + "ShoalCave_LowTideEntranceRoom", + "ShoalCave_LowTideInnerRoom", + "ShoalCave_LowTideStairsRoom", + "ShoalCave_LowTideLowerRoom", + "ShoalCave_HighTideEntranceRoom", + "ShoalCave_HighTideInnerRoom", + "NewMauville_Entrance", + "NewMauville_Inside", + "AbandonedShip_Deck", + "AbandonedShip_Corridors_1F", + "AbandonedShip_Rooms_1F", + "AbandonedShip_Corridors_B1F", + "AbandonedShip_Rooms_B1F", + "AbandonedShip_Rooms2_B1F", + "AbandonedShip_Underwater1", + "AbandonedShip_Room_B1F", + "AbandonedShip_Rooms2_1F", + "AbandonedShip_CaptainsOffice", + "AbandonedShip_Underwater2", + "AbandonedShip_HiddenFloorCorridors", + "AbandonedShip_HiddenFloorRooms", + "IslandCave", + "AncientTomb", + "Underwater_Route134", + "Underwater_SealedChamber", + "SealedChamber_OuterRoom", + "SealedChamber_InnerRoom", + "ScorchedSlab", + "AquaHideout_UnusedRubyMap1", + "AquaHideout_UnusedRubyMap2", + "AquaHideout_UnusedRubyMap3", + "SkyPillar_Entrance", + "SkyPillar_Outside", + "SkyPillar_1F", + "SkyPillar_2F", + "SkyPillar_3F", + "SkyPillar_4F", + "ShoalCave_LowTideIceRoom", + "SkyPillar_5F", + "SkyPillar_Top", + "MagmaHideout_1F", + "MagmaHideout_2F_1R", + "MagmaHideout_2F_2R", + "MagmaHideout_3F_1R", + "MagmaHideout_3F_2R", + "MagmaHideout_4F", + "MagmaHideout_3F_3R", + "MagmaHideout_2F_3R", + "MirageTower_1F", + "MirageTower_2F", + "MirageTower_3F", + "MirageTower_4F", + "DesertUnderpass", + "ArtisanCave_B1F", + "ArtisanCave_1F", + "Underwater_MarineCave", + "MarineCave_Entrance", + "MarineCave_End", + "TerraCave_Entrance", + "TerraCave_End", + "AlteringCave", + "MeteorFalls_StevensCave" + ], + "gMapGroup25": [ + "SecretBase_RedCave1", + "SecretBase_BrownCave1", + "SecretBase_BlueCave1", + "SecretBase_YellowCave1", + "SecretBase_Tree1", + "SecretBase_Shrub1", + "SecretBase_RedCave2", + "SecretBase_BrownCave2", + "SecretBase_BlueCave2", + "SecretBase_YellowCave2", + "SecretBase_Tree2", + "SecretBase_Shrub2", + "SecretBase_RedCave3", + "SecretBase_BrownCave3", + "SecretBase_BlueCave3", + "SecretBase_YellowCave3", + "SecretBase_Tree3", + "SecretBase_Shrub3", + "SecretBase_RedCave4", + "SecretBase_BrownCave4", + "SecretBase_BlueCave4", + "SecretBase_YellowCave4", + "SecretBase_Tree4", + "SecretBase_Shrub4", + "BattleColosseum_2P", + "TradeCenter", + "RecordCorner", + "BattleColosseum_4P", + "ContestHall", + "UnknownLinkContestRoom_25_29", + "UnknownLinkContestRoom_25_30", + "UnknownLinkContestRoom_25_31", + "UnknownLinkContestRoom_25_32", + "UnknownLinkContestRoom_25_33", + "UnknownLinkContestRoom_25_34", + "ContestHallBeauty", + "ContestHallTough", + "ContestHallCool", + "ContestHallSmart", + "ContestHallCute", + "InsideOfTruck", + "SSTidalCorridor", + "SSTidalLowerDeck", + "SSTidalRooms", + "BattlePyramidSquare01", + "BattlePyramidSquare02", + "BattlePyramidSquare03", + "BattlePyramidSquare04", + "BattlePyramidSquare05", + "BattlePyramidSquare06", + "BattlePyramidSquare07", + "BattlePyramidSquare08", + "BattlePyramidSquare09", + "BattlePyramidSquare10", + "BattlePyramidSquare11", + "BattlePyramidSquare12", + "BattlePyramidSquare13", + "BattlePyramidSquare14", + "BattlePyramidSquare15", + "BattlePyramidSquare16", + "UnionRoom" + ], + "gMapGroup26": [ + "SafariZone_Northwest", + "SafariZone_North", + "SafariZone_Southwest", + "SafariZone_South", + "BattleFrontier_OutsideWest", + "BattleFrontier_BattleTowerLobby", + "BattleFrontier_BattleTowerElevator", + "BattleFrontier_BattleTowerCorridor", + "BattleFrontier_BattleTowerBattleRoom", + "SouthernIsland_Exterior", + "SouthernIsland_Interior", + "SafariZone_RestHouse", + "SafariZone_Northeast", + "SafariZone_Southeast", + "BattleFrontier_OutsideEast", + "BattleFrontier_BattleTowerMultiPartnerRoom", + "BattleFrontier_BattleTowerMultiCorridor", + "BattleFrontier_BattleTowerMultiBattleRoom", + "BattleFrontier_BattleDomeLobby", + "BattleFrontier_BattleDomeCorridor", + "BattleFrontier_BattleDomePreBattleRoom", + "BattleFrontier_BattleDomeBattleRoom", + "BattleFrontier_BattlePalaceLobby", + "BattleFrontier_BattlePalaceCorridor", + "BattleFrontier_BattlePalaceBattleRoom", + "BattleFrontier_BattlePyramidLobby", + "BattleFrontier_BattlePyramidFloor", + "BattleFrontier_BattlePyramidTop", + "BattleFrontier_BattleArenaLobby", + "BattleFrontier_BattleArenaCorridor", + "BattleFrontier_BattleArenaBattleRoom", + "BattleFrontier_BattleFactoryLobby", + "BattleFrontier_BattleFactoryPreBattleRoom", + "BattleFrontier_BattleFactoryBattleRoom", + "BattleFrontier_BattlePikeLobby", + "BattleFrontier_BattlePikeCorridor", + "BattleFrontier_BattlePikeThreePathRoom", + "BattleFrontier_BattlePikeRoomNormal", + "BattleFrontier_BattlePikeRoomFinal", + "BattleFrontier_BattlePikeRoomWildMons", + "BattleFrontier_RankingHall", + "BattleFrontier_Lounge1", + "BattleFrontier_ExchangeServiceCorner", + "BattleFrontier_Lounge2", + "BattleFrontier_Lounge3", + "BattleFrontier_Lounge4", + "BattleFrontier_ScottsHouse", + "BattleFrontier_Lounge5", + "BattleFrontier_Lounge6", + "BattleFrontier_Lounge7", + "BattleFrontier_ReceptionGate", + "BattleFrontier_Lounge8", + "BattleFrontier_Lounge9", + "BattleFrontier_PokemonCenter_1F", + "BattleFrontier_PokemonCenter_2F", + "BattleFrontier_Mart", + "FarawayIsland_Entrance", + "FarawayIsland_Interior", + "BirthIsland_Exterior", + "BirthIsland_Harbor", + "TrainerHill_Entrance", + "TrainerHill_1F", + "TrainerHill_2F", + "TrainerHill_3F", + "TrainerHill_4F", + "TrainerHill_Roof", + "NavelRock_Exterior", + "NavelRock_Harbor", + "NavelRock_Entrance", + "NavelRock_B1F", + "NavelRock_Fork", + "NavelRock_Up1", + "NavelRock_Up2", + "NavelRock_Up3", + "NavelRock_Up4", + "NavelRock_Top", + "NavelRock_Down01", + "NavelRock_Down02", + "NavelRock_Down03", + "NavelRock_Down04", + "NavelRock_Down05", + "NavelRock_Down06", + "NavelRock_Down07", + "NavelRock_Down08", + "NavelRock_Down09", + "NavelRock_Down10", + "NavelRock_Down11", + "NavelRock_Bottom", + "TrainerHill_Elevator", + "CeruleanCave_1F", + "CeruleanCave_2F", + "CeruleanCave_B1F" + ], + "gMapGroup27": [ + "Route104_Prototype", + "Route104_PrototypePrettyPetalFlowerShop" + ], + "gMapGroup28": [ + "Route109_SeashoreHouse" + ], + "gMapGroup29": [ + "Route110_TrickHouseEntrance", + "Route110_TrickHouseEnd", + "Route110_TrickHouseCorridor", + "Route110_TrickHousePuzzle1", + "Route110_TrickHousePuzzle2", + "Route110_TrickHousePuzzle3", + "Route110_TrickHousePuzzle4", + "Route110_TrickHousePuzzle5", + "Route110_TrickHousePuzzle6", + "Route110_TrickHousePuzzle7", + "Route110_TrickHousePuzzle8", + "Route110_SeasideCyclingRoadNorthEntrance", + "Route110_SeasideCyclingRoadSouthEntrance" + ], + "gMapGroup30": [ + "Route113_GlassWorkshop" + ], + "gMapGroup31": [ + "Route123_BerryMastersHouse" + ], + "gMapGroup32": [ + "Route119_WeatherInstitute_1F", + "Route119_WeatherInstitute_2F", + "Route119_House" + ], + "gMapGroup33": [ + "Route124_DivingTreasureHuntersHouse" + ], + "connections_include_order": [ + "LittlerootTown", + "OldaleTown", + "DewfordTown", + "LavaridgeTown", + "FallarborTown", + "VerdanturfTown", + "PacifidlogTown", + "PetalburgCity", + "SlateportCity", + "MauvilleCity", + "RustboroCity", + "FortreeCity", + "LilycoveCity", + "MossdeepCity", + "SootopolisCity", + "EverGrandeCity", + "Route101", + "Route102", + "Route103", + "Route104", + "Route105", + "Route106", + "Route107", + "Route108", + "Route109", + "Route110", + "Route111", + "Route112", + "Route113", + "Route114", + "Route115", + "Route116", + "Route117", + "Route118", + "Route119", + "Route120", + "Route121", + "Route122", + "Route123", + "Route124", + "Route125", + "Route126", + "Route127", + "Route128", + "Route129", + "Route130", + "Route131", + "Route132", + "Route133", + "Route134", + "Underwater6", + "Underwater1", + "Underwater7", + "Underwater2", + "Underwater3", + "Underwater4", + "Underwater5", + "SafariZone_Northwest", + "SafariZone_North", + "SafariZone_Southwest", + "SafariZone_South", + "SafariZone_Northeast", + "SafariZone_Southeast", + "BattleFrontier_OutsideWest", + "BattleFrontier_OutsideEast" + ] } diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index f447d5f25ca3..2cde7190fe8f 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -68,15 +68,15 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_setholewarp .4byte ScrCmd_getplayerxy .4byte ScrCmd_getpartysize - .4byte ScrCmd_giveitem - .4byte ScrCmd_takeitem + .4byte ScrCmd_additem + .4byte ScrCmd_removeitem .4byte ScrCmd_checkitemspace .4byte ScrCmd_checkitem .4byte ScrCmd_checkitemtype - .4byte ScrCmd_givepcitem + .4byte ScrCmd_addpcitem .4byte ScrCmd_checkpcitem - .4byte ScrCmd_givedecoration - .4byte ScrCmd_takedecoration + .4byte ScrCmd_adddecoration + .4byte ScrCmd_removedecoration .4byte ScrCmd_checkdecor .4byte ScrCmd_checkdecorspace .4byte ScrCmd_applymovement @@ -144,8 +144,8 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_showcontestresults .4byte ScrCmd_contestlinktransfer .4byte ScrCmd_random - .4byte ScrCmd_givemoney - .4byte ScrCmd_takemoney + .4byte ScrCmd_addmoney + .4byte ScrCmd_removemoney .4byte ScrCmd_checkmoney .4byte ScrCmd_showmoneybox .4byte ScrCmd_hidemoneybox @@ -180,8 +180,8 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_addelevmenuitem .4byte ScrCmd_showelevmenu .4byte ScrCmd_checkcoins - .4byte ScrCmd_givecoins - .4byte ScrCmd_takecoins + .4byte ScrCmd_addcoins + .4byte ScrCmd_removecoins .4byte ScrCmd_setwildbattle .4byte ScrCmd_dowildbattle .4byte ScrCmd_setvaddress diff --git a/data/scripts/berry_blender.inc b/data/scripts/berry_blender.inc index b699c8e04333..a3dc2a8e2b23 100644 --- a/data/scripts/berry_blender.inc +++ b/data/scripts/berry_blender.inc @@ -263,7 +263,7 @@ BerryBlender_EventScript_Blender1NoSpareBerries: @ 8293C92 BerryBlender_EventScript_Blender1GiveSpareBerry: @ 8293C9C msgbox BerryBlender_Text_CanHaveOneOfMyBerries, MSGBOX_DEFAULT - giveitem_std ITEM_PECHA_BERRY + giveitem ITEM_PECHA_BERRY setflag FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY goto BerryBlender_EventScript_UseBerryBlender1 end @@ -551,7 +551,7 @@ BerryBlender_EventScript_ExpertMNoSpareBerries: @ 8294028 BerryBlender_EventScript_ExpertMGiveBerry: @ 8294032 msgbox BerryBlender_Text_DontHaveAnyBerriesHaveOne, MSGBOX_DEFAULT - giveitem_std ITEM_PECHA_BERRY + giveitem ITEM_PECHA_BERRY setflag FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY msgbox BerryBlender_Text_UseItToMakePokeblocksTogether, MSGBOX_DEFAULT release diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc index f4b592b699cd..18378077c084 100644 --- a/data/scripts/berry_tree.inc +++ b/data/scripts/berry_tree.inc @@ -45,7 +45,7 @@ BerryTree_EventScript_ChooseBerryToPlant:: @ 8274393 waitstate compare VAR_ITEM_ID, 0 goto_if_eq BerryTree_EventScript_CancelPlanting - takeitem VAR_ITEM_ID, 1 + removeitem VAR_ITEM_ID call BerryTree_EventScript_PlantBerry BerryTree_EventScript_CancelPlanting:: @ 82743AF diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index f27692448385..4cf046c02449 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -41,7 +41,7 @@ CableClub_EventScript_DistributeEonTicket:: @ 8276B23 goto_if_eq CableClub_EventScript_AlreadyGotEonTicket goto_if_set FLAG_SYS_HAS_EON_TICKET, CableClub_EventScript_AlreadyGotEonTicket msgbox Mevent_Text_TheresATicketForYou, MSGBOX_DEFAULT - giveitem_std ITEM_EON_TICKET + giveitem ITEM_EON_TICKET setflag FLAG_SYS_HAS_EON_TICKET setvar VAR_DISTRIBUTE_EON_TICKET, 0 msgbox Mevent_Text_TryUsingItAtLilycovePort, MSGBOX_DEFAULT @@ -383,7 +383,7 @@ CableClub_EventScript_EnterColosseum:: @ 8276FBD waitdooranim applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterLinkRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor 9, 1 waitdooranim release @@ -488,7 +488,7 @@ CableClub_EventScript_EnterTradeCenter:: @ 827713A waitdooranim applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterLinkRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor 9, 1 waitdooranim release @@ -525,7 +525,7 @@ CableClub_EventScript_RecordCorner:: @ 82771DB goto_if_eq CableClub_EventScript_AbortLink message gText_PleaseWaitForLink waitmessage - special sub_80B2E74 + special TryRecordMixLinkup waitstate special sub_80B2EA8 waitstate @@ -563,7 +563,7 @@ CableClub_EventScript_EnterRecordCorner:: @ 827724C waitdooranim applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterLinkRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor 9, 1 waitdooranim release @@ -710,63 +710,63 @@ EventScript_CableBoxResults:: @ 8277365 releaseall end -EventScript_BattleColosseum2P_PlayerSpot0:: @ 8277374 +EventScript_BattleColosseum_2P_PlayerSpot0:: @ 8277374 setvar VAR_0x8005, 0 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum2P_PlayerSpot1:: @ 827737E +EventScript_BattleColosseum_2P_PlayerSpot1:: @ 827737E setvar VAR_0x8005, 1 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum4P_PlayerSpot0:: @ 8277388 +EventScript_BattleColosseum_4P_PlayerSpot0:: @ 8277388 fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum4P_CancelSpotTrigger + goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 0 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum4P_PlayerSpot1:: @ 82773A3 +EventScript_BattleColosseum_4P_PlayerSpot1:: @ 82773A3 fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum4P_CancelSpotTrigger + goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 1 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum4P_PlayerSpot2:: @ 82773BE +EventScript_BattleColosseum_4P_PlayerSpot2:: @ 82773BE fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum4P_CancelSpotTrigger + goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 2 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum4P_PlayerSpot3:: @ 82773D9 +EventScript_BattleColosseum_4P_PlayerSpot3:: @ 82773D9 fadescreen FADE_TO_BLACK special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq EventScript_BattleColosseum4P_CancelSpotTrigger + goto_if_eq EventScript_BattleColosseum_4P_CancelSpotTrigger setvar VAR_0x8005, 3 special ColosseumPlayerSpotTriggered waitstate end -EventScript_BattleColosseum4P_CancelSpotTrigger:: @ 82773F4 +EventScript_BattleColosseum_4P_CancelSpotTrigger:: @ 82773F4 end EventScript_TradeCenter_Chair0:: @ 82773F5 @@ -855,9 +855,9 @@ CableClub_EventScript_TooBusyToNotice:: @ 827749C closemessage end -BattleColosseum2P_EventScript_Attendant:: @ 82774A6 +BattleColosseum_2P_EventScript_Attendant:: @ 82774A6 special Script_FacePlayer - msgbox BattleColosseum2P_Text_TakePlaceStartBattle, MSGBOX_DEFAULT + msgbox BattleColosseum_2P_Text_TakePlaceStartBattle, MSGBOX_DEFAULT special Script_ClearHeldMovement closemessage end @@ -965,7 +965,7 @@ CableClub_EventScript_EnterUnionRoom:: @ 827759F waitdooranim applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterLinkRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor 5, 1 waitdooranim special Script_ResetUnionRoomTrade @@ -1296,7 +1296,7 @@ CableClub_EventScript_EnterWirelessLinkRoom:: @ 8277B3A waitdooranim applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterLinkRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 closedoor 9, 1 waitdooranim release @@ -1488,7 +1488,7 @@ MossdeepCity_GameCorner_1F_EventScript_EnterMinigameRoom:: @ 8277E0E closemessage applymovement EVENT_OBJ_ID_PLAYER, Movement_PlayerEnterMinigameRoom waitmovement 0 - hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY + hideobjectat EVENT_OBJ_ID_PLAYER, 0 release waitstate end diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc index cabf923b63cc..9775c40dc5fd 100644 --- a/data/scripts/contest_hall.inc +++ b/data/scripts/contest_hall.inc @@ -15,7 +15,7 @@ LilycoveCity_ContestLobby_EventScript_ReceptionWelcome:: @ 8279CEA LilycoveCity_ContestLobby_EventScript_GivePokeblockCase:: @ 8279CF3 msgbox LilycoveCity_ContestLobby_Text_ReceptionDontHavePokeblockCase, MSGBOX_DEFAULT - giveitem_std ITEM_POKEBLOCK_CASE + giveitem ITEM_POKEBLOCK_CASE setflag FLAG_RECEIVED_POKEBLOCK_CASE msgbox LilycoveCity_ContestLobby_Text_NowThatWeveClearedThatUp, MSGBOX_DEFAULT return @@ -27,7 +27,7 @@ LilycoveCity_ContestLobby_EventScript_PickUpPrize:: @ 8279D13 end LilycoveCity_ContestLobby_EventScript_GiveLuxuryBallAtCounter:: @ 8279D2C - giveitem_std ITEM_LUXURY_BALL + giveitem ITEM_LUXURY_BALL compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_ContestLobby_EventScript_NoRoomForLuxuryBallAtCounter setvar VAR_CONTEST_PRIZE_PICKUP, 0 @@ -1236,7 +1236,7 @@ ContestHall_EventScript_NoRoomForLuxuryBall:: @ 827ACA8 return ContestHall_EventScript_GiveLuxuryBall:: @ 827ACBD - giveitem_std ITEM_LUXURY_BALL + giveitem ITEM_LUXURY_BALL compare VAR_RESULT, FALSE goto_if_eq ContestHall_EventScript_NoRoomForLuxuryBall lockall diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc index 456f56f45c47..90b3b3088ac6 100644 --- a/data/scripts/gabby_and_ty.inc +++ b/data/scripts/gabby_and_ty.inc @@ -149,61 +149,61 @@ GabbyAndTy_EventScript_TyBattle1:: @ 828CDF6 end GabbyAndTy_EventScript_GabbyBattle2:: @ 828CE16 - trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_GabbyPreBattle, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_TyBattle2:: @ 828CE36 - trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_TyPreBattle, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_2, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_GabbyBattle3:: @ 828CE56 - trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_GabbyPreBattle, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_TyBattle3:: @ 828CE76 - trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_TyPreBattle, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_3, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_GabbyBattle4:: @ 828CE96 - trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_GabbyPreBattle, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_TyBattle4:: @ 828CEB6 - trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_TyPreBattle, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_4, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_GabbyBattle5:: @ 828CED6 - trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_GabbyPreBattle, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_TyBattle5:: @ 828CEF6 - trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_TyPreBattle, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_5, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_GabbyBattle6:: @ 828CF16 - trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_GabbyPreBattle, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_GabbyIntro, GabbyAndTy_Text_GabbyDefeat, GabbyAndTy_Text_GabbyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_KeepingAnEyeOutForYou, MSGBOX_DEFAULT release end GabbyAndTy_EventScript_TyBattle6:: @ 828CF36 - trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_TyPreBattle, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview + trainerbattle_double TRAINER_GABBY_AND_TY_6, GabbyAndTy_Text_TyIntro, GabbyAndTy_Text_TyDefeat, GabbyAndTy_Text_TyNotEnoughMons, GabbyAndTy_EventScript_RequestInterview msgbox GabbyAndTy_Text_TyPostBattle, MSGBOX_DEFAULT release end diff --git a/data/scripts/item_ball_scripts.inc b/data/scripts/item_ball_scripts.inc index 5e926afc0ce1..2876e9e8cbf7 100644 --- a/data/scripts/item_ball_scripts.inc +++ b/data/scripts/item_ball_scripts.inc @@ -1,659 +1,659 @@ Route102_EventScript_ItemPotion:: @ 8290CD8 - finditem_std ITEM_POTION + finditem ITEM_POTION end Route103_EventScript_ItemGuardSpec:: @ 8290CE5 - finditem_std ITEM_GUARD_SPEC + finditem ITEM_GUARD_SPEC end Route103_EventScript_ItemPPUp:: @ 8290CF2 - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end Route104_EventScript_ItemPPUp:: @ 8290CFF - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end Route104_EventScript_ItemPokeBall:: @ 8290D0C - finditem_std ITEM_POKE_BALL + finditem ITEM_POKE_BALL end Route104_EventScript_ItemXAccuracy:: @ 8290D19 - finditem_std ITEM_X_ACCURACY + finditem ITEM_X_ACCURACY end Route104_EventScript_ItemPotion:: @ 8290D26 - finditem_std ITEM_POTION + finditem ITEM_POTION end Route105_EventScript_ItemIron:: @ 8290D33 - finditem_std ITEM_IRON + finditem ITEM_IRON end Route106_EventScript_ItemProtein:: @ 8290D40 - finditem_std ITEM_PROTEIN + finditem ITEM_PROTEIN end Route108_EventScript_ItemStarPiece:: @ 8290D4D - finditem_std ITEM_STAR_PIECE + finditem ITEM_STAR_PIECE end Route109_EventScript_ItemPPUp:: @ 8290D5A - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end Route109_EventScript_ItemPotion:: @ 8290D67 - finditem_std ITEM_POTION + finditem ITEM_POTION end Route110_EventScript_ItemRareCandy:: @ 8290D74 - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end Route110_EventScript_ItemDireHit:: @ 8290D81 - finditem_std ITEM_DIRE_HIT + finditem ITEM_DIRE_HIT end Route110_EventScript_ItemElixir:: @ 8290D8E - finditem_std ITEM_ELIXIR + finditem ITEM_ELIXIR end Route111_EventScript_ItemTM37:: @ 8290D9B - finditem_std ITEM_TM37 + finditem ITEM_TM37 end Route111_EventScript_ItemStardust:: @ 8290DA8 - finditem_std ITEM_STARDUST + finditem ITEM_STARDUST end Route111_EventScript_ItemHPUp:: @ 8290DB5 - finditem_std ITEM_HP_UP + finditem ITEM_HP_UP end Route111_EventScript_ItemElixir:: @ 8290DC2 - finditem_std ITEM_ELIXIR + finditem ITEM_ELIXIR end Route112_EventScript_ItemNugget:: @ 8290DCF - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end Route113_EventScript_ItemMaxEther:: @ 8290DDC - finditem_std ITEM_MAX_ETHER + finditem ITEM_MAX_ETHER end Route113_EventScript_ItemSuperRepel:: @ 8290DE9 - finditem_std ITEM_SUPER_REPEL + finditem ITEM_SUPER_REPEL end Route113_EventScript_ItemHyperPotion:: @ 8290DF6 - finditem_std ITEM_HYPER_POTION + finditem ITEM_HYPER_POTION end Route114_EventScript_ItemRareCandy:: @ 8290E03 - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end Route114_EventScript_ItemProtein:: @ 8290E10 - finditem_std ITEM_PROTEIN + finditem ITEM_PROTEIN end Route114_EventScript_ItemEnergyPowder:: @ 8290E1D - finditem_std ITEM_ENERGY_POWDER + finditem ITEM_ENERGY_POWDER end Route115_EventScript_ItemSuperPotion:: @ 8290E2A - finditem_std ITEM_SUPER_POTION + finditem ITEM_SUPER_POTION end Route115_EventScript_ItemTM01:: @ 8290E37 - finditem_std ITEM_TM01 + finditem ITEM_TM01 end Route115_EventScript_ItemIron:: @ 8290E44 - finditem_std ITEM_IRON + finditem ITEM_IRON end Route115_EventScript_ItemGreatBall:: @ 8290E51 - finditem_std ITEM_GREAT_BALL + finditem ITEM_GREAT_BALL end Route115_EventScript_ItemHealPowder:: @ 8290E5E - finditem_std ITEM_HEAL_POWDER + finditem ITEM_HEAL_POWDER end Route115_EventScript_ItemPPUp:: @ 8290E6B - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end Route116_EventScript_ItemXSpecial:: @ 8290E78 - finditem_std ITEM_X_SPECIAL + finditem ITEM_X_SPECIAL end Route116_EventScript_ItemEther:: @ 8290E85 - finditem_std ITEM_ETHER + finditem ITEM_ETHER end Route116_EventScript_ItemRepel:: @ 8290E92 - finditem_std ITEM_REPEL + finditem ITEM_REPEL end Route116_EventScript_ItemHPUp:: @ 8290E9F - finditem_std ITEM_HP_UP + finditem ITEM_HP_UP end Route116_EventScript_ItemPotion:: @ 8290EAC - finditem_std ITEM_POTION + finditem ITEM_POTION end Route117_EventScript_ItemGreatBall:: @ 8290EB9 - finditem_std ITEM_GREAT_BALL + finditem ITEM_GREAT_BALL end Route117_EventScript_ItemRevive:: @ 8290EC6 - finditem_std ITEM_REVIVE + finditem ITEM_REVIVE end Route118_EventScript_ItemHyperPotion:: @ 8290ED3 - finditem_std ITEM_HYPER_POTION + finditem ITEM_HYPER_POTION end Route119_EventScript_ItemSuperRepel:: @ 8290EE0 - finditem_std ITEM_SUPER_REPEL + finditem ITEM_SUPER_REPEL end Route119_EventScript_ItemZinc:: @ 8290EED - finditem_std ITEM_ZINC + finditem ITEM_ZINC end Route119_EventScript_ItemElixir:: @ 8290EFA - finditem_std ITEM_ELIXIR + finditem ITEM_ELIXIR end Route119_EventScript_ItemLeafStone:: @ 8290F07 - finditem_std ITEM_LEAF_STONE + finditem ITEM_LEAF_STONE end Route119_EventScript_ItemRareCandy:: @ 8290F14 - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end Route119_EventScript_ItemHyperPotion:: @ 8290F21 - finditem_std ITEM_HYPER_POTION + finditem ITEM_HYPER_POTION end Route119_EventScript_ItemHyperPotion2:: @ 8290F2E - finditem_std ITEM_HYPER_POTION + finditem ITEM_HYPER_POTION end Route119_EventScript_ItemElixir2:: @ 8290F3B - finditem_std ITEM_ELIXIR + finditem ITEM_ELIXIR end Route120_EventScript_ItemNugget:: @ 8290F48 - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end Route120_EventScript_ItemFullHeal:: @ 8290F55 - finditem_std ITEM_FULL_HEAL + finditem ITEM_FULL_HEAL end Route120_EventScript_ItemHyperPotion:: @ 8290F62 - finditem_std ITEM_HYPER_POTION + finditem ITEM_HYPER_POTION end Route120_EventScript_ItemNestBall:: @ 8290F6F - finditem_std ITEM_NEST_BALL + finditem ITEM_NEST_BALL end Route120_EventScript_ItemRevive:: @ 8290F7C - finditem_std ITEM_REVIVE + finditem ITEM_REVIVE end Route121_EventScript_ItemCarbos:: @ 8290F89 - finditem_std ITEM_CARBOS + finditem ITEM_CARBOS end Route121_EventScript_ItemRevive:: @ 8290F96 - finditem_std ITEM_REVIVE + finditem ITEM_REVIVE end Route121_EventScript_ItemZinc:: @ 8290FA3 - finditem_std ITEM_ZINC + finditem ITEM_ZINC end Route123_EventScript_ItemCalcium:: @ 8290FB0 - finditem_std ITEM_CALCIUM + finditem ITEM_CALCIUM end Route123_EventScript_ItemUltraBall:: @ 8290FBD - finditem_std ITEM_ULTRA_BALL + finditem ITEM_ULTRA_BALL end Route123_EventScript_ItemElixir:: @ 8290FCA - finditem_std ITEM_ELIXIR + finditem ITEM_ELIXIR end Route123_EventScript_ItemPPUp:: @ 8290FD7 - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end Route123_EventScript_ItemRevivalHerb:: @ 8290FE4 - finditem_std ITEM_REVIVAL_HERB + finditem ITEM_REVIVAL_HERB end Route124_EventScript_ItemRedShard:: @ 8290FF1 - finditem_std ITEM_RED_SHARD + finditem ITEM_RED_SHARD end Route124_EventScript_ItemBlueShard:: @ 8290FFE - finditem_std ITEM_BLUE_SHARD + finditem ITEM_BLUE_SHARD end Route124_EventScript_ItemYellowShard:: @ 829100B - finditem_std ITEM_YELLOW_SHARD + finditem ITEM_YELLOW_SHARD end Route125_EventScript_ItemBigPearl:: @ 8291018 - finditem_std ITEM_BIG_PEARL + finditem ITEM_BIG_PEARL end Route126_EventScript_ItemGreenShard:: @ 8291025 - finditem_std ITEM_GREEN_SHARD + finditem ITEM_GREEN_SHARD end Route127_EventScript_ItemZinc:: @ 8291032 - finditem_std ITEM_ZINC + finditem ITEM_ZINC end Route127_EventScript_ItemCarbos:: @ 829103F - finditem_std ITEM_CARBOS + finditem ITEM_CARBOS end Route127_EventScript_ItemRareCandy:: @ 829104C - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end Route132_EventScript_ItemRareCandy:: @ 8291059 - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end Route132_EventScript_ItemProtein:: @ 8291066 - finditem_std ITEM_PROTEIN + finditem ITEM_PROTEIN end Route133_EventScript_ItemBigPearl:: @ 8291073 - finditem_std ITEM_BIG_PEARL + finditem ITEM_BIG_PEARL end Route133_EventScript_ItemStarPiece:: @ 8291080 - finditem_std ITEM_STAR_PIECE + finditem ITEM_STAR_PIECE end Route133_EventScript_ItemMaxRevive:: @ 829108D - finditem_std ITEM_MAX_REVIVE + finditem ITEM_MAX_REVIVE end Route134_EventScript_ItemCarbos:: @ 829109A - finditem_std ITEM_CARBOS + finditem ITEM_CARBOS end Route134_EventScript_ItemStarPiece:: @ 82910A7 - finditem_std ITEM_STAR_PIECE + finditem ITEM_STAR_PIECE end PetalburgCity_EventScript_ItemMaxRevive:: @ 82910B4 - finditem_std ITEM_MAX_REVIVE + finditem ITEM_MAX_REVIVE end PetalburgCity_EventScript_ItemEther:: @ 82910C1 - finditem_std ITEM_ETHER + finditem ITEM_ETHER end MauvilleCity_EventScript_ItemXSpeed:: @ 82910CE - finditem_std ITEM_X_SPEED + finditem ITEM_X_SPEED end RustboroCity_EventScript_ItemXDefend:: @ 82910DB - finditem_std ITEM_X_DEFEND + finditem ITEM_X_DEFEND end LilycoveCity_EventScript_ItemMaxRepel:: @ 82910E8 - finditem_std ITEM_MAX_REPEL + finditem ITEM_MAX_REPEL end MossdeepCity_EventScript_ItemNetBall:: @ 82910F5 - finditem_std ITEM_NET_BALL + finditem ITEM_NET_BALL end PetalburgWoods_EventScript_ItemXAttack:: @ 8291102 - finditem_std ITEM_X_ATTACK + finditem ITEM_X_ATTACK end PetalburgWoods_EventScript_ItemGreatBall:: @ 829110F - finditem_std ITEM_GREAT_BALL + finditem ITEM_GREAT_BALL end PetalburgWoods_EventScript_ItemEther:: @ 829111C - finditem_std ITEM_ETHER + finditem ITEM_ETHER end PetalburgWoods_EventScript_ItemParalyzeHeal:: @ 8291129 - finditem_std ITEM_PARALYZE_HEAL + finditem ITEM_PARALYZE_HEAL end RusturfTunnel_EventScript_ItemPokeBall:: @ 8291136 - finditem_std ITEM_POKE_BALL + finditem ITEM_POKE_BALL end RusturfTunnel_EventScript_ItemMaxEther:: @ 8291143 - finditem_std ITEM_MAX_ETHER + finditem ITEM_MAX_ETHER end GraniteCave_1F_EventScript_ItemEscapeRope:: @ 8291150 - finditem_std ITEM_ESCAPE_ROPE + finditem ITEM_ESCAPE_ROPE end GraniteCave_B1F_EventScript_ItemPokeBall:: @ 829115D - finditem_std ITEM_POKE_BALL + finditem ITEM_POKE_BALL end GraniteCave_B2F_EventScript_ItemRepel:: @ 829116A - finditem_std ITEM_REPEL + finditem ITEM_REPEL end GraniteCave_B2F_EventScript_ItemRareCandy:: @ 8291177 - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end JaggedPass_EventScript_ItemBurnHeal:: @ 8291184 - finditem_std ITEM_BURN_HEAL + finditem ITEM_BURN_HEAL end FieryPath_EventScript_ItemFireStone:: @ 8291191 - finditem_std ITEM_FIRE_STONE + finditem ITEM_FIRE_STONE end FieryPath_EventScript_ItemTM06:: @ 829119E - finditem_std ITEM_TM06 + finditem ITEM_TM06 end MeteorFalls_1F_1R_EventScript_ItemTM23:: @ 82911AB - finditem_std ITEM_TM23 + finditem ITEM_TM23 end MeteorFalls_1F_1R_EventScript_ItemFullHeal:: @ 82911B8 - finditem_std ITEM_FULL_HEAL + finditem ITEM_FULL_HEAL end MeteorFalls_1F_1R_EventScript_ItemMoonStone:: @ 82911C5 - finditem_std ITEM_MOON_STONE + finditem ITEM_MOON_STONE end MeteorFalls_1F_1R_EventScript_ItemPPUP:: @ 82911D2 - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end MeteorFalls_B1F_2R_EventScript_ItemTM02:: @ 82911DF - finditem_std ITEM_TM02 + finditem ITEM_TM02 end NewMauville_Inside_EventScript_ItemUltraRope:: @ 82911EC - finditem_std ITEM_ULTRA_BALL + finditem ITEM_ULTRA_BALL end NewMauville_Inside_EventScript_ItemEscapeRope:: @ 82911F9 - finditem_std ITEM_ESCAPE_ROPE + finditem ITEM_ESCAPE_ROPE end NewMauville_Inside_EventScript_ItemThunderStone:: @ 8291206 - finditem_std ITEM_THUNDER_STONE + finditem ITEM_THUNDER_STONE end NewMauville_Inside_EventScript_ItemFullHeal:: @ 8291213 - finditem_std ITEM_FULL_HEAL + finditem ITEM_FULL_HEAL end NewMauville_Inside_EventScript_ItemParalyzeHeal:: @ 8291220 - finditem_std ITEM_PARALYZE_HEAL + finditem ITEM_PARALYZE_HEAL end AbandonedShip_Rooms_1F_EventScript_ItemHarborMail:: @ 829122D - finditem_std ITEM_HARBOR_MAIL + finditem ITEM_HARBOR_MAIL end AbandonedShip_Rooms_B1F_EventScript_ItemEscapeRope:: @ 829123A - finditem_std ITEM_ESCAPE_ROPE + finditem ITEM_ESCAPE_ROPE end AbandonedShip_Rooms2_B1F_EventScript_ItemDiveBall:: @ 8291247 - finditem_std ITEM_DIVE_BALL + finditem ITEM_DIVE_BALL end AbandonedShip_Room_B1F_EventScript_ItemTM13:: @ 8291254 - finditem_std ITEM_TM13 + finditem ITEM_TM13 end AbandonedShip_Rooms2_1F_EventScript_ItemRevive:: @ 8291261 - finditem_std ITEM_REVIVE + finditem ITEM_REVIVE end AbandonedShip_CaptainsOffice_EventScript_ItemStorageKey:: @ 829126E - finditem_std ITEM_STORAGE_KEY + finditem ITEM_STORAGE_KEY end AbandonedShip_HiddenFloorRooms_EventScript_ItemLuxuryBall:: @ 829127B - finditem_std ITEM_LUXURY_BALL + finditem ITEM_LUXURY_BALL end AbandonedShip_HiddenFloorRooms_EventScript_ItemScanner:: @ 8291288 - finditem_std ITEM_SCANNER + finditem ITEM_SCANNER end AbandonedShip_HiddenFloorRooms_EventScript_ItemWaterStone:: @ 8291295 - finditem_std ITEM_WATER_STONE + finditem ITEM_WATER_STONE end AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18:: @ 82912A2 - finditem_std ITEM_TM18 + finditem ITEM_TM18 end ScorchedSlab_EventScript_ItemTM11:: @ 82912AF - finditem_std ITEM_TM11 + finditem ITEM_TM11 end SafariZone_Northwest_EventScript_ItemTM22:: @ 82912BC - finditem_std ITEM_TM22 + finditem ITEM_TM22 end SafariZone_North_EventScript_ItemCalcium:: @ 82912C9 - finditem_std ITEM_CALCIUM + finditem ITEM_CALCIUM end SafariZone_Southwest_EventScript_ItemMaxRevive:: @ 82912D6 - finditem_std ITEM_MAX_REVIVE + finditem ITEM_MAX_REVIVE end SafariZone_Northeast_EventScript_ItemNugget:: @ 82912E3 - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end SafariZone_Southeast_EventScript_ItemBigPearl:: @ 82912F0 - finditem_std ITEM_BIG_PEARL + finditem ITEM_BIG_PEARL end MtPyre_2F_EventScript_ItemUltraBall:: @ 82912FD - finditem_std ITEM_ULTRA_BALL + finditem ITEM_ULTRA_BALL end MtPyre_3F_EventScript_ItemSuperRepel:: @ 829130A - finditem_std ITEM_SUPER_REPEL + finditem ITEM_SUPER_REPEL end MtPyre_4F_EventScript_ItemSeaIncense:: @ 8291317 - finditem_std ITEM_SEA_INCENSE + finditem ITEM_SEA_INCENSE end MtPyre_5F_EventScript_ItemLaxIncense:: @ 8291324 - finditem_std ITEM_LAX_INCENSE + finditem ITEM_LAX_INCENSE end MtPyre_6F_EventScript_ItemTM30:: @ 8291331 - finditem_std ITEM_TM30 + finditem ITEM_TM30 end MtPyre_Exterior_EventScript_ItemMaxPotion:: @ 829133E - finditem_std ITEM_MAX_POTION + finditem ITEM_MAX_POTION end MtPyre_Exterior_EventScript_ItemTM48:: @ 829134B - finditem_std ITEM_TM48 + finditem ITEM_TM48 end AquaHideout_B1F_EventScript_ItemMasterBall:: @ 8291358 - finditem_std ITEM_MASTER_BALL + finditem ITEM_MASTER_BALL end AquaHideout_B1F_EventScript_ItemNugget:: @ 8291365 - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end AquaHideout_B1F_EventScript_ItemMaxElixir:: @ 8291372 - finditem_std ITEM_MAX_ELIXIR + finditem ITEM_MAX_ELIXIR end AquaHideout_B2F_EventScript_ItemNestBall:: @ 829137F - finditem_std ITEM_NEST_BALL + finditem ITEM_NEST_BALL end AquaHideout_B2F_EventScript_ItemMasterBall:: @ 829138C - finditem_std ITEM_MASTER_BALL // Unused + finditem ITEM_MASTER_BALL // Unused end Route119_EventScript_ItemNugget:: @ 8291399 - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end Route119_EventScript_ItemMaxElixir:: @ 82913A6 - finditem_std ITEM_MAX_ELIXIR + finditem ITEM_MAX_ELIXIR end Route119_EventScript_ItemNestBall:: @ 82913B3 - finditem_std ITEM_NEST_BALL + finditem ITEM_NEST_BALL end ShoalCave_LowTideEntranceRoom_EventScript_ItemBigPearl:: @ 82913C0 - finditem_std ITEM_BIG_PEARL + finditem ITEM_BIG_PEARL end ShoalCave_LowTideInnerRoom_EventScript_ItemRareCandy:: @ 82913CD - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end ShoalCave_LowTideStairsRoom_EventScript_ItemIceHeal:: @ 82913DA - finditem_std ITEM_ICE_HEAL + finditem ITEM_ICE_HEAL end ShoalCave_LowTideIceRoom_EventScript_ItemTM07:: @ 82913E7 - finditem_std ITEM_TM07 + finditem ITEM_TM07 end ShoalCave_LowTideIceRoom_EventScript_ItemNeverMeltIce:: @ 82913F4 - finditem_std ITEM_NEVER_MELT_ICE + finditem ITEM_NEVER_MELT_ICE end SeafloorCavern_Room9_EventScript_ItemTM26:: @ 8291401 - finditem_std ITEM_TM26 + finditem ITEM_TM26 end Route110_TrickHousePuzzle1_EventScript_ItemOrangeMail:: @ 829140E - finditem_std ITEM_ORANGE_MAIL + finditem ITEM_ORANGE_MAIL end Route110_TrickHousePuzzle2_EventScript_ItemHarborMail:: @ 829141B - finditem_std ITEM_HARBOR_MAIL + finditem ITEM_HARBOR_MAIL end Route110_TrickHousePuzzle2_EventScript_ItemWaveMail:: @ 8291428 - finditem_std ITEM_WAVE_MAIL + finditem ITEM_WAVE_MAIL end Route110_TrickHousePuzzle3_EventScript_ItemShadowMail:: @ 8291435 - finditem_std ITEM_SHADOW_MAIL + finditem ITEM_SHADOW_MAIL end Route110_TrickHousePuzzle3_EventScript_ItemWoodMail:: @ 8291442 - finditem_std ITEM_WOOD_MAIL + finditem ITEM_WOOD_MAIL end Route110_TrickHousePuzzle4_EventScript_ItemMechMail:: @ 829144F - finditem_std ITEM_MECH_MAIL + finditem ITEM_MECH_MAIL end Route110_TrickHousePuzzle6_EventScript_ItemGlitterMail:: @ 829145C - finditem_std ITEM_GLITTER_MAIL + finditem ITEM_GLITTER_MAIL end Route110_TrickHousePuzzle7_EventScript_ItemTropicMail:: @ 8291469 - finditem_std ITEM_TROPIC_MAIL + finditem ITEM_TROPIC_MAIL end Route110_TrickHousePuzzle8_EventScript_ItemBeadMail:: @ 8291476 - finditem_std ITEM_BEAD_MAIL + finditem ITEM_BEAD_MAIL end VictoryRoad_1F_EventScript_ItemMaxElixir:: @ 8291483 - finditem_std ITEM_MAX_ELIXIR + finditem ITEM_MAX_ELIXIR end VictoryRoad_1F_EventScript_ItemPPUp:: @ 8291490 - finditem_std ITEM_PP_UP + finditem ITEM_PP_UP end VictoryRoad_B1F_EventScript_ItemTM29:: @ 829149D - finditem_std ITEM_TM29 + finditem ITEM_TM29 end VictoryRoad_B1F_EventScript_ItemFullRestore:: @ 82914AA - finditem_std ITEM_FULL_RESTORE + finditem ITEM_FULL_RESTORE end VictoryRoad_B2F_EventScript_ItemFullHeal:: @ 82914B7 - finditem_std ITEM_FULL_HEAL + finditem ITEM_FULL_HEAL end ArtisanCave_B1F_EventScript_ItemHPUp:: @ 82914C4 - finditem_std ITEM_HP_UP + finditem ITEM_HP_UP end ArtisanCave_1F_EventScript_ItemCarbos:: @ 82914D1 - finditem_std ITEM_CARBOS + finditem ITEM_CARBOS end MagmaHideout_1F_EventScript_ItemRareCandy:: @ 82914DE - finditem_std ITEM_RARE_CANDY + finditem ITEM_RARE_CANDY end MagmaHideout_2F_2R_EventScript_MaxElixir:: @ 82914EB - finditem_std ITEM_MAX_ELIXIR + finditem ITEM_MAX_ELIXIR end MagmaHideout_2F_2R_EventScript_ItemFullRestore:: @ 82914F8 - finditem_std ITEM_FULL_RESTORE + finditem ITEM_FULL_RESTORE end MagmaHideout_3F_1R_EventScript_ItemNugget:: @ 8291505 - finditem_std ITEM_NUGGET + finditem ITEM_NUGGET end MagmaHideout_3F_2R_EventScript_ItemPPMax:: @ 8291512 - finditem_std ITEM_PP_MAX + finditem ITEM_PP_MAX end MagmaHideout_4F_EventScript_MaxRevive:: @ 829151F - finditem_std ITEM_MAX_REVIVE + finditem ITEM_MAX_REVIVE end MagmaHideout_3F_3R_EventScript_ItemEscapeRope:: @ 829152C - finditem_std ITEM_ESCAPE_ROPE + finditem ITEM_ESCAPE_ROPE end diff --git a/data/scripts/lilycove_lady.inc b/data/scripts/lilycove_lady.inc index c2ff593cf78e..bdd670031ac1 100644 --- a/data/scripts/lilycove_lady.inc +++ b/data/scripts/lilycove_lady.inc @@ -129,7 +129,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_FavorLadyPrize:: @ 82A8510 setvar VAR_0x8004, 0 specialvar VAR_0x8004, FavorLadyGetPrize msgbox LilycoveCity_PokemonCenter_1F_Text_IllGiveYouThisInReturn, MSGBOX_DEFAULT - giveitem_std VAR_0x8004 + giveitem VAR_0x8004 compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NoRoomForFavorPrize compare VAR_RESULT, 1 @@ -297,7 +297,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_GivePrize:: @ 82A8724 setvar VAR_0x8005, 0 special BufferQuizPrizeItem special SetQuizLadyState_Complete - giveitem_std VAR_0x8005 + giveitem VAR_0x8005 compare VAR_RESULT, FALSE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_NoSpaceForQuizPrize goto LilycoveCity_PokemonCenter_1F_EventScript_AskMakeQuiz diff --git a/data/scripts/mevent_aurora_ticket.inc b/data/scripts/mevent_aurora_ticket.inc index 177d69681aa8..f26be068f3f2 100644 --- a/data/scripts/mevent_aurora_ticket.inc +++ b/data/scripts/mevent_aurora_ticket.inc @@ -2,10 +2,8 @@ MysteryEventScript_AuroraTicket:: @ 867533C setvaddress MysteryEventScript_AuroraTicket lock faceplayer - checkflag FLAG_RECEIVED_AURORA_TICKET - vgoto_if_eq AuroraTicket_Obtained - checkflag FLAG_BATTLED_DEOXYS - vgoto_if_eq AuroraTicket_Obtained + vgoto_if_set FLAG_RECEIVED_AURORA_TICKET, AuroraTicket_Obtained + vgoto_if_set FLAG_BATTLED_DEOXYS, AuroraTicket_Obtained checkitem ITEM_AURORA_TICKET, 1 compare VAR_RESULT, TRUE vgoto_if_eq AuroraTicket_Obtained @@ -15,7 +13,7 @@ MysteryEventScript_AuroraTicket:: @ 867533C checkitemspace ITEM_AURORA_TICKET, 1 compare VAR_RESULT, FALSE vgoto_if_eq AuroraTicket_NoBagSpace - giveitem_std ITEM_AURORA_TICKET + giveitem ITEM_AURORA_TICKET setflag FLAG_ENABLE_SHIP_BIRTH_ISLAND setflag FLAG_RECEIVED_AURORA_TICKET vmessage sText_AuroraTicketUseAtPort diff --git a/data/scripts/mevent_battle_card.inc b/data/scripts/mevent_battle_card.inc index 77f9a9b24f91..70462bdd9e61 100644 --- a/data/scripts/mevent_battle_card.inc +++ b/data/scripts/mevent_battle_card.inc @@ -1,7 +1,6 @@ MysteryEventScript_BattleCard:: @ 867513C setvaddress MysteryEventScript_BattleCard - checkflag FLAG_MYSTERY_EVENT_DONE - vgoto_if_eq MysteryEventScript_BattleCardInfo + vgoto_if_set FLAG_MYSTERY_EVENT_DONE, MysteryEventScript_BattleCardInfo setorcopyvar VAR_RESULT, GET_CARD_BATTLES_WON specialvar VAR_0x8008, GetMysteryEventCardVal compare VAR_0x8008, REQUIRED_CARD_BATTLES @@ -11,7 +10,7 @@ MysteryEventScript_BattleCard:: @ 867513C vmessage sText_MysteryGiftBattleCountCard_WonPrize waitmessage waitbuttonpress - giveitem_std ITEM_POTION + giveitem ITEM_POTION release setflag FLAG_MYSTERY_EVENT_DONE end diff --git a/data/scripts/mevent_mystic_ticket.inc b/data/scripts/mevent_mystic_ticket.inc index 9d532b043637..8f938dc33aeb 100644 --- a/data/scripts/mevent_mystic_ticket.inc +++ b/data/scripts/mevent_mystic_ticket.inc @@ -2,12 +2,9 @@ MysteryEventScript_MysticTicket:: @ 867550B setvaddress MysteryEventScript_MysticTicket lock faceplayer - checkflag FLAG_RECEIVED_MYSTIC_TICKET - vgoto_if_eq MysticTicket_Obtained - checkflag FLAG_CAUGHT_LUGIA - vgoto_if_eq MysticTicket_Obtained - checkflag FLAG_CAUGHT_HO_OH - vgoto_if_eq MysticTicket_Obtained + vgoto_if_set FLAG_RECEIVED_MYSTIC_TICKET, MysticTicket_Obtained + vgoto_if_set FLAG_CAUGHT_LUGIA, MysticTicket_Obtained + vgoto_if_set FLAG_CAUGHT_HO_OH, MysticTicket_Obtained checkitem ITEM_MYSTIC_TICKET, 1 compare VAR_RESULT, TRUE vgoto_if_eq MysticTicket_Obtained @@ -17,7 +14,7 @@ MysteryEventScript_MysticTicket:: @ 867550B checkitemspace ITEM_MYSTIC_TICKET, 1 compare VAR_RESULT, FALSE vgoto_if_eq MysticTicket_NoBagSpace - giveitem_std ITEM_MYSTIC_TICKET + giveitem ITEM_MYSTIC_TICKET setflag FLAG_ENABLE_SHIP_NAVEL_ROCK setflag FLAG_RECEIVED_MYSTIC_TICKET vmessage sText_MysticTicketUseAtPort diff --git a/data/scripts/mevent_old_sea_map.inc b/data/scripts/mevent_old_sea_map.inc index 45c5f6728a16..0fb3c100283b 100644 --- a/data/scripts/mevent_old_sea_map.inc +++ b/data/scripts/mevent_old_sea_map.inc @@ -2,10 +2,8 @@ MysteryEventScript_OldSeaMap:: @ 86757F4 setvaddress MysteryEventScript_OldSeaMap lock faceplayer - checkflag FLAG_RECEIVED_OLD_SEA_MAP - vgoto_if_eq OldSeaMap_Obtained - checkflag FLAG_CAUGHT_MEW - vgoto_if_eq OldSeaMap_Obtained + vgoto_if_set FLAG_RECEIVED_OLD_SEA_MAP, OldSeaMap_Obtained + vgoto_if_set FLAG_CAUGHT_MEW, OldSeaMap_Obtained checkitem ITEM_OLD_SEA_MAP, 1 compare VAR_RESULT, TRUE vgoto_if_eq OldSeaMap_Obtained @@ -15,7 +13,7 @@ MysteryEventScript_OldSeaMap:: @ 86757F4 checkitemspace ITEM_OLD_SEA_MAP, 1 compare VAR_RESULT, FALSE vgoto_if_eq OldSeaMap_NoBagSpace - giveitem_std ITEM_OLD_SEA_MAP + giveitem ITEM_OLD_SEA_MAP setflag FLAG_ENABLE_SHIP_FARAWAY_ISLAND setflag FLAG_RECEIVED_OLD_SEA_MAP vmessage sText_MysteryGiftOldSeaMapUseAtPort diff --git a/data/scripts/mevent_pichu.inc b/data/scripts/mevent_pichu.inc index 4f5c739af2be..cc947e396d72 100644 --- a/data/scripts/mevent_pichu.inc +++ b/data/scripts/mevent_pichu.inc @@ -1,7 +1,6 @@ MysteryEventScript_SurfPichu:: @ 8674D3D setvaddress MysteryEventScript_SurfPichu - checkflag FLAG_MYSTERY_EVENT_DONE - vgoto_if_ne SurfPichu_GiveIfPossible + vgoto_if_unset FLAG_MYSTERY_EVENT_DONE, SurfPichu_GiveIfPossible returnram SurfPichu_GiveIfPossible: @ 8674D4C diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc index 6687bbd476d0..16e9a657f27e 100644 --- a/data/scripts/mystery_event_club.inc +++ b/data/scripts/mystery_event_club.inc @@ -41,7 +41,7 @@ MysteryEventClub_EventScript_CancelShowProfile:: @ 82915CB MysteryEventClub_EventScript_ShowProfile:: @ 82915D5 setvar VAR_0x8004, 0 - special sub_811EECC + special ShowEasyChatProfile waitmessage delay 80 msgbox MysteryEventClub_Text_FantasticProfile, MSGBOX_DEFAULT diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 77b795f60270..3afd92588a9e 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -1,5 +1,5 @@ Std_ObtainItem:: @ 8271AD3 - giveitem VAR_0x8000, VAR_0x8001 + additem VAR_0x8000, VAR_0x8001 copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainItemMessage return @@ -73,7 +73,7 @@ EventScript_PlayFanfareObtainedTMHM:: @ 8271BB3 return Std_ObtainDecoration:: @ 8271BB7 - givedecoration VAR_0x8000 + adddecoration VAR_0x8000 copyvar VAR_0x8007, VAR_RESULT call EventScript_ObtainDecorationMessage return @@ -118,7 +118,7 @@ Std_FindItem:: @ 8271BFD EventScript_PickUpItem:: @ 8271C3A removeobject VAR_LAST_TALKED - giveitem VAR_0x8004, VAR_0x8005 + additem VAR_0x8004, VAR_0x8005 specialvar VAR_RESULT, BufferTMHMMoveName copyvar VAR_0x8008, VAR_RESULT compare VAR_0x8008, 1 @@ -156,7 +156,7 @@ EventScript_NoRoomToPickUpItem:: @ 8271CA1 EventScript_HiddenItemScript:: @ 8271CB7 lockall waitse - giveitem VAR_0x8005, 1 + additem VAR_0x8005 copyvar VAR_0x8007, VAR_RESULT bufferitemnameplural 1, VAR_0x8005, 1 checkitemtype VAR_0x8005 diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 58618efe7c1f..8f15fcd58ba4 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -345,7 +345,7 @@ PlayersHouse_1F_EventScript_CheckGiveAmuletCoin:: @ 8292A43 PlayersHouse_1F_EventScript_TryGiveAmuletCoin:: @ 8292A51 goto_if_set FLAG_RECEIVED_AMULET_COIN, PlayersHouse_1F_EventScript_MomHealsParty msgbox PlayersHouse_1F_Text_GotDadsBadgeHeresSomethingFromMom, MSGBOX_DEFAULT - giveitem_std ITEM_AMULET_COIN + giveitem ITEM_AMULET_COIN compare VAR_RESULT, FALSE goto_if_eq Common_EventScript_ShowBagIsFull msgbox PlayersHouse_1F_Text_DontPushYourselfTooHard, MSGBOX_DEFAULT @@ -448,7 +448,7 @@ PlayersHouse_1F_EventScript_GetSSTicketAndSeeLatiTV:: @ 8292AF2 compare VAR_0x8008, FEMALE call_if_eq PlayersHouse_1F_EventScript_DadApproachPlayerFemale msgbox PlayersHouse_1F_Text_TicketFromBrineyCameForYou, MSGBOX_DEFAULT - giveitem_std ITEM_SS_TICKET + giveitem ITEM_SS_TICKET msgbox PlayersHouse_1F_Text_PortsInSlateportLilycove, MSGBOX_DEFAULT closemessage delay 20 diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 0f2ad02b1bc3..7bb20e378416 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -346,7 +346,7 @@ SecretBase_EventScript_Trainer0:: @ 8275DD6 goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer0PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer0PostBattle - msgbox SecretBase_Text_Trainer0PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer0Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer0DeclineBattle setvar VAR_RESULT, 1 @@ -364,7 +364,7 @@ SecretBase_EventScript_Trainer0PreChampion:: @ 8275E25 end SecretBase_EventScript_Trainer0DeclineBattle:: @ 8275E2F - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer0DeclineBattle, MSGBOX_DEFAULT @@ -383,7 +383,7 @@ SecretBase_EventScript_Trainer1:: @ 8275E4E goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer1PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer1PostBattle - msgbox SecretBase_Text_Trainer1PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer1Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer1DeclineBattle setvar VAR_RESULT, 1 @@ -401,7 +401,7 @@ SecretBase_EventScript_Trainer1PreChampion:: @ 8275E9D end SecretBase_EventScript_Trainer1DeclineBattle:: @ 8275EA7 - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer1DeclineBattle, MSGBOX_DEFAULT @@ -420,7 +420,7 @@ SecretBase_EventScript_Trainer2:: @ 8275EC6 goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer2PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer2PostBattle - msgbox SecretBase_Text_Trainer2PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer2Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer2DeclineBattle setvar VAR_RESULT, 1 @@ -438,7 +438,7 @@ SecretBase_EventScript_Trainer2PreChampion:: @ 8275F15 end SecretBase_EventScript_Trainer2DeclineBattle:: @ 8275F1F - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer2DeclineBattle, MSGBOX_DEFAULT @@ -457,7 +457,7 @@ SecretBase_EventScript_Trainer3:: @ 8275F3E goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer3PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer3PostBattle - msgbox SecretBase_Text_Trainer3PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer3Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer3DeclineBattle setvar VAR_RESULT, 1 @@ -475,7 +475,7 @@ SecretBase_EventScript_Trainer3PreChampion:: @ 8275F8D end SecretBase_EventScript_Trainer3DeclineBattle:: @ 8275F97 - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer3DeclineBattle, MSGBOX_DEFAULT @@ -494,7 +494,7 @@ SecretBase_EventScript_Trainer4:: @ 8275FB6 goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer4PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer4PostBattle - msgbox SecretBase_Text_Trainer4PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer4Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer4DeclineBattle setvar VAR_RESULT, 1 @@ -512,7 +512,7 @@ SecretBase_EventScript_Trainer4PreChampion:: @ 8276005 end SecretBase_EventScript_Trainer4DeclineBattle:: @ 827600F - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer4DeclineBattle, MSGBOX_DEFAULT @@ -531,7 +531,7 @@ SecretBase_EventScript_Trainer5:: @ 827602E goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer5PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer5PostBattle - msgbox SecretBase_Text_Trainer5PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer5Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer5DeclineBattle setvar VAR_RESULT, 1 @@ -549,7 +549,7 @@ SecretBase_EventScript_Trainer5PreChampion:: @ 827607D end SecretBase_EventScript_Trainer5DeclineBattle:: @ 8276087 - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer5DeclineBattle, MSGBOX_DEFAULT @@ -568,7 +568,7 @@ SecretBase_EventScript_Trainer6:: @ 82760A6 goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer6PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer6PostBattle - msgbox SecretBase_Text_Trainer6PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer6Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer6DeclineBattle setvar VAR_RESULT, 1 @@ -586,7 +586,7 @@ SecretBase_EventScript_Trainer6PreChampion:: @ 82760F5 end SecretBase_EventScript_Trainer6DeclineBattle:: @ 82760FF - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer6DeclineBattle, MSGBOX_DEFAULT @@ -605,7 +605,7 @@ SecretBase_EventScript_Trainer7:: @ 827611E goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer7PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer7PostBattle - msgbox SecretBase_Text_Trainer7PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer7Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer7DeclineBattle setvar VAR_RESULT, 1 @@ -623,7 +623,7 @@ SecretBase_EventScript_Trainer7PreChampion:: @ 827616D end SecretBase_EventScript_Trainer7DeclineBattle:: @ 8276177 - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer7DeclineBattle, MSGBOX_DEFAULT @@ -642,7 +642,7 @@ SecretBase_EventScript_Trainer8:: @ 8276196 goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer8PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer8PostBattle - msgbox SecretBase_Text_Trainer8PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer8Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer8DeclineBattle setvar VAR_RESULT, 1 @@ -660,7 +660,7 @@ SecretBase_EventScript_Trainer8PreChampion:: @ 82761E5 end SecretBase_EventScript_Trainer8DeclineBattle:: @ 82761EF - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer8DeclineBattle, MSGBOX_DEFAULT @@ -679,7 +679,7 @@ SecretBase_EventScript_Trainer9:: @ 827620E goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_EventScript_Trainer9PreChampion compare VAR_RESULT, 1 goto_if_eq SecretBase_EventScript_Trainer9PostBattle - msgbox SecretBase_Text_Trainer9PreBattle, MSGBOX_YESNO + msgbox SecretBase_Text_Trainer9Intro, MSGBOX_YESNO compare VAR_RESULT, NO goto_if_eq SecretBase_EventScript_Trainer9DeclineBattle setvar VAR_RESULT, 1 @@ -697,7 +697,7 @@ SecretBase_EventScript_Trainer9PreChampion:: @ 827625D end SecretBase_EventScript_Trainer9DeclineBattle:: @ 8276267 - special sub_80EB300 + special DeclinedSecretBaseBattle setvar VAR_RESULT, 0 special SetBattledOwnerFromResult msgbox SecretBase_Text_Trainer9DeclineBattle, MSGBOX_DEFAULT @@ -716,35 +716,35 @@ SecretBase_EventScript_BattleTrainer:: @ 8276286 special DoSpecialTrainerBattle waitstate compare VAR_RESULT, B_OUTCOME_DREW - call_if_eq SecretBase_EventScript_2762BD + call_if_eq SecretBase_EventScript_DrewSecretBaseBattle compare VAR_RESULT, B_OUTCOME_WON - call_if_eq SecretBase_EventScript_2762C1 + call_if_eq SecretBase_EventScript_WonSecretBaseBattle compare VAR_RESULT, B_OUTCOME_LOST - call_if_eq SecretBase_EventScript_2762C5 + call_if_eq SecretBase_EventScript_LostSecretBaseBattle special HealPlayerParty release end -SecretBase_EventScript_2762BD:: @ 82762BD - special sub_80EB438 +SecretBase_EventScript_DrewSecretBaseBattle:: @ 82762BD + special DrewSecretBaseBattle return -SecretBase_EventScript_2762C1:: @ 82762C1 - special sub_80EB368 +SecretBase_EventScript_WonSecretBaseBattle:: @ 82762C1 + special WonSecretBaseBattle return -SecretBase_EventScript_2762C5:: @ 82762C5 - special sub_80EB3D0 +SecretBase_EventScript_LostSecretBaseBattle:: @ 82762C5 + special LostSecretBaseBattle return .include "data/scripts/secret_power_tm.inc" SecretBase_EventScript_DollInteract:: @ 82766A2 - special sub_80EB290 + special CheckInteractedWithFriendsDollDecor end SecretBase_EventScript_CushionInteract:: @ 82766A6 - special sub_80EB2C8 + special CheckInteractedWithFriendsCushionDecor end SecretBase_Text_AllDecorationsWillBeReturned: @ 82766AA diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc index 7be69ec58b5c..6684ec98b16e 100644 --- a/data/scripts/secret_power_tm.inc +++ b/data/scripts/secret_power_tm.inc @@ -44,7 +44,7 @@ Route111_EventScript_SecretPowerMan:: @ 82765FF end Route111_EventScript_GiveSecretPower:: @ 827661E - giveitem_std ITEM_TM43 + giveitem ITEM_TM43 compare VAR_RESULT, FALSE goto_if_eq Route111_EventScript_NoRoomForSecretPower msgbox Route111_Text_ExplainSecretPower, MSGBOX_DEFAULT diff --git a/data/scripts/shared_secret_base.inc b/data/scripts/shared_secret_base.inc index de5dcc703c83..0fa61a214eeb 100644 --- a/data/scripts/shared_secret_base.inc +++ b/data/scripts/shared_secret_base.inc @@ -157,33 +157,33 @@ SecretBase_EventScript_PCTurnOff:: @ 823B66E end @ Unused -SecretBase_EventScript_23B674:: @ 823B674 - special SetSecretBaseSecretsTvFlags_Poster +SecretBase_EventScript_Poster:: @ 823B674 + special CheckInteractedWithFriendsPosterDecor end @ Unused -SecretBase_EventScript_23B678:: @ 823B678 - special SetSecretBaseSecretsTvFlags_MiscFurnature +SecretBase_EventScript_FurnitureBottom:: @ 823B678 + special CheckInteractedWithFriendsFurnitureBottom end @ Unused -SecretBase_EventScript_23B67C:: @ 823B67C - special SetSecretBaseSecretsTvFlags_LargeDecorationSpot +SecretBase_EventScript_FurnitureMiddle:: @ 823B67C + special CheckInteractedWithFriendsFurnitureMiddle end @ Unused -SecretBase_EventScript_23B680:: @ 823B680 - special SetSecretBaseSecretsTvFlags_SmallDecorationSpot +SecretBase_EventScript_FurnitureTop:: @ 823B680 + special CheckInteractedWithFriendsFurnitureTop end SecretBase_EventScript_SandOrnament:: @ 823B684 - special SetSecretBaseSecretsTvFlags_SandOrnament + special CheckInteractedWithFriendsSandOrnament dofieldeffect FLDEFF_SAND_PILLAR waitstate end SecretBase_EventScript_ShieldOrToyTV:: @ 823B68C - special GetShieldToyTVDecorationInfo + special InteractWithShieldOrTVDecoration compare VAR_RESULT, 0 goto_if_eq SecretBase_EventScript_BattleTowerShield compare VAR_RESULT, 1 diff --git a/data/scripts/std_msgbox.inc b/data/scripts/std_msgbox.inc new file mode 100644 index 000000000000..1d82bb381b9b --- /dev/null +++ b/data/scripts/std_msgbox.inc @@ -0,0 +1,48 @@ +Std_MsgboxNPC: @ 8271315 + lock + faceplayer + message 0x0 + waitmessage + waitbuttonpress + release + return + +Std_MsgboxSign: @ 8271320 + lockall + message 0x0 + waitmessage + waitbuttonpress + releaseall + return + +Std_MsgboxDefault: @ 827132A + message 0x0 + waitmessage + waitbuttonpress + return + +Std_MsgboxYesNo: @ 8271332 + message 0x0 + waitmessage + yesnobox 20, 8 + return + +Std_MsgboxGetPoints: @ 827133C + message 0x0 + playfanfare MUS_ME_POINTGET + waitfanfare + waitmessage + return + +Std_10: @ 8271347 + pokenavcall 0x0 + waitmessage + return + +EventScript_UnusedReturn: @ 827134E + return + +Common_EventScript_SaveGame:: @ 827134F + special SaveGame + waitstate + return diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc index 0ba8bcda6dee..d609fcc932fd 100644 --- a/data/scripts/trainer_battle.inc +++ b/data/scripts/trainer_battle.inc @@ -130,3 +130,10 @@ EventScript_EndTrainerBattle:: @ 8271491 gotobeatenscript releaseall end + +Std_MsgboxAutoclose:: @ 8271494 + message 0x0 + waitmessage + waitbuttonpress + release + return diff --git a/data/specials.inc b/data/specials.inc index 17f459a1f474..15d948211b0b 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -28,7 +28,7 @@ gSpecials:: @ 81DBA64 def_special GetSecretBaseOwnerAndState def_special InitSecretBaseDecorationSprites def_special SetDecoration - def_special sub_81297AC + def_special GetEventObjectLocalIdByFlag def_special GetSecretBaseTypeInFrontOfPlayer def_special SetSecretBaseOwnerGfxId def_special sub_8129708 @@ -38,13 +38,13 @@ gSpecials:: @ 81DBA64 def_special RecordMixingPlayerSpotTriggered def_special TryBattleLinkup def_special TryTradeLinkup - def_special sub_80B2E74 + def_special TryRecordMixLinkup def_special sub_80B2EA8 def_special CloseLink def_special ColosseumPlayerSpotTriggered def_special PlayerEnteredTradeSeat def_special nullsub_37 - def_special sub_80B3254 + def_special CableClubSaveGame def_special TryBerryBlenderLinkup def_special GetLinkPartnerNames def_special SpawnLinkPartnerEventObject @@ -107,7 +107,7 @@ gSpecials:: @ 81DBA64 def_special SaveGame def_special DoWateringBerryTreeAnim def_special ShowEasyChatScreen - def_special sub_811EECC + def_special ShowEasyChatProfile def_special ScrSpecial_GetCurrentMauvilleMan def_special ScrSpecial_HasBardSongBeenChanged def_special ScrSpecial_SaveBardSongLyrics @@ -139,7 +139,7 @@ gSpecials:: @ 81DBA64 def_special IsMonOTIDNotPlayers def_special BufferTrendyPhraseString def_special TrendyPhraseIsOld - def_special sub_811EF6C + def_special BufferDeepLinkPhrase def_special GetDewfordHallPaintingNameIndex def_special SwapRegisteredBike def_special CalculatePlayerPartyCount @@ -147,7 +147,7 @@ gSpecials:: @ 81DBA64 def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot def_special ShouldReadyContestArtist def_special SaveMuseumContestPainting - def_special sub_80F8864 + def_special DoesContestCategoryHaveWinner def_special CountPlayerContestPaintings def_special ShowContestWinner def_special MauvilleGymSetDefaultBarriers @@ -271,8 +271,8 @@ gSpecials:: @ 81DBA64 def_special RetrieveLotteryNumber def_special PickLotteryCornerTicket def_special ShowBerryBlenderRecordWindow - def_special ResetTrickHouseEndRoomFlag - def_special SetTrickHouseEndRoomFlag + def_special ResetTrickHouseNuggetFlag + def_special SetTrickHouseNuggetFlag def_special ScriptMenu_CreatePCMultichoice def_special AccessHallOfFamePC def_special Special_ShowDiploma @@ -317,7 +317,7 @@ gSpecials:: @ 81DBA64 def_special ScriptCheckFreePokemonStorageSpace def_special DoSealedChamberShakingEffect1 def_special ShowDeptStoreElevatorFloorSelect - def_special GetShieldToyTVDecorationInfo + def_special InteractWithShieldOrTVDecoration def_special IsPokerusInParty def_special SetSootopolisGymCrackedIceMetatiles def_special ShakeCamera @@ -348,7 +348,7 @@ gSpecials:: @ 81DBA64 def_special HasAllHoennMons def_special MonOTNameNotPlayer def_special BufferLottoTicketNumber - def_special sub_81653CC + def_special TryHideBattleTowerReporter def_special DoesPartyHaveEnigmaBerry def_special ScriptRandom def_special SetChampionSaveWarp @@ -361,17 +361,17 @@ gSpecials:: @ 81DBA64 def_special IncrementDailyPlantedBerries def_special IncrementDailyPickedBerries def_special InitSecretBaseVars - def_special SetSecretBaseSecretsTvFlags_SandOrnament - def_special sub_80EB300 - def_special sub_80EB438 - def_special sub_80EB368 - def_special sub_80EB3D0 - def_special sub_80EB290 - def_special sub_80EB2C8 - def_special SetSecretBaseSecretsTvFlags_MiscFurnature - def_special SetSecretBaseSecretsTvFlags_LargeDecorationSpot - def_special SetSecretBaseSecretsTvFlags_SmallDecorationSpot - def_special SetSecretBaseSecretsTvFlags_Poster + def_special CheckInteractedWithFriendsSandOrnament + def_special DeclinedSecretBaseBattle + def_special DrewSecretBaseBattle + def_special WonSecretBaseBattle + def_special LostSecretBaseBattle + def_special CheckInteractedWithFriendsDollDecor + def_special CheckInteractedWithFriendsCushionDecor + def_special CheckInteractedWithFriendsFurnitureBottom + def_special CheckInteractedWithFriendsFurnitureMiddle + def_special CheckInteractedWithFriendsFurnitureTop + def_special CheckInteractedWithFriendsPosterDecor def_special SetLilycoveLadyGfx def_special Script_GetLilycoveLadyId def_special GetFavorLadyState @@ -444,7 +444,7 @@ gSpecials:: @ 81DBA64 def_special GetDeptStoreDefaultFloorChoice def_special BufferVarsForIVRater def_special LinkContestWaitForConnection - def_special sub_800B518 + def_special GetWirelessCommType def_special LinkContestTryShowWirelessIndicator def_special LinkContestTryHideWirelessIndicator def_special IsWirelessContest @@ -498,7 +498,7 @@ gSpecials:: @ 81DBA64 def_special GetPCBoxToSendMon def_special ShouldShowBoxWasFullMessage def_special SetMatchCallRegisteredFlag - def_special sub_8175280 + def_special DoConfettiEffect def_special CreateAbnormalWeatherEvent def_special GetAbnormalWeatherMapNameAndType def_special GetMartEmployeeObjectEventId @@ -534,4 +534,4 @@ gSpecials:: @ 81DBA64 def_special TryPrepareSecondApproachingTrainer def_special RemoveRecordsWindow def_special CloseDeptStoreElevatorWindow - def_special sub_80B3BC4 + def_special TrySetBattleTowerLinkType diff --git a/data/text/battle_dome.inc b/data/text/battle_dome.inc index a9b2895e1b09..8a26ff5ffc4f 100644 --- a/data/text/battle_dome.inc +++ b/data/text/battle_dome.inc @@ -1,341 +1,341 @@ -gBattleDomeOpponentPotentialText1:: +BattleDome_Text_Potential1:: .string "The best candidate to be a champ!$" -gBattleDomeOpponentPotentialText2:: +BattleDome_Text_Potential2:: .string "A sure-finalist team.$" -gBattleDomeOpponentPotentialText3:: +BattleDome_Text_Potential3:: .string "A likely top-three finisher.$" -gBattleDomeOpponentPotentialText4:: +BattleDome_Text_Potential4:: .string "A candidate to finish first.$" -gBattleDomeOpponentPotentialText5:: +BattleDome_Text_Potential5:: .string "A team with top-class potential.$" -gBattleDomeOpponentPotentialText6:: +BattleDome_Text_Potential6:: .string "The dark horse team this tournament.$" -gBattleDomeOpponentPotentialText7:: +BattleDome_Text_Potential7:: .string "A better-than-average team.$" -gBattleDomeOpponentPotentialText8:: +BattleDome_Text_Potential8:: .string "This tournament's average team.$" -gBattleDomeOpponentPotentialText9:: +BattleDome_Text_Potential9:: .string "A team with average potential.$" -gBattleDomeOpponentPotentialText10:: +BattleDome_Text_Potential10:: .string "A weaker-than-average team.$" -gBattleDomeOpponentPotentialText11:: +BattleDome_Text_Potential11:: .string "A team looking for its first win.$" -gBattleDomeOpponentPotentialText12:: +BattleDome_Text_Potential12:: .string "One win will make this team proud.$" -gBattleDomeOpponentPotentialText13:: +BattleDome_Text_Potential13:: .string "Overall, a weak team.$" -gBattleDomeOpponentPotentialText14:: +BattleDome_Text_Potential14:: .string "A team with very low potential.$" -gBattleDomeOpponentPotentialText15:: +BattleDome_Text_Potential15:: .string "A team unlikely to win the tournament.$" -gBattleDomeOpponentPotentialText16:: +BattleDome_Text_Potential16:: .string "The team most unlikely to win.$" -gBattleDomeOpponentPotentialText17:: +BattleDome_Text_PotentialDomeAceTucker:: .string "The perfect, invincible superstar!$" -gBattleDomeOpponentStyleText1:: +BattleDome_Text_StyleRiskDisaster:: .string "Willing to risk total disaster at times.$" -gBattleDomeOpponentStyleText2:: +BattleDome_Text_StyleEndureLongBattles:: .string "Skilled at enduring long battles.$" -gBattleDomeOpponentStyleText3:: +BattleDome_Text_StyleVariesTactics:: .string "Varies tactics to suit the opponent.$" -gBattleDomeOpponentStyleText4:: +BattleDome_Text_StyleToughWinningPattern:: .string "Has a tough winning pattern.$" -gBattleDomeOpponentStyleText5:: +BattleDome_Text_StyleUsesVeryRareMove:: .string "Occasionally uses a very rare move.$" -gBattleDomeOpponentStyleText6:: +BattleDome_Text_StyleUsesStartlingMoves:: .string "Uses startling and disruptive moves.$" -gBattleDomeOpponentStyleText7:: +BattleDome_Text_StyleConstantlyWatchesHP:: .string "Constantly watches HP in battle.$" -gBattleDomeOpponentStyleText8:: +BattleDome_Text_StyleStoresAndLoosesPower:: .string "Good at storing then loosing power.$" -gBattleDomeOpponentStyleText9:: +BattleDome_Text_StyleEnfeeblesFoes:: .string "Skilled at enfeebling foes.$" -gBattleDomeOpponentStyleText10:: +BattleDome_Text_StylePrefersLuckTactics:: .string "Prefers tactics that rely on luck.$" -gBattleDomeOpponentStyleText11:: +BattleDome_Text_StyleRegalAtmosphere:: .string "Attacks with a regal atmosphere.$" -gBattleDomeOpponentStyleText12:: +BattleDome_Text_StylePowerfulLowPPMoves:: .string "Attacks with powerful, low-PP moves.$" -gBattleDomeOpponentStyleText13:: +BattleDome_Text_StyleEnfeebleThenAttack:: .string "Skilled at enfeebling, then attacking.$" -gBattleDomeOpponentStyleText14:: +BattleDome_Text_StyleBattlesWhileEnduring:: .string "Battles while enduring all attacks.$" -gBattleDomeOpponentStyleText15:: +BattleDome_Text_StyleUpsetsFoesEmotionally:: .string "Skilled at upsetting foes emotionally.$" -gBattleDomeOpponentStyleText16:: +BattleDome_Text_StyleStrongAndStraightforward:: .string "Uses strong and straightforward moves.$" -gBattleDomeOpponentStyleText17:: +BattleDome_Text_StyleAggressivelyStrongMoves:: .string "Aggressively uses strong moves.$" -gBattleDomeOpponentStyleText18:: +BattleDome_Text_StyleCleverlyDodgesAttacks:: .string "Battles while cleverly dodging attacks.$" -gBattleDomeOpponentStyleText19:: +BattleDome_Text_StyleUsesUpsettingMoves:: .string "Skilled at using upsetting attacks.$" -gBattleDomeOpponentStyleText20:: +BattleDome_Text_StyleUsesPopularMoves:: .string "Uses many popular moves.$" -gBattleDomeOpponentStyleText21:: +BattleDome_Text_StyleHasPowerfulComboMoves:: .string "Has moves for powerful combinations.$" -gBattleDomeOpponentStyleText22:: +BattleDome_Text_StyleUsesHighProbabilityMoves:: .string "Uses high-probability attacks.$" -gBattleDomeOpponentStyleText23:: +BattleDome_Text_StyleAggressivelySpectacularMoves:: .string "Aggressively uses spectacular moves.$" -gBattleDomeOpponentStyleText24:: +BattleDome_Text_StyleEmphasizesOffenseOverDefense:: .string "Emphasizes offense over defense.$" -gBattleDomeOpponentStyleText25:: +BattleDome_Text_StyleEmphasizesDefenseOverOffense:: .string "Emphasizes defense over offense.$" -gBattleDomeOpponentStyleText26:: +BattleDome_Text_StyleAttacksQuicklyStrongMoves:: .string "Attacks quickly with strong moves.$" -gBattleDomeOpponentStyleText27:: +BattleDome_Text_StyleUsesAddedEffectMoves:: .string "Often uses moves with added effects.$" -gBattleDomeOpponentStyleText28:: +BattleDome_Text_StyleUsesBalancedMixOfMoves:: .string "Uses a well-balanced mix of moves.$" -gBattleDomeOpponentStyleTextUnused1:: +BattleDome_Text_StyleSampleMessage1:: .string "This is sample message 1.$" -gBattleDomeOpponentStyleTextUnused2:: +BattleDome_Text_StyleSampleMessage2:: .string "This is sample message 2.$" -gBattleDomeOpponentStyleTextUnused3:: +BattleDome_Text_StyleSampleMessage3:: .string "This is sample message 3.$" -gBattleDomeOpponentStyleTextUnused4:: +BattleDome_Text_StyleSampleMessage4:: .string "This is sample message 4.$" -gBattleDomeOpponentStatsText1:: +BattleDome_Text_EmphasizesHPAndAtk:: .string "Emphasizes HP and ATTACK.$" -gBattleDomeOpponentStatsText2:: +BattleDome_Text_EmphasizesHPAndDef:: .string "Emphasizes HP and DEFENSE.$" -gBattleDomeOpponentStatsText3:: +BattleDome_Text_EmphasizesHPAndSpeed:: .string "Emphasizes HP and SPEED.$" -gBattleDomeOpponentStatsText4:: +BattleDome_Text_EmphasizesHPAndSpAtk:: .string "Emphasizes HP and SP. ATTACK.$" -gBattleDomeOpponentStatsText5:: +BattleDome_Text_EmphasizesHPAndSpDef:: .string "Emphasizes HP and SP. DEFENSE.$" -gBattleDomeOpponentStatsText6:: +BattleDome_Text_EmphasizesAtkAndDef:: .string "Emphasizes ATTACK and DEFENSE.$" -gBattleDomeOpponentStatsText7:: +BattleDome_Text_EmphasizesAtkAndSpeed:: .string "Emphasizes ATTACK and SPEED.$" -gBattleDomeOpponentStatsText8:: +BattleDome_Text_EmphasizesAtkAndSpAtk:: .string "Emphasizes ATTACK and SP. ATTACK.$" -gBattleDomeOpponentStatsText9:: +BattleDome_Text_EmphasizesAtkAndSpDef:: .string "Emphasizes ATTACK and SP. DEFENSE.$" -gBattleDomeOpponentStatsText10:: +BattleDome_Text_EmphasizesDefAndSpeed:: .string "Emphasizes DEFENSE and SPEED.$" -gBattleDomeOpponentStatsText11:: +BattleDome_Text_EmphasizesDefAndSpAtk:: .string "Emphasizes DEFENSE and SP. ATTACK.$" -gBattleDomeOpponentStatsText12:: +BattleDome_Text_EmphasizesDefAndSpDef:: .string "Emphasizes DEFENSE and SP. DEFENSE.$" -gBattleDomeOpponentStatsText13:: +BattleDome_Text_EmphasizesSpeedAndSpAtk:: .string "Emphasizes SPEED and SP. ATTACK.$" -gBattleDomeOpponentStatsText14:: +BattleDome_Text_EmphasizesSpeedAndSpDef:: .string "Emphasizes SPEED and SP. DEFENSE.$" -gBattleDomeOpponentStatsText15:: +BattleDome_Text_EmphasizesSpAtkAndSpDef:: .string "Emphasizes SP. ATTACK and SP. DEFENSE.$" -gBattleDomeOpponentStatsText16:: +BattleDome_Text_EmphasizesHP:: .string "Emphasizes HP.$" -gBattleDomeOpponentStatsText17:: +BattleDome_Text_EmphasizesAtk:: .string "Emphasizes ATTACK.$" -gBattleDomeOpponentStatsText18:: +BattleDome_Text_EmphasizesDef:: .string "Emphasizes DEFENSE.$" -gBattleDomeOpponentStatsText19:: +BattleDome_Text_EmphasizesSpeed:: .string "Emphasizes SPEED.$" -gBattleDomeOpponentStatsText20:: +BattleDome_Text_EmphasizesSpAtk:: .string "Emphasizes SP. ATTACK.$" -gBattleDomeOpponentStatsText21:: +BattleDome_Text_EmphasizesSpDef:: .string "Emphasizes SP. DEFENSE.$" -gBattleDomeOpponentStatsText22:: +BattleDome_Text_NeglectsHPAndAtk:: .string "Neglects HP and ATTACK.$" -gBattleDomeOpponentStatsText23:: +BattleDome_Text_NeglectsHPAndDef:: .string "Neglects HP and DEFENSE.$" -gBattleDomeOpponentStatsText24:: +BattleDome_Text_NeglectsHPAndSpeed:: .string "Neglects HP and SPEED.$" -gBattleDomeOpponentStatsText25:: +BattleDome_Text_NeglectsHPAndSpAtk:: .string "Neglects HP and SP. ATTACK.$" -gBattleDomeOpponentStatsText26:: +BattleDome_Text_NeglectsHPAndSpDef:: .string "Neglects HP and SP. DEFENSE.$" -gBattleDomeOpponentStatsText27:: +BattleDome_Text_NeglectsAtkAndDef:: .string "Neglects ATTACK and DEFENSE.$" -gBattleDomeOpponentStatsText28:: +BattleDome_Text_NeglectsAtkAndSpeed:: .string "Neglects ATTACK and SPEED.$" -gBattleDomeOpponentStatsText29:: +BattleDome_Text_NeglectsAtkAndSpAtk:: .string "Neglects ATTACK and SP. ATTACK.$" -gBattleDomeOpponentStatsText30:: +BattleDome_Text_NeglectsAtkAndSpDef:: .string "Neglects ATTACK and SP. DEFENSE.$" -gBattleDomeOpponentStatsText31:: +BattleDome_Text_NeglectsDefAndSpeed:: .string "Neglects DEFENSE and SPEED.$" -gBattleDomeOpponentStatsText32:: +BattleDome_Text_NeglectsDefAndSpAtk:: .string "Neglects DEFENSE and SP. ATTACK.$" -gBattleDomeOpponentStatsText33:: +BattleDome_Text_NeglectsDefAndSpDef:: .string "Neglects DEFENSE and SP. DEFENSE.$" -gBattleDomeOpponentStatsText34:: +BattleDome_Text_NeglectsSpeedAndSpAtk:: .string "Neglects SPEED and SP. ATTACK.$" -gBattleDomeOpponentStatsText35:: +BattleDome_Text_NeglectsSpeedAndSpDef:: .string "Neglects SPEED and SP. DEFENSE.$" -gBattleDomeOpponentStatsText36:: +BattleDome_Text_NeglectsSpAtkAndSpDef:: .string "Neglects SP. ATTACK and SP. DEFENSE.$" -gBattleDomeOpponentStatsText37:: +BattleDome_Text_NeglectsHP:: .string "Neglects HP.$" -gBattleDomeOpponentStatsText38:: +BattleDome_Text_NeglectsAtk:: .string "Neglects ATTACK.$" -gBattleDomeOpponentStatsText39:: +BattleDome_Text_NeglectsDef:: .string "Neglects DEFENSE.$" -gBattleDomeOpponentStatsText40:: +BattleDome_Text_NeglectsSpeed:: .string "Neglects SPEED.$" -gBattleDomeOpponentStatsText41:: +BattleDome_Text_NeglectsSpAtk:: .string "Neglects SP. ATTACK.$" -gBattleDomeOpponentStatsText42:: +BattleDome_Text_NeglectsSpDef:: .string "Neglects SP. DEFENSE.$" -gBattleDomeOpponentStatsText43:: +BattleDome_Text_RaisesMonsWellBalanced:: .string "Raises POKéMON in a well-balanced way.$" -gBattleDomeWinText1:: +BattleDome_Text_LetTheBattleBegin:: .string "Let the battle begin!$" -gBattleDomeWinText2:: +BattleDome_Text_TrainerWonUsingMove:: .string "{STR_VAR_1} won using {STR_VAR_2}!$" -gBattleDomeWinText3:: +BattleDome_Text_TrainerBecameChamp:: .string "{STR_VAR_1} became the champ!$" -gBattleDomeWinText4:: +BattleDome_Text_TrainerWonByDefault:: .string "{STR_VAR_1} won by default!$" -gBattleDomeWinText5:: +BattleDome_Text_TrainerWonOutrightByDefault:: .string "{STR_VAR_1} won outright by default!$" -gBattleDomeWinText6:: +BattleDome_Text_TrainerWonNoMoves:: .string "{STR_VAR_1} won without using a move!$" -gBattleDomeWinText7:: +BattleDome_Text_TrainerWonOutrightNoMoves:: .string "{STR_VAR_1} won outright with no moves!$" -gBattleDomeMatchNumberText1:: +BattleDome_Text_Round1Match1:: .string "Round 1, Match 1$" -gBattleDomeMatchNumberText2:: +BattleDome_Text_Round1Match2:: .string "Round 1, Match 2$" -gBattleDomeMatchNumberText3:: +BattleDome_Text_Round1Match3:: .string "Round 1, Match 3$" -gBattleDomeMatchNumberText4:: +BattleDome_Text_Round1Match4:: .string "Round 1, Match 4$" -gBattleDomeMatchNumberText5:: +BattleDome_Text_Round1Match5:: .string "Round 1, Match 5$" -gBattleDomeMatchNumberText6:: +BattleDome_Text_Round1Match6:: .string "Round 1, Match 6$" -gBattleDomeMatchNumberText7:: +BattleDome_Text_Round1Match7:: .string "Round 1, Match 7$" -gBattleDomeMatchNumberText8:: +BattleDome_Text_Round1Match8:: .string "Round 1, Match 8$" -gBattleDomeMatchNumberText9:: +BattleDome_Text_Round2Match1:: .string "Round 2, Match 1$" -gBattleDomeMatchNumberText10:: +BattleDome_Text_Round2Match2:: .string "Round 2, Match 2$" -gBattleDomeMatchNumberText11:: +BattleDome_Text_Round2Match3:: .string "Round 2, Match 3$" -gBattleDomeMatchNumberText12:: +BattleDome_Text_Round2Match4:: .string "Round 2, Match 4$" -gBattleDomeMatchNumberText13:: +BattleDome_Text_SemifinalMatch1:: .string "Semifinal Match 1$" -gBattleDomeMatchNumberText14:: +BattleDome_Text_SemifinalMatch2:: .string "Semifinal Match 2$" -gBattleDomeMatchNumberText15:: +BattleDome_Text_FinalMatch:: .string "Final Match$" diff --git a/data/text/cable_club.inc b/data/text/cable_club.inc index c1922d1476b2..b4f656a00470 100644 --- a/data/text/cable_club.inc +++ b/data/text/cable_club.inc @@ -123,7 +123,7 @@ CableClub_Text_GotToLookAtColoredTrainerCard: @ 827847B .string "TRAINER CARD!\p" .string "It's a {STR_VAR_2} card!$" -BattleColosseum2P_Text_TakePlaceStartBattle: @ 82784B4 +BattleColosseum_2P_Text_TakePlaceStartBattle: @ 82784B4 .string "Please take your place and start\n" .string "your battle.$" diff --git a/data/text/secret_base_trainers.inc b/data/text/secret_base_trainers.inc index 46ecaaec96cb..979aa4ff3a8e 100644 --- a/data/text/secret_base_trainers.inc +++ b/data/text/secret_base_trainers.inc @@ -1,4 +1,4 @@ -SecretBase_Text_Trainer0PreBattle: @ 82748A0 +SecretBase_Text_Trainer0Intro: @ 82748A0 .string "Have you made a SECRET BASE already?\p" .string "I went here, there, everywhere before\n" .string "choosing this place.\p" @@ -27,7 +27,7 @@ SecretBase_Text_Trainer0PreChampion: @ 82749ED .string "choosing this place.\p" .string "Feel free to hang out!$" -SecretBase_Text_Trainer5PreBattle: @ 8274A64 +SecretBase_Text_Trainer5Intro: @ 8274A64 .string "There're a lot of places where\n" .string "you can make a SECRET BASE.\p" .string "But I like this spot best.\n" @@ -56,7 +56,7 @@ SecretBase_Text_Trainer5PreChampion: @ 8274BA2 .string "But I like this spot best.\n" .string "Don't you think it's nice?$" -SecretBase_Text_Trainer1PreBattle: @ 8274C13 +SecretBase_Text_Trainer1Intro: @ 8274C13 .string "This is a popular spot.\n" .string "It's always taken.\p" .string "Oh! Were you thinking about\n" @@ -86,7 +86,7 @@ SecretBase_Text_Trainer1PreChampion: @ 8274D69 .string "I waited a long time for it to open.\n" .string "I finally got to use it!$" -SecretBase_Text_Trainer6PreBattle: @ 8274DD2 +SecretBase_Text_Trainer6Intro: @ 8274DD2 .string "Welcome to my POKéMON LAB.\p" .string "I carry out research on battling in\n" .string "secrecy.\p" @@ -112,7 +112,7 @@ SecretBase_Text_Trainer6PreChampion: @ 8274EF1 .string "I carry out research on battling in\n" .string "secrecy.$" -SecretBase_Text_Trainer2PreBattle: @ 8274F39 +SecretBase_Text_Trainer2Intro: @ 8274F39 .string "A big mansion is nice, but I like this\n" .string "sort of place more.\p" .string "I like it because all kinds of people\n" @@ -141,7 +141,7 @@ SecretBase_Text_Trainer2PreChampion: @ 82750A4 .string "I like it because all kinds of people\n" .string "come visit me.$" -SecretBase_Text_Trainer7PreBattle: @ 8275114 +SecretBase_Text_Trainer7Intro: @ 8275114 .string "I simply adore shopping for decorations\n" .string "and furniture.\p" .string "I also love raising POKéMON just\n" @@ -170,7 +170,7 @@ SecretBase_Text_Trainer7PreChampion: @ 8275226 .string "I also love raising POKéMON just\n" .string "as much.$" -SecretBase_Text_Trainer3PreBattle: @ 8275287 +SecretBase_Text_Trainer3Intro: @ 8275287 .string "Some people make their SECRET BASES in\n" .string "hard-to-find places.\l" .string "Do they want to just lie low?\p" @@ -196,7 +196,7 @@ SecretBase_Text_Trainer3PreChampion: @ 82753AB .string "hard-to-find places.\l" .string "Do they want to just lie low?$" -SecretBase_Text_Trainer8PreBattle: @ 8275405 +SecretBase_Text_Trainer8Intro: @ 8275405 .string "People have told me that you can get\n" .string "decorations in several ways.\p" .string "We should have a race to see who can\n" @@ -224,7 +224,7 @@ SecretBase_Text_Trainer8PreChampion: @ 8275546 .string "We should have a race to see who can\n" .string "get nicer decorations and furniture!$" -SecretBase_Text_Trainer4PreBattle: @ 82755D2 +SecretBase_Text_Trainer4Intro: @ 82755D2 .string "I found a spot I liked, and I did it up\n" .string "with my favorite decorations.\p" .string "I raise my favorite POKéMON and grow\n" @@ -253,7 +253,7 @@ SecretBase_Text_Trainer4PreChampion: @ 827571E .string "stronger with it.\p" .string "Every day is a great day.$" -SecretBase_Text_Trainer9PreBattle: @ 82757B5 +SecretBase_Text_Trainer9Intro: @ 82757B5 .string "You can learn a lot about the taste\n" .string "and sense of people by the kinds of\l" .string "decorations they have, and how they\l" diff --git a/data/text/tv.inc b/data/text/tv.inc index c6453af0cb20..63a1eff65222 100644 --- a/data/text/tv.inc +++ b/data/text/tv.inc @@ -2079,7 +2079,7 @@ gTVWhatsNo1InHoennTodayText08:: @ 0828858B .string "Viewers, take heart from {STR_VAR_1}!\n" .string "You, too, can be no. 1 every day!$" -gTVSecretBaseSecretsText00:: @ 08288608 +TVSecretBaseSecrets_Text_Intro:: @ 08288608 .string "SECRET BASE SECRETS!\p" .string "What do TRAINERS do in the secrecy\n" .string "of SECRET BASES?\p" @@ -2090,88 +2090,88 @@ gTVSecretBaseSecretsText00:: @ 08288608 .string "Let's have a peek!\p" .string "What will {STR_VAR_2} do?$" -gTVSecretBaseSecretsText01:: @ 082886C8 +TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1:: @ 082886C8 .string "What will {STR_VAR_2} do next?$" -gTVSecretBaseSecretsText02:: @ 082886DE +TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2:: @ 082886DE .string "And now, what will {STR_VAR_2} do?$" -gTVSecretBaseSecretsText03:: @ 082886F8 +TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving:: @ 082886F8 .string "In the end, {STR_VAR_2} took {STR_VAR_3} steps\n" .string "in {STR_VAR_1}'s SECRET BASE before\l" .string "leaving.$" -gTVSecretBaseSecretsText04:: @ 08288739 +TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer:: @ 08288739 .string "Hmm…\p" .string "It appears as if {STR_VAR_1}'s SECRET\n" .string "BASE failed to interest {STR_VAR_2}…$" -gTVSecretBaseSecretsText05:: @ 08288777 +TVSecretBaseSecrets_Text_PlayerEnjoyedBase:: @ 08288777 .string "{STR_VAR_2} appears to have enjoyed\n" .string "{STR_VAR_1}'s SECRET BASE thoroughly.$" -gTVSecretBaseSecretsText06:: @ 082887AF +TVSecretBaseSecrets_Text_PlayerHugeFanOfBase:: @ 082887AF .string "{STR_VAR_2} appears to have become\n" .string "a huge fan of {STR_VAR_1}'s\l" .string "SECRET BASE.$" -gTVSecretBaseSecretsText07:: @ 082887E9 +TVSecretBaseSecrets_Text_Outro:: @ 082887E9 .string "Viewers may want to check out\n" .string "{STR_VAR_1}'s SECRET BASE, too.\p" .string "Tune in next time as we visit another\n" .string "SECRET BASE! Thanks for joining us!$" -gTVSecretBaseSecretsText08:: @ 08288868 +TVSecretBaseSecrets_Text_StoppedMoving1:: @ 08288868 .string "The visitor has stopped!\p" .string "The visitor isn't moving at all!\p" .string "Was {STR_VAR_1}'s SECRET BASE\n" .string "that unimpressive?$" -gTVSecretBaseSecretsText09:: @ 082888CA +TVSecretBaseSecrets_Text_StoppedMoving2:: @ 082888CA .string "The visitor has stopped!\p" .string "The visitor isn't moving at all!\p" .string "Is it fatigue?\n" .string "Has the visitor grown weary?$" -gTVSecretBaseSecretsText10:: @ 08288930 +TVSecretBaseSecrets_Text_UsedChair:: @ 08288930 .string "The visitor sat down on a chair!\n" .string "The visitor is seated!\p" .string "Look at that look of delight!\p" .string "That chair must be very comfortable\n" .string "to get that response!$" -gTVSecretBaseSecretsText11:: @ 082889C0 +TVSecretBaseSecrets_Text_UsedBalloon:: @ 082889C0 .string "The visitor charged at a balloon!\p" .string "It burst!\n" .string "Oh, my goodness, it popped!\p" .string "The visitor appears startled by\n" .string "the sudden noise!$" -gTVSecretBaseSecretsText12:: @ 08288A3A +TVSecretBaseSecrets_Text_UsedTent:: @ 08288A3A .string "The visitor entered a TENT!\p" .string "The visitor is running around!\p" .string "Oh, my, the visitor is frolicking!\p" .string "The visitor appears surprised by\n" .string "the TENT's size!$" -gTVSecretBaseSecretsText13:: @ 08288ACA +TVSecretBaseSecrets_Text_UsedPlant:: @ 08288ACA .string "The visitor is examining\n" .string "a potted plant!\p" .string "The visitor has surprisingly\n" .string "mature taste!$" -gTVSecretBaseSecretsText14:: @ 08288B1E +TVSecretBaseSecrets_Text_UsedGoldShield:: @ 08288B1E .string "The visitor is examining\n" .string "a GOLD SHIELD!\p" .string "The visitor's eyes appear to be\n" .string "lit up with wonder!$" -gTVSecretBaseSecretsText15:: @ 08288B7A +TVSecretBaseSecrets_Text_UsedSilverShield:: @ 08288B7A .string "The visitor is examining\n" .string "a SILVER SHIELD!\p" .string "The visitor appears to be wide-eyed!$" -gTVSecretBaseSecretsText16:: @ 08288BC9 +TVSecretBaseSecrets_Text_UsedGlassOrnament:: @ 08288BC9 .string "The visitor is examining\n" .string "a GLASS ORNAMENT!\p" .string "Oh, no!\p" @@ -2179,15 +2179,15 @@ gTVSecretBaseSecretsText16:: @ 08288BC9 .string "It's getting covered with\n" .string "fingerprints…$" -gTVSecretBaseSecretsText17:: @ 08288C40 +TVSecretBaseSecrets_Text_UsedTV:: @ 08288C40 .string "The visitor is watching television!\p" .string "Looks like we have a big fan of TV!$" -gTVSecretBaseSecretsText18:: @ 08288C88 +TVSecretBaseSecrets_Text_UsedMudBall:: @ 08288C88 .string "The visitor stomped on a MUD BALL!\p" .string "The visitor looks delighted!$" -gTVSecretBaseSecretsText19:: @ 08288CC8 +TVSecretBaseSecrets_Text_UsedBag:: @ 08288CC8 .string "…Oh?\p" .string "The visitor is reaching for their own\n" .string "BAG and rummaging about in it!\p" @@ -2197,19 +2197,19 @@ gTVSecretBaseSecretsText19:: @ 08288CC8 .string "holding up the {STR_VAR_2}!\p" .string "It's like a TV commercial!$" -gTVSecretBaseSecretsText20:: @ 08288D7F +TVSecretBaseSecrets_Text_UsedCushion:: @ 08288D7F .string "The visitor grabs a cushion and…$" -gTVSecretBaseSecretsText21:: @ 08288DA0 +TVSecretBaseSecrets_Text_HitCushion:: @ 08288DA0 .string "…begins hitting it!\p" .string "Is the visitor under a lot of stress?$" -gTVSecretBaseSecretsText22:: @ 08288DDA +TVSecretBaseSecrets_Text_HuggedCushion:: @ 08288DDA .string "…hugs it tight!\p" .string "Could the visitor be feeling happy\n" .string "about something?$" -gTVSecretBaseSecretsText23:: @ 08288E1E +TVSecretBaseSecrets_Text_BattledWon:: @ 08288E1E .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2220,7 +2220,7 @@ gTVSecretBaseSecretsText23:: @ 08288E1E .string "The visitor is doing\n" .string "a victory dance!$" -gTVSecretBaseSecretsText24:: @ 08288EC9 +TVSecretBaseSecrets_Text_BattledLost:: @ 08288EC9 .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2230,7 +2230,7 @@ gTVSecretBaseSecretsText24:: @ 08288EC9 .string "The visitor has lost!\p" .string "The visitor looks dejected!$" -gTVSecretBaseSecretsText25:: @ 08288F58 +TVSecretBaseSecrets_Text_DeclinedBattle:: @ 08288F58 .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2241,7 +2241,7 @@ gTVSecretBaseSecretsText25:: @ 08288F58 .string "Did the visitor find {STR_VAR_1}\n" .string "unappealing?$" -gTVSecretBaseSecretsText26:: @ 08289011 +TVSecretBaseSecrets_Text_UsedPoster:: @ 08289011 .string "The visitor is staring intently\n" .string "at a poster!\p" .string "Is the poster to the visitor's\n" @@ -2249,12 +2249,12 @@ gTVSecretBaseSecretsText26:: @ 08289011 .string "…But… There's something disturbing\n" .string "about the visitor's stares.$" -gTVSecretBaseSecretsText27:: @ 082890A4 +TVSecretBaseSecrets_Text_UsedNoteMat:: @ 082890A4 .string "The visitor stepped on a NOTE MAT!\p" .string "…Hmm…\n" .string "The visitor composed a funny tune!$" -gTVSecretBaseSecretsText28:: @ 082890F0 +TVSecretBaseSecrets_Text_BattledDraw:: @ 082890F0 .string "The visitor is chatting with\n" .string "{STR_VAR_1}!\p" .string "It looks like they're going to\n" @@ -2265,14 +2265,14 @@ gTVSecretBaseSecretsText28:: @ 082890F0 .string "Both TRAINERS appear to be very\n" .string "disappointed!$" -gTVSecretBaseSecretsText29:: @ 08289193 +TVSecretBaseSecrets_Text_UsedSpinMat:: @ 08289193 .string "The visitor stepped on\n" .string "a SPIN MAT!\p" .string "It looks like the visitor is dizzy!\p" .string "The visitor is tottering about!\n" .string "Look out!$" -gTVSecretBaseSecretsText30:: @ 08289204 +TVSecretBaseSecrets_Text_UsedSandOrnament:: @ 08289204 .string "The visitor is reaching for\n" .string "a SAND ORNAMENT!\p" .string "Oh!\p" @@ -2281,7 +2281,7 @@ gTVSecretBaseSecretsText30:: @ 08289204 .string "The visitor looks sheepish\n" .string "and guilty!$" -gTVSecretBaseSecretsText31:: @ 0828927C +TVSecretBaseSecrets_Text_UsedDesk:: @ 0828927C .string "The visitor is rubbing a desktop\n" .string "with their finger!\p" .string "Apparently, the visitor disapproves\n" @@ -2289,25 +2289,25 @@ gTVSecretBaseSecretsText31:: @ 0828927C .string "The visitor is surprisingly concerned\n" .string "about neatness!$" -gTVSecretBaseSecretsText32:: @ 08289313 +TVSecretBaseSecrets_Text_UsedBrick:: @ 08289313 .string "The visitor is staring at a BRICK!\p" .string "Perhaps the visitor is thinking about\n" .string "the object on the BRICK.$" -gTVSecretBaseSecretsText33:: @ 08289375 +TVSecretBaseSecrets_Text_UsedSolidBoard:: @ 08289375 .string "The visitor is walking across\n" .string "the SOLID BOARD.\p" .string "The visitor keeps looking down.\p" .string "The visitor appears to be surprisingly\n" .string "timid and cautious!$" -gTVSecretBaseSecretsText34:: @ 082893FF +TVSecretBaseSecrets_Text_UsedFence:: @ 082893FF .string "The visitor is looking intently\n" .string "at a FENCE!\p" .string "Has a new idea for a trap popped\n" .string "into the visitor's head?$" -gTVSecretBaseSecretsText35:: @ 08289465 +TVSecretBaseSecrets_Text_UsedGlitterMat:: @ 08289465 .string "The visitor stepped on\n" .string "a GLITTER MAT!\p" .string "The visitor is striking a variety\n" @@ -2315,13 +2315,13 @@ gTVSecretBaseSecretsText35:: @ 08289465 .string "The visitor appears to be fantasizing\n" .string "about being an idol!$" -gTVSecretBaseSecretsText36:: @ 082894F2 +TVSecretBaseSecrets_Text_UsedTire:: @ 082894F2 .string "The visitor is staring intently\n" .string "at a TIRE!\p" .string "Could the visitor be thinking about\n" .string "the kind of car that would use it?$" -gTVSecretBaseSecretsText37:: @ 08289564 +TVSecretBaseSecrets_Text_UsedStand:: @ 08289564 .string "The visitor climbed a STAND!\p" .string "The visitor is looking out across\n" .string "{STR_VAR_1}'s BASE from high up!\p" @@ -2329,16 +2329,16 @@ gTVSecretBaseSecretsText37:: @ 08289564 .string "Lets loose a roar!\n" .string "The visitor is roaring!$" -gTVSecretBaseSecretsText38:: @ 082895EB +TVSecretBaseSecrets_Text_BrokeDoor:: @ 082895EB .string "The visitor charged headlong into\n" .string "a BREAKABLE DOOR!\p" .string "The visitor is laughing uproariously!$" -gTVSecretBaseSecretsText39:: @ 08289645 +TVSecretBaseSecrets_Text_UsedDoll:: @ 08289645 .string "The visitor is talking to a DOLL!\p" .string "…It's a little creepy…$" -gTVSecretBaseSecretsText40:: @ 0828967E +TVSecretBaseSecrets_Text_UsedSlide:: @ 0828967E .string "The visitor is climbing the ladder\n" .string "on a SLIDE!\p" .string "And…\p" @@ -2346,7 +2346,7 @@ gTVSecretBaseSecretsText40:: @ 0828967E .string "Looks like the visitor is having\n" .string "a grand old time!$" -gTVSecretBaseSecretsText41:: @ 082896FC +TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown:: @ 082896FC .string "The visitor is climbing the ladder\n" .string "on a SLIDE!\p" .string "And…\p" @@ -2354,7 +2354,7 @@ gTVSecretBaseSecretsText41:: @ 082896FC .string "the ladder!\p" .string "Did the visitor suddenly chicken out?$" -gTVSecretBaseSecretsText42:: @ 0828977D +TVSecretBaseSecrets_Text_UsedJumpMat:: @ 0828977D .string "The visitor stepped on\n" .string "a JUMP MAT!\p" .string "The visitor jumped once!\p" @@ -2700,7 +2700,7 @@ GabbyAndTy_Text_GabbyPreFirstBattle: @ 0828AF05 .string "Okay, roll camera!\n" .string "Let's get this interview.$" -GabbyAndTy_Text_GabbyPreBattle: @ 0828AF7D +GabbyAndTy_Text_GabbyIntro: @ 0828AF7D .string "GABBY: Oh! You're {PLAYER}! Hi!\n" .string "Do you remember us from last time?\p" .string "Can you show us how much stronger\n" @@ -2806,7 +2806,7 @@ GabbyAndTy_Text_TyPreFirstBattle: @ 0828B75C .string "TRAINER here, of all places!\l" .string "Camera's rolling!$" -GabbyAndTy_Text_TyPreBattle: @ 0828B7B1 +GabbyAndTy_Text_TyIntro: @ 0828B7B1 .string "TY: Hey, lookie here!\n" .string "I remember you!\p" .string "I'll get this battle all on this\n" diff --git a/graphics/battle_frontier/options_pal1.pal b/graphics/battle_frontier/tourney.pal similarity index 100% rename from graphics/battle_frontier/options_pal1.pal rename to graphics/battle_frontier/tourney.pal diff --git a/graphics/battle_frontier/options_pal2.pal b/graphics/battle_frontier/tourney_buttons.pal similarity index 100% rename from graphics/battle_frontier/options_pal2.pal rename to graphics/battle_frontier/tourney_buttons.pal diff --git a/graphics/battle_frontier/options.png b/graphics/battle_frontier/tourney_buttons.png similarity index 100% rename from graphics/battle_frontier/options.png rename to graphics/battle_frontier/tourney_buttons.png diff --git a/graphics/battle_frontier/misc1.png b/graphics/battle_frontier/tourney_info_card.png similarity index 100% rename from graphics/battle_frontier/misc1.png rename to graphics/battle_frontier/tourney_info_card.png diff --git a/graphics/unknown/unknown_D84F00.bin b/graphics/battle_frontier/tourney_info_card_bg.bin similarity index 100% rename from graphics/unknown/unknown_D84F00.bin rename to graphics/battle_frontier/tourney_info_card_bg.bin diff --git a/graphics/unknown/unknown_D84970.bin b/graphics/battle_frontier/tourney_info_card_tilemap.bin similarity index 100% rename from graphics/unknown/unknown_D84970.bin rename to graphics/battle_frontier/tourney_info_card_tilemap.bin diff --git a/graphics/unknown/unknown_D83B2C.bin b/graphics/battle_frontier/tourney_line_down_map.bin similarity index 100% rename from graphics/unknown/unknown_D83B2C.bin rename to graphics/battle_frontier/tourney_line_down_map.bin diff --git a/graphics/unknown/unknown_D83900.bin b/graphics/battle_frontier/tourney_line_mask_map.bin similarity index 100% rename from graphics/unknown/unknown_D83900.bin rename to graphics/battle_frontier/tourney_line_mask_map.bin diff --git a/graphics/unknown/unknown_D83C3C.bin b/graphics/battle_frontier/tourney_line_up_map.bin similarity index 100% rename from graphics/unknown/unknown_D83C3C.bin rename to graphics/battle_frontier/tourney_line_up_map.bin diff --git a/graphics/battle_frontier/options_pal3.pal b/graphics/battle_frontier/tourney_match_card_bg.pal similarity index 100% rename from graphics/battle_frontier/options_pal3.pal rename to graphics/battle_frontier/tourney_match_card_bg.pal diff --git a/graphics/pokemon/farfetch_d/anim_front.png b/graphics/pokemon/farfetchd/anim_front.png similarity index 100% rename from graphics/pokemon/farfetch_d/anim_front.png rename to graphics/pokemon/farfetchd/anim_front.png diff --git a/graphics/pokemon/farfetch_d/back.png b/graphics/pokemon/farfetchd/back.png similarity index 100% rename from graphics/pokemon/farfetch_d/back.png rename to graphics/pokemon/farfetchd/back.png diff --git a/graphics/pokemon/farfetch_d/footprint.png b/graphics/pokemon/farfetchd/footprint.png similarity index 100% rename from graphics/pokemon/farfetch_d/footprint.png rename to graphics/pokemon/farfetchd/footprint.png diff --git a/graphics/pokemon/farfetch_d/front.png b/graphics/pokemon/farfetchd/front.png similarity index 100% rename from graphics/pokemon/farfetch_d/front.png rename to graphics/pokemon/farfetchd/front.png diff --git a/graphics/pokemon/farfetch_d/icon.png b/graphics/pokemon/farfetchd/icon.png similarity index 100% rename from graphics/pokemon/farfetch_d/icon.png rename to graphics/pokemon/farfetchd/icon.png diff --git a/graphics/pokemon/farfetch_d/normal.pal b/graphics/pokemon/farfetchd/normal.pal similarity index 100% rename from graphics/pokemon/farfetch_d/normal.pal rename to graphics/pokemon/farfetchd/normal.pal diff --git a/graphics/pokemon/farfetch_d/shiny.pal b/graphics/pokemon/farfetchd/shiny.pal similarity index 100% rename from graphics/pokemon/farfetch_d/shiny.pal rename to graphics/pokemon/farfetchd/shiny.pal diff --git a/include/battle_dome.h b/include/battle_dome.h index d1dfdb100301..900508c4bf3e 100644 --- a/include/battle_dome.h +++ b/include/battle_dome.h @@ -1,9 +1,9 @@ #ifndef GUARD_BATTLE_DOME_H #define GUARD_BATTLE_DOME_H -extern u32 gUnknown_0203CD70; +extern u32 gPlayerPartyLostHP; -int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId); +int GetDomeTrainerSelectedMons(u16 tournamentTrainerId); int TrainerIdToDomeTournamentId(u16 trainerId); #endif // GUARD_BATTLE_DOME_H diff --git a/include/battle_tower.h b/include/battle_tower.h index 2366cac12a51..3bf2f004b189 100644 --- a/include/battle_tower.h +++ b/include/battle_tower.h @@ -8,8 +8,8 @@ struct RSBattleTowerRecord /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; - /*0x10*/ u16 greeting[6]; - /*0x1C*/ struct BattleTowerPokemon party[3]; + /*0x10*/ u16 greeting[EASY_CHAT_BATTLE_WORDS_COUNT]; + /*0x1C*/ struct BattleTowerPokemon party[FRONTIER_PARTY_SIZE]; /*0xA0*/ u32 checksum; }; @@ -18,10 +18,10 @@ struct BattleFrontierTrainer u8 facilityClass; u8 filler1[3]; u8 trainerName[PLAYER_NAME_LENGTH + 1]; - u16 speechBefore[6]; - u16 speechWin[6]; - u16 speechLose[6]; - const u16 *monSets; + u16 speechBefore[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechWin[EASY_CHAT_BATTLE_WORDS_COUNT]; + u16 speechLose[EASY_CHAT_BATTLE_WORDS_COUNT]; + const u16 *monSet; }; struct FacilityMon @@ -49,7 +49,7 @@ extern const struct BattleFrontierTrainer *gFacilityTrainers; extern const struct FacilityMon *gFacilityTrainerMons; void CallBattleTowerFunc(void); -u16 sub_8162548(u8 challengeNum, u8 battleNum); +u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum); void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId); void SetEReaderTrainerGfxId(void); u8 GetBattleFacilityTrainerGfxId(u16 trainerId); @@ -59,7 +59,7 @@ u8 GetFrontierOpponentClass(u16 trainerId); void GetFrontierTrainerName(u8 *dst, u16 trainerId); void FillFrontierTrainerParty(u8 monsCount); void FillFrontierTrainersParties(u8 monsCount); -u16 RandomizeFacilityTrainerMonSet(u16 trainerId); +u16 GetRandomFrontierMonFromSet(u16 trainerId); void FrontierSpeechToString(const u16 *words); void DoSpecialTrainerBattle(void); void CalcEmeraldBattleTowerChecksum(struct EmeraldBattleTowerRecord *record); @@ -71,7 +71,7 @@ void GetEreaderTrainerName(u8 *dst); void ValidateEReaderTrainer(void); void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *ereaderTrainer); void CopyEReaderTrainerGreeting(void); -void sub_81653CC(void); +void TryHideBattleTowerReporter(void); bool32 RubyBattleTowerRecordToEmerald(struct RSBattleTowerRecord *src, struct EmeraldBattleTowerRecord *dst); bool32 EmeraldBattleTowerRecordToRuby(struct EmeraldBattleTowerRecord *src, struct RSBattleTowerRecord *dst); void CalcApprenticeChecksum(struct Apprentice *apprentice); diff --git a/include/coins.h b/include/coins.h index 996519605df2..6190ebbab5db 100644 --- a/include/coins.h +++ b/include/coins.h @@ -6,7 +6,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y); void HideCoinsWindow(void); u16 GetCoins(void); void SetCoins(u16 coinAmount); -bool8 GiveCoins(u16 toAdd); -bool8 TakeCoins(u16 toSub); +bool8 AddCoins(u16 toAdd); +bool8 RemoveCoins(u16 toSub); #endif // GUARD_COINS_H diff --git a/include/constants/battle_dome.h b/include/constants/battle_dome.h index 48152cdbb029..ea7310e559d9 100644 --- a/include/constants/battle_dome.h +++ b/include/constants/battle_dome.h @@ -1,6 +1,21 @@ #ifndef GUARD_CONSTANTS_BATTLE_DOME_H #define GUARD_CONSTANTS_BATTLE_DOME_H +#define DOME_ROUND1 0 +#define DOME_ROUND2 1 +#define DOME_SEMIFINAL 2 +#define DOME_FINAL 3 +#define DOME_ROUNDS_COUNT 4 + +//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 -- defined in global +#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1 + +#define DOME_BATTLE_PARTY_SIZE 2 + +#define DOME_PLAYER_WON_MATCH 1 +#define DOME_PLAYER_LOST_MATCH 2 +#define DOME_PLAYER_RETIRED 9 + #define BATTLE_DOME_FUNC_INIT 0 #define BATTLE_DOME_FUNC_GET_DATA 1 #define BATTLE_DOME_FUNC_SET_DATA 2 @@ -9,7 +24,7 @@ #define BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY 5 #define BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO 6 #define BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE 7 -#define BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE 8 +#define BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE 8 #define BATTLE_DOME_FUNC_SET_OPPONENT_ID 9 #define BATTLE_DOME_FUNC_SET_OPPONENT_GFX 10 #define BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE 11 @@ -22,24 +37,127 @@ #define BATTLE_DOME_FUNC_REDUCE_PARTY 18 #define BATTLE_DOME_FUNC_COMPARE_SEEDS 19 #define BATTLE_DOME_FUNC_GET_WINNER_NAME 20 -#define BATTLE_DOME_FUNC_21 21 +#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE 21 #define BATTLE_DOME_FUNC_INIT_TRAINERS 22 -#define DOME_DATA_WIN_STREAK 0 -#define DOME_DATA_WIN_STREAK_ACTIVE 1 -#define DOME_DATA_2 2 -#define DOME_DATA_3 3 -#define DOME_DATA_4 4 -#define DOME_DATA_5 5 -#define DOME_DATA_6 6 -#define DOME_DATA_7 7 -#define DOME_DATA_8 8 -#define DOME_DATA_9 9 - -#define DOME_ROUND1 0 -#define DOME_ROUND2 1 -#define DOME_SEMIFINAL 2 -#define DOME_FINAL 3 -#define DOME_ROUNDS_COUNT 4 +#define DOME_DATA_WIN_STREAK 0 +#define DOME_DATA_WIN_STREAK_ACTIVE 1 +#define DOME_DATA_ATTEMPTED_SINGLES_50 2 +#define DOME_DATA_ATTEMPTED_SINGLES_OPEN 3 +#define DOME_DATA_HAS_WON_SINGLES_50 4 +#define DOME_DATA_HAS_WON_SINGLES_OPEN 5 +#define DOME_DATA_ATTEMPTED_CHALLENGE 6 +#define DOME_DATA_HAS_WON_CHALLENGE 7 +#define DOME_DATA_SELECTED_MONS 8 +#define DOME_DATA_PREV_TOURNEY_TYPE 9 + +// ID for Exit/Cancel on the tourney tree +#define TOURNEY_TREE_CLOSE_BUTTON 31 + +// Input IDs on the tourney tree +#define TOURNEY_TREE_SELECTED_CLOSE 0 +#define TOURNEY_TREE_NO_SELECTION 1 +#define TOURNEY_TREE_SELECTED_TRAINER 2 +#define TOURNEY_TREE_SELECTED_MATCH 3 + +// Modes for showing the tourney tree info card +#define INFOCARD_NEXT_OPPONENT 0 +#define INFOCARD_TRAINER 1 +#define INFOCARD_MATCH 2 + +// Input IDs for the info cards +#define INFOCARD_INPUT_NONE 0 +#define TRAINERCARD_INPUT_UP 1 +#define TRAINERCARD_INPUT_DOWN 2 +#define TRAINERCARD_INPUT_LEFT 3 +#define TRAINERCARD_INPUT_RIGHT 4 +#define MATCHCARD_INPUT_UP 5 +#define MATCHCARD_INPUT_DOWN 6 +#define MATCHCARD_INPUT_LEFT 7 +#define MATCHCARD_INPUT_RIGHT 8 +#define INFOCARD_INPUT_AB 9 + +#define CARD_ALTERNATE_SLOT (1 << 0) // When set, uses an alternate slot to store the incoming card sprites +#define MOVE_CARD_RIGHT (1 << 1) +#define MOVE_CARD_DOWN (1 << 2) +#define MOVE_CARD_LEFT (1 << 3) +#define MOVE_CARD_UP (1 << 4) +#define MOVE_CARD (MOVE_CARD_RIGHT | MOVE_CARD_DOWN | MOVE_CARD_LEFT | MOVE_CARD_UP) + +// Text IDs for sBattleDomeWinTexts +#define DOME_TEXT_NO_WINNER_YET 0 +#define DOME_TEXT_WON_USING_MOVE 1 +#define DOME_TEXT_CHAMP_USING_MOVE 2 +#define DOME_TEXT_WON_ON_FORFEIT 3 +#define DOME_TEXT_CHAMP_ON_FORFEIT 4 +#define DOME_TEXT_WON_NO_MOVES 5 +#define DOME_TEXT_CHAMP_NO_MOVES 6 + +// Offsets/start positions within sBattleDomeOpponentStatsTexts +#define DOME_TEXT_TWO_GOOD_STATS 0 +#define DOME_TEXT_ONE_GOOD_STAT 15 +#define DOME_TEXT_TWO_BAD_STATS 21 +#define DOME_TEXT_ONE_BAD_STAT 36 +#define DOME_TEXT_WELL_BALANCED 42 +#define DOME_TEXT_HP 0 +#define DOME_TEXT_ATK 5 +#define DOME_TEXT_DEF 9 +#define DOME_TEXT_SPEED 12 +#define DOME_TEXT_SPATK 14 + +// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles +#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump) +#define MOVE_POINTS_STAT_RAISE 1 +#define MOVE_POINTS_STAT_LOWER 2 +#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary +#define MOVE_POINTS_HEAL 4 +#define MOVE_POINTS_RISKY 5 +#define MOVE_POINTS_STATUS 6 +#define MOVE_POINTS_DMG 7 +#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers +#define MOVE_POINTS_ACCURATE 9 +#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power +#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58 +#define MOVE_POINTS_LUCK 12 +#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power +#define MOVE_POINTS_LOW_PP 14 +#define MOVE_POINTS_EFFECT 15 // Moves with additional effects +#define NUM_MOVE_POINT_TYPES 16 + +// Battle style IDs for sBattleDomeOpponentStyleTexts +#define DOME_BATTLE_STYLE_RISKY 0 +#define DOME_BATTLE_STYLE_STALL 1 +#define DOME_BATTLE_STYLE_VARIED 2 +#define DOME_BATTLE_STYLE_COMBO_HIGH 3 +#define DOME_BATTLE_STYLE_RARE_MOVES 4 +#define DOME_BATTLE_STYLE_RARE_MOVE 5 +#define DOME_BATTLE_STYLE_HP 6 +#define DOME_BATTLE_STYLE_STORE_POWER 7 +#define DOME_BATTLE_STYLE_ENFEEBLE_LOW 8 +#define DOME_BATTLE_STYLE_LUCK 9 +#define DOME_BATTLE_STYLE_REGAL 10 +#define DOME_BATTLE_STYLE_LOW_PP 11 +#define DOME_BATTLE_STYLE_STATUS_ATK 12 +#define DOME_BATTLE_STYLE_ENDURE 13 +#define DOME_BATTLE_STYLE_STATUS 14 +#define DOME_BATTLE_STYLE_STRAIGHTFORWARD 15 +#define DOME_BATTLE_STYLE_AGGRESSIVE 16 +#define DOME_BATTLE_STYLE_DEF 17 +#define DOME_BATTLE_STYLE_ENFEEBLE_HIGH 18 +#define DOME_BATTLE_STYLE_POPULAR_POWER 19 +#define DOME_BATTLE_STYLE_COMBO_LOW 20 +#define DOME_BATTLE_STYLE_ACCURATE 21 +#define DOME_BATTLE_STYLE_POWERFUL 22 +#define DOME_BATTLE_STYLE_ATK_OVER_DEF 23 +#define DOME_BATTLE_STYLE_DEF_OVER_ATK 24 +#define DOME_BATTLE_STYLE_POPULAR_STRONG 25 +#define DOME_BATTLE_STYLE_EFFECTS 26 +#define DOME_BATTLE_STYLE_BALANCED 27 +#define DOME_BATTLE_STYLE_UNUSED1 28 +#define DOME_BATTLE_STYLE_UNUSED2 29 +#define DOME_BATTLE_STYLE_UNUSED3 30 +#define DOME_BATTLE_STYLE_UNUSED4 31 +#define NUM_BATTLE_STYLES 32 + #endif //GUARD_CONSTANTS_BATTLE_DOME_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 0bf1ba02bcd6..1a60714e8bea 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -6,9 +6,9 @@ // Battle Frontier facility ids. #define FRONTIER_FACILITY_TOWER 0 #define FRONTIER_FACILITY_DOME 1 -#define FRONTIER_FACILITY_PALACE 2 -#define FRONTIER_FACILITY_ARENA 3 -#define FRONTIER_FACILITY_FACTORY 4 +#define FRONTIER_FACILITY_PALACE 2 // also Verdanturf Tent +#define FRONTIER_FACILITY_ARENA 3 // also Fallarbor Tent +#define FRONTIER_FACILITY_FACTORY 4 // also Slateport Tent #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 @@ -17,10 +17,6 @@ #define FACILITY_UNION_ROOM 8 #define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles -#define TENT_VERDANTURF 2 -#define TENT_FALLARBOR 3 -#define TENT_SLATEPORT 4 - // Battle Frontier lvl modes. #define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 diff --git a/include/constants/battle_frontier_mons.h b/include/constants/battle_frontier_mons.h new file mode 100644 index 000000000000..10e68980a635 --- /dev/null +++ b/include/constants/battle_frontier_mons.h @@ -0,0 +1,899 @@ +#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H +#define GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H + +#define FRONTIER_MON_SUNKERN 0 +#define FRONTIER_MON_AZURILL 1 +#define FRONTIER_MON_CATERPIE 2 +#define FRONTIER_MON_WEEDLE 3 +#define FRONTIER_MON_WURMPLE 4 +#define FRONTIER_MON_RALTS 5 +#define FRONTIER_MON_MAGIKARP 6 +#define FRONTIER_MON_FEEBAS 7 +#define FRONTIER_MON_METAPOD 8 +#define FRONTIER_MON_KAKUNA 9 +#define FRONTIER_MON_PICHU 10 +#define FRONTIER_MON_SILCOON 11 +#define FRONTIER_MON_CASCOON 12 +#define FRONTIER_MON_IGGLYBUFF 13 +#define FRONTIER_MON_WOOPER 14 +#define FRONTIER_MON_TYROGUE 15 +#define FRONTIER_MON_SENTRET 16 +#define FRONTIER_MON_CLEFFA 17 +#define FRONTIER_MON_SEEDOT 18 +#define FRONTIER_MON_LOTAD 19 +#define FRONTIER_MON_POOCHYENA 20 +#define FRONTIER_MON_SHEDINJA 21 +#define FRONTIER_MON_MAKUHITA 22 +#define FRONTIER_MON_WHISMUR 23 +#define FRONTIER_MON_ZIGZAGOON 24 +#define FRONTIER_MON_ZUBAT 25 +#define FRONTIER_MON_TOGEPI 26 +#define FRONTIER_MON_SPINARAK 27 +#define FRONTIER_MON_MARILL 28 +#define FRONTIER_MON_HOPPIP 29 +#define FRONTIER_MON_SLUGMA 30 +#define FRONTIER_MON_SWINUB 31 +#define FRONTIER_MON_SMEARGLE 32 +#define FRONTIER_MON_PIDGEY 33 +#define FRONTIER_MON_RATTATA 34 +#define FRONTIER_MON_WYNAUT 35 +#define FRONTIER_MON_SKITTY 36 +#define FRONTIER_MON_SPEAROW 37 +#define FRONTIER_MON_HOOTHOOT 38 +#define FRONTIER_MON_DIGLETT 39 +#define FRONTIER_MON_LEDYBA 40 +#define FRONTIER_MON_NINCADA 41 +#define FRONTIER_MON_SURSKIT 42 +#define FRONTIER_MON_JIGGLYPUFF 43 +#define FRONTIER_MON_TAILLOW 44 +#define FRONTIER_MON_WINGULL 45 +#define FRONTIER_MON_NIDORAN_M 46 +#define FRONTIER_MON_NIDORAN_F 47 +#define FRONTIER_MON_KIRLIA 48 +#define FRONTIER_MON_MAREEP 49 +#define FRONTIER_MON_MEDITITE 50 +#define FRONTIER_MON_SLAKOTH 51 +#define FRONTIER_MON_PARAS 52 +#define FRONTIER_MON_EKANS 53 +#define FRONTIER_MON_DITTO 54 +#define FRONTIER_MON_BARBOACH 55 +#define FRONTIER_MON_MEOWTH 56 +#define FRONTIER_MON_PINECO 57 +#define FRONTIER_MON_TRAPINCH 58 +#define FRONTIER_MON_SPHEAL 59 +#define FRONTIER_MON_HORSEA 60 +#define FRONTIER_MON_SHROOMISH 61 +#define FRONTIER_MON_SHUPPET 62 +#define FRONTIER_MON_DUSKULL 63 +#define FRONTIER_MON_ELECTRIKE 64 +#define FRONTIER_MON_VULPIX 65 +#define FRONTIER_MON_PIKACHU 66 +#define FRONTIER_MON_SANDSHREW 67 +#define FRONTIER_MON_POLIWAG 68 +#define FRONTIER_MON_BELLSPROUT 69 +#define FRONTIER_MON_GEODUDE 70 +#define FRONTIER_MON_DRATINI 71 +#define FRONTIER_MON_SNUBBULL 72 +#define FRONTIER_MON_REMORAID 73 +#define FRONTIER_MON_LARVITAR 74 +#define FRONTIER_MON_BALTOY 75 +#define FRONTIER_MON_SNORUNT 76 +#define FRONTIER_MON_BAGON 77 +#define FRONTIER_MON_BELDUM 78 +#define FRONTIER_MON_GULPIN 79 +#define FRONTIER_MON_VENONAT 80 +#define FRONTIER_MON_MANKEY 81 +#define FRONTIER_MON_MACHOP 82 +#define FRONTIER_MON_SHELLDER 83 +#define FRONTIER_MON_SMOOCHUM 84 +#define FRONTIER_MON_NUMEL 85 +#define FRONTIER_MON_CARVANHA 86 +#define FRONTIER_MON_CORPHISH 87 +#define FRONTIER_MON_CHARMANDER 88 +#define FRONTIER_MON_CYNDAQUIL 89 +#define FRONTIER_MON_ABRA 90 +#define FRONTIER_MON_DODUO 91 +#define FRONTIER_MON_GASTLY 92 +#define FRONTIER_MON_SWABLU 93 +#define FRONTIER_MON_TREECKO 94 +#define FRONTIER_MON_TORCHIC 95 +#define FRONTIER_MON_MUDKIP 96 +#define FRONTIER_MON_SQUIRTLE 97 +#define FRONTIER_MON_TOTODILE 98 +#define FRONTIER_MON_SLOWPOKE 99 +#define FRONTIER_MON_BULBASAUR 100 +#define FRONTIER_MON_CHIKORITA 101 +#define FRONTIER_MON_ODDISH 102 +#define FRONTIER_MON_PSYDUCK 103 +#define FRONTIER_MON_CUBONE 104 +#define FRONTIER_MON_GOLDEEN 105 +#define FRONTIER_MON_NATU 106 +#define FRONTIER_MON_CLEFAIRY 107 +#define FRONTIER_MON_MAGNEMITE 108 +#define FRONTIER_MON_SEEL 109 +#define FRONTIER_MON_GRIMER 110 +#define FRONTIER_MON_KRABBY 111 +#define FRONTIER_MON_EXEGGCUTE 112 +#define FRONTIER_MON_EEVEE 113 +#define FRONTIER_MON_DROWZEE 114 +#define FRONTIER_MON_VOLTORB 115 +#define FRONTIER_MON_CHINCHOU 116 +#define FRONTIER_MON_TEDDIURSA 117 +#define FRONTIER_MON_DELIBIRD 118 +#define FRONTIER_MON_HOUNDOUR 119 +#define FRONTIER_MON_PHANPY 120 +#define FRONTIER_MON_SPOINK 121 +#define FRONTIER_MON_ARON 122 +#define FRONTIER_MON_LUVDISC 123 +#define FRONTIER_MON_TENTACOOL 124 +#define FRONTIER_MON_CACNEA 125 +#define FRONTIER_MON_UNOWN 126 +#define FRONTIER_MON_KOFFING 127 +#define FRONTIER_MON_STARYU 128 +#define FRONTIER_MON_SKIPLOOM 129 +#define FRONTIER_MON_NUZLEAF 130 +#define FRONTIER_MON_LOMBRE 131 +#define FRONTIER_MON_VIBRAVA 132 +#define FRONTIER_MON_RHYHORN 133 +#define FRONTIER_MON_CLAMPERL 134 +#define FRONTIER_MON_PIDGEOTTO 135 +#define FRONTIER_MON_GROWLITHE 136 +#define FRONTIER_MON_FARFETCHD 137 +#define FRONTIER_MON_OMANYTE 138 +#define FRONTIER_MON_KABUTO 139 +#define FRONTIER_MON_LILEEP 140 +#define FRONTIER_MON_ANORITH 141 +#define FRONTIER_MON_AIPOM 142 +#define FRONTIER_MON_ELEKID 143 +#define FRONTIER_MON_LOUDRED 144 +#define FRONTIER_MON_SPINDA 145 +#define FRONTIER_MON_NIDORINA 146 +#define FRONTIER_MON_NIDORINO 147 +#define FRONTIER_MON_FLAAFFY 148 +#define FRONTIER_MON_MAGBY 149 +#define FRONTIER_MON_NOSEPASS 150 +#define FRONTIER_MON_CORSOLA 151 +#define FRONTIER_MON_MAWILE 152 +#define FRONTIER_MON_BUTTERFREE 153 +#define FRONTIER_MON_BEEDRILL 154 +#define FRONTIER_MON_POLIWHIRL 155 +#define FRONTIER_MON_ONIX 156 +#define FRONTIER_MON_BEAUTIFLY 157 +#define FRONTIER_MON_DUSTOX 158 +#define FRONTIER_MON_LEDIAN 159 +#define FRONTIER_MON_ARIADOS 160 +#define FRONTIER_MON_YANMA 161 + +#define FRONTIER_MON_DELCATTY_1 162 +#define FRONTIER_MON_SABLEYE_1 163 +#define FRONTIER_MON_LICKITUNG_1 164 +#define FRONTIER_MON_WEEPINBELL_1 165 +#define FRONTIER_MON_GRAVELER_1 166 +#define FRONTIER_MON_GLOOM_1 167 +#define FRONTIER_MON_PORYGON_1 168 +#define FRONTIER_MON_KADABRA_1 169 +#define FRONTIER_MON_WAILMER_1 170 +#define FRONTIER_MON_ROSELIA_1 171 +#define FRONTIER_MON_VOLBEAT_1 172 +#define FRONTIER_MON_ILLUMISE_1 173 +#define FRONTIER_MON_IVYSAUR_1 174 +#define FRONTIER_MON_CHARMELEON_1 175 +#define FRONTIER_MON_WARTORTLE_1 176 +#define FRONTIER_MON_PARASECT_1 177 +#define FRONTIER_MON_MACHOKE_1 178 +#define FRONTIER_MON_HAUNTER_1 179 +#define FRONTIER_MON_BAYLEEF_1 180 +#define FRONTIER_MON_QUILAVA_1 181 +#define FRONTIER_MON_CROCONAW_1 182 +#define FRONTIER_MON_TOGETIC_1 183 +#define FRONTIER_MON_MURKROW_1 184 +#define FRONTIER_MON_WOBBUFFET_1 185 +#define FRONTIER_MON_PLUSLE_1 186 +#define FRONTIER_MON_MINUN_1 187 +#define FRONTIER_MON_GROVYLE_1 188 +#define FRONTIER_MON_COMBUSKEN_1 189 +#define FRONTIER_MON_MARSHTOMP_1 190 +#define FRONTIER_MON_PONYTA_1 191 +#define FRONTIER_MON_AZUMARILL_1 192 +#define FRONTIER_MON_SUDOWOODO_1 193 +#define FRONTIER_MON_MAGCARGO_1 194 +#define FRONTIER_MON_PUPITAR_1 195 +#define FRONTIER_MON_SEALEO_1 196 +#define FRONTIER_MON_RATICATE_1 197 +#define FRONTIER_MON_MASQUERAIN_1 198 +#define FRONTIER_MON_FURRET_1 199 +#define FRONTIER_MON_DUNSPARCE_1 200 +#define FRONTIER_MON_DRAGONAIR_1 201 +#define FRONTIER_MON_MIGHTYENA_1 202 +#define FRONTIER_MON_LINOONE_1 203 +#define FRONTIER_MON_CASTFORM_1 204 +#define FRONTIER_MON_SHELGON_1 205 +#define FRONTIER_MON_METANG_1 206 +#define FRONTIER_MON_WIGGLYTUFF_1 207 +#define FRONTIER_MON_SUNFLORA_1 208 +#define FRONTIER_MON_CHIMECHO_1 209 +#define FRONTIER_MON_GLIGAR_1 210 +#define FRONTIER_MON_QWILFISH_1 211 +#define FRONTIER_MON_SNEASEL_1 212 +#define FRONTIER_MON_PELIPPER_1 213 +#define FRONTIER_MON_SWELLOW_1 214 +#define FRONTIER_MON_LAIRON_1 215 +#define FRONTIER_MON_TANGELA_1 216 +#define FRONTIER_MON_ARBOK_1 217 +#define FRONTIER_MON_PERSIAN_1 218 +#define FRONTIER_MON_SEADRA_1 219 +#define FRONTIER_MON_KECLEON_1 220 +#define FRONTIER_MON_VIGOROTH_1 221 +#define FRONTIER_MON_LUNATONE_1 222 +#define FRONTIER_MON_SOLROCK_1 223 +#define FRONTIER_MON_NOCTOWL_1 224 +#define FRONTIER_MON_SANDSLASH_1 225 +#define FRONTIER_MON_VENOMOTH_1 226 +#define FRONTIER_MON_CHANSEY_1 227 +#define FRONTIER_MON_SEAKING_1 228 +#define FRONTIER_MON_JUMPLUFF_1 229 +#define FRONTIER_MON_PILOSWINE_1 230 +#define FRONTIER_MON_GOLBAT_1 231 +#define FRONTIER_MON_PRIMEAPE_1 232 +#define FRONTIER_MON_HITMONLEE_1 233 +#define FRONTIER_MON_HITMONCHAN_1 234 +#define FRONTIER_MON_GIRAFARIG_1 235 +#define FRONTIER_MON_HITMONTOP_1 236 +#define FRONTIER_MON_BANETTE_1 237 +#define FRONTIER_MON_NINJASK_1 238 +#define FRONTIER_MON_SEVIPER_1 239 +#define FRONTIER_MON_ZANGOOSE_1 240 +#define FRONTIER_MON_CAMERUPT_1 241 +#define FRONTIER_MON_SHARPEDO_1 242 +#define FRONTIER_MON_TROPIUS_1 243 +#define FRONTIER_MON_MAGNETON_1 244 +#define FRONTIER_MON_MANTINE_1 245 +#define FRONTIER_MON_STANTLER_1 246 +#define FRONTIER_MON_ABSOL_1 247 +#define FRONTIER_MON_SWALOT_1 248 +#define FRONTIER_MON_CRAWDAUNT_1 249 +#define FRONTIER_MON_PIDGEOT_1 250 +#define FRONTIER_MON_GRUMPIG_1 251 +#define FRONTIER_MON_TORKOAL_1 252 +#define FRONTIER_MON_KINGLER_1 253 +#define FRONTIER_MON_CACTURNE_1 254 +#define FRONTIER_MON_BELLOSSOM_1 255 +#define FRONTIER_MON_OCTILLERY_1 256 +#define FRONTIER_MON_HUNTAIL_1 257 +#define FRONTIER_MON_GOREBYSS_1 258 +#define FRONTIER_MON_RELICANTH_1 259 +#define FRONTIER_MON_OMASTAR_1 260 +#define FRONTIER_MON_KABUTOPS_1 261 +#define FRONTIER_MON_POLIWRATH_1 262 +#define FRONTIER_MON_SCYTHER_1 263 +#define FRONTIER_MON_PINSIR_1 264 +#define FRONTIER_MON_POLITOED_1 265 +#define FRONTIER_MON_CLOYSTER_1 266 + +#define FRONTIER_MON_DELCATTY_2 267 +#define FRONTIER_MON_SABLEYE_2 268 +#define FRONTIER_MON_LICKITUNG_2 269 +#define FRONTIER_MON_WEEPINBELL_2 270 +#define FRONTIER_MON_GRAVELER_2 271 +#define FRONTIER_MON_GLOOM_2 272 +#define FRONTIER_MON_PORYGON_2 273 +#define FRONTIER_MON_KADABRA_2 274 +#define FRONTIER_MON_WAILMER_2 275 +#define FRONTIER_MON_ROSELIA_2 276 +#define FRONTIER_MON_VOLBEAT_2 277 +#define FRONTIER_MON_ILLUMISE_2 278 +#define FRONTIER_MON_IVYSAUR_2 279 +#define FRONTIER_MON_CHARMELEON_2 280 +#define FRONTIER_MON_WARTORTLE_2 281 +#define FRONTIER_MON_PARASECT_2 282 +#define FRONTIER_MON_MACHOKE_2 283 +#define FRONTIER_MON_HAUNTER_2 284 +#define FRONTIER_MON_BAYLEEF_2 285 +#define FRONTIER_MON_QUILAVA_2 286 +#define FRONTIER_MON_CROCONAW_2 287 +#define FRONTIER_MON_TOGETIC_2 288 +#define FRONTIER_MON_MURKROW_2 289 +#define FRONTIER_MON_WOBBUFFET_2 290 +#define FRONTIER_MON_PLUSLE_2 291 +#define FRONTIER_MON_MINUN_2 292 +#define FRONTIER_MON_GROVYLE_2 293 +#define FRONTIER_MON_COMBUSKEN_2 294 +#define FRONTIER_MON_MARSHTOMP_2 295 +#define FRONTIER_MON_PONYTA_2 296 +#define FRONTIER_MON_AZUMARILL_2 297 +#define FRONTIER_MON_SUDOWOODO_2 298 +#define FRONTIER_MON_MAGCARGO_2 299 +#define FRONTIER_MON_PUPITAR_2 300 +#define FRONTIER_MON_SEALEO_2 301 +#define FRONTIER_MON_RATICATE_2 302 +#define FRONTIER_MON_MASQUERAIN_2 303 +#define FRONTIER_MON_FURRET_2 304 +#define FRONTIER_MON_DUNSPARCE_2 305 +#define FRONTIER_MON_DRAGONAIR_2 306 +#define FRONTIER_MON_MIGHTYENA_2 307 +#define FRONTIER_MON_LINOONE_2 308 +#define FRONTIER_MON_CASTFORM_2 309 +#define FRONTIER_MON_SHELGON_2 310 +#define FRONTIER_MON_METANG_2 311 +#define FRONTIER_MON_WIGGLYTUFF_2 312 +#define FRONTIER_MON_SUNFLORA_2 313 +#define FRONTIER_MON_CHIMECHO_2 314 +#define FRONTIER_MON_GLIGAR_2 315 +#define FRONTIER_MON_QWILFISH_2 316 +#define FRONTIER_MON_SNEASEL_2 317 +#define FRONTIER_MON_PELIPPER_2 318 +#define FRONTIER_MON_SWELLOW_2 319 +#define FRONTIER_MON_LAIRON_2 320 +#define FRONTIER_MON_TANGELA_2 321 +#define FRONTIER_MON_ARBOK_2 322 +#define FRONTIER_MON_PERSIAN_2 323 +#define FRONTIER_MON_SEADRA_2 324 +#define FRONTIER_MON_KECLEON_2 325 +#define FRONTIER_MON_VIGOROTH_2 326 +#define FRONTIER_MON_LUNATONE_2 327 +#define FRONTIER_MON_SOLROCK_2 328 +#define FRONTIER_MON_NOCTOWL_2 329 +#define FRONTIER_MON_SANDSLASH_2 330 +#define FRONTIER_MON_VENOMOTH_2 331 +#define FRONTIER_MON_CHANSEY_2 332 +#define FRONTIER_MON_SEAKING_2 333 +#define FRONTIER_MON_JUMPLUFF_2 334 +#define FRONTIER_MON_PILOSWINE_2 335 +#define FRONTIER_MON_GOLBAT_2 336 +#define FRONTIER_MON_PRIMEAPE_2 337 +#define FRONTIER_MON_HITMONLEE_2 338 +#define FRONTIER_MON_HITMONCHAN_2 339 +#define FRONTIER_MON_GIRAFARIG_2 340 +#define FRONTIER_MON_HITMONTOP_2 341 +#define FRONTIER_MON_BANETTE_2 342 +#define FRONTIER_MON_NINJASK_2 343 +#define FRONTIER_MON_SEVIPER_2 344 +#define FRONTIER_MON_ZANGOOSE_2 345 +#define FRONTIER_MON_CAMERUPT_2 346 +#define FRONTIER_MON_SHARPEDO_2 347 +#define FRONTIER_MON_TROPIUS_2 348 +#define FRONTIER_MON_MAGNETON_2 349 +#define FRONTIER_MON_MANTINE_2 350 +#define FRONTIER_MON_STANTLER_2 351 +#define FRONTIER_MON_ABSOL_2 352 +#define FRONTIER_MON_SWALOT_2 353 +#define FRONTIER_MON_CRAWDAUNT_2 354 +#define FRONTIER_MON_PIDGEOT_2 355 +#define FRONTIER_MON_GRUMPIG_2 356 +#define FRONTIER_MON_TORKOAL_2 357 +#define FRONTIER_MON_KINGLER_2 358 +#define FRONTIER_MON_CACTURNE_2 359 +#define FRONTIER_MON_BELLOSSOM_2 360 +#define FRONTIER_MON_OCTILLERY_2 361 +#define FRONTIER_MON_HUNTAIL_2 362 +#define FRONTIER_MON_GOREBYSS_2 363 +#define FRONTIER_MON_RELICANTH_2 364 +#define FRONTIER_MON_OMASTAR_2 365 +#define FRONTIER_MON_KABUTOPS_2 366 +#define FRONTIER_MON_POLIWRATH_2 367 +#define FRONTIER_MON_SCYTHER_2 368 +#define FRONTIER_MON_PINSIR_2 369 +#define FRONTIER_MON_POLITOED_2 370 +#define FRONTIER_MON_CLOYSTER_2 371 + +#define FRONTIER_MON_DUGTRIO_1 372 +#define FRONTIER_MON_MEDICHAM_1 373 +#define FRONTIER_MON_MISDREAVUS_1 374 +#define FRONTIER_MON_FEAROW_1 375 +#define FRONTIER_MON_GRANBULL_1 376 +#define FRONTIER_MON_JYNX_1 377 +#define FRONTIER_MON_DUSCLOPS_1 378 +#define FRONTIER_MON_DODRIO_1 379 +#define FRONTIER_MON_MR_MIME_1 380 +#define FRONTIER_MON_LANTURN_1 381 +#define FRONTIER_MON_BRELOOM_1 382 +#define FRONTIER_MON_FORRETRESS_1 383 +#define FRONTIER_MON_WHISCASH_1 384 +#define FRONTIER_MON_XATU_1 385 +#define FRONTIER_MON_SKARMORY_1 386 +#define FRONTIER_MON_MAROWAK_1 387 +#define FRONTIER_MON_QUAGSIRE_1 388 +#define FRONTIER_MON_CLEFABLE_1 389 +#define FRONTIER_MON_HARIYAMA_1 390 +#define FRONTIER_MON_RAICHU_1 391 +#define FRONTIER_MON_DEWGONG_1 392 +#define FRONTIER_MON_MANECTRIC_1 393 +#define FRONTIER_MON_VILEPLUME_1 394 +#define FRONTIER_MON_VICTREEBEL_1 395 +#define FRONTIER_MON_ELECTRODE_1 396 +#define FRONTIER_MON_EXPLOUD_1 397 +#define FRONTIER_MON_SHIFTRY_1 398 +#define FRONTIER_MON_GLALIE_1 399 +#define FRONTIER_MON_LUDICOLO_1 400 +#define FRONTIER_MON_HYPNO_1 401 +#define FRONTIER_MON_GOLEM_1 402 +#define FRONTIER_MON_RHYDON_1 403 +#define FRONTIER_MON_ALAKAZAM_1 404 +#define FRONTIER_MON_WEEZING_1 405 +#define FRONTIER_MON_KANGASKHAN_1 406 +#define FRONTIER_MON_ELECTABUZZ_1 407 +#define FRONTIER_MON_TAUROS_1 408 +#define FRONTIER_MON_SLOWBRO_1 409 +#define FRONTIER_MON_SLOWKING_1 410 +#define FRONTIER_MON_MILTANK_1 411 +#define FRONTIER_MON_ALTARIA_1 412 +#define FRONTIER_MON_NIDOQUEEN_1 413 +#define FRONTIER_MON_NIDOKING_1 414 +#define FRONTIER_MON_MAGMAR_1 415 +#define FRONTIER_MON_CRADILY_1 416 +#define FRONTIER_MON_ARMALDO_1 417 +#define FRONTIER_MON_GOLDUCK_1 418 +#define FRONTIER_MON_RAPIDASH_1 419 +#define FRONTIER_MON_MUK_1 420 +#define FRONTIER_MON_GENGAR_1 421 +#define FRONTIER_MON_AMPHAROS_1 422 +#define FRONTIER_MON_SCIZOR_1 423 +#define FRONTIER_MON_HERACROSS_1 424 +#define FRONTIER_MON_URSARING_1 425 +#define FRONTIER_MON_HOUNDOOM_1 426 +#define FRONTIER_MON_DONPHAN_1 427 +#define FRONTIER_MON_CLAYDOL_1 428 +#define FRONTIER_MON_WAILORD_1 429 +#define FRONTIER_MON_NINETALES_1 430 +#define FRONTIER_MON_MACHAMP_1 431 +#define FRONTIER_MON_SHUCKLE_1 432 +#define FRONTIER_MON_STEELIX_1 433 +#define FRONTIER_MON_TENTACRUEL_1 434 +#define FRONTIER_MON_AERODACTYL_1 435 +#define FRONTIER_MON_PORYGON2_1 436 +#define FRONTIER_MON_GARDEVOIR_1 437 +#define FRONTIER_MON_EXEGGUTOR_1 438 +#define FRONTIER_MON_STARMIE_1 439 +#define FRONTIER_MON_FLYGON_1 440 +#define FRONTIER_MON_VENUSAUR_1 441 +#define FRONTIER_MON_VAPOREON_1 442 +#define FRONTIER_MON_JOLTEON_1 443 +#define FRONTIER_MON_FLAREON_1 444 +#define FRONTIER_MON_MEGANIUM_1 445 +#define FRONTIER_MON_ESPEON_1 446 +#define FRONTIER_MON_UMBREON_1 447 +#define FRONTIER_MON_BLASTOISE_1 448 +#define FRONTIER_MON_FERALIGATR_1 449 +#define FRONTIER_MON_AGGRON_1 450 +#define FRONTIER_MON_BLAZIKEN_1 451 +#define FRONTIER_MON_WALREIN_1 452 +#define FRONTIER_MON_SCEPTILE_1 453 +#define FRONTIER_MON_CHARIZARD_1 454 +#define FRONTIER_MON_TYPHLOSION_1 455 +#define FRONTIER_MON_LAPRAS_1 456 +#define FRONTIER_MON_CROBAT_1 457 +#define FRONTIER_MON_SWAMPERT_1 458 +#define FRONTIER_MON_GYARADOS_1 459 +#define FRONTIER_MON_SNORLAX_1 460 +#define FRONTIER_MON_KINGDRA_1 461 +#define FRONTIER_MON_BLISSEY_1 462 +#define FRONTIER_MON_MILOTIC_1 463 +#define FRONTIER_MON_ARCANINE_1 464 +#define FRONTIER_MON_SALAMENCE_1 465 +#define FRONTIER_MON_METAGROSS_1 466 +#define FRONTIER_MON_SLAKING_1 467 + +#define FRONTIER_MON_DUGTRIO_2 468 +#define FRONTIER_MON_MEDICHAM_2 469 +#define FRONTIER_MON_MAROWAK_2 470 +#define FRONTIER_MON_QUAGSIRE_2 471 +#define FRONTIER_MON_MISDREAVUS_2 472 +#define FRONTIER_MON_FEAROW_2 473 +#define FRONTIER_MON_GRANBULL_2 474 +#define FRONTIER_MON_JYNX_2 475 +#define FRONTIER_MON_DUSCLOPS_2 476 +#define FRONTIER_MON_DODRIO_2 477 +#define FRONTIER_MON_MR_MIME_2 478 +#define FRONTIER_MON_LANTURN_2 479 +#define FRONTIER_MON_BRELOOM_2 480 +#define FRONTIER_MON_FORRETRESS_2 481 +#define FRONTIER_MON_SKARMORY_2 482 +#define FRONTIER_MON_WHISCASH_2 483 +#define FRONTIER_MON_XATU_2 484 +#define FRONTIER_MON_CLEFABLE_2 485 +#define FRONTIER_MON_HARIYAMA_2 486 +#define FRONTIER_MON_RAICHU_2 487 +#define FRONTIER_MON_DEWGONG_2 488 +#define FRONTIER_MON_MANECTRIC_2 489 +#define FRONTIER_MON_VILEPLUME_2 490 +#define FRONTIER_MON_VICTREEBEL_2 491 +#define FRONTIER_MON_ELECTRODE_2 492 +#define FRONTIER_MON_EXPLOUD_2 493 +#define FRONTIER_MON_SHIFTRY_2 494 +#define FRONTIER_MON_GLALIE_2 495 +#define FRONTIER_MON_LUDICOLO_2 496 +#define FRONTIER_MON_HYPNO_2 497 +#define FRONTIER_MON_GOLEM_2 498 +#define FRONTIER_MON_RHYDON_2 499 +#define FRONTIER_MON_ALAKAZAM_2 500 +#define FRONTIER_MON_WEEZING_2 501 +#define FRONTIER_MON_KANGASKHAN_2 502 +#define FRONTIER_MON_ELECTABUZZ_2 503 +#define FRONTIER_MON_TAUROS_2 504 +#define FRONTIER_MON_SLOWBRO_2 505 +#define FRONTIER_MON_SLOWKING_2 506 +#define FRONTIER_MON_MILTANK_2 507 +#define FRONTIER_MON_ALTARIA_2 508 +#define FRONTIER_MON_NIDOQUEEN_2 509 +#define FRONTIER_MON_NIDOKING_2 510 +#define FRONTIER_MON_MAGMAR_2 511 +#define FRONTIER_MON_CRADILY_2 512 +#define FRONTIER_MON_ARMALDO_2 513 +#define FRONTIER_MON_GOLDUCK_2 514 +#define FRONTIER_MON_RAPIDASH_2 515 +#define FRONTIER_MON_MUK_2 516 +#define FRONTIER_MON_GENGAR_2 517 +#define FRONTIER_MON_AMPHAROS_2 518 +#define FRONTIER_MON_SCIZOR_2 519 +#define FRONTIER_MON_HERACROSS_2 520 +#define FRONTIER_MON_URSARING_2 521 +#define FRONTIER_MON_HOUNDOOM_2 522 +#define FRONTIER_MON_DONPHAN_2 523 +#define FRONTIER_MON_CLAYDOL_2 524 +#define FRONTIER_MON_WAILORD_2 525 +#define FRONTIER_MON_NINETALES_2 526 +#define FRONTIER_MON_MACHAMP_2 527 +#define FRONTIER_MON_SHUCKLE_2 528 +#define FRONTIER_MON_STEELIX_2 529 +#define FRONTIER_MON_TENTACRUEL_2 530 +#define FRONTIER_MON_AERODACTYL_2 531 +#define FRONTIER_MON_PORYGON2_2 532 +#define FRONTIER_MON_GARDEVOIR_2 533 +#define FRONTIER_MON_EXEGGUTOR_2 534 +#define FRONTIER_MON_STARMIE_2 535 +#define FRONTIER_MON_FLYGON_2 536 +#define FRONTIER_MON_VENUSAUR_2 537 +#define FRONTIER_MON_VAPOREON_2 538 +#define FRONTIER_MON_JOLTEON_2 539 +#define FRONTIER_MON_FLAREON_2 540 +#define FRONTIER_MON_MEGANIUM_2 541 +#define FRONTIER_MON_ESPEON_2 542 +#define FRONTIER_MON_UMBREON_2 543 +#define FRONTIER_MON_BLASTOISE_2 544 +#define FRONTIER_MON_FERALIGATR_2 545 +#define FRONTIER_MON_AGGRON_2 546 +#define FRONTIER_MON_BLAZIKEN_2 547 +#define FRONTIER_MON_WALREIN_2 548 +#define FRONTIER_MON_SCEPTILE_2 549 +#define FRONTIER_MON_CHARIZARD_2 550 +#define FRONTIER_MON_TYPHLOSION_2 551 +#define FRONTIER_MON_LAPRAS_2 552 +#define FRONTIER_MON_CROBAT_2 553 +#define FRONTIER_MON_SWAMPERT_2 554 +#define FRONTIER_MON_GYARADOS_2 555 +#define FRONTIER_MON_SNORLAX_2 556 +#define FRONTIER_MON_KINGDRA_2 557 +#define FRONTIER_MON_BLISSEY_2 558 +#define FRONTIER_MON_MILOTIC_2 559 +#define FRONTIER_MON_ARCANINE_2 560 +#define FRONTIER_MON_SALAMENCE_2 561 +#define FRONTIER_MON_METAGROSS_2 562 +#define FRONTIER_MON_SLAKING_2 563 + +#define FRONTIER_MON_DUGTRIO_3 564 +#define FRONTIER_MON_MEDICHAM_3 565 +#define FRONTIER_MON_MISDREAVUS_3 566 +#define FRONTIER_MON_FEAROW_3 567 +#define FRONTIER_MON_GRANBULL_3 568 +#define FRONTIER_MON_JYNX_3 569 +#define FRONTIER_MON_DUSCLOPS_3 570 +#define FRONTIER_MON_DODRIO_3 571 +#define FRONTIER_MON_MR_MIME_3 572 +#define FRONTIER_MON_LANTURN_3 573 +#define FRONTIER_MON_BRELOOM_3 574 +#define FRONTIER_MON_FORRETRESS_3 575 +#define FRONTIER_MON_WHISCASH_3 576 +#define FRONTIER_MON_XATU_3 577 +#define FRONTIER_MON_SKARMORY_3 578 +#define FRONTIER_MON_MAROWAK_3 579 +#define FRONTIER_MON_QUAGSIRE_3 580 +#define FRONTIER_MON_CLEFABLE_3 581 +#define FRONTIER_MON_HARIYAMA_3 582 +#define FRONTIER_MON_RAICHU_3 583 +#define FRONTIER_MON_DEWGONG_3 584 +#define FRONTIER_MON_MANECTRIC_3 585 +#define FRONTIER_MON_VILEPLUME_3 586 +#define FRONTIER_MON_VICTREEBEL_3 587 +#define FRONTIER_MON_ELECTRODE_3 588 +#define FRONTIER_MON_EXPLOUD_3 589 +#define FRONTIER_MON_SHIFTRY_3 590 +#define FRONTIER_MON_GLALIE_3 591 +#define FRONTIER_MON_LUDICOLO_3 592 +#define FRONTIER_MON_HYPNO_3 593 +#define FRONTIER_MON_GOLEM_3 594 +#define FRONTIER_MON_RHYDON_3 595 +#define FRONTIER_MON_ALAKAZAM_3 596 +#define FRONTIER_MON_WEEZING_3 597 +#define FRONTIER_MON_KANGASKHAN_3 598 +#define FRONTIER_MON_ELECTABUZZ_3 599 +#define FRONTIER_MON_TAUROS_3 600 +#define FRONTIER_MON_SLOWBRO_3 601 +#define FRONTIER_MON_SLOWKING_3 602 +#define FRONTIER_MON_MILTANK_3 603 +#define FRONTIER_MON_ALTARIA_3 604 +#define FRONTIER_MON_NIDOQUEEN_3 605 +#define FRONTIER_MON_NIDOKING_3 606 +#define FRONTIER_MON_MAGMAR_3 607 +#define FRONTIER_MON_CRADILY_3 608 +#define FRONTIER_MON_ARMALDO_3 609 +#define FRONTIER_MON_GOLDUCK_3 610 +#define FRONTIER_MON_RAPIDASH_3 611 +#define FRONTIER_MON_MUK_3 612 +#define FRONTIER_MON_GENGAR_3 613 +#define FRONTIER_MON_AMPHAROS_3 614 +#define FRONTIER_MON_SCIZOR_3 615 +#define FRONTIER_MON_HERACROSS_3 616 +#define FRONTIER_MON_URSARING_3 617 +#define FRONTIER_MON_HOUNDOOM_3 618 +#define FRONTIER_MON_DONPHAN_3 619 +#define FRONTIER_MON_CLAYDOL_3 620 +#define FRONTIER_MON_WAILORD_3 621 +#define FRONTIER_MON_NINETALES_3 622 +#define FRONTIER_MON_MACHAMP_3 623 +#define FRONTIER_MON_SHUCKLE_3 624 +#define FRONTIER_MON_STEELIX_3 625 +#define FRONTIER_MON_TENTACRUEL_3 626 +#define FRONTIER_MON_AERODACTYL_3 627 +#define FRONTIER_MON_PORYGON2_3 628 +#define FRONTIER_MON_GARDEVOIR_3 629 +#define FRONTIER_MON_EXEGGUTOR_3 630 +#define FRONTIER_MON_STARMIE_3 631 +#define FRONTIER_MON_FLYGON_3 632 +#define FRONTIER_MON_VENUSAUR_3 633 +#define FRONTIER_MON_VAPOREON_3 634 +#define FRONTIER_MON_JOLTEON_3 635 +#define FRONTIER_MON_FLAREON_3 636 +#define FRONTIER_MON_MEGANIUM_3 637 +#define FRONTIER_MON_ESPEON_3 638 +#define FRONTIER_MON_UMBREON_3 639 +#define FRONTIER_MON_BLASTOISE_3 640 +#define FRONTIER_MON_FERALIGATR_3 641 +#define FRONTIER_MON_AGGRON_3 642 +#define FRONTIER_MON_BLAZIKEN_3 643 +#define FRONTIER_MON_WALREIN_3 644 +#define FRONTIER_MON_SCEPTILE_3 645 +#define FRONTIER_MON_CHARIZARD_3 646 +#define FRONTIER_MON_TYPHLOSION_3 647 +#define FRONTIER_MON_LAPRAS_3 648 +#define FRONTIER_MON_CROBAT_3 649 +#define FRONTIER_MON_SWAMPERT_3 650 +#define FRONTIER_MON_GYARADOS_3 651 +#define FRONTIER_MON_SNORLAX_3 652 +#define FRONTIER_MON_KINGDRA_3 653 +#define FRONTIER_MON_BLISSEY_3 654 +#define FRONTIER_MON_MILOTIC_3 655 +#define FRONTIER_MON_ARCANINE_3 656 +#define FRONTIER_MON_SALAMENCE_3 657 +#define FRONTIER_MON_METAGROSS_3 658 +#define FRONTIER_MON_SLAKING_3 659 + +#define FRONTIER_MON_DUGTRIO_4 660 +#define FRONTIER_MON_MEDICHAM_4 661 +#define FRONTIER_MON_MISDREAVUS_4 662 +#define FRONTIER_MON_FEAROW_4 663 +#define FRONTIER_MON_GRANBULL_4 664 +#define FRONTIER_MON_JYNX_4 665 +#define FRONTIER_MON_DUSCLOPS_4 666 +#define FRONTIER_MON_DODRIO_4 667 +#define FRONTIER_MON_MR_MIME_4 668 +#define FRONTIER_MON_LANTURN_4 669 +#define FRONTIER_MON_BRELOOM_4 670 +#define FRONTIER_MON_FORRETRESS_4 671 +#define FRONTIER_MON_WHISCASH_4 672 +#define FRONTIER_MON_XATU_4 673 +#define FRONTIER_MON_SKARMORY_4 674 +#define FRONTIER_MON_MAROWAK_4 675 +#define FRONTIER_MON_QUAGSIRE_4 676 +#define FRONTIER_MON_CLEFABLE_4 677 +#define FRONTIER_MON_HARIYAMA_4 678 +#define FRONTIER_MON_RAICHU_4 679 +#define FRONTIER_MON_DEWGONG_4 680 +#define FRONTIER_MON_MANECTRIC_4 681 +#define FRONTIER_MON_VILEPLUME_4 682 +#define FRONTIER_MON_VICTREEBEL_4 683 +#define FRONTIER_MON_ELECTRODE_4 684 +#define FRONTIER_MON_EXPLOUD_4 685 +#define FRONTIER_MON_SHIFTRY_4 686 +#define FRONTIER_MON_GLALIE_4 687 +#define FRONTIER_MON_LUDICOLO_4 688 +#define FRONTIER_MON_HYPNO_4 689 +#define FRONTIER_MON_GOLEM_4 690 +#define FRONTIER_MON_RHYDON_4 691 +#define FRONTIER_MON_ALAKAZAM_4 692 +#define FRONTIER_MON_WEEZING_4 693 +#define FRONTIER_MON_KANGASKHAN_4 694 +#define FRONTIER_MON_ELECTABUZZ_4 695 +#define FRONTIER_MON_TAUROS_4 696 +#define FRONTIER_MON_SLOWBRO_4 697 +#define FRONTIER_MON_SLOWKING_4 698 +#define FRONTIER_MON_MILTANK_4 699 +#define FRONTIER_MON_ALTARIA_4 700 +#define FRONTIER_MON_NIDOQUEEN_4 701 +#define FRONTIER_MON_NIDOKING_4 702 +#define FRONTIER_MON_MAGMAR_4 703 +#define FRONTIER_MON_CRADILY_4 704 +#define FRONTIER_MON_ARMALDO_4 705 +#define FRONTIER_MON_GOLDUCK_4 706 +#define FRONTIER_MON_RAPIDASH_4 707 +#define FRONTIER_MON_MUK_4 708 +#define FRONTIER_MON_GENGAR_4 709 +#define FRONTIER_MON_AMPHAROS_4 710 +#define FRONTIER_MON_SCIZOR_4 711 +#define FRONTIER_MON_HERACROSS_4 712 +#define FRONTIER_MON_URSARING_4 713 +#define FRONTIER_MON_HOUNDOOM_4 714 +#define FRONTIER_MON_DONPHAN_4 715 +#define FRONTIER_MON_CLAYDOL_4 716 +#define FRONTIER_MON_WAILORD_4 717 +#define FRONTIER_MON_NINETALES_4 718 +#define FRONTIER_MON_MACHAMP_4 719 +#define FRONTIER_MON_SHUCKLE_4 720 +#define FRONTIER_MON_STEELIX_4 721 +#define FRONTIER_MON_TENTACRUEL_4 722 +#define FRONTIER_MON_AERODACTYL_4 723 +#define FRONTIER_MON_PORYGON2_4 724 +#define FRONTIER_MON_GARDEVOIR_4 725 +#define FRONTIER_MON_EXEGGUTOR_4 726 +#define FRONTIER_MON_STARMIE_4 727 +#define FRONTIER_MON_FLYGON_4 728 +#define FRONTIER_MON_VENUSAUR_4 729 +#define FRONTIER_MON_VAPOREON_4 730 +#define FRONTIER_MON_JOLTEON_4 731 +#define FRONTIER_MON_FLAREON_4 732 +#define FRONTIER_MON_MEGANIUM_4 733 +#define FRONTIER_MON_ESPEON_4 734 +#define FRONTIER_MON_UMBREON_4 735 +#define FRONTIER_MON_BLASTOISE_4 736 +#define FRONTIER_MON_FERALIGATR_4 737 +#define FRONTIER_MON_AGGRON_4 738 +#define FRONTIER_MON_BLAZIKEN_4 739 +#define FRONTIER_MON_WALREIN_4 740 +#define FRONTIER_MON_SCEPTILE_4 741 +#define FRONTIER_MON_CHARIZARD_4 742 +#define FRONTIER_MON_TYPHLOSION_4 743 +#define FRONTIER_MON_LAPRAS_4 744 +#define FRONTIER_MON_CROBAT_4 745 +#define FRONTIER_MON_SWAMPERT_4 746 +#define FRONTIER_MON_GYARADOS_4 747 +#define FRONTIER_MON_SNORLAX_4 748 +#define FRONTIER_MON_KINGDRA_4 749 +#define FRONTIER_MON_BLISSEY_4 750 +#define FRONTIER_MON_MILOTIC_4 751 +#define FRONTIER_MON_ARCANINE_4 752 +#define FRONTIER_MON_SALAMENCE_4 753 +#define FRONTIER_MON_METAGROSS_4 754 +#define FRONTIER_MON_SLAKING_4 755 + +#define FRONTIER_MON_ARTICUNO_1 756 +#define FRONTIER_MON_ZAPDOS_1 757 +#define FRONTIER_MON_MOLTRES_1 758 +#define FRONTIER_MON_RAIKOU_1 759 +#define FRONTIER_MON_ENTEI_1 760 +#define FRONTIER_MON_SUICUNE_1 761 +#define FRONTIER_MON_REGIROCK_1 762 +#define FRONTIER_MON_REGICE_1 763 +#define FRONTIER_MON_REGISTEEL_1 764 +#define FRONTIER_MON_LATIAS_1 765 +#define FRONTIER_MON_LATIOS_1 766 +#define FRONTIER_MON_ARTICUNO_2 767 +#define FRONTIER_MON_ZAPDOS_2 768 +#define FRONTIER_MON_MOLTRES_2 769 +#define FRONTIER_MON_RAIKOU_2 770 +#define FRONTIER_MON_ENTEI_2 771 +#define FRONTIER_MON_SUICUNE_2 772 +#define FRONTIER_MON_REGIROCK_2 773 +#define FRONTIER_MON_REGICE_2 774 +#define FRONTIER_MON_REGISTEEL_2 775 +#define FRONTIER_MON_LATIAS_2 776 +#define FRONTIER_MON_LATIOS_2 777 +#define FRONTIER_MON_ARTICUNO_3 778 +#define FRONTIER_MON_ZAPDOS_3 779 +#define FRONTIER_MON_MOLTRES_3 780 +#define FRONTIER_MON_RAIKOU_3 781 +#define FRONTIER_MON_ENTEI_3 782 +#define FRONTIER_MON_SUICUNE_3 783 +#define FRONTIER_MON_REGIROCK_3 784 +#define FRONTIER_MON_REGICE_3 785 +#define FRONTIER_MON_REGISTEEL_3 786 +#define FRONTIER_MON_LATIAS_3 787 +#define FRONTIER_MON_LATIOS_3 788 +#define FRONTIER_MON_ARTICUNO_4 789 +#define FRONTIER_MON_ZAPDOS_4 790 +#define FRONTIER_MON_MOLTRES_4 791 +#define FRONTIER_MON_RAIKOU_4 792 +#define FRONTIER_MON_ENTEI_4 793 +#define FRONTIER_MON_SUICUNE_4 794 +#define FRONTIER_MON_REGIROCK_4 795 +#define FRONTIER_MON_REGICE_4 796 +#define FRONTIER_MON_REGISTEEL_4 797 +#define FRONTIER_MON_LATIAS_4 798 +#define FRONTIER_MON_LATIOS_4 799 +#define FRONTIER_MON_GENGAR_5 800 +#define FRONTIER_MON_GENGAR_6 801 +#define FRONTIER_MON_GENGAR_7 802 +#define FRONTIER_MON_GENGAR_8 803 +#define FRONTIER_MON_URSARING_5 804 +#define FRONTIER_MON_URSARING_6 805 +#define FRONTIER_MON_URSARING_7 806 +#define FRONTIER_MON_URSARING_8 807 +#define FRONTIER_MON_MACHAMP_5 808 +#define FRONTIER_MON_MACHAMP_6 809 +#define FRONTIER_MON_MACHAMP_7 810 +#define FRONTIER_MON_MACHAMP_8 811 +#define FRONTIER_MON_GARDEVOIR_5 812 +#define FRONTIER_MON_GARDEVOIR_6 813 +#define FRONTIER_MON_GARDEVOIR_7 814 +#define FRONTIER_MON_GARDEVOIR_8 815 +#define FRONTIER_MON_STARMIE_5 816 +#define FRONTIER_MON_STARMIE_6 817 +#define FRONTIER_MON_STARMIE_7 818 +#define FRONTIER_MON_STARMIE_8 819 +#define FRONTIER_MON_LAPRAS_5 820 +#define FRONTIER_MON_LAPRAS_6 821 +#define FRONTIER_MON_LAPRAS_7 822 +#define FRONTIER_MON_LAPRAS_8 823 +#define FRONTIER_MON_SNORLAX_5 824 +#define FRONTIER_MON_SNORLAX_6 825 +#define FRONTIER_MON_SNORLAX_7 826 +#define FRONTIER_MON_SNORLAX_8 827 +#define FRONTIER_MON_SALAMENCE_5 828 +#define FRONTIER_MON_SALAMENCE_6 829 +#define FRONTIER_MON_SALAMENCE_7 830 +#define FRONTIER_MON_SALAMENCE_8 831 +#define FRONTIER_MON_METAGROSS_5 832 +#define FRONTIER_MON_METAGROSS_6 833 +#define FRONTIER_MON_METAGROSS_7 834 +#define FRONTIER_MON_METAGROSS_8 835 +#define FRONTIER_MON_REGIROCK_5 836 +#define FRONTIER_MON_REGIROCK_6 837 +#define FRONTIER_MON_REGICE_5 838 +#define FRONTIER_MON_REGICE_6 839 +#define FRONTIER_MON_REGISTEEL_5 840 +#define FRONTIER_MON_REGISTEEL_6 841 +#define FRONTIER_MON_LATIAS_5 842 +#define FRONTIER_MON_LATIAS_6 843 +#define FRONTIER_MON_LATIAS_7 844 +#define FRONTIER_MON_LATIAS_8 845 +#define FRONTIER_MON_LATIOS_5 846 +#define FRONTIER_MON_LATIOS_6 847 +#define FRONTIER_MON_LATIOS_7 848 +#define FRONTIER_MON_LATIOS_8 849 + +#define FRONTIER_MONS_HIGH_TIER 849 // Mons above this point can only appear > level 50 + +#define FRONTIER_MON_DRAGONITE_1 850 +#define FRONTIER_MON_DRAGONITE_2 851 +#define FRONTIER_MON_DRAGONITE_3 852 +#define FRONTIER_MON_DRAGONITE_4 853 +#define FRONTIER_MON_DRAGONITE_5 854 +#define FRONTIER_MON_DRAGONITE_6 855 +#define FRONTIER_MON_DRAGONITE_7 856 +#define FRONTIER_MON_DRAGONITE_8 857 +#define FRONTIER_MON_DRAGONITE_9 858 +#define FRONTIER_MON_DRAGONITE_10 859 +#define FRONTIER_MON_TYRANITAR_1 860 +#define FRONTIER_MON_TYRANITAR_2 861 +#define FRONTIER_MON_TYRANITAR_3 862 +#define FRONTIER_MON_TYRANITAR_4 863 +#define FRONTIER_MON_TYRANITAR_5 864 +#define FRONTIER_MON_TYRANITAR_6 865 +#define FRONTIER_MON_TYRANITAR_7 866 +#define FRONTIER_MON_TYRANITAR_8 867 +#define FRONTIER_MON_TYRANITAR_9 868 +#define FRONTIER_MON_TYRANITAR_10 869 +#define FRONTIER_MON_ARTICUNO_5 870 +#define FRONTIER_MON_ARTICUNO_6 871 +#define FRONTIER_MON_ZAPDOS_5 872 +#define FRONTIER_MON_ZAPDOS_6 873 +#define FRONTIER_MON_MOLTRES_5 874 +#define FRONTIER_MON_MOLTRES_6 875 +#define FRONTIER_MON_RAIKOU_5 876 +#define FRONTIER_MON_RAIKOU_6 877 +#define FRONTIER_MON_ENTEI_5 878 +#define FRONTIER_MON_ENTEI_6 879 +#define FRONTIER_MON_SUICUNE_5 880 +#define FRONTIER_MON_SUICUNE_6 881 + +#define NUM_FRONTIER_MONS 882 + +#endif //GUARD_CONSTANTS_BATTLE_FRONTIER_MONS_H diff --git a/include/constants/battle_frontier_trainers.h b/include/constants/battle_frontier_trainers.h new file mode 100644 index 000000000000..2914b153fac0 --- /dev/null +++ b/include/constants/battle_frontier_trainers.h @@ -0,0 +1,309 @@ +#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H +#define GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H + +#define FRONTIER_TRAINER_BRADY 0 +#define FRONTIER_TRAINER_CONNER 1 +#define FRONTIER_TRAINER_BRADLEY 2 +#define FRONTIER_TRAINER_CYBIL 3 +#define FRONTIER_TRAINER_RODETTE 4 +#define FRONTIER_TRAINER_PEGGY 5 +#define FRONTIER_TRAINER_KEITH 6 +#define FRONTIER_TRAINER_GRAYSON 7 +#define FRONTIER_TRAINER_GLENN 8 +#define FRONTIER_TRAINER_LILIANA 9 +#define FRONTIER_TRAINER_ELISE 10 +#define FRONTIER_TRAINER_ZOEY 11 +#define FRONTIER_TRAINER_MANUEL 12 +#define FRONTIER_TRAINER_RUSS 13 +#define FRONTIER_TRAINER_DUSTIN 14 +#define FRONTIER_TRAINER_TINA 15 +#define FRONTIER_TRAINER_GILLIAN1 16 +#define FRONTIER_TRAINER_ZOE 17 +#define FRONTIER_TRAINER_CHEN 18 +#define FRONTIER_TRAINER_AL 19 +#define FRONTIER_TRAINER_MITCH 20 +#define FRONTIER_TRAINER_ANNE 21 +#define FRONTIER_TRAINER_ALIZE 22 +#define FRONTIER_TRAINER_LAUREN 23 +#define FRONTIER_TRAINER_KIPP 24 +#define FRONTIER_TRAINER_JASON 25 +#define FRONTIER_TRAINER_JOHN 26 +#define FRONTIER_TRAINER_ANN 27 +#define FRONTIER_TRAINER_EILEEN 28 +#define FRONTIER_TRAINER_CARLIE 29 +#define FRONTIER_TRAINER_GORDON 30 +#define FRONTIER_TRAINER_AYDEN 31 +#define FRONTIER_TRAINER_MARCO 32 +#define FRONTIER_TRAINER_CIERRA 33 +#define FRONTIER_TRAINER_MARCY 34 +#define FRONTIER_TRAINER_KATHY 35 +#define FRONTIER_TRAINER_PEYTON 36 +#define FRONTIER_TRAINER_JULIAN 37 +#define FRONTIER_TRAINER_QUINN 38 +#define FRONTIER_TRAINER_HAYLEE 39 +#define FRONTIER_TRAINER_AMANDA 40 +#define FRONTIER_TRAINER_STACY 41 +#define FRONTIER_TRAINER_RAFAEL 42 +#define FRONTIER_TRAINER_OLIVER 43 +#define FRONTIER_TRAINER_PAYTON 44 +#define FRONTIER_TRAINER_PAMELA 45 +#define FRONTIER_TRAINER_ELIZA 46 +#define FRONTIER_TRAINER_MARISA 47 +#define FRONTIER_TRAINER_LEWIS 48 +#define FRONTIER_TRAINER_YOSHI 49 +#define FRONTIER_TRAINER_DESTIN 50 +#define FRONTIER_TRAINER_KEON 51 +#define FRONTIER_TRAINER_STUART 52 +#define FRONTIER_TRAINER_NESTOR 53 +#define FRONTIER_TRAINER_DERRICK 54 +#define FRONTIER_TRAINER_BRYSON 55 +#define FRONTIER_TRAINER_CLAYTON 56 +#define FRONTIER_TRAINER_TRENTON 57 +#define FRONTIER_TRAINER_JENSON 58 +#define FRONTIER_TRAINER_WESLEY 59 +#define FRONTIER_TRAINER_ANTON 60 +#define FRONTIER_TRAINER_LAWSON 61 +#define FRONTIER_TRAINER_SAMMY 62 +#define FRONTIER_TRAINER_ARNIE 63 +#define FRONTIER_TRAINER_ADRIAN 64 +#define FRONTIER_TRAINER_TRISTAN 65 +#define FRONTIER_TRAINER_JULIANA 66 +#define FRONTIER_TRAINER_RYLEE 67 +#define FRONTIER_TRAINER_CHELSEA 68 +#define FRONTIER_TRAINER_DANELA 69 +#define FRONTIER_TRAINER_LIZBETH 70 +#define FRONTIER_TRAINER_AMELIA 71 +#define FRONTIER_TRAINER_JILLIAN 72 +#define FRONTIER_TRAINER_ABBIE 73 +#define FRONTIER_TRAINER_BRIANA 74 +#define FRONTIER_TRAINER_ANTONIO 75 +#define FRONTIER_TRAINER_JADEN 76 +#define FRONTIER_TRAINER_DAKOTA 77 +#define FRONTIER_TRAINER_BRAYDEN 78 +#define FRONTIER_TRAINER_CORSON 79 +#define FRONTIER_TRAINER_TREVIN 80 +#define FRONTIER_TRAINER_PATRICK 81 +#define FRONTIER_TRAINER_KADEN 82 +#define FRONTIER_TRAINER_MAXWELL 83 +#define FRONTIER_TRAINER_DARYL 84 +#define FRONTIER_TRAINER_KENNETH 85 +#define FRONTIER_TRAINER_RICH 86 +#define FRONTIER_TRAINER_CADEN 87 +#define FRONTIER_TRAINER_MARLON 88 +#define FRONTIER_TRAINER_NASH 89 +#define FRONTIER_TRAINER_ROBBY 90 +#define FRONTIER_TRAINER_REECE 91 +#define FRONTIER_TRAINER_KATHRYN 92 +#define FRONTIER_TRAINER_ELLEN 93 +#define FRONTIER_TRAINER_RAMON 94 +#define FRONTIER_TRAINER_ARTHUR 95 +#define FRONTIER_TRAINER_ALONDRA 96 +#define FRONTIER_TRAINER_ADRIANA 97 +#define FRONTIER_TRAINER_MALIK 98 +#define FRONTIER_TRAINER_JILL 99 +#define FRONTIER_TRAINER_ERIK 100 +#define FRONTIER_TRAINER_YAZMIN 101 +#define FRONTIER_TRAINER_JAMAL 102 +#define FRONTIER_TRAINER_LESLIE 103 +#define FRONTIER_TRAINER_DAVE 104 +#define FRONTIER_TRAINER_CARLO 105 +#define FRONTIER_TRAINER_EMILIA 106 +#define FRONTIER_TRAINER_DALIA 107 +#define FRONTIER_TRAINER_HITOMI 108 +#define FRONTIER_TRAINER_RICARDO 109 +#define FRONTIER_TRAINER_SHIZUKA 110 +#define FRONTIER_TRAINER_JOANA 111 +#define FRONTIER_TRAINER_KELLY 112 +#define FRONTIER_TRAINER_RAYNA 113 +#define FRONTIER_TRAINER_EVAN 114 +#define FRONTIER_TRAINER_JORDAN 115 +#define FRONTIER_TRAINER_JOEL 116 +#define FRONTIER_TRAINER_KRISTEN 117 +#define FRONTIER_TRAINER_SELPHY 118 +#define FRONTIER_TRAINER_CHLOE 119 +#define FRONTIER_TRAINER_NORTON 120 +#define FRONTIER_TRAINER_LUKAS 121 +#define FRONTIER_TRAINER_ZACH 122 +#define FRONTIER_TRAINER_KAITLYN 123 +#define FRONTIER_TRAINER_BREANNA 124 +#define FRONTIER_TRAINER_KENDRA 125 +#define FRONTIER_TRAINER_MOLLY 126 +#define FRONTIER_TRAINER_JAZMIN 127 +#define FRONTIER_TRAINER_KELSEY 128 +#define FRONTIER_TRAINER_JALEN 129 +#define FRONTIER_TRAINER_GRIFFEN 130 +#define FRONTIER_TRAINER_XANDER 131 +#define FRONTIER_TRAINER_MARVIN 132 +#define FRONTIER_TRAINER_BRENNAN 133 +#define FRONTIER_TRAINER_BALEY 134 +#define FRONTIER_TRAINER_ZACKARY 135 +#define FRONTIER_TRAINER_GABRIEL 136 +#define FRONTIER_TRAINER_EMILY 137 +#define FRONTIER_TRAINER_JORDYN 138 +#define FRONTIER_TRAINER_SOFIA 139 +#define FRONTIER_TRAINER_BRADEN 140 +#define FRONTIER_TRAINER_KAYDEN 141 +#define FRONTIER_TRAINER_COOPER 142 +#define FRONTIER_TRAINER_JULIA 143 +#define FRONTIER_TRAINER_AMARA 144 +#define FRONTIER_TRAINER_LYNN 145 +#define FRONTIER_TRAINER_JOVAN 146 +#define FRONTIER_TRAINER_DOMINIC 147 +#define FRONTIER_TRAINER_NIKOLAS 148 +#define FRONTIER_TRAINER_VALERIA 149 +#define FRONTIER_TRAINER_DELANEY 150 +#define FRONTIER_TRAINER_MEGHAN 151 +#define FRONTIER_TRAINER_ROBERTO 152 +#define FRONTIER_TRAINER_DAMIAN 153 +#define FRONTIER_TRAINER_BRODY 154 +#define FRONTIER_TRAINER_GRAHAM 155 +#define FRONTIER_TRAINER_TYLOR 156 +#define FRONTIER_TRAINER_JAREN 157 +#define FRONTIER_TRAINER_CORDELL 158 +#define FRONTIER_TRAINER_JAZLYN 159 +#define FRONTIER_TRAINER_ZACHERY 160 +#define FRONTIER_TRAINER_JOHAN 161 +#define FRONTIER_TRAINER_SHEA 162 +#define FRONTIER_TRAINER_KAILA 163 +#define FRONTIER_TRAINER_ISIAH 164 +#define FRONTIER_TRAINER_GARRETT 165 +#define FRONTIER_TRAINER_HAYLIE 166 +#define FRONTIER_TRAINER_MEGAN 167 +#define FRONTIER_TRAINER_ISSAC 168 +#define FRONTIER_TRAINER_QUINTON 169 +#define FRONTIER_TRAINER_SALMA 170 +#define FRONTIER_TRAINER_ANSLEY 171 +#define FRONTIER_TRAINER_HOLDEN 172 +#define FRONTIER_TRAINER_LUCA 173 +#define FRONTIER_TRAINER_JAMISON 174 +#define FRONTIER_TRAINER_GUNNAR 175 +#define FRONTIER_TRAINER_CRAIG 176 +#define FRONTIER_TRAINER_PIERCE 177 +#define FRONTIER_TRAINER_REGINA 178 +#define FRONTIER_TRAINER_ALISON 179 +#define FRONTIER_TRAINER_HANK 180 +#define FRONTIER_TRAINER_EARL 181 +#define FRONTIER_TRAINER_RAMIRO 182 +#define FRONTIER_TRAINER_HUNTER 183 +#define FRONTIER_TRAINER_AIDEN 184 +#define FRONTIER_TRAINER_XAVIER 185 +#define FRONTIER_TRAINER_CLINTON 186 +#define FRONTIER_TRAINER_JESSE 187 +#define FRONTIER_TRAINER_EDUARDO 188 +#define FRONTIER_TRAINER_HAL 189 +#define FRONTIER_TRAINER_GAGE 190 +#define FRONTIER_TRAINER_ARNOLD 191 +#define FRONTIER_TRAINER_JARRETT 192 +#define FRONTIER_TRAINER_GARETT 193 +#define FRONTIER_TRAINER_EMANUEL 194 +#define FRONTIER_TRAINER_GUSTAVO 195 +#define FRONTIER_TRAINER_KAMERON 196 +#define FRONTIER_TRAINER_ALFREDO 197 +#define FRONTIER_TRAINER_RUBEN 198 +#define FRONTIER_TRAINER_LAMAR 199 +#define FRONTIER_TRAINER_JAXON 200 +#define FRONTIER_TRAINER_LOGAN 201 +#define FRONTIER_TRAINER_EMILEE 202 +#define FRONTIER_TRAINER_JOSIE 203 +#define FRONTIER_TRAINER_ARMANDO 204 +#define FRONTIER_TRAINER_SKYLER 205 +#define FRONTIER_TRAINER_RUTH 206 +#define FRONTIER_TRAINER_MELODY 207 +#define FRONTIER_TRAINER_PEDRO 208 +#define FRONTIER_TRAINER_ERICK 209 +#define FRONTIER_TRAINER_ELAINE 210 +#define FRONTIER_TRAINER_JOYCE 211 +#define FRONTIER_TRAINER_TODD 212 +#define FRONTIER_TRAINER_GAVIN 213 +#define FRONTIER_TRAINER_MALORY 214 +#define FRONTIER_TRAINER_ESTHER 215 +#define FRONTIER_TRAINER_OSCAR 216 +#define FRONTIER_TRAINER_WILSON 217 +#define FRONTIER_TRAINER_CLARE 218 +#define FRONTIER_TRAINER_TESS 219 +#define FRONTIER_TRAINER_LEON 220 +#define FRONTIER_TRAINER_ALONZO 221 +#define FRONTIER_TRAINER_VINCE 222 +#define FRONTIER_TRAINER_BRYON 223 +#define FRONTIER_TRAINER_AVA 224 +#define FRONTIER_TRAINER_MIRIAM 225 +#define FRONTIER_TRAINER_CARRIE 226 +#define FRONTIER_TRAINER_GILLIAN2 227 +#define FRONTIER_TRAINER_TYLER 228 +#define FRONTIER_TRAINER_CHAZ 229 +#define FRONTIER_TRAINER_NELSON 230 +#define FRONTIER_TRAINER_SHANIA 231 +#define FRONTIER_TRAINER_STELLA 232 +#define FRONTIER_TRAINER_DORINE 233 +#define FRONTIER_TRAINER_MADDOX 234 +#define FRONTIER_TRAINER_DAVIN 235 +#define FRONTIER_TRAINER_TREVON 236 +#define FRONTIER_TRAINER_MATEO 237 +#define FRONTIER_TRAINER_BRET 238 +#define FRONTIER_TRAINER_RAUL 239 +#define FRONTIER_TRAINER_KAY 240 +#define FRONTIER_TRAINER_ELENA 241 +#define FRONTIER_TRAINER_ALANA 242 +#define FRONTIER_TRAINER_ALEXAS 243 +#define FRONTIER_TRAINER_WESTON 244 +#define FRONTIER_TRAINER_JASPER 245 +#define FRONTIER_TRAINER_NADIA 246 +#define FRONTIER_TRAINER_MIRANDA 247 +#define FRONTIER_TRAINER_EMMA 248 +#define FRONTIER_TRAINER_ROLANDO 249 +#define FRONTIER_TRAINER_STANLY 250 +#define FRONTIER_TRAINER_DARIO 251 +#define FRONTIER_TRAINER_KARLEE 252 +#define FRONTIER_TRAINER_JAYLIN 253 +#define FRONTIER_TRAINER_INGRID 254 +#define FRONTIER_TRAINER_DELILAH 255 +#define FRONTIER_TRAINER_CARLY 256 +#define FRONTIER_TRAINER_LEXIE 257 +#define FRONTIER_TRAINER_MILLER 258 +#define FRONTIER_TRAINER_MARV 259 +#define FRONTIER_TRAINER_LAYTON 260 +#define FRONTIER_TRAINER_BROOKS 261 +#define FRONTIER_TRAINER_GREGORY 262 +#define FRONTIER_TRAINER_REESE 263 +#define FRONTIER_TRAINER_MASON 264 +#define FRONTIER_TRAINER_TOBY 265 +#define FRONTIER_TRAINER_DOROTHY 266 +#define FRONTIER_TRAINER_PIPER 267 +#define FRONTIER_TRAINER_FINN 268 +#define FRONTIER_TRAINER_SAMIR 269 +#define FRONTIER_TRAINER_FIONA 270 +#define FRONTIER_TRAINER_GLORIA 271 +#define FRONTIER_TRAINER_NICO 272 +#define FRONTIER_TRAINER_JEREMY 273 +#define FRONTIER_TRAINER_CAITLIN 274 +#define FRONTIER_TRAINER_REENA 275 +#define FRONTIER_TRAINER_AVERY 276 +#define FRONTIER_TRAINER_LIAM 277 +#define FRONTIER_TRAINER_THEO 278 +#define FRONTIER_TRAINER_BAILEY 279 +#define FRONTIER_TRAINER_HUGO 280 +#define FRONTIER_TRAINER_BRYCE 281 +#define FRONTIER_TRAINER_GIDEON 282 +#define FRONTIER_TRAINER_TRISTON 283 +#define FRONTIER_TRAINER_CHARLES 284 +#define FRONTIER_TRAINER_RAYMOND 285 +#define FRONTIER_TRAINER_DIRK 286 +#define FRONTIER_TRAINER_HAROLD 287 +#define FRONTIER_TRAINER_OMAR 288 +#define FRONTIER_TRAINER_PETER 289 +#define FRONTIER_TRAINER_DEV 290 +#define FRONTIER_TRAINER_COREY 291 +#define FRONTIER_TRAINER_ANDRE 292 +#define FRONTIER_TRAINER_FERRIS 293 +#define FRONTIER_TRAINER_ALIVIA 294 +#define FRONTIER_TRAINER_PAIGE 295 +#define FRONTIER_TRAINER_ANYA 296 +#define FRONTIER_TRAINER_DAWN 297 +#define FRONTIER_TRAINER_ABBY 298 +#define FRONTIER_TRAINER_GRETEL 299 + +#define FRONTIER_TRAINERS_COUNT 300 + +// special trainer IDs begin at 300, see constants/trainers.h + +#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_TRAINERS_H diff --git a/include/constants/battle_tent_mons.h b/include/constants/battle_tent_mons.h new file mode 100644 index 000000000000..d9fc89a20bf8 --- /dev/null +++ b/include/constants/battle_tent_mons.h @@ -0,0 +1,173 @@ +#ifndef GUARD_CONSTANTS_BATTLE_TENT_MONS_H +#define GUARD_CONSTANTS_BATTLE_TENT_MONS_H + +#define SLATEPORT_TENT_MON_ZIGZAGOON_1 0 +#define SLATEPORT_TENT_MON_ZIGZAGOON_2 1 +#define SLATEPORT_TENT_MON_BEAUTIFLY 2 +#define SLATEPORT_TENT_MON_DUSTOX 3 +#define SLATEPORT_TENT_MON_WAILMER_1 4 +#define SLATEPORT_TENT_MON_WAILMER_2 5 +#define SLATEPORT_TENT_MON_MARILL_1 6 +#define SLATEPORT_TENT_MON_WINGULL_1 7 +#define SLATEPORT_TENT_MON_PELIPPER_1 8 +#define SLATEPORT_TENT_MON_CACNEA_1 9 +#define SLATEPORT_TENT_MON_LOMBRE_1 10 +#define SLATEPORT_TENT_MON_LOTAD 11 +#define SLATEPORT_TENT_MON_SEEDOT 12 +#define SLATEPORT_TENT_MON_NUZLEAF 13 +#define SLATEPORT_TENT_MON_NINJASK_1 14 +#define SLATEPORT_TENT_MON_NINJASK_2 15 +#define SLATEPORT_TENT_MON_GRAVELER 16 +#define SLATEPORT_TENT_MON_BALTOY 17 +#define SLATEPORT_TENT_MON_MIGHTYENA_1 18 +#define SLATEPORT_TENT_MON_MIGHTYENA_2 19 +#define SLATEPORT_TENT_MON_LINOONE 20 +#define SLATEPORT_TENT_MON_GOLDEEN 21 +#define SLATEPORT_TENT_MON_ELECTRIKE_1 22 +#define SLATEPORT_TENT_MON_VOLTORB 23 +#define SLATEPORT_TENT_MON_ARON_1 24 +#define SLATEPORT_TENT_MON_ARON_2 25 +#define SLATEPORT_TENT_MON_TRAPINCH_1 26 +#define SLATEPORT_TENT_MON_CACNEA_2 27 +#define SLATEPORT_TENT_MON_TAILLOW 28 +#define SLATEPORT_TENT_MON_SWELLOW 29 +#define SLATEPORT_TENT_MON_GOLBAT_1 30 +#define SLATEPORT_TENT_MON_LOUDRED 31 +#define SLATEPORT_TENT_MON_SPINDA 32 +#define SLATEPORT_TENT_MON_MAGNEMITE 33 +#define SLATEPORT_TENT_MON_WHISMUR 34 +#define SLATEPORT_TENT_MON_MAKUHITA 35 +#define SLATEPORT_TENT_MON_NUMEL_1 36 +#define SLATEPORT_TENT_MON_BARBOACH 37 +#define SLATEPORT_TENT_MON_TENTACOOL 38 +#define SLATEPORT_TENT_MON_VIGOROTH 39 +#define SLATEPORT_TENT_MON_MAGIKARP 40 +#define SLATEPORT_TENT_MON_SEVIPER_1 41 +#define SLATEPORT_TENT_MON_SOLROCK 42 +#define SLATEPORT_TENT_MON_KECLEON_1 43 +#define SLATEPORT_TENT_MON_KECLEON_2 44 +#define SLATEPORT_TENT_MON_SHROOMISH_1 45 +#define SLATEPORT_TENT_MON_SHROOMISH_2 46 +#define SLATEPORT_TENT_MON_LOMBRE_2 47 +#define SLATEPORT_TENT_MON_NUMEL_2 48 +#define SLATEPORT_TENT_MON_TRAPINCH_2 49 +#define SLATEPORT_TENT_MON_PELIPPER_2 50 +#define SLATEPORT_TENT_MON_WINGULL_2 51 +#define SLATEPORT_TENT_MON_MARILL_2 52 +#define SLATEPORT_TENT_MON_SKITTY 53 +#define SLATEPORT_TENT_MON_SEVIPER_2 54 +#define SLATEPORT_TENT_MON_GOLBAT_2 55 +#define SLATEPORT_TENT_MON_RALTS 56 +#define SLATEPORT_TENT_MON_SANDSHREW 57 +#define SLATEPORT_TENT_MON_SWALOT 58 +#define SLATEPORT_TENT_MON_VOLBEAT 59 +#define SLATEPORT_TENT_MON_ILLUMISE 60 +#define SLATEPORT_TENT_MON_KADABRA 61 +#define SLATEPORT_TENT_MON_KIRLIA 62 +#define SLATEPORT_TENT_MON_BRELOOM 63 +#define SLATEPORT_TENT_MON_PLUSLE_1 64 +#define SLATEPORT_TENT_MON_PLUSLE_2 65 +#define SLATEPORT_TENT_MON_ELECTRIKE_2 66 +#define SLATEPORT_TENT_MON_SWABLU 67 +#define SLATEPORT_TENT_MON_MACHOP 68 +#define SLATEPORT_TENT_MON_MACHOKE 69 + +#define NUM_SLATEPORT_TENT_MONS 70 + +#define VERDANTURF_TENT_MON_POOCHYENA 0 +#define VERDANTURF_TENT_MON_ZIGZAGOON 1 +#define VERDANTURF_TENT_MON_DUSTOX 2 +#define VERDANTURF_TENT_MON_TAILLOW 3 +#define VERDANTURF_TENT_MON_SHROOMISH 4 +#define VERDANTURF_TENT_MON_MACHOP 5 +#define VERDANTURF_TENT_MON_MAGIKARP 6 +#define VERDANTURF_TENT_MON_BARBOACH 7 +#define VERDANTURF_TENT_MON_WINGULL 8 +#define VERDANTURF_TENT_MON_ARON_1 9 +#define VERDANTURF_TENT_MON_NUMEL_1 10 +#define VERDANTURF_TENT_MON_SWALOT 11 +#define VERDANTURF_TENT_MON_KECLEON 12 +#define VERDANTURF_TENT_MON_BALTOY 13 +#define VERDANTURF_TENT_MON_NINJASK 14 +#define VERDANTURF_TENT_MON_MAKUHITA 15 +#define VERDANTURF_TENT_MON_SWABLU 16 +#define VERDANTURF_TENT_MON_GOLDEEN_1 17 +#define VERDANTURF_TENT_MON_LOTAD 18 +#define VERDANTURF_TENT_MON_NUMEL_2 19 +#define VERDANTURF_TENT_MON_LINOONE 20 +#define VERDANTURF_TENT_MON_SEVIPER 21 +#define VERDANTURF_TENT_MON_SKARMORY 22 +#define VERDANTURF_TENT_MON_SWELLOW 23 +#define VERDANTURF_TENT_MON_GOLDEEN_2 24 +#define VERDANTURF_TENT_MON_ELECTRIKE 25 +#define VERDANTURF_TENT_MON_NUZLEAF 26 +#define VERDANTURF_TENT_MON_ARON_2 27 +#define VERDANTURF_TENT_MON_MIGHTYENA 28 +#define VERDANTURF_TENT_MON_SOLROCK 29 +#define VERDANTURF_TENT_MON_GRAVELER 30 +#define VERDANTURF_TENT_MON_KADABRA 31 +#define VERDANTURF_TENT_MON_VOLTORB 32 +#define VERDANTURF_TENT_MON_MAGNEMITE 33 +#define VERDANTURF_TENT_MON_PELIPPER 34 +#define VERDANTURF_TENT_MON_LOUDRED 35 +#define VERDANTURF_TENT_MON_MARILL 36 +#define VERDANTURF_TENT_MON_TRAPINCH 37 +#define VERDANTURF_TENT_MON_TENTACOOL 38 +#define VERDANTURF_TENT_MON_VIGOROTH 39 +#define VERDANTURF_TENT_MON_WAILMER 40 +#define VERDANTURF_TENT_MON_ILLUMISE 41 +#define VERDANTURF_TENT_MON_MACHOKE 42 +#define VERDANTURF_TENT_MON_WHISMUR 43 +#define VERDANTURF_TENT_MON_CACNEA 44 + +#define NUM_VERDANTURF_TENT_MONS 45 + +#define FALLARBOR_TENT_MON_NUMEL 0 +#define FALLARBOR_TENT_MON_LINOONE_1 1 +#define FALLARBOR_TENT_MON_PLUSLE 2 +#define FALLARBOR_TENT_MON_POOCHYENA 3 +#define FALLARBOR_TENT_MON_KECLEON 4 +#define FALLARBOR_TENT_MON_MAGIKARP 5 +#define FALLARBOR_TENT_MON_SOLROCK 6 +#define FALLARBOR_TENT_MON_MAKUHITA 7 +#define FALLARBOR_TENT_MON_MACHOKE 8 +#define FALLARBOR_TENT_MON_NINCADA 9 +#define FALLARBOR_TENT_MON_BEAUTIFLY 10 +#define FALLARBOR_TENT_MON_DUSTOX 11 +#define FALLARBOR_TENT_MON_ILLUMISE 12 +#define FALLARBOR_TENT_MON_VOLBEAT 13 +#define FALLARBOR_TENT_MON_NINJASK_1 14 +#define FALLARBOR_TENT_MON_NINJASK_2 15 +#define FALLARBOR_TENT_MON_ARON_1 16 +#define FALLARBOR_TENT_MON_ARON_2 17 +#define FALLARBOR_TENT_MON_ELECTRIKE 18 +#define FALLARBOR_TENT_MON_MAGNEMITE 19 +#define FALLARBOR_TENT_MON_VOLTORB 20 +#define FALLARBOR_TENT_MON_WHISMUR 21 +#define FALLARBOR_TENT_MON_LOUDRED 22 +#define FALLARBOR_TENT_MON_LINOONE_2 23 +#define FALLARBOR_TENT_MON_MIGHTYENA 24 +#define FALLARBOR_TENT_MON_SWABLU 25 +#define FALLARBOR_TENT_MON_SKARMORY 26 +#define FALLARBOR_TENT_MON_GOLBAT 27 +#define FALLARBOR_TENT_MON_WINGULL 28 +#define FALLARBOR_TENT_MON_PELIPPER 29 +#define FALLARBOR_TENT_MON_BARBOACH 30 +#define FALLARBOR_TENT_MON_WAILMER 31 +#define FALLARBOR_TENT_MON_MARILL 32 +#define FALLARBOR_TENT_MON_GOLDEEN_1 33 +#define FALLARBOR_TENT_MON_GOLDEEN_2 34 +#define FALLARBOR_TENT_MON_TRAPINCH 35 +#define FALLARBOR_TENT_MON_BALTOY 36 +#define FALLARBOR_TENT_MON_GRAVELER 37 +#define FALLARBOR_TENT_MON_SANDSHREW 38 +#define FALLARBOR_TENT_MON_SWALOT 39 +#define FALLARBOR_TENT_MON_SHROOMISH 40 +#define FALLARBOR_TENT_MON_KIRLIA 41 +#define FALLARBOR_TENT_MON_LOMBRE 42 +#define FALLARBOR_TENT_MON_NUZLEAF 43 +#define FALLARBOR_TENT_MON_CACNEA 44 + +#define NUM_FALLARBOR_TENT_MONS 45 + +#endif // GUARD_CONSTANTS_BATTLE_TENT_MONS_H diff --git a/include/constants/battle_tent_trainers.h b/include/constants/battle_tent_trainers.h new file mode 100644 index 000000000000..3629da0ca92a --- /dev/null +++ b/include/constants/battle_tent_trainers.h @@ -0,0 +1,99 @@ +#ifndef GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H +#define GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H + +#define SLATEPORT_TENT_TRAINER_JOLIE 0 +#define SLATEPORT_TENT_TRAINER_MALACHI 1 +#define SLATEPORT_TENT_TRAINER_KELSIE 2 +#define SLATEPORT_TENT_TRAINER_DAVON 3 +#define SLATEPORT_TENT_TRAINER_GLENDA 4 +#define SLATEPORT_TENT_TRAINER_HELENA 5 +#define SLATEPORT_TENT_TRAINER_RODOLFO 6 +#define SLATEPORT_TENT_TRAINER_DAVION 7 +#define SLATEPORT_TENT_TRAINER_KENDALL 8 +#define SLATEPORT_TENT_TRAINER_COLTEN 9 +#define SLATEPORT_TENT_TRAINER_IRVIN 10 +#define SLATEPORT_TENT_TRAINER_SHAUN 11 +#define SLATEPORT_TENT_TRAINER_KYLER 12 +#define SLATEPORT_TENT_TRAINER_MAGGIE 13 +#define SLATEPORT_TENT_TRAINER_STEPHON 14 +#define SLATEPORT_TENT_TRAINER_REBECCA 15 +#define SLATEPORT_TENT_TRAINER_REGGIE 16 +#define SLATEPORT_TENT_TRAINER_JANAE 17 +#define SLATEPORT_TENT_TRAINER_CAIDEN 18 +#define SLATEPORT_TENT_TRAINER_KIRSTEN 19 +#define SLATEPORT_TENT_TRAINER_KURTIS 20 +#define SLATEPORT_TENT_TRAINER_STEFAN 21 +#define SLATEPORT_TENT_TRAINER_AVERY 22 +#define SLATEPORT_TENT_TRAINER_DWANE 23 +#define SLATEPORT_TENT_TRAINER_MCKENNA 24 +#define SLATEPORT_TENT_TRAINER_CAMRYN 25 +#define SLATEPORT_TENT_TRAINER_NATASHA 26 +#define SLATEPORT_TENT_TRAINER_AUSTYN 27 +#define SLATEPORT_TENT_TRAINER_DONOVAN 28 +#define SLATEPORT_TENT_TRAINER_TAMIA 29 + +#define VERDANTURF_TENT_TRAINER_BRENNA 0 +#define VERDANTURF_TENT_TRAINER_DILAN 1 +#define VERDANTURF_TENT_TRAINER_ELIANA 2 +#define VERDANTURF_TENT_TRAINER_MARKUS 3 +#define VERDANTURF_TENT_TRAINER_CAITLYN 4 +#define VERDANTURF_TENT_TRAINER_DESIREE 5 +#define VERDANTURF_TENT_TRAINER_RONALD 6 +#define VERDANTURF_TENT_TRAINER_ASHTEN 7 +#define VERDANTURF_TENT_TRAINER_GERARD 8 +#define VERDANTURF_TENT_TRAINER_BRADLY 9 +#define VERDANTURF_TENT_TRAINER_DENNIS 10 +#define VERDANTURF_TENT_TRAINER_PRESTIN 11 +#define VERDANTURF_TENT_TRAINER_ERNESTO 12 +#define VERDANTURF_TENT_TRAINER_NALA 13 +#define VERDANTURF_TENT_TRAINER_DARNELL 14 +#define VERDANTURF_TENT_TRAINER_ASHLYN 15 +#define VERDANTURF_TENT_TRAINER_ADDISON 16 +#define VERDANTURF_TENT_TRAINER_JUSTINE 17 +#define VERDANTURF_TENT_TRAINER_TYSON 18 +#define VERDANTURF_TENT_TRAINER_LAILA 19 +#define VERDANTURF_TENT_TRAINER_WAREN 20 +#define VERDANTURF_TENT_TRAINER_TOBIAS 21 +#define VERDANTURF_TENT_TRAINER_JOSIAH 22 +#define VERDANTURF_TENT_TRAINER_DION 23 +#define VERDANTURF_TENT_TRAINER_KENZIE 24 +#define VERDANTURF_TENT_TRAINER_LILLIAN 25 +#define VERDANTURF_TENT_TRAINER_LESLEY 26 +#define VERDANTURF_TENT_TRAINER_MARQUIS 27 +#define VERDANTURF_TENT_TRAINER_FREDDY 28 +#define VERDANTURF_TENT_TRAINER_CECILIA 29 + +#define FALLARBOR_TENT_TRAINER_AMBER 0 +#define FALLARBOR_TENT_TRAINER_JAVIER 1 +#define FALLARBOR_TENT_TRAINER_NATALIA 2 +#define FALLARBOR_TENT_TRAINER_TREVE 3 +#define FALLARBOR_TENT_TRAINER_ARIANNA 4 +#define FALLARBOR_TENT_TRAINER_JADYN 5 +#define FALLARBOR_TENT_TRAINER_GERARDO 6 +#define FALLARBOR_TENT_TRAINER_JONN 7 +#define FALLARBOR_TENT_TRAINER_ESTEBAN 8 +#define FALLARBOR_TENT_TRAINER_JAMESON 9 +#define FALLARBOR_TENT_TRAINER_ALANZO 10 +#define FALLARBOR_TENT_TRAINER_HOWARD 11 +#define FALLARBOR_TENT_TRAINER_CONRAD 12 +#define FALLARBOR_TENT_TRAINER_MAKENNA 13 +#define FALLARBOR_TENT_TRAINER_BRAYAN 14 +#define FALLARBOR_TENT_TRAINER_MARIANA 15 +#define FALLARBOR_TENT_TRAINER_SHELDON 16 +#define FALLARBOR_TENT_TRAINER_GIANNA 17 +#define FALLARBOR_TENT_TRAINER_YAHIR 18 +#define FALLARBOR_TENT_TRAINER_BRITNEY 19 +#define FALLARBOR_TENT_TRAINER_HECTER 20 +#define FALLARBOR_TENT_TRAINER_TANNOR 21 +#define FALLARBOR_TENT_TRAINER_BENJI 22 +#define FALLARBOR_TENT_TRAINER_RORY 23 +#define FALLARBOR_TENT_TRAINER_ELEANOR 24 +#define FALLARBOR_TENT_TRAINER_EVELYN 25 +#define FALLARBOR_TENT_TRAINER_ARIELLE 26 +#define FALLARBOR_TENT_TRAINER_CONNAR 27 +#define FALLARBOR_TENT_TRAINER_MAURICE 28 +#define FALLARBOR_TENT_TRAINER_KIANNA 29 + +#define NUM_BATTLE_TENT_TRAINERS 30 + +#endif // GUARD_CONSTANTS_BATTLE_TENT_TRAINERS_H diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 6b5906fed837..360e8f702117 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -240,27 +240,29 @@ #define EVENT_OBJ_GFX_LINK_RS_MAY 236 #define EVENT_OBJ_GFX_LUGIA 237 #define EVENT_OBJ_GFX_HOOH 238 -#define EVENT_OBJ_GFX_BARD_2 239 + +#define NUM_OBJ_EVENT_GFX 239 // These are dynamic object gfx ids. // They correspond with the values of the VAR_OBJ_GFX_ID_X vars. // More info about them in include/constants/vars.h -#define EVENT_OBJ_GFX_VAR_0 240 -#define EVENT_OBJ_GFX_VAR_1 241 -#define EVENT_OBJ_GFX_VAR_2 242 -#define EVENT_OBJ_GFX_VAR_3 243 -#define EVENT_OBJ_GFX_VAR_4 244 -#define EVENT_OBJ_GFX_VAR_5 245 -#define EVENT_OBJ_GFX_VAR_6 246 -#define EVENT_OBJ_GFX_VAR_7 247 -#define EVENT_OBJ_GFX_VAR_8 248 -#define EVENT_OBJ_GFX_VAR_9 249 -#define EVENT_OBJ_GFX_VAR_A 250 -#define EVENT_OBJ_GFX_VAR_B 251 -#define EVENT_OBJ_GFX_VAR_C 252 -#define EVENT_OBJ_GFX_VAR_D 253 -#define EVENT_OBJ_GFX_VAR_E 254 -#define EVENT_OBJ_GFX_VAR_F 255 +#define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1) +#define EVENT_OBJ_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240 +#define EVENT_OBJ_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1) +#define EVENT_OBJ_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2) +#define EVENT_OBJ_GFX_VAR_3 (OBJ_EVENT_GFX_VARS + 0x3) +#define EVENT_OBJ_GFX_VAR_4 (OBJ_EVENT_GFX_VARS + 0x4) +#define EVENT_OBJ_GFX_VAR_5 (OBJ_EVENT_GFX_VARS + 0x5) +#define EVENT_OBJ_GFX_VAR_6 (OBJ_EVENT_GFX_VARS + 0x6) +#define EVENT_OBJ_GFX_VAR_7 (OBJ_EVENT_GFX_VARS + 0x7) +#define EVENT_OBJ_GFX_VAR_8 (OBJ_EVENT_GFX_VARS + 0x8) +#define EVENT_OBJ_GFX_VAR_9 (OBJ_EVENT_GFX_VARS + 0x9) +#define EVENT_OBJ_GFX_VAR_A (OBJ_EVENT_GFX_VARS + 0xA) +#define EVENT_OBJ_GFX_VAR_B (OBJ_EVENT_GFX_VARS + 0xB) +#define EVENT_OBJ_GFX_VAR_C (OBJ_EVENT_GFX_VARS + 0xC) +#define EVENT_OBJ_GFX_VAR_D (OBJ_EVENT_GFX_VARS + 0xD) +#define EVENT_OBJ_GFX_VAR_E (OBJ_EVENT_GFX_VARS + 0xE) +#define EVENT_OBJ_GFX_VAR_F (OBJ_EVENT_GFX_VARS + 0xF) // 255 #define SHADOW_SIZE_S 0 #define SHADOW_SIZE_M 1 diff --git a/include/constants/flags.h b/include/constants/flags.h index defe96e846f1..fe51a72cdf72 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_FLAGS_H #define GUARD_CONSTANTS_FLAGS_H +#include "constants/opponents.h" + // Temporary Flags // These temporary flags are are cleared every time a map is loaded. They are used // for things like shortening an NPCs introduction text if the player already spoke @@ -533,8 +535,6 @@ #define FLAG_MYSTERY_EVENT_14 0x1F2 #define FLAG_MYSTERY_EVENT_15 0x1F3 -#define FLAG_TRICK_HOUSE_END_ROOM 0x1F5 // Trick House End Room Flag - // Hidden Items -- sorted by location #define FLAG_HIDDEN_ITEMS_START 0x1F4 #define FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x01) @@ -1342,13 +1342,17 @@ #define FLAG_UNUSED_0x4FF 0x4FF // Unused Flag -#define FLAG_TRAINER_FLAG_START 0x500 -#define TRAINERS_FLAG_NO 0x356 +// Trainer Flags +// Trainer flags occupy 0x500 - 0x85F, the last 9 of which are unused +// See constants/opponents.h. The values there + FLAG_TRAINER_FLAG_START are the flag IDs -#define SYSTEM_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 +#define TRAINER_FLAGS_START 0x500 +#define TRAINER_FLAGS_END (TRAINER_FLAGS_START + MAX_TRAINERS_COUNT - 1) // 0x85F // System Flags +#define SYSTEM_FLAGS (TRAINER_FLAGS_END + 1) // 0x860 + #define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0) // FLAG_0x860 #define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 1) #define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 2) diff --git a/include/constants/global.h b/include/constants/global.h index f4d81e563f4d..d57307d9c349 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -58,6 +58,7 @@ #define TRAINER_ID_LENGTH 4 #define MAX_MON_MOVES 4 +#define NUM_STATS 6 // party sizes #define PARTY_SIZE 6 diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index 58ac90eababd..a0ea6855b09e 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -2,29 +2,39 @@ #define GUARD_METATILE_LABELS_H // gTileset_General -#define METATILE_General_Grass 0x001 -#define METATILE_General_TallGrass 0x00D -#define METATILE_General_LongGrass 0x015 -#define METATILE_General_TallGrass_TreeUp 0x025 -#define METATILE_General_Grass_TreeUp 0x00E -#define METATILE_General_TallGrass_TreeLeft 0x1C6 -#define METATILE_General_TallGrass_TreeRight 0x1C7 -#define METATILE_General_Grass_TreeLeft 0x1CE -#define METATILE_General_Grass_TreeRight 0x1CF -#define METATILE_General_MuddySlope_Frame0 0x0E8 -#define METATILE_General_MuddySlope_Frame1 0x0E9 -#define METATILE_General_MuddySlope_Frame2 0x0EA -#define METATILE_General_MuddySlope_Frame3 0x0EB -#define METATILE_General_SandPit_Center 0x121 -#define METATILE_General_CaveEntrance_Top 0x09F -#define METATILE_General_CaveEntrance_Bottom 0x0A7 -#define METATILE_General_RockWall_GrassBase 0x079 -#define METATILE_General_RockWall_RockBase 0x07C -#define METATILE_General_RockWall_SandBase 0x091 -#define METATILE_General_CalmWater 0x170 -#define METATILE_General_RoughWater 0x14E -#define METATILE_General_RoughDeepWater 0x14F -#define METATILE_General_ReflectiveWater 0x0A1 +#define METATILE_General_Grass 0x001 +#define METATILE_General_TallGrass 0x00D +#define METATILE_General_LongGrass 0x015 +#define METATILE_General_TallGrass_TreeUp 0x025 +#define METATILE_General_Grass_TreeUp 0x00E +#define METATILE_General_TallGrass_TreeLeft 0x1C6 +#define METATILE_General_TallGrass_TreeRight 0x1C7 +#define METATILE_General_Grass_TreeLeft 0x1CE +#define METATILE_General_Grass_TreeRight 0x1CF +#define METATILE_General_MuddySlope_Frame0 0x0E8 +#define METATILE_General_MuddySlope_Frame1 0x0E9 +#define METATILE_General_MuddySlope_Frame2 0x0EA +#define METATILE_General_MuddySlope_Frame3 0x0EB +#define METATILE_General_SandPit_Center 0x121 +#define METATILE_General_CaveEntrance_Top 0x09F +#define METATILE_General_CaveEntrance_Bottom 0x0A7 +#define METATILE_General_RockWall_GrassBase 0x079 +#define METATILE_General_RockWall_RockBase 0x07C +#define METATILE_General_RockWall_SandBase 0x091 +#define METATILE_General_CalmWater 0x170 +#define METATILE_General_RoughWater 0x14E +#define METATILE_General_RoughDeepWater 0x14F +#define METATILE_General_ReflectiveWater 0x0A1 +#define METATILE_General_SecretBase_TreeLeft 0x026 +#define METATILE_General_SecretBase_TreeRight 0x027 +#define METATILE_General_SecretBase_VineLeft 0x036 +#define METATILE_General_SecretBase_VineRight 0x037 +#define METATILE_General_RedCaveIndent 0x1A0 +#define METATILE_General_RedCaveOpen 0x1A1 +#define METATILE_General_YellowCaveIndent 0x1A8 +#define METATILE_General_YellowCaveOpen 0x1A9 +#define METATILE_General_BlueCaveIndent 0x1B0 +#define METATILE_General_BlueCaveOpen 0x1B1 // gTileset_Building #define METATILE_Building_PC_Off 0x004 @@ -143,6 +153,8 @@ #define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F #define METATILE_Fortree_BridgeOverTrees_Raised 0x256 #define METATILE_Fortree_BridgeOverTrees_Lowered 0x257 +#define METATILE_Fortree_SecretBase_Shrub 0x271 +#define METATILE_Fortree_SecretBase_ShrubOpen 0x278 #define METATILE_Fortree_SecretBase_LongGrass_TopLeft 0x279 #define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A #define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B @@ -164,6 +176,8 @@ // gTileset_Fallarbor #define METATILE_Fallarbor_AshGrass 0x20A +#define METATILE_Fallarbor_BrownCaveIndent 0x208 +#define METATILE_Fallarbor_BrownCaveOpen 0x210 #define METATILE_Fallarbor_NormalGrass 0x212 #define METATILE_Fallarbor_AshField 0x218 #define METATILE_Fallarbor_BrownCaveEntrance_Top 0x259 @@ -414,4 +428,162 @@ #define METATILE_Underwater_RockWall 0x21E #define METATILE_Underwater_FloorShadow 0x228 +// gTileset_SecretBase +#define METATILE_SecretBase_Wall_TopMid 0x202 +#define METATILE_SecretBase_Ground 0x20A +#define METATILE_SecretBase_PC 0x220 +#define METATILE_SecretBase_RegisterPC 0x221 +#define METATILE_SecretBase_PC_On 0x224 +#define METATILE_SecretBase_RedBrick_Top 0x225 +#define METATILE_SecretBase_RedBrick_Bottom 0x22D +#define METATILE_SecretBase_YellowBrick_Top 0x226 +#define METATILE_SecretBase_YellowBrick_Bottom 0x22E +#define METATILE_SecretBase_BlueBrick_Top 0x227 +#define METATILE_SecretBase_BlueBrick_Bottom 0x22F +#define METATILE_SecretBase_MudBall 0x228 +#define METATILE_SecretBase_Fence_Horizontal 0x22C +#define METATILE_SecretBase_Fence_Vertical 0x233 +#define METATILE_SecretBase_Board_Top 0x234 +#define METATILE_SecretBase_Board_Bottom 0x23C +#define METATILE_SecretBase_RedTent_DoorTop 0x239 +#define METATILE_SecretBase_RedTent_Door 0x241 +#define METATILE_SecretBase_BlueTent_DoorTop 0x251 +#define METATILE_SecretBase_BlueTent_Door 0x259 +#define METATILE_SecretBase_Slide_Stairs 0x23D +#define METATILE_SecretBase_Slide 0x23E +#define METATILE_SecretBase_Stand_LeftCorner 0x26A +#define METATILE_SecretBase_Stand_RightCorner 0x26D +#define METATILE_SecretBase_BreakableDoor_TopClosed 0x237 +#define METATILE_SecretBase_BreakableDoor_BottomClosed 0x23F +#define METATILE_SecretBase_BreakableDoor_TopOpen 0x26E +#define METATILE_SecretBase_BreakableDoor_BottomOpen 0x276 +#define METATILE_SecretBase_NoteMat_C 0x278 +#define METATILE_SecretBase_NoteMat_D 0x279 +#define METATILE_SecretBase_NoteMat_E 0x27A +#define METATILE_SecretBase_NoteMat_F 0x27B +#define METATILE_SecretBase_NoteMat_G 0x27C +#define METATILE_SecretBase_NoteMat_A 0x27D +#define METATILE_SecretBase_NoteMat_B 0x27E +#define METATILE_SecretBase_NoteMat_C_Sharp 0x2B3 +#define METATILE_SecretBase_Tire_TopLeft 0x280 +#define METATILE_SecretBase_Tire_TopRight 0x281 +#define METATILE_SecretBase_Tire_BottomLeft 0x288 +#define METATILE_SecretBase_Tire_BottomRight 0x289 +#define METATILE_SecretBase_GlassOrnament_Base1 0x28A +#define METATILE_SecretBase_GlassOrnament_Base2 0x28B +#define METATILE_SecretBase_SandOrnament_BrokenTop 0x284 +#define METATILE_SecretBase_SandOrnament_BrokenBase 0x28C +#define METATILE_SecretBase_SandOrnament_Top 0x285 +#define METATILE_SecretBase_SandOrnament_Base1 0x28D +#define METATILE_SecretBase_SandOrnament_TopWall 0x286 +#define METATILE_SecretBase_SandOrnament_Base2 0x28E +#define METATILE_SecretBase_SmallDesk 0x287 +#define METATILE_SecretBase_PokemonDesk 0x28F +#define METATILE_SecretBase_HeavyDesk_TopLeft 0x290 +#define METATILE_SecretBase_HeavyDesk_TopMid 0x291 +#define METATILE_SecretBase_HeavyDesk_TopRight 0x292 +#define METATILE_SecretBase_HeavyDesk_BottomLeft 0x298 +#define METATILE_SecretBase_HeavyDesk_BottomMid 0x299 +#define METATILE_SecretBase_HeavyDesk_BottomRight 0x29A +#define METATILE_SecretBase_RaggedDesk_TopLeft 0x293 +#define METATILE_SecretBase_RaggedDesk_TopMid 0x294 +#define METATILE_SecretBase_RaggedDesk_TopRight 0x295 +#define METATILE_SecretBase_RaggedDesk_BottomLeft 0x29B +#define METATILE_SecretBase_RaggedDesk_BottomMid 0x29C +#define METATILE_SecretBase_RaggedDesk_BottomRight 0x29D +#define METATILE_SecretBase_ComfortDesk_TopLeft 0x296 +#define METATILE_SecretBase_ComfortDesk_TopMid 0x297 +#define METATILE_SecretBase_ComfortDesk_TopRight 0x2A3 +#define METATILE_SecretBase_ComfortDesk_BottomLeft 0x29E +#define METATILE_SecretBase_ComfortDesk_BottomMid 0x29F +#define METATILE_SecretBase_ComfortDesk_BottomRight 0x2AB +#define METATILE_SecretBase_BrickDesk_TopLeft 0x2A0 +#define METATILE_SecretBase_BrickDesk_TopMid 0x2A1 +#define METATILE_SecretBase_BrickDesk_TopRight 0x2A2 +#define METATILE_SecretBase_BrickDesk_MidLeft 0x2A8 +#define METATILE_SecretBase_BrickDesk_Center 0x2A9 +#define METATILE_SecretBase_BrickDesk_MidRight 0x2AA +#define METATILE_SecretBase_BrickDesk_BottomLeft 0x2B0 +#define METATILE_SecretBase_BrickDesk_BottomMid 0x2B1 +#define METATILE_SecretBase_BrickDesk_BottomRight 0x2B2 +#define METATILE_SecretBase_CampDesk_TopLeft 0x2A4 +#define METATILE_SecretBase_CampDesk_TopMid 0x2A5 +#define METATILE_SecretBase_CampDesk_TopRight 0x2A6 +#define METATILE_SecretBase_CampDesk_MidLeft 0x2AC +#define METATILE_SecretBase_CampDesk_Center 0x2AD +#define METATILE_SecretBase_CampDesk_MidRight 0x2AE +#define METATILE_SecretBase_CampDesk_BottomLeft 0x2B4 +#define METATILE_SecretBase_CampDesk_BottomMid 0x2B5 +#define METATILE_SecretBase_CampDesk_BottomRight 0x2B6 +#define METATILE_SecretBase_HardDesk_TopLeft 0x2A7 +#define METATILE_SecretBase_HardDesk_TopMid 0x2BB +#define METATILE_SecretBase_HardDesk_TopRight 0x2BC +#define METATILE_SecretBase_HardDesk_MidLeft 0x2AF +#define METATILE_SecretBase_HardDesk_Center 0x2C3 +#define METATILE_SecretBase_HardDesk_MidRight 0x2C4 +#define METATILE_SecretBase_HardDesk_BottomLeft 0x2B7 +#define METATILE_SecretBase_HardDesk_BottomMid 0x2CB +#define METATILE_SecretBase_HardDesk_BottomRight 0x2CC +#define METATILE_SecretBase_PrettyDesk_TopLeft 0x2BD +#define METATILE_SecretBase_PrettyDesk_TopMid 0x2BE +#define METATILE_SecretBase_PrettyDesk_TopRight 0x2BF +#define METATILE_SecretBase_PrettyDesk_MidLeft 0x2C5 +#define METATILE_SecretBase_PrettyDesk_Center 0x2C6 +#define METATILE_SecretBase_PrettyDesk_MidRight 0x2C7 +#define METATILE_SecretBase_PrettyDesk_BottomLeft 0x2CD +#define METATILE_SecretBase_PrettyDesk_BottomMid 0x2CE +#define METATILE_SecretBase_PrettyDesk_BottomRight 0x2CF +#define METATILE_SecretBase_SmallChair 0x2B8 +#define METATILE_SecretBase_PokemonChair 0x2B9 +#define METATILE_SecretBase_HeavyChair 0x2BA +#define METATILE_SecretBase_PrettyChair 0x2C0 +#define METATILE_SecretBase_ComfortChair 0x2C1 +#define METATILE_SecretBase_RaggedChair 0x2C2 +#define METATILE_SecretBase_BrickChair 0x2C8 +#define METATILE_SecretBase_CampChair 0x2C9 +#define METATILE_SecretBase_HardChair 0x2Ca +#define METATILE_SecretBase_RedPlant_Base1 0x2D8 +#define METATILE_SecretBase_RedPlant_Base2 0x2D9 +#define METATILE_SecretBase_TropicalPlant_Base1 0x2DA +#define METATILE_SecretBase_TropicalPlant_Base2 0x2DB +#define METATILE_SecretBase_PrettyFlower_Base1 0x2DC +#define METATILE_SecretBase_PrettyFlower_Base2 0x2DD +#define METATILE_SecretBase_ColorfulFlowers_BaseLeft1 0x2E8 +#define METATILE_SecretBase_ColorfulFlowers_BaseRight1 0x2E9 +#define METATILE_SecretBase_ColorfulFlowers_BaseLeft2 0x2EA +#define METATILE_SecretBase_ColorfulFlowers_BaseRight2 0x2EB +#define METATILE_SecretBase_BigPlant_BaseLeft1 0x2EC +#define METATILE_SecretBase_BigPlant_BaseRight1 0x2ED +#define METATILE_SecretBase_BigPlant_BaseLeft2 0x2EE +#define METATILE_SecretBase_BigPlant_BaseRight2 0x2EF +#define METATILE_SecretBase_GorgeousPlant_BaseLeft1 0x2F8 +#define METATILE_SecretBase_GorgeousPlant_BaseRight1 0x2F9 +#define METATILE_SecretBase_GorgeousPlant_BaseLeft2 0x2FA +#define METATILE_SecretBase_GorgeousPlant_BaseRight2 0x2FB +#define METATILE_SecretBase_TV 0x2F4 +#define METATILE_SecretBase_RoundTV 0x2F5 +#define METATILE_SecretBase_CuteTV 0x2F6 +#define METATILE_SecretBase_PikaPoster_Left 0x31C +#define METATILE_SecretBase_PikaPoster_Right 0x31D +#define METATILE_SecretBase_LongPoster_Left 0x31E +#define METATILE_SecretBase_LongPoster_Right 0x31F +#define METATILE_SecretBase_SeaPoster_Left 0x324 +#define METATILE_SecretBase_SeaPoster_Right 0x325 +#define METATILE_SecretBase_SkyPoster_Left 0x326 +#define METATILE_SecretBase_SkyPoster_Right 0x327 +#define METATILE_SecretBase_KissPoster_Left 0x32C +#define METATILE_SecretBase_KissPoster_Right 0x32D +#define METATILE_SecretBase_BallPoster 0x330 +#define METATILE_SecretBase_GreenPoster 0x331 +#define METATILE_SecretBase_RedPoster 0x332 +#define METATILE_SecretBase_BluePoster 0x333 +#define METATILE_SecretBase_CutePoster 0x334 +#define METATILE_SecretBase_SilverShield_Base1 0x2DE +#define METATILE_SecretBase_SilverShield_Base2 0x2DF +#define METATILE_SecretBase_GoldShield_Base1 0x336 +#define METATILE_SecretBase_GoldShield_Base2 0x337 +#define METATILE_SecretBase_RedBalloon 0x338 +#define METATILE_SecretBase_BlueBalloon 0x33c +#define METATILE_SecretBase_YellowBalloon 0x340 + #endif // GUARD_METATILE_LABELS_H diff --git a/include/constants/opponents.h b/include/constants/opponents.h index 1d9cac7807f6..c0e7758bd2d2 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -33,8 +33,8 @@ #define TRAINER_FREDRICK 29 #define TRAINER_MATT 30 #define TRAINER_ZANDER 31 -#define TRAINER_SHELLY_1 32 -#define TRAINER_SHELLY_2 33 +#define TRAINER_SHELLY_WEATHER_INSTITUTE 32 +#define TRAINER_SHELLY_SEAFLOOR_CAVERN 33 #define TRAINER_ARCHIE 34 #define TRAINER_LEAH 35 #define TRAINER_DAISY 36 @@ -515,30 +515,30 @@ #define TRAINER_CONOR 511 #define TRAINER_EDWIN_1 512 #define TRAINER_HECTOR 513 -#define TRAINER_TABITHA_1 514 +#define TRAINER_TABITHA_MOSSDEEP 514 #define TRAINER_EDWIN_2 515 #define TRAINER_EDWIN_3 516 #define TRAINER_EDWIN_4 517 #define TRAINER_EDWIN_5 518 -#define TRAINER_WALLY_1 519 -#define TRAINER_BRENDAN_1 520 -#define TRAINER_BRENDAN_2 521 -#define TRAINER_BRENDAN_3 522 -#define TRAINER_BRENDAN_4 523 -#define TRAINER_BRENDAN_5 524 -#define TRAINER_BRENDAN_6 525 -#define TRAINER_BRENDAN_7 526 -#define TRAINER_BRENDAN_8 527 -#define TRAINER_BRENDAN_9 528 -#define TRAINER_MAY_1 529 -#define TRAINER_MAY_2 530 -#define TRAINER_MAY_3 531 -#define TRAINER_MAY_4 532 -#define TRAINER_MAY_5 533 -#define TRAINER_MAY_6 534 -#define TRAINER_MAY_7 535 -#define TRAINER_MAY_8 536 -#define TRAINER_MAY_9 537 +#define TRAINER_WALLY_VR_1 519 +#define TRAINER_BRENDAN_ROUTE_103_MUDKIP 520 +#define TRAINER_BRENDAN_ROUTE_110_MUDKIP 521 +#define TRAINER_BRENDAN_ROUTE_119_MUDKIP 522 +#define TRAINER_BRENDAN_ROUTE_103_TREECKO 523 +#define TRAINER_BRENDAN_ROUTE_110_TREECKO 524 +#define TRAINER_BRENDAN_ROUTE_119_TREECKO 525 +#define TRAINER_BRENDAN_ROUTE_103_TORCHIC 526 +#define TRAINER_BRENDAN_ROUTE_110_TORCHIC 527 +#define TRAINER_BRENDAN_ROUTE_119_TORCHIC 528 +#define TRAINER_MAY_ROUTE_103_MUDKIP 529 +#define TRAINER_MAY_ROUTE_110_MUDKIP 530 +#define TRAINER_MAY_ROUTE_119_MUDKIP 531 +#define TRAINER_MAY_ROUTE_103_TREECKO 532 +#define TRAINER_MAY_ROUTE_110_TREECKO 533 +#define TRAINER_MAY_ROUTE_119_TREECKO 534 +#define TRAINER_MAY_ROUTE_103_TORCHIC 535 +#define TRAINER_MAY_ROUTE_110_TORCHIC 536 +#define TRAINER_MAY_ROUTE_119_TORCHIC 537 #define TRAINER_ISAAC_1 538 #define TRAINER_DAVIS 539 #define TRAINER_MITCHELL 540 @@ -593,17 +593,17 @@ #define TRAINER_GRUNT_SPACE_CENTER_6 589 #define TRAINER_GRUNT_SPACE_CENTER_7 590 #define TRAINER_MACEY 591 -#define TRAINER_BRENDAN_10 592 -#define TRAINER_BRENDAN_11 593 +#define TRAINER_BRENDAN_RUSTBORO_TREECKO 592 +#define TRAINER_BRENDAN_RUSTBORO_MUDKIP 593 #define TRAINER_PAXTON 594 #define TRAINER_ISABELLA 595 #define TRAINER_GRUNT_WEATHER_INST_5 596 -#define TRAINER_TABITHA_2 597 +#define TRAINER_TABITHA_MT_CHIMNEY 597 #define TRAINER_JONATHAN 598 -#define TRAINER_BRENDAN_12 599 -#define TRAINER_MAY_10 600 -#define TRAINER_MAXIE_1 601 -#define TRAINER_MAXIE_2 602 +#define TRAINER_BRENDAN_RUSTBORO_TORCHIC 599 +#define TRAINER_MAY_RUSTBORO_MUDKIP 600 +#define TRAINER_MAXIE_MAGMA_HIDEOUT 601 +#define TRAINER_MAXIE_MT_CHIMNEY 602 #define TRAINER_TIANA 603 #define TRAINER_HALEY_1 604 #define TRAINER_JANICE 605 @@ -657,17 +657,17 @@ #define TRAINER_RILEY 653 #define TRAINER_FLINT 654 #define TRAINER_ASHLEY 655 -#define TRAINER_WALLY_2 656 -#define TRAINER_WALLY_3 657 -#define TRAINER_WALLY_4 658 -#define TRAINER_WALLY_5 659 -#define TRAINER_WALLY_6 660 -#define TRAINER_BRENDAN_13 661 -#define TRAINER_BRENDAN_14 662 -#define TRAINER_BRENDAN_15 663 -#define TRAINER_MAY_11 664 -#define TRAINER_MAY_12 665 -#define TRAINER_MAY_13 666 +#define TRAINER_WALLY_MAUVILLE 656 +#define TRAINER_WALLY_VR_2 657 +#define TRAINER_WALLY_VR_3 658 +#define TRAINER_WALLY_VR_4 659 +#define TRAINER_WALLY_VR_5 660 +#define TRAINER_BRENDAN_LILYCOVE_MUDKIP 661 +#define TRAINER_BRENDAN_LILYCOVE_TREECKO 662 +#define TRAINER_BRENDAN_LILYCOVE_TORCHIC 663 +#define TRAINER_MAY_LILYCOVE_MUDKIP 664 +#define TRAINER_MAY_LILYCOVE_TREECKO 665 +#define TRAINER_MAY_LILYCOVE_TORCHIC 666 #define TRAINER_JONAH 667 #define TRAINER_HENRY 668 #define TRAINER_ROGER 669 @@ -733,9 +733,9 @@ #define TRAINER_GRUNT_MAGMA_HIDEOUT_14 729 #define TRAINER_GRUNT_MAGMA_HIDEOUT_15 730 #define TRAINER_GRUNT_MAGMA_HIDEOUT_16 731 -#define TRAINER_TABITHA_3 732 +#define TRAINER_TABITHA_MAGMA_HIDEOUT 732 #define TRAINER_DARCY 733 -#define TRAINER_MAXIE_3 734 +#define TRAINER_MAXIE_MOSSDEEP 734 #define TRAINER_PETE 735 #define TRAINER_ISABELLE 736 #define TRAINER_ANDRES_1 737 @@ -769,8 +769,8 @@ #define TRAINER_MYLES 765 #define TRAINER_PAT 766 #define TRAINER_CRISTIN_1 767 -#define TRAINER_MAY_14 768 -#define TRAINER_MAY_15 769 +#define TRAINER_MAY_RUSTBORO_TREECKO 768 +#define TRAINER_MAY_RUSTBORO_TORCHIC 769 #define TRAINER_ROXANNE_2 770 #define TRAINER_ROXANNE_3 771 #define TRAINER_ROXANNE_4 772 @@ -854,12 +854,15 @@ #define TRAINER_EVERETT 850 #define TRAINER_RED 851 #define TRAINER_LEAF 852 -#define TRAINER_BRENDAN_16 853 -#define TRAINER_MAY_16 854 +#define TRAINER_BRENDAN_PLACEHOLDER 853 +#define TRAINER_MAY_PLACEHOLDER 854 #define TRAINER_JAELEN 855 #define TRAINER_JAYSON 856 #define TRAINER_FLORENCE 857 +// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows +// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled -#define TRAINERS_COUNT 858 +#define TRAINERS_COUNT 857 +#define MAX_TRAINERS_COUNT 864 #endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 5610a470cb4f..97e3f068631f 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -80,8 +80,8 @@ #define STAT_ACC 6 // Only in battles. #define STAT_EVASION 7 // Only in battles. -#define NUM_STATS 6 -#define NUM_BATTLE_STATS 8 +#define NUM_EV_STATS NUM_STATS - 1 // excludes HP +#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion // Shiny odds #define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536 @@ -213,6 +213,8 @@ #define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7 #define FRIENDSHIP_EVENT_FAINT_LARGE 8 +#define MAX_FRIENDSHIP 0xFF + #define STATUS_PRIMARY_NONE 0 #define STATUS_PRIMARY_POISON 1 #define STATUS_PRIMARY_PARALYSIS 2 diff --git a/include/constants/trainers.h b/include/constants/trainers.h index e5a193770ae6..541b131ca396 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -2,9 +2,11 @@ #define GUARD_TRAINERS_H #include "constants/opponents.h" +#include "constants/battle_frontier_trainers.h" // Special Trainer Ids. -#define TRAINER_RECORD_MIXING_FRIEND 300 +// 0-299 are frontier trainers +#define TRAINER_RECORD_MIXING_FRIEND FRONTIER_TRAINERS_COUNT #define TRAINER_RECORD_MIXING_APPRENTICE 400 #define TRAINER_EREADER 500 #define TRAINER_FRONTIER_BRAIN 1022 diff --git a/include/constants/tv.h b/include/constants/tv.h index fddf650e4c65..6f686f72763b 100644 --- a/include/constants/tv.h +++ b/include/constants/tv.h @@ -46,4 +46,92 @@ // Number of ribbons to put Spot the Cuties on air #define NUM_CUTIES_RIBBONS 4 +// TV Show states for Secret Base Secrets +#define SBSECRETS_STATE_INTRO 0 +#define SBSECRETS_STATE_DO_NEXT1 1 +#define SBSECRETS_STATE_DO_NEXT2 2 +#define SBSECRETS_STATE_TOOK_X_STEPS 3 +#define SBSECRETS_STATE_BASE_INTEREST_LOW 4 +#define SBSECRETS_STATE_BASE_INTEREST_MED 5 +#define SBSECRETS_STATE_BASE_INTEREST_HIGH 6 +#define SBSECRETS_STATE_OUTRO 7 +#define SBSECRETS_STATE_NOTHING_USED1 8 +#define SBSECRETS_STATE_NOTHING_USED2 9 +#define SBSECRETS_STATE_USED_CHAIR 10 +#define SBSECRETS_STATE_USED_BALLOON 11 +#define SBSECRETS_STATE_USED_TENT 12 +#define SBSECRETS_STATE_USED_PLANT 13 +#define SBSECRETS_STATE_USED_GOLD_SHIELD 14 +#define SBSECRETS_STATE_USED_SILVER_SHIELD 15 +#define SBSECRETS_STATE_USED_GLASS_ORNAMENT 16 +#define SBSECRETS_STATE_USED_TV 17 +#define SBSECRETS_STATE_USED_MUD_BALL 18 +#define SBSECRETS_STATE_USED_BAG 19 +#define SBSECRETS_STATE_USED_CUSHION 20 +#define SBSECRETS_STATE_HIT_CUSHION 21 +#define SBSECRETS_STATE_HUGGED_CUSHION 22 +#define SBSECRETS_STATE_BATTLED_WON 23 +#define SBSECRETS_STATE_BATTLED_LOST 24 +#define SBSECRETS_STATE_DECLINED_BATTLE 25 +#define SBSECRETS_STATE_USED_POSTER 26 +#define SBSECRETS_STATE_USED_NOTE_MAT 27 +#define SBSECRETS_STATE_BATTLED_DRAW 28 +#define SBSECRETS_STATE_USED_SPIN_MAT 29 +#define SBSECRETS_STATE_USED_SAND_ORNAMENT 30 +#define SBSECRETS_STATE_USED_DESK 31 +#define SBSECRETS_STATE_USED_BRICK 32 +#define SBSECRETS_STATE_USED_SOLID_BOARD 33 +#define SBSECRETS_STATE_USED_FENCE 34 +#define SBSECRETS_STATE_USED_GLITTER_MAT 35 +#define SBSECRETS_STATE_USED_TIRE 36 +#define SBSECRETS_STATE_USED_STAND 37 +#define SBSECRETS_STATE_USED_BREAKABLE_DOOR 38 +#define SBSECRETS_STATE_USED_DOLL 39 +#define SBSECRETS_STATE_USED_SLIDE 40 +#define SBSECRETS_STATE_DECLINED_SLIDE 41 +#define SBSECRETS_STATE_USED_JUMP_MAT 42 +#define SBSECRETS_NUM_STATES 43 + +// The below flags are set when interacting with objects in a friends secret base +// Theyre set as bits in a var, and with 32 flags they're spread across 2 vars + +// VAR_SECRET_BASE_LOW_TV_FLAGS +#define SECRET_BASE_USED_CHAIR (1 << 0) +#define SECRET_BASE_USED_BALLOON (1 << 1) +#define SECRET_BASE_USED_TENT (1 << 2) +#define SECRET_BASE_USED_PLANT (1 << 3) +#define SECRET_BASE_USED_GOLD_SHIELD (1 << 4) +#define SECRET_BASE_USED_SILVER_SHIELD (1 << 5) +#define SECRET_BASE_USED_GLASS_ORNAMENT (1 << 6) +#define SECRET_BASE_USED_TV (1 << 7) +#define SECRET_BASE_USED_MUD_BALL (1 << 8) +#define SECRET_BASE_USED_BAG (1 << 9) +#define SECRET_BASE_USED_CUSHION (1 << 10) +#define SECRET_BASE_BATTLED_WON (1 << 11) +#define SECRET_BASE_BATTLED_LOST (1 << 12) +#define SECRET_BASE_DECLINED_BATTLE (1 << 13) +#define SECRET_BASE_USED_POSTER (1 << 14) +#define SECRET_BASE_USED_NOTE_MAT (1 << 15) + +// VAR_SECRET_BASE_HIGH_TV_FLAGS +#define SECRET_BASE_BATTLED_DRAW (1 << 0) +#define SECRET_BASE_USED_SPIN_MAT (1 << 1) +#define SECRET_BASE_USED_SAND_ORNAMENT (1 << 2) +#define SECRET_BASE_USED_DESK (1 << 3) +#define SECRET_BASE_USED_BRICK (1 << 4) +#define SECRET_BASE_USED_SOLID_BOARD (1 << 5) +#define SECRET_BASE_USED_FENCE (1 << 6) +#define SECRET_BASE_USED_GLITTER_MAT (1 << 7) +#define SECRET_BASE_USED_TIRE (1 << 8) +#define SECRET_BASE_USED_STAND (1 << 9) +#define SECRET_BASE_USED_BREAKABLE_DOOR (1 << 10) +#define SECRET_BASE_USED_DOLL (1 << 11) +#define SECRET_BASE_USED_SLIDE (1 << 12) +#define SECRET_BASE_DECLINED_SLIDE (1 << 13) +#define SECRET_BASE_USED_JUMP_MAT (1 << 14) +#define SECRET_BASE_UNUSED_FLAG (1 << 15) + +#define NUM_SECRET_BASE_FLAGS 32 // by definition, bitfield of 2 u16s + + #endif //GUARD_CONSTANTS_TV_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 221cbd1da494..f2ef066d42b3 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -128,10 +128,10 @@ bool32 sub_811F8D8(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); -u16 sub_811EE38(u16 group); +u16 GetRandomEasyChatWordFromGroup(u16 group); u16 GetNewHipsterPhraseToTeach(void); u16 EasyChat_GetNumWordsInGroup(u8); -u16 sub_811EE90(u16); +u16 GetRandomEasyChatWordFromUnlockedGroup(u16); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); void sub_811F8BC(void); void UnlockAdditionalPhrase(u8 additionalPhraseId); diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 93f73e6357ec..957d621749f1 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -1,9 +1,6 @@ #ifndef GUARD_FIELD_EVENT_OBJ_H #define GUARD_FIELD_EVENT_OBJ_H -#define NUM_OBJECT_GRAPHICS_INFO 239 -#define SPRITE_VAR 240 - enum SpinnerRunnerFollowPatterns { RUNFOLLOW_ANY, diff --git a/include/event_scripts.h b/include/event_scripts.h index c2716a214a33..a56ab89e0296 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -240,49 +240,49 @@ extern const u8 gTVWhatsNo1InHoennTodayText05[]; extern const u8 gTVWhatsNo1InHoennTodayText06[]; extern const u8 gTVWhatsNo1InHoennTodayText07[]; extern const u8 gTVWhatsNo1InHoennTodayText08[]; -extern const u8 gTVSecretBaseSecretsText00[]; -extern const u8 gTVSecretBaseSecretsText01[]; -extern const u8 gTVSecretBaseSecretsText02[]; -extern const u8 gTVSecretBaseSecretsText03[]; -extern const u8 gTVSecretBaseSecretsText04[]; -extern const u8 gTVSecretBaseSecretsText05[]; -extern const u8 gTVSecretBaseSecretsText06[]; -extern const u8 gTVSecretBaseSecretsText07[]; -extern const u8 gTVSecretBaseSecretsText08[]; -extern const u8 gTVSecretBaseSecretsText09[]; -extern const u8 gTVSecretBaseSecretsText10[]; -extern const u8 gTVSecretBaseSecretsText11[]; -extern const u8 gTVSecretBaseSecretsText12[]; -extern const u8 gTVSecretBaseSecretsText13[]; -extern const u8 gTVSecretBaseSecretsText14[]; -extern const u8 gTVSecretBaseSecretsText15[]; -extern const u8 gTVSecretBaseSecretsText16[]; -extern const u8 gTVSecretBaseSecretsText17[]; -extern const u8 gTVSecretBaseSecretsText18[]; -extern const u8 gTVSecretBaseSecretsText19[]; -extern const u8 gTVSecretBaseSecretsText20[]; -extern const u8 gTVSecretBaseSecretsText21[]; -extern const u8 gTVSecretBaseSecretsText22[]; -extern const u8 gTVSecretBaseSecretsText23[]; -extern const u8 gTVSecretBaseSecretsText24[]; -extern const u8 gTVSecretBaseSecretsText25[]; -extern const u8 gTVSecretBaseSecretsText26[]; -extern const u8 gTVSecretBaseSecretsText27[]; -extern const u8 gTVSecretBaseSecretsText28[]; -extern const u8 gTVSecretBaseSecretsText29[]; -extern const u8 gTVSecretBaseSecretsText30[]; -extern const u8 gTVSecretBaseSecretsText31[]; -extern const u8 gTVSecretBaseSecretsText32[]; -extern const u8 gTVSecretBaseSecretsText33[]; -extern const u8 gTVSecretBaseSecretsText34[]; -extern const u8 gTVSecretBaseSecretsText35[]; -extern const u8 gTVSecretBaseSecretsText36[]; -extern const u8 gTVSecretBaseSecretsText37[]; -extern const u8 gTVSecretBaseSecretsText38[]; -extern const u8 gTVSecretBaseSecretsText39[]; -extern const u8 gTVSecretBaseSecretsText40[]; -extern const u8 gTVSecretBaseSecretsText41[]; -extern const u8 gTVSecretBaseSecretsText42[]; +extern const u8 TVSecretBaseSecrets_Text_Intro[]; +extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1[]; +extern const u8 TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2[]; +extern const u8 TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving[]; +extern const u8 TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer[]; +extern const u8 TVSecretBaseSecrets_Text_PlayerEnjoyedBase[]; +extern const u8 TVSecretBaseSecrets_Text_PlayerHugeFanOfBase[]; +extern const u8 TVSecretBaseSecrets_Text_Outro[]; +extern const u8 TVSecretBaseSecrets_Text_StoppedMoving1[]; +extern const u8 TVSecretBaseSecrets_Text_StoppedMoving2[]; +extern const u8 TVSecretBaseSecrets_Text_UsedChair[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBalloon[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTent[]; +extern const u8 TVSecretBaseSecrets_Text_UsedPlant[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGoldShield[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSilverShield[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGlassOrnament[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTV[]; +extern const u8 TVSecretBaseSecrets_Text_UsedMudBall[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBag[]; +extern const u8 TVSecretBaseSecrets_Text_UsedCushion[]; +extern const u8 TVSecretBaseSecrets_Text_HitCushion[]; +extern const u8 TVSecretBaseSecrets_Text_HuggedCushion[]; +extern const u8 TVSecretBaseSecrets_Text_BattledWon[]; +extern const u8 TVSecretBaseSecrets_Text_BattledLost[]; +extern const u8 TVSecretBaseSecrets_Text_DeclinedBattle[]; +extern const u8 TVSecretBaseSecrets_Text_UsedPoster[]; +extern const u8 TVSecretBaseSecrets_Text_UsedNoteMat[]; +extern const u8 TVSecretBaseSecrets_Text_BattledDraw[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSpinMat[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSandOrnament[]; +extern const u8 TVSecretBaseSecrets_Text_UsedDesk[]; +extern const u8 TVSecretBaseSecrets_Text_UsedBrick[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSolidBoard[]; +extern const u8 TVSecretBaseSecrets_Text_UsedFence[]; +extern const u8 TVSecretBaseSecrets_Text_UsedGlitterMat[]; +extern const u8 TVSecretBaseSecrets_Text_UsedTire[]; +extern const u8 TVSecretBaseSecrets_Text_UsedStand[]; +extern const u8 TVSecretBaseSecrets_Text_BrokeDoor[]; +extern const u8 TVSecretBaseSecrets_Text_UsedDoll[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSlide[]; +extern const u8 TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown[]; +extern const u8 TVSecretBaseSecrets_Text_UsedJumpMat[]; extern const u8 gTVSafariFanClubText00[]; extern const u8 gTVSafariFanClubText01[]; extern const u8 gTVSafariFanClubText02[]; diff --git a/include/fldeff.h b/include/fldeff.h index 5da189c2a8a2..deb54372c86f 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -33,7 +33,7 @@ void ChooseMonForSoftboiled(u8 taskId); // flash bool8 SetUpFieldMove_Flash(void); -void c2_change_map(void); +void CB2_DoChangeMap(void); bool8 GetMapPairFadeToType(u8 a1, u8 a2); bool8 GetMapPairFadeFromType(u8 a1, u8 a2); diff --git a/include/fldeff_misc.h b/include/fldeff_misc.h index fd96f564692b..6fd15c1ea755 100644 --- a/include/fldeff_misc.h +++ b/include/fldeff_misc.h @@ -21,7 +21,7 @@ void ShatterSecretBaseBreakableDoor(s16 x, s16 y); void PlaySecretBaseMusicNoteMatSound(s16 metatileId); void DoSecretBaseGlitterMatSparkle(void); bool8 FldEff_SandPillar(void); -void GetShieldToyTVDecorationInfo(void); +void InteractWithShieldOrTVDecoration(void); bool8 sub_80FADE4(u16 arg0, u8 arg1); void FldEffPoison_Start(void); bool32 FldEffPoison_IsActive(void); diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index df79b084d3d1..071a89bc58a5 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -461,7 +461,7 @@ #define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L) #define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H) -#define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4))) +#define REG_TMCNT(n) (*(vu32 *)(REG_ADDR_TMCNT + ((n) * 4))) #define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4))) #define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4))) #define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT) diff --git a/include/gba/syscall.h b/include/gba/syscall.h index f3382b874ced..56cd4ba587f1 100644 --- a/include/gba/syscall.h +++ b/include/gba/syscall.h @@ -45,4 +45,6 @@ void RLUnCompVram(const void *src, void *dest); int MultiBoot(struct MultiBootParam *mp); +s32 Div(s32 num, s32 denom); + #endif // GUARD_GBA_SYSCALL_H diff --git a/include/global.h b/include/global.h index dc7b95c4d5ce..fa28b16cf3c3 100644 --- a/include/global.h +++ b/include/global.h @@ -297,10 +297,11 @@ struct BattleTowerEReaderTrainer /*0xB8*/ u32 checksum; }; -struct FrontierMonData +// For displaying party information on the player's Battle Dome tourney page +struct DomeMonData { u16 moves[MAX_MON_MOVES]; - u8 evs[6]; + u8 evs[NUM_STATS]; u8 nature; }; @@ -317,7 +318,7 @@ struct BattleDomeTrainer u16 trainerId:10; u16 isEliminated:1; u16 eliminatedAt:2; - u16 unk3:3; + u16 forfeited:3; }; #define DOME_TOURNAMENT_TRAINERS_COUNT 16 @@ -332,10 +333,6 @@ struct BattleFrontier /*0xCA9*/ u8 lvlMode:2; /*0xCA9*/ u8 challengePaused:1; /*0xCA9*/ u8 disableRecordBattle:1; - /*0xCA9*/ u8 unused_CA9_c:1; - /*0xCA9*/ u8 unused_CA9_d:1; - /*0xCA9*/ u8 unused_CA9_e:1; - /*0xCA9*/ u8 unused_CA9_f:1; /*0xCAA*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; @@ -347,17 +344,17 @@ struct BattleFrontier /*0xD04*/ u16 towerNumWins; // Increments to MAX_STREAK but never read otherwise /*0xD06*/ u8 towerBattleOutcome; /*0xD07*/ u8 towerLvlMode; - /*0xD08*/ u8 field_D08_0:1; - /*0xD08*/ u8 field_D08_1:1; - /*0xD08*/ u8 field_D08_2:1; - /*0xD08*/ u8 field_D08_3:1; - /*0xD08*/ u8 field_D08_4:1; - /*0xD08*/ u8 field_D08_5:1; - /*0xD08*/ u8 field_D08_6:1; - /*0xD08*/ u8 field_D08_7:1; - /*0xD09*/ u8 filler_D09; - /*0xD0A*/ u8 field_D0A; - /*0xD0B*/ u8 field_D0B; + /*0xD08*/ u8 domeAttemptedSingles50:1; + /*0xD08*/ u8 domeAttemptedSinglesOpen:1; + /*0xD08*/ u8 domeHasWonSingles50:1; + /*0xD08*/ u8 domeHasWonSinglesOpen:1; + /*0xD08*/ u8 domeAttemptedDoubles50:1; + /*0xD08*/ u8 domeAttemptedDoublesOpen:1; + /*0xD08*/ u8 domeHasWonDoubles50:1; + /*0xD08*/ u8 domeHasWonDoublesOpen:1; + /*0xD09*/ u8 domeUnused; + /*0xD0A*/ u8 domeLvlMode; + /*0xD0B*/ u8 domeBattleMode; /*0xD0C*/ u16 domeWinStreaks[2][2]; /*0xD14*/ u16 domeRecordWinStreaks[2][2]; /*0xD1C*/ u16 domeTotalChampionships[2][2]; @@ -392,11 +389,11 @@ struct BattleFrontier /*0xE6A*/ u16 verdanturfTentPrize; /*0xE6C*/ u16 fallarborTentPrize; /*0xE6E*/ u16 slateportTentPrize; - /*0xE70*/ struct RentalMon rentalMons[PARTY_SIZE]; + /*0xE70*/ struct RentalMon rentalMons[FRONTIER_PARTY_SIZE * 2]; /*0xEB8*/ u16 battlePoints; /*0xEBA*/ u16 cardBattlePoints; /*0xEBC*/ u32 battlesCount; - /*0xEC0*/ u16 field_EC0[16]; + /*0xEC0*/ u16 domeWinningMoves[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xEE0*/ u8 trainerFlags; /*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1]; /*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH]; @@ -404,7 +401,7 @@ struct BattleFrontier /*0xEF9*/ u8 savedGame:1; /*0xEFA*/ u8 unused_EFA; /*0xEFB*/ u8 unused_EFB; - /*0xEFC*/ struct FrontierMonData field_EFC[FRONTIER_PARTY_SIZE]; + /*0xEFC*/ struct DomeMonData domePlayerPartyData[FRONTIER_PARTY_SIZE]; }; struct ApprenticeQuestion @@ -934,13 +931,13 @@ struct SaveBlock1 /*0x271C*/ u8 playerRoomDecor[DECOR_MAX_PLAYERS_HOUSE]; /*0x2728*/ u8 playerRoomDecorPos[DECOR_MAX_PLAYERS_HOUSE]; /*0x2734*/ u8 decorDesk[10]; - /*0x????*/ u8 decorChair[10]; - /*0x????*/ u8 decorPlant[10]; - /*0x????*/ u8 decorOrnament[30]; - /*0x????*/ u8 decorMat[30]; - /*0x????*/ u8 decorPoster[10]; - /*0x????*/ u8 decorDoll[40]; - /*0x????*/ u8 decorCushion[10]; + /*0x273E*/ u8 decorChair[10]; + /*0x2748*/ u8 decorPlant[10]; + /*0x2752*/ u8 decorOrnament[30]; + /*0x2770*/ u8 decorMat[30]; + /*0x278E*/ u8 decorPoster[10]; + /*0x2798*/ u8 decorDoll[40]; + /*0x27C0*/ u8 decorCushion[10]; /*0x27CA*/ u8 padding_27CA[2]; /*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT]; /*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT]; diff --git a/include/graphics.h b/include/graphics.h index 5a369e9f1ea2..8ed0b3b638e9 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4123,19 +4123,19 @@ extern const u16 gTitleScreenBgPalettes[]; extern const u16 gTitleScreenPressStartPal[]; extern const u16 gTitleScreenEmeraldVersionPal[]; -extern const u32 gUnknown_08D83D50[]; -extern const u32 gUnknown_08D84970[]; -extern const u32 gUnknown_08D84F00[]; -extern const u32 gUnknown_08D85444[]; -extern const u32 gUnknown_08D85358[]; -extern const u32 gBattleWindowTextPalette[]; -extern const u32 gUnknown_08D854C8[]; -extern const u32 gUnknown_08D82F10[]; -extern const u32 gUnknown_08D834FC[]; -extern const u32 gUnknown_08D83B2C[]; -extern const u32 gUnknown_08D83C3C[]; -extern const u32 gUnknown_08D83900[]; -extern const u32 gBattleFrontierGfx_DomeOptions[]; +// Battle Dome +extern const u32 gDomeTourneyInfoCard_Gfx[]; +extern const u32 gDomeTourneyInfoCard_Tilemap[]; +extern const u32 gDomeTourneyInfoCardBg_Tilemap[]; +extern const u32 gDomeTourneyTree_Pal[]; +extern const u32 gDomeTourneyTreeButtons_Pal[]; +extern const u32 gDomeTourneyMatchCardBg_Pal[]; +extern const u32 gDomeTourneyBg_Gfx[]; +extern const u32 gDomeTourneyLine_Gfx[]; +extern const u32 gDomeTourneyLineDown_Tilemap[]; +extern const u32 gDomeTourneyLineUp_Tilemap[]; +extern const u32 gDomeTourneyLineMask_Tilemap[]; +extern const u32 gDomeTourneyTreeButtons_Gfx[]; extern const u16 gTilesetAnims_BattleDomePals0_0[]; extern const u16 gTilesetAnims_BattleDomePals0_1[]; extern const u16 gTilesetAnims_BattleDomePals0_2[]; @@ -4143,6 +4143,9 @@ extern const u16 gTilesetAnims_BattleDomePals0_3[]; extern const u32 gBattleArenaJudgementSymbolsGfx[]; extern const u32 gBattleArenaJudgementSymbolsPalette[]; + +extern const u32 gBattleWindowTextPalette[]; + extern const u32 gContest2Pal[]; extern const u32 gBattleAnimSpriteGfx_Bone[]; diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index 5c8a01bcb6c9..a83fad2fc046 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -4,7 +4,7 @@ void CB2_DoHallOfFameScreen(void); void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); -void sub_8175280(void); +void DoConfettiEffect(void); // hof_pc.c void ReturnFromHallOfFamePC(void); diff --git a/include/librfu.h b/include/librfu.h index 55b5d264ccb3..39cc68319fde 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -1,58 +1,280 @@ #ifndef GUARD_LIBRFU_H #define GUARD_LIBRFU_H +#include "global.h" #include "main.h" -enum -{ - RFU_RESET = 0x10, - RFU_LINK_STATUS, - RFU_VERSION_STATUS, - RFU_SYSTEM_STATUS, - RFU_SLOT_STATUS, - RFU_CONFIG_STATUS, - RFU_GAME_CONFIG, - RFU_SYSTEM_CONFIG, - RFU_UNK18, - RFU_SC_START, - RFU_SC_POLLING, - RFU_SC_END, - RFU_SP_START, - RFU_SP_POLLING, - RFU_SP_END, - RFU_CP_START, - RFU_CP_POLLING, - RFU_CP_END, - RFU_UNK22, - RFU_UNK23, - RFU_DATA_TX, - RFU_DATA_TX_AND_CHANGE, - RFU_DATA_RX, - RFU_MS_CHANGE, - RFU_DATA_READY_AND_CHANGE, - RFU_DISCONNECTED_AND_CHANGE, - RFU_UNK2A, - RFU_UNK2B, - RFU_UNK2C, - RFU_UNK2D, - RFU_UNK2E, - RFU_UNK2F, - RFU_DISCONNECT, - RFU_TEST_MODE, - RFU_CPR_START, - RFU_CPR_POLLING, - RFU_CPR_END, - RFU_UNK35, - RFU_UNK36, - RFU_RESUME_RETRANSMIT_AND_CHANGE, - RFU_UNK38, - RFU_UNK39, - RFU_UNK3A, - RFU_UNK3B, - RFU_UNK3C, - RFU_STOP_MODE, // 3D -}; +/* TODOs: + * - documentation + * - decompile librfu_intr.s once arm support is back again + (for internal structs not documented in SDK) + * - check if any field needs to be volatile + * - check if field names make sense + */ + +// -------------------------------------------------------------------------- +// +// Restrictions When Using RFU +// +// -------------------------------------------------------------------------- +/* + The following restrictions apply when using RFU. + + + (a) The timer for Sound DMA uses only 0 + (b) The prescaler for the timer count for the Sound DMA uses 59.5 ns. + (c) The sound sampling rate is Max36.314KHz. + + + These types of DMA can be operated on a maximum CPU cycle of 42 cycles. + Calculate the number of the transferable DMA count based on this 42 cycles and the access cycles of the destination and source. + For example, if both the CPU internal RAM --> VRAM have a one cycle access, then a 21 count DMA can occur. + + + If RFU is used outside of these restrictions, problems, such as the loss of data caused by the failure of the AGB, as a clock slave, + to notify that data has been received from the RFU, will occur. + When this problem occurs, the REQ callback will send a REQ_commandID=ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ notification. + (When using Link Manager, the LMAN call back will send a LMAN_msg=LMAN_MSG_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA notification.) + +*/ + +// REQ-COMMAND (STWI) ID CODE LIST + +// REQ Command ID returned by the REQ callback +#define ID_RESET_REQ 0x0010 +#define ID_LINK_STATUS_REQ 0x0011 +#define ID_VERSION_STATUS_REQ 0x0012 // not defined in SDK header +#define ID_SYSTEM_STATUS_REQ 0x0013 +#define ID_SLOT_STATUS_REQ 0x0014 // not defined in SDK header +#define ID_CONFIG_STATUS_REQ 0x0015 // not defined in SDK header +#define ID_GAME_CONFIG_REQ 0x0016 +#define ID_SYSTEM_CONFIG_REQ 0x0017 +#define ID_SC_START_REQ 0x0019 +#define ID_SC_POLL_REQ 0x001a +#define ID_SC_END_REQ 0x001b +#define ID_SP_START_REQ 0x001c +#define ID_SP_POLL_REQ 0x001d +#define ID_SP_END_REQ 0x001e +#define ID_CP_START_REQ 0x001f +#define ID_CP_POLL_REQ 0x0020 +#define ID_CP_END_REQ 0x0021 +#define ID_DATA_TX_REQ 0x0024 +#define ID_DATA_TX_AND_CHANGE_REQ 0x0025 +#define ID_DATA_RX_REQ 0x0026 +#define ID_MS_CHANGE_REQ 0x0027 // When returned by the REQ callback, this ID indicates that execution of rfu_REQ_changeMasterSlave has finished. + // This ID is returned by both the REQ callback and the MSC callback. + // When returned by the MSC callback, this is notification that after the AGB has been made into the clock slave, the MC_Timer expired and the RFU returned the AGB to be the clock master. +#define ID_DISCONNECT_REQ 0x0030 +#define ID_TEST_MODE_REQ 0x0031 // not defined in SDK header +#define ID_CPR_START_REQ 0x0032 +#define ID_CPR_POLL_REQ 0x0033 +#define ID_CPR_END_REQ 0x0034 +#define ID_UNK35_REQ 0x0035 // not defined in SDK header +#define ID_RESUME_RETRANSMIT_AND_CHANGE_REQ 0x0037 +#define ID_STOP_MODE_REQ 0x003d +#define ID_CLOCK_SLAVE_MS_CHANGE_ERROR_BY_DMA_REQ 0x00ff // When the AGB is the clock slave, the RFU generates an informational notice, and an automatically started DMA, such as HDMA, is generated at the instant the AGB is being returned as the clock master. This ID is notified by a REQ callback when the exchange of this information (REQ command) fails. + +// REQ Command ID returned by the MSC callback +#define ID_DISCONNECTED_AND_CHANGE_REQ 0x0029 +#define ID_DATA_READY_AND_CHANGE_REQ 0x0028 +#define ID_DRAC_REQ_WITH_ACK_FLAG 0x0128 + +// -------------------------------------------------------------------------- +// +// Data Definitions +// +// -------------------------------------------------------------------------- + +#define RFU_ID 0x00008001 // ID number of AGB-RFU device: ID returned by execution of rfu_REQBN_softReset_and_checkID. + +#define RFU_MBOOT_DOWNLOADER_SERIAL_NO 0x0000 // The game serial number of the multi-boot downloader (programs that boot without a Game Pak) + +#define RFU_API_BUFF_SIZE_RAM 0x0e8c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM) +#define RFU_API_BUFF_SIZE_ROM 0x052c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM) + +#define RFU_CHILD_MAX 4 // Maximum number of slaves that can be connected to one parent device + +#define RFU_GAME_NAME_LENGTH 13 // Possible length of game name set by rfu_REQB_configGameData +#define RFU_USER_NAME_LENGTH 8 // Possible length of user name set by rfu_REQB_configGameData + +#define RFU_H_DMA_MAX_CPU_CYCLE 42 // Maximum number of CPU cycles for H-DMA or DMA that starts with V-Blank that can operate when using RFU + +// Value to determine the level of the icon that displays the link strength of the wireless status (value of rfuLinkStatus->strength[0-3]) +#define RFU_LINK_ICON_LEVEL4_MAX 255 // 90% -100% (If the value is betwen 229 and 255, the icon level is 4) +#define RFU_LINK_ICON_LEVEL4_MIN 229 +#define RFU_LINK_ICON_LEVEL3_MAX 228 // 50% - 89% (If the value is betwen 127 and 228, the icon level is 3) +#define RFU_LINK_ICON_LEVEL3_MIN 127 +#define RFU_LINK_ICON_LEVEL2_MAX 126 // 10% - 49% (If the value is betwen 25 and 126, the icon level is 2) +#define RFU_LINK_ICON_LEVEL2_MIN 25 +#define RFU_LINK_ICON_LEVEL1_MAX 24 // 0% - 9% (If the value is betwen 0 and 24, the icon level is 1) +#define RFU_LINK_ICON_LEVEL1_MIN 0 + + +// ******************************************************* +// Definition Data for Arguments Used in Library Functions +// ******************************************************* +// Specified by u16 mbootFlag in rfu_REQ_configGameData +#define RFU_MBOOT_FLAG 0x01 // Enabling this flag, allows connection to a multi-boot program. + +// AvailSlot (number of slots available for connection) used in u16 availSlotFlag in rfu_REQ_configSystem +#define AVAIL_SLOT4 0x0000 +#define AVAIL_SLOT3 0x0001 +#define AVAIL_SLOT2 0x0002 +#define AVAIL_SLOT1 0x0003 + +// u8 connTypeFlag specified by rfu_setRecvBuffer +#define TYPE_UNI 0x10 // UNI-type +#define TYPE_NI 0x20 // NI-type + +// u8 connTypeFlag specified by rfu_clearSlot +#define TYPE_UNI_SEND 0x01 // UNI-type send +#define TYPE_UNI_RECV 0x02 // UNI-type receive +#define TYPE_NI_SEND 0x04 // NI-type send +#define TYPE_NI_RECV 0x08 // NI-type receive + +// ******************************************************* +// Definition Data Returned by Return Values for Library Functions +// ******************************************************* + +// The function doesn't have return value. +// Value of u8 *status for rfu_REQ_pollConnectParent (Connection Trial Status) +// #define CP_STATUS_DONE 0x00 // Connection successful +// #define CP_STATUS_IN_PROCESS 0x01 // Connecting +// #define CP_STATUS_SLOT_CLOSED 0x02 // Parent device is not in connection mode with child device +// #define CP_STATUS_DISCONNECTED 0x03 // Disconnected by parent device while connecting +// #define CP_STATUS_UNKNOWN 0xff // Cannot read status due to REQ-API execution error + +// The function doesn't exist. +// Value of u8 *status argument for rfu_REQ_pollRecoveryConnect (Link Restore Status) +// #define RC_STATUS_DONE 0x00 // Connection restore successful +// #define RC_STATUS_FAILED 0x01 // Connection restore failure (meaningless to try anymore) +// #define RC_STATUS_SEARCHING_PARENT 0x02 // Searching for parent device +// #define RC_STATUS_UNKNOWN 0xff // Cannot read status due to REQ-API execution error + +// Value of u8 *linkLossReason argument for rfu_REQBN_watchLink (Reason for Link Loss) +#define REASON_DISCONNECTED 0x00 // State of complete disconnection with rfuLL_disconnect and no possibility of restoring the link (can detect only child device) +#define REASON_LINK_LOSS 0x01 // State of link loss that allows for the possibility for the link to be restored + + +// ******************************************************* +// Definition Data Returned with Return Values for Library Functions +// ******************************************************* + +// Value returned by rfu_getMasterSlave +#define AGB_CLK_SLAVE 0 // AGB clock slave +#define AGB_CLK_MASTER 1 // AGB clock master + +// ******************************************************* +// Error Code Group for Library Functions +// ******************************************************* + +// Error codes returned by u16 REQ_result with a REQ callback when a REQ-API function is executed +#define ERR_REQ_CMD 0x0000 +#define ERR_REQ_CMD_CLOCK_DRIFT (ERR_REQ_CMD | 0x0001) // Clock drift occurs when a REQ command is sent +#define ERR_REQ_CMD_SENDING (ERR_REQ_CMD | 0x0002) // The next command cannot be issued because a REQ command is being sent +#define ERR_REQ_CMD_ACK_REJECTION (ERR_REQ_CMD | 0x0003) // The REQ command was refused when issued +#define ERR_REQ_CMD_CLOCK_SLAVE (ERR_REQ_CMD | 0x0004) // Issuing the REQ command was attempted but failed because the AGB is the clock slave +#define ERR_REQ_CMD_IME_DISABLE (ERR_REQ_CMD | 0x0006) // Issuing the REQ command was attempted but failed because the IME register is 0 + +#define ERR_PID_NOT_FOUND 0x0100 // The specified PID does not exist in the gRfuLinkStatus->partner[0-3].id list + +// Error code returned by the return value of rfu_initializeAPI +#define ERR_RFU_API_BUFF_SIZE 0x0001 +#define ERR_RFU_API_BUFF_ADR 0x0002 + +// Error codes returned by return values for rfu_REQBN_softReset_and_checkID +#define ERR_ID_CHECK_IME_DISABLE 0xffffffff // ID check could not be executed because REG_IME=0 when executing rfu_REQBN_softReset_and_checkID + +// Error codes returned by rfu_getConnectParentStatus and rfu_CHILD_getConnectRecoveryStatus +#define ERR_REQ_CMD_ID (ERR_REQ_CMD | 0x0010) // A required REQ command was not executed within this function execution + +// Error codes returned by rfu_NI_setSendData, rfu_UNI_setSendData, and rfu_NI_CHILD_setSendGameName +#define ERR_MODE 0x0300 +#define ERR_MODE_NOT_PARENT (ERR_MODE | 0x0000) // not in SDK +#define ERR_MODE_NOT_CONNECTED (ERR_MODE | 0x0001) // RFU is not in connection mode (parent or child) + +#define ERR_SLOT 0x0400 +#define ERR_SLOT_NO (ERR_SLOT | 0x0000) // The specified slot number is not right +#define ERR_SLOT_NOT_CONNECTED (ERR_SLOT | 0x0001) // The specified slot is not connected +#define ERR_SLOT_BUSY (ERR_SLOT | 0x0002) // The specified slot is already communicating +#define ERR_SLOT_NOT_SENDING (ERR_SLOT | 0x0003) // The specified slot is not currently sending (Note: This is returned by rfu_UNI_re_setSendData) +#define ERR_SLOT_TARGET (ERR_SLOT | 0x0004) // The specified target slot is not right + +#define ERR_SUBFRAME_SIZE 0x0500 // The specified subframe size is either larger than the remaining communication frame size or smaller than the link layer subframe header size + +// Error code returned by rfu_clearSlot, rfu_setRecvBuffer, and rfu_changeSendTarget +#define ERR_COMM_TYPE 0x0600 // The specified communication format is not right + +// Error code returned by rfu_REQ_recvData (when receiving NI-type or UNI-type data) +#define ERR_DATA_RECV 0x0700 // Error notification is issued in the following format. + // "ERR_DATA_RECV | (slot number issuing error with 0x0010<recv.errorCode. + +// Error code during NI-type communication (code entered into gRfuSlotStatusNI[x]->recv.errorCode) +#define ERR_RECV_BUFF_OVER (ERR_DATA_RECV | 0x0001) // The receive data size is larger than the receive buffer (Note: This error is used for both NI and UNI) +#define ERR_RECV_REPLY_SUBFRAME_SIZE (ERR_DATA_RECV | 0x0002) // All frames are already in use by other communications, and a subframe for reception response could not be secured + +// Error code during UNI-type communication (code entered into gRfuSlotStatusUNI[x]->recv.errorCode) +#define ERR_RECV_DATA_OVERWRITED (ERR_DATA_RECV | 0x0008) // Received new data when gRfuSlotStatusUNI[x]->recv.newDataFlag=1 + +// not in SDK header +#define ERR_RECV_UNK (ERR_DATA_RECV | 0x0001 | 0x0008) + +// ******************************************************* +// Definition Data Used by Global Variables in the Library +// ******************************************************* + +// gRfuLinkStatus------------------------------------------- +// Connection status (refer to gRfuLinkStatus->parentChild) +#define MODE_NEUTRAL 0xff // Initialization +#define MODE_CHILD 0x00 // Child +#define MODE_PARENT 0x01 // Parent + + +// gRfuSlotStatusNI,UNI----------------------------------- +// Definition data for NI-(Numbered Information) and UNI-(Un-Numbered Information) type communication + +// Definition data common to NI- and UNI-type communication +#define LLF_P_SIZE 87 // Maximum link layer communication frame size for the Parent (Maximum number of bytes per transmission) +#define LLF_C_SIZE 16 // " " for the Child +#define LLSF_P_HEADER_SIZE 3 // Header size used by one link layer subframe (NI or UNI frame) for the Parent +#define LLSF_C_HEADER_SIZE 2 // " " for the Child + +// Link Layer Communication Code +#define LCOM_NULL 0x0000 +#define LCOM_NI_START 0x0001 +#define LCOM_NI 0x0002 +#define LCOM_NI_END 0x0003 +#define LCOM_UNI 0x0004 + +// Flag for Slot Status Data +#define SLOT_BUSY_FLAG 0x8000 // Slot in use +#define SLOT_SEND_FLAG 0x0020 // Send +#define SLOT_RECV_FLAG 0x0040 // Receive +// NI- and UNI-type shared slot stand-by data (same state as gRfuSlotStatusNI[x]->send or ->recv.state or gRfuSlotStatusUNI) +#define SLOT_STATE_READY 0x0000 // Slot initialization + +// Status data for NI-type communication (gRfuSlotStatusNI[x]->send or ->recv.state) +#define SLOT_STATE_SEND_START (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_NI_START) // Start transmission +#define SLOT_STATE_SENDING (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_NI) // Transmitting +#define SLOT_STATE_SEND_LAST (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_NI_END) // Verify transmission end +#define SLOT_STATE_SEND_NULL (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_NULL) // Send NULL subframe to notify end of transmission +#define SLOT_STATE_SEND_SUCCESS ( SLOT_SEND_FLAG | 0x006) // Transmission successful +#define SLOT_STATE_SEND_FAILED ( SLOT_SEND_FLAG | 0x007) // Transmission failed + // Distinction of slot where transmission succeeded/failed compares gRfuSlotStatusNI[x]->send.bmSlot and same bmSlot_org +#define SLOT_STATE_RECV_START (SLOT_BUSY_FLAG | SLOT_RECV_FLAG | LCOM_NI_START) // Start reception +#define SLOT_STATE_RECEIVING (SLOT_BUSY_FLAG | SLOT_RECV_FLAG | LCOM_NI) // Receiving +#define SLOT_STATE_RECV_LAST (SLOT_BUSY_FLAG | SLOT_RECV_FLAG | LCOM_NI_END) // Verify reception end +#define SLOT_STATE_RECV_SUCCESS ( SLOT_RECV_FLAG | 0x006) // Reception successful +#define SLOT_STATE_RECV_FAILED ( SLOT_RECV_FLAG | 0x007) // Reception failed +#define SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN (SLOT_RECV_FLAG | 0x008) // The data was received successful, but because the end of the communication was incomplete, whether the transmission side status is successful or failed is unknown +#define SLOT_STATE_RECV_IGNORE ( SLOT_RECV_FLAG | 0x009) // Ignore reception (refer to gRfuSlotStatusNI[x]->recv.errorCode for reason for ignoring) + +// Status data for UNI-type communication (refer to gRfuSlotStatusUNI[x]->send.state) +#define SLOT_STATE_SEND_UNI (SLOT_BUSY_FLAG | SLOT_SEND_FLAG | LCOM_UNI) // Transmitting + +// the following structs are not documented in SDK struct RfuPacket8 { u8 data[0x74]; @@ -70,191 +292,364 @@ union RfuPacket struct RfuPacket8 rfuPacket8; }; -struct UnkLinkRfuStruct_02022B14Substruct +struct STWIStatus { - u16 unk_00_0:4; - u16 unk_00_4:1; - u16 unk_00_5:1; - u16 unk_00_6:1; - u16 isChampion:1; - u16 hasNationalDex:1; - u16 gameClear:1; // never read, redundant with isChampion - u16 unk_01_2:4; // always 3? - u16 unk_01_6:2; - u8 playerTrainerId[2]; -}; - -struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14 -{ - struct UnkLinkRfuStruct_02022B14Substruct unk_00; - u8 unk_04[4]; - u16 species:10; - u16 type:6; - u8 unk_0a_0:7; - u8 unk_0a_7:1; - u8 playerGender:1; - u8 level:7; - u8 unk_0c; -}; - -struct RfuStruct -{ - vs32 unk_0; - u8 txParams; - u8 unk_5; - u8 activeCommand; - u8 unk_7; - u8 unk_8; - u8 unk_9; + vs32 state; + u8 reqLength; + u8 reqNext; + u8 reqActiveCommand; + u8 ackLength; + u8 ackNext; + u8 ackActiveCommand; u8 timerSelect; u8 unk_b; - int timerState; + s32 timerState; // this field is u32 in firered vu8 timerActive; u8 unk_11; - vu16 unk_12; + vu16 error; vu8 msMode; - u8 unk_15; + u8 recoveryCount; u8 unk_16; u8 unk_17; void (*callbackM)(); - void (*callbackS)(); - u32 callbackID; + void (*callbackS)(u16); + void (*unk_20)(void); union RfuPacket *txPacket; union RfuPacket *rxPacket; vu8 unk_2c; - u8 padding[3]; }; +// This struct is used as u8 array in SDK. struct RfuIntrStruct { - u8 rxPacketAlloc[0x74]; - u8 txPacketAlloc[0x74]; - u8 block1[0x960]; - u8 block2[0x30]; + union RfuPacket rxPacketAlloc; + union RfuPacket txPacketAlloc; + u8 block1[0x960]; // size of librfu_intr.s binary + struct STWIStatus block2; }; -struct RfuUnk1 +// Data Structure for Transmitting UNI-Type Data +struct UNISend { - u16 unk_0; - u8 unk_2; - u8 unk_3; - u8 fill_4[14]; - u8 unk_12; - u32 unk_14; - u32 unk_18; - struct RfuIntrStruct unk_1c; + u16 state; // Slot communication state (SLOT_STATE_READY, SLOT_STATE_SEND_UNI) + u8 dataReadyFlag; // Flag indicating transmission data is prepared (0: data sent; 1: transmission data ready) + // Set with rfu_UNI_re_setSendData or rfu_UNI_readySendData, cleared when data is sent with rfu_REQ_sendData. + u8 bmSlot; // Expresses transmission destination slot as bits + u16 payloadSize; // Payload size of 1 transmission. "size" specified by rfu_UNI_setSendData or rfu_UNI_re_setSendData is used. + const void *src; // Beginning address of transmission data }; -struct RfuUnk2 +// Data Structure for Receiving UNI Data +struct UNIRecv { - u16 unk_0; - u16 unk_2; - u8 fill_4[0x16]; - u8 unk_1a; - u8 fill_1b[0x19]; - u16 unk_34; - u16 unk_36; - u8 fill_38[0x16]; - u8 unk_4e; - u8 fill_4f[0x12]; - u8 unk_61; - u8 fill_62[6]; - void *unk_68; - void *unk_6c; - u8 unk_70[0x70]; + u16 state; // Slot communication state (SLOT_STATE_READY, SLOT_STATE_RECEIVING, SLOT_STATE_RECV_IGNORE) + u16 errorCode; // Error code during reception + u16 dataSize; // Size of receive data + u8 newDataFlag; // Flag indicating whether receive data has newly arrived (0: no newly arrived data; 1: newly arrived data) + // The flag is cleared with rfu_UNI_clearRecvNewDataFlag; it is set when data is received with rfu_REQ_recvData. + u8 dataBlockFlag; // Flag for unreferenced receive data overwrite block (default is 0 Note: not used) }; -struct RfuUnk3 +// Slot Status Data Structure for UNI-Type Communication +struct RfuSlotStatusUNI { - u32 unk_0; - u32 unk_4; - u8 unk_8[0xD4]; - u32 unk_dc; + struct UNISend send; // Transmission Status + struct UNIRecv recv; // Reception Status + void *recvBuffer; // Reception Buffer Address + u32 recvBufferSize; // Reception Buffer Size }; -struct RfuUnk5Sub +#define WINDOW_COUNT 4 + +struct NIComm { - u16 unk_00; - u8 unk_02; - u16 unk_04; - struct UnkLinkRfuStruct_02022B14 unk_06; - u8 fill_13[1]; - u8 playerName[PLAYER_NAME_LENGTH + 1]; + u16 state; // Communication state of slot + u16 failCounter; // Count of failed transmissions/receptions (Count is increased when transmission/reception of data does not succeed within 1PF=16.7 ms) + const u8 *now_p[WINDOW_COUNT]; // Address of current send/receive (The data is divided into WINDOW_COUNT blocks and sent in payloadSize units.) + // remainSize is u32 in SDK. This is a hack to match ASM + s32 remainSize; // Size of remaining communication data + u16 errorCode; // Error code + u8 bmSlot; // Expresses the current communication slot in bits + // (When sending from the Master, because multiple slaves can be specified with bmSlot, communications are terminated based on the failCounter for each child device) + // Parameters used inside the Library + u8 recvAckFlag[WINDOW_COUNT]; + u8 ack; + u8 phase; + u8 n[WINDOW_COUNT]; + // Parameters indicating the current communication content + const void *src; // Start address transmission data (valid only for transmitting device) + u8 bmSlotOrg; // Expresses the communication source slot at the beginning of the transmission in bits (valid only for transmitting device) + u8 dataType; // Transmission/reception data type (0: User data; 1: Game identification information) + u16 payloadSize; // Payload size for one transmission + u32 dataSize; // Size of transmission/reception data + // Calculated by subtracting link layer header size from subFrameSize specified by the rfu_NI_setSendData function }; -struct RfuUnk5 +struct RfuSlotStatusNI { - u8 unk_00; - u8 unk_01; - u8 unk_02; - u8 unk_03; - u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; - u8 unk_08; - u8 filler_09[1]; - u8 unk_0a[4]; - u8 filler_0e[6]; - struct RfuUnk5Sub unk_14[4]; + struct NIComm send; // Transmission Status + struct NIComm recv; // Reception Status + void *recvBuffer; // Reception Buffer Address + u32 recvBufferSize; // Reception Buffer Size }; -extern struct RfuStruct *gRfuState; +// Game Identification Information Data Structure +struct RfuTgtData +{ + u16 id; // ID of parent candidate ID of connection partner + u8 slot; // Slot number where parent candidate can enter Connection slot number + u8 mbootFlag; // Flag to indicate whether or not the parent candidate Flag to indicate whether or not the connection partner + // is multiboot program for download is multiboot program for download + u16 serialNo; // Game serial number of parent candidate Game serial number of connection partner + u8 gname[RFU_GAME_NAME_LENGTH + 2]; // Game name of parent candidate Game name of connection partner + u8 uname[RFU_USER_NAME_LENGTH + 1]; // User name for parent candidate User name for connection partner +}; -extern struct RfuUnk5 *gUnknown_03007890; -extern u32 *gUnknown_03007894; -extern struct RfuUnk3* gUnknown_03007898; -extern struct RfuUnk2* gUnknown_03007880[4]; -extern struct RfuUnk1* gUnknown_03007870[4]; -extern void* sub_82E53F4; -extern void rfu_STC_clearAPIVariables(void); +struct RfuLinkStatus +{ + u8 parentChild; // Connection status (0x01:MODE_PARENT 0x00:MODE_CHILD 0xff:MODE_NEUTRAL) + u8 connCount; // Number of connections + u8 connSlotFlag; // Flag to indicate in bits the connection slot (0x01< 0) - gUnknown_0203CD70 += hpVal; + gPlayerPartyLostHP += hpVal; if (hpVal != INSTANT_HP_BAR_DROP) { diff --git a/src/battle_dome.c b/src/battle_dome.c index 897269a304c9..746d195d91fa 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle_dome.h" #include "battle.h" +#include "battle_main.h" #include "battle_setup.h" #include "battle_tower.h" #include "frontier_util.h" @@ -34,60 +35,80 @@ #include "constants/frontier_util.h" #include "constants/species.h" #include "constants/moves.h" +#include "constants/pokemon.h" #include "constants/trainers.h" #include "constants/abilities.h" #include "constants/songs.h" #include "constants/battle_frontier.h" #include "constants/rgb.h" -struct BattleDomeStruct +// Enough space to hold 2 match info cards worth of trainers and their parties +#define NUM_INFOCARD_SPRITES ((FRONTIER_PARTY_SIZE + 1) * 4) +#define NUM_INFOCARD_TRAINERS 2 + +// An 'Info Card' is a trainer or match information page that can be viewed on the Tourney Tree +struct TourneyTreeInfoCard { - u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT]; - u8 unk_10; - u8 unk_11[3]; + u8 spriteIds[NUM_INFOCARD_SPRITES]; + u8 pos; + u8 tournamentIds[NUM_INFOCARD_TRAINERS]; }; -struct UnkStruct_860DD10 +struct TourneyTreeLineSection { u8 x; u8 y; u16 src; }; +#define DOME_TRAINERS gSaveBlock2Ptr->frontier.domeTrainers +#define DOME_MONS gSaveBlock2Ptr->frontier.domeMonIds + +#define tState data[0] + +// Task data for Task_ShowTourneyTree +#define tNotInteractive data[1] +#define tIsPrevTourneyTree data[4] + +// Task data for Task_ShowTourneyInfoCard +#define tTournamentId data[1] +#define tMode data[2] +#define tPrevTaskId data[3] + // This file's functions. static u8 GetDomeTrainerMonIvs(u16 trainerId); static void SwapDomeTrainers(int id1, int id2, u16 *statsArray); static void CalcDomeMonStats(u16 species, int level, int ivs, u8 evBits, u8 nature, int *stats); static void CreateDomeOpponentMons(u16 tournamentTrainerId); -static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); -static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); +static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 arg1); +static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 arg1); static int GetTypeEffectivenessPoints(int move, int species, int arg2); -static int sub_818FEB4(int *arr, bool8 arg1); -static void Task_ShowOpponentInfo(u8 taskId); -static void sub_8190CD4(u8 taskId); -static u8 sub_819221C(u8 taskId); -static void InitDomeFacilityTrainersAndMons(void); +static int SelectOpponentMonsFromParty(int *arr, bool8 arg1); +static void Task_ShowTourneyInfoCard(u8 taskId); +static void Task_HandleInfoCardInput(u8 taskId); +static u8 Task_GetInfoCardInput(u8 taskId); +static void SetFacilityTrainerAndMonPtrs(void); static int TrainerIdToTournamentId(u16 trainerId); static u16 TrainerIdOfPlayerOpponent(void); static void Task_ShowTourneyTree(u8 taskId); -static void sub_8194950(u8 taskId); -static void CB2_BattleDome(void); -static void VblankCb0_BattleDome(void); +static void Task_HandleStaticTourneyTreeInput(u8 taskId); +static void CB2_TourneyTree(void); +static void VblankCb_TourneyInfoCard(void); static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo); -static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId); -static int sub_8192F08(u8, u8*); +static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId); +static int BufferDomeWinString(u8, u8*); static u8 GetDomeBrainTrainerPicId(void); static u8 GetDomeBrainTrainerClass(void); static void CopyDomeBrainTrainerName(u8 *str); static void CopyDomeTrainerName(u8 *str, u16 trainerId); -static void HblankCb_BattleDome(void); -static void VblankCb1_BattleDome(void); +static void HblankCb_TourneyTree(void); +static void VblankCb_TourneyTree(void); static u8 UpdateTourneyTreeCursor(u8 taskId); static void DecideRoundWinners(u8 roundId); static u8 sub_81953E8(u8 tournamentId, u8); -static void sub_81948EC(u8, u8); -static void sub_8190B40(struct Sprite *sprite); -static void sub_8190C6C(struct Sprite *sprite); +static void DrawTourneyAdvancementLine(u8, u8); +static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite); +static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite); static void InitDomeChallenge(void); static void GetDomeData(void); static void SetDomeData(void); @@ -96,7 +117,7 @@ static void BufferDomeOpponentName(void); static void InitDomeOpponentParty(void); static void ShowDomeOpponentInfo(void); static void ShowDomeTourneyTree(void); -static void ShowPreviousDomeResultsTourneyTree(void); +static void ShowPreviousDomeTourneyTree(void); static void SetDomeOpponentId(void); static void SetDomeOpponentGraphicsId(void); static void ShowNonInteractiveDomeTourneyTree(void); @@ -105,411 +126,415 @@ static void SaveDomeChallenge(void); static void IncrementDomeStreaks(void); static void ResetSketchedMoves(void); static void RestoreDomePlayerPartyHeldItems(void); -static void ReduceDomePlayerPartyTo3Mons(void); +static void ReduceDomePlayerPartyToSelectedMons(void); static void GetPlayerSeededBeforeOpponent(void); static void BufferLastDomeWinnerName(void); -static void sub_8194F58(void); +static void InitRandomTourneyTreeResults(void); static void InitDomeTrainers(void); // EWRAM variables. -EWRAM_DATA u32 gUnknown_0203CD70 = 0; -static EWRAM_DATA u32 gUnknown_0203CD74 = 0; -static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; +EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read +static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read +static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; -// Const rom data. -static const u8 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = -{ - [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, - [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0}, - [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0}, - [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1}, - [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0}, - [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, - [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, - [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, - [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, - [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, - [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, - [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0}, - [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, - [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, - [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1}, - [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, - [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, - [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1}, - [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, - [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0}, - [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0}, - [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, - [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, - [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, - [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, - [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, - [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, - [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, - [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, - [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, - [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1}, - [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, - [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0}, - [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, - [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, - [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, - [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, +// Each move has an array of points for different move characteristics which contribute to a tourney trainers listed battle style (see sBattleStyleThresholds) +// All move points are either 1 or 0, so theyre essentially flags saying whether or not the move has that characteristic +static const u8 sBattleStyleMovePoints[MOVES_COUNT][NUM_MOVE_POINT_TYPES] = +{ + [MOVE_NONE] = {0}, + [MOVE_POUND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_KARATE_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_DOUBLE_SLAP] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_COMET_PUNCH] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_MEGA_PUNCH] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_PAY_DAY] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FIRE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_ICE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_THUNDER_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SCRATCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_VICE_GRIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_GUILLOTINE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_RAZOR_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SWORDS_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_POPULAR] = 1}, + [MOVE_CUT] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_GUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_WING_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_WHIRLWIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FLY] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_BIND] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SLAM] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_VINE_WHIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_STOMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DOUBLE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_MEGA_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_ROLLING_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SAND_ATTACK] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_HEADBUTT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_HORN_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FURY_ATTACK] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_HORN_DRILL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_TACKLE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_BODY_SLAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_WRAP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_TAKE_DOWN] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_THRASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DOUBLE_EDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TAIL_WHIP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_POISON_STING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_TWINEEDLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_PIN_MISSILE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_LEER] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_BITE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_GROWL] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ROAR] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SING] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_SUPERSONIC] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_SONIC_BOOM] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_DISABLE] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_ACID] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_EMBER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FLAMETHROWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MIST] = {0}, + [MOVE_WATER_GUN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_HYDRO_PUMP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SURF] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_ICE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BLIZZARD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_PSYBEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BUBBLE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_AURORA_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_HYPER_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_DRILL_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SUBMISSION] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_LOW_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_COUNTER] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_SEISMIC_TOSS] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_STRENGTH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ABSORB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_MEGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_LEECH_SEED] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1}, + [MOVE_GROWTH] = {[MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_RAZOR_LEAF] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SOLAR_BEAM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_POISON_POWDER] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_STUN_SPORE] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_SLEEP_POWDER] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_PETAL_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_STRING_SHOT] = {[MOVE_POINTS_STAT_LOWER] = 1}, + [MOVE_DRAGON_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FIRE_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_THUNDER_SHOCK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_THUNDERBOLT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_THUNDER_WAVE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_THUNDER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_ROCK_THROW] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_EARTHQUAKE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_FISSURE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_DIG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TOXIC] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_CONFUSION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_PSYCHIC] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_HYPNOSIS] = {[MOVE_POINTS_COMBO] = 1}, + [MOVE_MEDITATE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_AGILITY] = {[MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_QUICK_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TELEPORT] = {0}, + [MOVE_NIGHT_SHADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_MIMIC] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SCREECH] = {[MOVE_POINTS_STAT_LOWER] = 1}, + [MOVE_DOUBLE_TEAM] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_RECOVER] = {0}, + [MOVE_HARDEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_MINIMIZE] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_SMOKESCREEN] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CONFUSE_RAY] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_WITHDRAW] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_DEFENSE_CURL] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_BARRIER] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_LIGHT_SCREEN] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_HAZE] = {0}, + [MOVE_REFLECT] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_FOCUS_ENERGY] = {[MOVE_POINTS_COMBO] = 1}, + [MOVE_BIDE] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_METRONOME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_MIRROR_MOVE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_SELF_DESTRUCT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_EGG_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_LICK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SMOG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SLUDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BONE_CLUB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FIRE_BLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_WATERFALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CLAMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SWIFT] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SKULL_BASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_SPIKE_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CONSTRICT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_AMNESIA] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_KINESIS] = {[MOVE_POINTS_STAT_LOWER] = 1}, + [MOVE_SOFT_BOILED] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_HI_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_GLARE] = {[MOVE_POINTS_STAT_LOWER] = 1}, + [MOVE_DREAM_EATER] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_POISON_GAS] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_BARRAGE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_LEECH_LIFE] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_LOVELY_KISS] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_SKY_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_TRANSFORM] = {[MOVE_POINTS_RARE] = 1}, + [MOVE_BUBBLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DIZZY_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SPORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FLASH] = {0}, + [MOVE_PSYWAVE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SPLASH] = {[MOVE_POINTS_RARE] = 1}, + [MOVE_ACID_ARMOR] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_CRABHAMMER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_EXPLOSION] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_FURY_SWIPES] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_BONEMERANG] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_REST] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1}, + [MOVE_ROCK_SLIDE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_HYPER_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SHARPEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_CONVERSION] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_TRI_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SUPER_FANG] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SLASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SUBSTITUTE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DEF] = 1}, + [MOVE_STRUGGLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, // Odd that this is assigned qualities + [MOVE_SKETCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_TRIPLE_KICK] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_THIEF] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SPIDER_WEB] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_MIND_READER] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_NIGHTMARE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FLAME_WHEEL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SNORE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_CURSE] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_FLAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CONVERSION_2] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_AEROBLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_COTTON_SPORE] = {[MOVE_POINTS_STAT_LOWER] = 1}, + [MOVE_REVERSAL] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SPITE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_POWDER_SNOW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_PROTECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_POPULAR] = 1}, + [MOVE_MACH_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SCARY_FACE] = {0}, + [MOVE_FAINT_ATTACK] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SWEET_KISS] = {0}, + [MOVE_BELLY_DRUM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_SLUDGE_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MUD_SLAP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_OCTAZOOKA] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SPIKES] = {[MOVE_POINTS_COMBO] = 1}, + [MOVE_ZAP_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FORESIGHT] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_DESTINY_BOND] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_PERISH_SONG] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_ICY_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DETECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_BONE_RUSH] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_LOCK_ON] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_OUTRAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SANDSTORM] = {0}, + [MOVE_GIGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_ENDURE] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_CHARM] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ROLLOUT] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_FALSE_SWIPE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SWAGGER] = {[MOVE_POINTS_EFFECT] = 1}, + [MOVE_MILK_DRINK] = {[MOVE_POINTS_HEAL] = 1}, + [MOVE_SPARK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FURY_CUTTER] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_STEEL_WING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MEAN_LOOK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_ATTRACT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SLEEP_TALK] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_HEAL_BELL] = {[MOVE_POINTS_LOW_PP] = 1}, + [MOVE_RETURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_PRESENT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_FRUSTRATION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SAFEGUARD] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_PAIN_SPLIT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SACRED_FIRE] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MAGNITUDE] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_DYNAMIC_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MEGAHORN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_DRAGON_BREATH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BATON_PASS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1}, + [MOVE_ENCORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_PURSUIT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_RAPID_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SWEET_SCENT] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_IRON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_METAL_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_VITAL_THROW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_MORNING_SUN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SYNTHESIS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_MOONLIGHT] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_HIDDEN_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CROSS_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_TWISTER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_RAIN_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SUNNY_DAY] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_CRUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MIRROR_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_PSYCH_UP] = {[MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_EXTREME_SPEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_ANCIENT_POWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SHADOW_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FUTURE_SIGHT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1}, + [MOVE_ROCK_SMASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_WHIRLPOOL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BEAT_UP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FAKE_OUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_UPROAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_STOCKPILE] = {[MOVE_POINTS_COMBO] = 1}, + [MOVE_SPIT_UP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_SWALLOW] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1}, + [MOVE_HEAT_WAVE] = {[MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_HAIL] = {0}, + [MOVE_TORMENT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FLATTER] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_WILL_O_WISP] = {[MOVE_POINTS_STATUS] = 1}, + [MOVE_MEMENTO] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FACADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FOCUS_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_SMELLING_SALT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FOLLOW_ME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_NATURE_POWER] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_CHARGE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TAUNT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_HELPING_HAND] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TRICK] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ROLE_PLAY] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_WISH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ASSIST] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_INGRAIN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_SUPERPOWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_MAGIC_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_RECYCLE] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_REVENGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_BRICK_BREAK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_YAWN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_KNOCK_OFF] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_ENDEAVOR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_ERUPTION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SKILL_SWAP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_IMPRISON] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_REFRESH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_GRUDGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SNATCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, + [MOVE_SECRET_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DIVE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ARM_THRUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CAMOUFLAGE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TAIL_GLOW] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_LUSTER_PURGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MIST_BALL] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_FEATHER_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_TEETER_DANCE] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_BLAZE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MUD_SPORT] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ICE_BALL] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_NEEDLE_ARM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SLACK_OFF] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_HYPER_VOICE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_POISON_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_CRUSH_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BLAST_BURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_HYDRO_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_METEOR_MASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_ASTONISH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_WEATHER_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_AROMATHERAPY] = {[MOVE_POINTS_LOW_PP] = 1}, + [MOVE_FAKE_TEARS] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_AIR_CUTTER] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_OVERHEAT] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_ODOR_SLEUTH] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_ROCK_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SILVER_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_METAL_SOUND] = {0}, + [MOVE_GRASS_WHISTLE] = {0}, + [MOVE_TICKLE] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_COSMIC_POWER] = {0}, + [MOVE_WATER_SPOUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_SIGNAL_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SHADOW_PUNCH] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_EXTRASENSORY] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SKY_UPPERCUT] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SAND_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_SHEER_COLD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_MUDDY_WATER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_BULLET_SEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_AERIAL_ACE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_ICICLE_SPEAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_IRON_DEFENSE] = {[MOVE_POINTS_DEF] = 1}, + [MOVE_BLOCK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_HOWL] = {0}, + [MOVE_DRAGON_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_FRENZY_PLANT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_BULK_UP] = {[MOVE_POINTS_COMBO] = 1}, + [MOVE_BOUNCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_MUD_SHOT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_POISON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_COVET] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_VOLT_TACKLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1}, + [MOVE_MAGICAL_LEAF] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_WATER_SPORT] = {[MOVE_POINTS_ACCURATE] = 1}, + [MOVE_CALM_MIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_LEAF_BLADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, + [MOVE_DRAGON_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, + [MOVE_ROCK_BLAST] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_SHOCK_WAVE] = {[MOVE_POINTS_DMG] = 1}, + [MOVE_WATER_PULSE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, + [MOVE_DOOM_DESIRE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, + [MOVE_PSYCHO_BOOST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, }; -static const u8 gUnknown_0860C988[][DOME_TOURNAMENT_TRAINERS_COUNT] = -{ - {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0}, - {1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - {3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0}, - {0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0}, - {0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0}, - {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4}, - {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, 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, 0, 0}, +// This array is searched in-order to determine what battle style a tourney trainer uses. +// If the sum of the points for the party's moves meets/exceeds all the point totals of an element, then they use that battle style +static const u8 sBattleStyleThresholds[NUM_BATTLE_STYLES - 1][NUM_MOVE_POINT_TYPES] = +{ + [DOME_BATTLE_STYLE_RISKY] = {[MOVE_POINTS_RISKY] = 1}, + [DOME_BATTLE_STYLE_STALL] = {[MOVE_POINTS_HEAL] = 2, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DEF] = 2}, + [DOME_BATTLE_STYLE_VARIED] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DEF] = 1}, + [DOME_BATTLE_STYLE_COMBO_HIGH] = {[MOVE_POINTS_COMBO] = 3}, + [DOME_BATTLE_STYLE_RARE_MOVES] = {[MOVE_POINTS_RARE] = 2}, + [DOME_BATTLE_STYLE_RARE_MOVE] = {[MOVE_POINTS_RARE] = 1}, + [DOME_BATTLE_STYLE_HP] = {[MOVE_POINTS_HEAL] = 3}, + [DOME_BATTLE_STYLE_STORE_POWER] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_HEAL] = 1}, + [DOME_BATTLE_STYLE_ENFEEBLE_LOW] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_STATUS] = 1}, + [DOME_BATTLE_STYLE_LUCK] = {[MOVE_POINTS_LUCK] = 2}, + [DOME_BATTLE_STYLE_REGAL] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, + [DOME_BATTLE_STYLE_LOW_PP] = {[MOVE_POINTS_LOW_PP] = 3}, + [DOME_BATTLE_STYLE_STATUS_ATK] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_STATUS] = 1}, + [DOME_BATTLE_STYLE_ENDURE] = {[MOVE_POINTS_HEAL] = 2, [MOVE_POINTS_DEF] = 2}, + [DOME_BATTLE_STYLE_STATUS] = {[MOVE_POINTS_STATUS] = 2}, + [DOME_BATTLE_STYLE_STRAIGHTFORWARD] = {[MOVE_POINTS_ACCURATE] = 3, [MOVE_POINTS_STRONG] = 3}, + [DOME_BATTLE_STYLE_AGGRESSIVE] = {[MOVE_POINTS_STRONG] = 4}, + [DOME_BATTLE_STYLE_DEF] = {[MOVE_POINTS_DEF] = 3}, + [DOME_BATTLE_STYLE_ENFEEBLE_HIGH] = {[MOVE_POINTS_STAT_LOWER] = 2, [MOVE_POINTS_STATUS] = 2}, // BUG: This battle style is unobtainable; DOME_BATTLE_STYLE_ENFEEBLE_LOW will always succeed before it + [DOME_BATTLE_STYLE_POPULAR_POWER] = {[MOVE_POINTS_POWERFUL] = 3, [MOVE_POINTS_POPULAR] = 3}, + [DOME_BATTLE_STYLE_COMBO_LOW] = {[MOVE_POINTS_COMBO] = 2}, + [DOME_BATTLE_STYLE_ACCURATE] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 3}, + [DOME_BATTLE_STYLE_POWERFUL] = {[MOVE_POINTS_POWERFUL] = 4}, + [DOME_BATTLE_STYLE_ATK_OVER_DEF] = {[MOVE_POINTS_DMG] = 7}, + [DOME_BATTLE_STYLE_DEF_OVER_ATK] = {[MOVE_POINTS_DEF] = 4}, // BUG: This battle style is unobtainable; DOME_BATTLE_STYLE_DEF will always succeed before it + [DOME_BATTLE_STYLE_POPULAR_STRONG] = {[MOVE_POINTS_POPULAR] = 2, [MOVE_POINTS_STRONG] = 4}, + [DOME_BATTLE_STYLE_EFFECTS] = {[MOVE_POINTS_EFFECT] = 4}, + [DOME_BATTLE_STYLE_BALANCED] = {0}, // If no other thresholds are met, this battle style is used + [DOME_BATTLE_STYLE_UNUSED1] = {0}, // Here below is unreachable + [DOME_BATTLE_STYLE_UNUSED2] = {0}, + [DOME_BATTLE_STYLE_UNUSED3] = {0}, + //[DOME_BATTLE_STYLE_UNUSED4] = {0}, // Excluded here, presumably was meant to be a style just for Dome Ace Tucker }; static const u8 sUnusedArray[] = { @@ -523,43 +548,47 @@ static const u8 sUnusedArray[] = 0, 0, 0, 254, 0, 0, 0, 0, 0, }; -static const u8 sTourneyTreeCursorMovementMap[][5][4]= -{ - {{0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}, {0x07, 0x01, 0x08, 0x10}}, - {{0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}, {0x00, 0x02, 0x09, 0x10}}, - {{0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}, {0x01, 0x03, 0x0a, 0x11}}, - {{0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}, {0x02, 0x04, 0x0b, 0x11}}, - {{0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}, {0x03, 0x05, 0x0c, 0x12}}, - {{0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}, {0x04, 0x06, 0x0d, 0x12}}, - {{0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}, {0x05, 0x07, 0x0e, 0x13}}, - {{0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}, {0x06, 0x00, 0x0f, 0x13}}, - {{0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}, {0x1f, 0x09, 0x14, 0x1f}}, - {{0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}, {0x08, 0x0a, 0x14, 0x01}}, - {{0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}, {0x09, 0x0b, 0x15, 0x02}}, - {{0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}, {0x0a, 0x0c, 0x15, 0x03}}, - {{0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}, {0x0b, 0x0d, 0x16, 0x04}}, - {{0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}, {0x0c, 0x0e, 0x16, 0x05}}, - {{0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}, {0x0d, 0x0f, 0x17, 0x06}}, - {{0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}, {0x0e, 0x1f, 0x17, 0x07}}, - {{0x13, 0x11, 0x00, 0x14}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}, {0x13, 0x11, 0x00, 0x18}}, - {{0x10, 0x12, 0x02, 0x15}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}, {0x10, 0x12, 0x02, 0x18}}, - {{0x11, 0x13, 0x04, 0x16}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}, {0x11, 0x13, 0x04, 0x19}}, - {{0x12, 0x10, 0x06, 0x17}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}, {0x12, 0x10, 0x06, 0x19}}, - {{0x17, 0x15, 0x10, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}, {0x17, 0x15, 0x1a, 0x08}}, - {{0x14, 0x16, 0x11, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}, {0x14, 0x16, 0x1a, 0x0a}}, - {{0x15, 0x17, 0x12, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}, {0x15, 0x17, 0x1b, 0x0c}}, - {{0x16, 0x14, 0x13, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}, {0x16, 0x14, 0x1b, 0x0e}}, - {{0xff, 0xff, 0xff, 0xff}, {0x19, 0x19, 0x10, 0x1a}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}, {0x19, 0x19, 0x10, 0x1c}}, - {{0xff, 0xff, 0xff, 0xff}, {0x18, 0x18, 0x12, 0x1b}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}, {0x18, 0x18, 0x12, 0x1c}}, - {{0xff, 0xff, 0xff, 0xff}, {0x1b, 0x1b, 0x18, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}, {0x1b, 0x1b, 0x1d, 0x14}}, - {{0xff, 0xff, 0xff, 0xff}, {0x1a, 0x1a, 0x19, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}, {0x1a, 0x1a, 0x1d, 0x16}}, - {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x18, 0x1d}, {0xff, 0xff, 0x18, 0x1e}, {0xff, 0xff, 0x18, 0x1e}}, - {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}, {0xff, 0xff, 0x1e, 0x1a}}, - {{0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0x1c, 0x1d}, {0xff, 0xff, 0x1c, 0x1d}}, - {{0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}, {0x0f, 0x08, 0x08, 0x00}}, +// 1st array is for cursor position (sprite id): cursor can be on a trainer info button, a match info button, or the exit/cancel button +// 2nd array is for round count. For some reason this array contains an inaccessible Round 5 which is identical to Round 4 +// 3rd array is movement direction (see the MOVE_DIR_* constants in UpdateTourneyTreeCursor) +// The values are sprite IDs for the cursor position to move to, with 0xFF being an invalid move +static const u8 sTourneyTreeCursorMovementMap[DOME_TOURNAMENT_TRAINERS_COUNT + DOME_TOURNAMENT_MATCHES_COUNT + 1][DOME_ROUNDS_COUNT + 1][4]= +{ + [0] = {{ 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}, { 7, 1, 8, 16}}, + [1] = {{ 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}, { 0, 2, 9, 16}}, + [2] = {{ 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}, { 1, 3, 10, 17}}, + [3] = {{ 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}, { 2, 4, 11, 17}}, + [4] = {{ 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}, { 3, 5, 12, 18}}, + [5] = {{ 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}, { 4, 6, 13, 18}}, + [6] = {{ 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}, { 5, 7, 14, 19}}, + [7] = {{ 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}, { 6, 0, 15, 19}}, + [8] = {{ 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}, { 31, 9, 20, 31}}, + [9] = {{ 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}, { 8, 10, 20, 1}}, + [10] = {{ 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}, { 9, 11, 21, 2}}, + [11] = {{ 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}, { 10, 12, 21, 3}}, + [12] = {{ 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}, { 11, 13, 22, 4}}, + [13] = {{ 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}, { 12, 14, 22, 5}}, + [14] = {{ 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}, { 13, 15, 23, 6}}, + [15] = {{ 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}, { 14, 31, 23, 7}}, + [16] = {{ 19, 17, 0, 20}, { 19, 17, 0, 24}, { 19, 17, 0, 24}, { 19, 17, 0, 24}, { 19, 17, 0, 24}}, + [17] = {{ 16, 18, 2, 21}, { 16, 18, 2, 24}, { 16, 18, 2, 24}, { 16, 18, 2, 24}, { 16, 18, 2, 24}}, + [18] = {{ 17, 19, 4, 22}, { 17, 19, 4, 25}, { 17, 19, 4, 25}, { 17, 19, 4, 25}, { 17, 19, 4, 25}}, + [19] = {{ 18, 16, 6, 23}, { 18, 16, 6, 25}, { 18, 16, 6, 25}, { 18, 16, 6, 25}, { 18, 16, 6, 25}}, + [20] = {{ 23, 21, 16, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}, { 23, 21, 26, 8}}, + [21] = {{ 20, 22, 17, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}, { 20, 22, 26, 10}}, + [22] = {{ 21, 23, 18, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}, { 21, 23, 27, 12}}, + [23] = {{ 22, 20, 19, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}, { 22, 20, 27, 14}}, + [24] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 25, 25, 16, 26}, { 25, 25, 16, 28}, { 25, 25, 16, 28}, { 25, 25, 16, 28}}, + [25] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 24, 24, 18, 27}, { 24, 24, 18, 28}, { 24, 24, 18, 28}, { 24, 24, 18, 28}}, + [26] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 27, 27, 24, 20}, { 27, 27, 29, 20}, { 27, 27, 29, 20}, { 27, 27, 29, 20}}, + [27] = {{0xFF, 0xFF, 0xFF, 0xFF}, { 26, 26, 25, 22}, { 26, 26, 29, 22}, { 26, 26, 29, 22}, { 26, 26, 29, 22}}, + [28] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 24, 29}, {0xFF, 0xFF, 24, 30}, {0xFF, 0xFF, 24, 30}}, + [29] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 28, 26}, {0xFF, 0xFF, 30, 26}, {0xFF, 0xFF, 30, 26}}, + [30] = {{0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 0xFF, 0xFF}, {0xFF, 0xFF, 28, 29}, {0xFF, 0xFF, 28, 29}}, + [31] = {{ 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}, { 15, 8, 8, 0}}, // TOURNEY_TREE_CLOSE_BUTTON }; -static const struct BgTemplate gUnknown_0860CE74[4] = +static const struct BgTemplate sTourneyTreeBgTemplates[4] = { { .bg = 0, @@ -599,7 +628,7 @@ static const struct BgTemplate gUnknown_0860CE74[4] = }, }; -static const struct BgTemplate gUnknown_0860CE84[4] = +static const struct BgTemplate sInfoCardBgTemplates[4] = { { .bg = 0, @@ -639,7 +668,7 @@ static const struct BgTemplate gUnknown_0860CE84[4] = }, }; -static const struct WindowTemplate gUnknown_0860CE94[] = +static const struct WindowTemplate sTourneyTreeWindowTemplates[] = { { .bg = 0, @@ -671,7 +700,7 @@ static const struct WindowTemplate gUnknown_0860CE94[] = DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate gUnknown_0860CEB4[] = +static const struct WindowTemplate sInfoCardWindowTemplates[] = { { .bg = 0, @@ -845,19 +874,20 @@ static const struct ScanlineEffectParams sTourneyTreeScanlineEffectParams = .initState = 1, }; -static const struct CompressedSpriteSheet sDomeOptionsSpriteSheet[] = +static const struct CompressedSpriteSheet sTourneyTreeButtonsSpriteSheet[] = { - {gBattleFrontierGfx_DomeOptions, 0x0600, 0x0000}, + {gDomeTourneyTreeButtons_Gfx, 0x0600, 0x0000}, {}, }; -static const struct CompressedSpritePalette gUnknown_0860CF60[] = +// Unused +static const struct CompressedSpritePalette sTourneyTreeButtonsSpritePal[] = { - {gUnknown_08D85444, 0x0000}, + {gDomeTourneyTreeButtons_Pal, 0x0000}, {}, }; -static const struct OamData gUnknown_0860CF70 = +static const struct OamData sOamData_TourneyTreePokeball = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -874,7 +904,8 @@ static const struct OamData gUnknown_0860CF70 = .affineParam = 0, }; -static const struct OamData gUnknown_0860CF78 = +// For Exit/Cancel buttons +static const struct OamData sOamData_TourneyTreeCloseButton = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -891,7 +922,7 @@ static const struct OamData gUnknown_0860CF78 = .affineParam = 0, }; -static const struct OamData gUnknown_0860CF80 = +static const struct OamData sOamData_VerticalScrollArrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -908,7 +939,7 @@ static const struct OamData gUnknown_0860CF80 = .affineParam = 0, }; -static const struct OamData gUnknown_0860CF88 = +static const struct OamData sOamData_HorizontalScrollArrow = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -925,151 +956,153 @@ static const struct OamData gUnknown_0860CF88 = .affineParam = 0, }; -static const union AnimCmd gUnknown_0860CF90[] = +static const union AnimCmd sSpriteAnim_TourneyTreePokeballNormal[] = { ANIMCMD_FRAME(20, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860CF98[] = +static const union AnimCmd sSpriteAnim_TourneyTreePokeballSelected[] = { ANIMCMD_FRAME(24, 1), ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_0860CFA0[] = +static const union AnimCmd * const sSpriteAnimTable_TourneyTreePokeball[] = { - gUnknown_0860CF90, - gUnknown_0860CF98, + sSpriteAnim_TourneyTreePokeballNormal, + sSpriteAnim_TourneyTreePokeballSelected, }; -static const struct SpriteTemplate gUnknown_0860CFA8 = +// Sprite template for the pokeballs on the tourney tree that act as buttons to view a trainer/match info card +static const struct SpriteTemplate sTourneyTreePokeballSpriteTemplate = { .tileTag = 0x0000, .paletteTag = 0xffff, - .oam = &gUnknown_0860CF70, - .anims = gUnknown_0860CFA0, + .oam = &sOamData_TourneyTreePokeball, + .anims = sSpriteAnimTable_TourneyTreePokeball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy + .callback = SpriteCallbackDummy }; -static const union AnimCmd gUnknown_0860CFC0[] = +static const union AnimCmd sSpriteAnim_TourneyTreeCancelButtonNormal[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860CFC8[] = +static const union AnimCmd sSpriteAnim_TourneyTreeCancelButtonSelected[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_0860CFD0[] = +static const union AnimCmd * const sSpriteAnimTable_TourneyTreeCancelButton[] = { - gUnknown_0860CFC0, - gUnknown_0860CFC8, + sSpriteAnim_TourneyTreeCancelButtonNormal, + sSpriteAnim_TourneyTreeCancelButtonSelected, }; -static const struct SpriteTemplate gUnknown_0860CFD8 = +static const struct SpriteTemplate sCancelButtonSpriteTemplate = { .tileTag = 0x0000, .paletteTag = 0xffff, - .oam = &gUnknown_0860CF78, - .anims = gUnknown_0860CFD0, + .oam = &sOamData_TourneyTreeCloseButton, + .anims = sSpriteAnimTable_TourneyTreeCancelButton, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const union AnimCmd gUnknown_0860CFF0[] = +static const union AnimCmd sSpriteAnim_TourneyTreeExitButtonNormal[] = { ANIMCMD_FRAME(40, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860CFF8[] = +static const union AnimCmd sSpriteAnim_TourneyTreeExitButtonSelected[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_0860D000[] = +static const union AnimCmd * const sSpriteAnimTable_TourneyTreeExitButton[] = { - gUnknown_0860CFF0, - gUnknown_0860CFF8, + sSpriteAnim_TourneyTreeExitButtonNormal, + sSpriteAnim_TourneyTreeExitButtonSelected, }; -static const struct SpriteTemplate gUnknown_0860D008 = +static const struct SpriteTemplate sExitButtonSpriteTemplate = { .tileTag = 0x0000, .paletteTag = 0xffff, - .oam = &gUnknown_0860CF78, - .anims = gUnknown_0860D000, + .oam = &sOamData_TourneyTreeCloseButton, + .anims = sSpriteAnimTable_TourneyTreeExitButton, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const union AnimCmd gUnknown_0860D020[] = +static const union AnimCmd sSpriteAnim_UpArrow[] = { ANIMCMD_FRAME(18, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860D028[] = +static const union AnimCmd sSpriteAnim_DownArrow[] = { ANIMCMD_FRAME(18, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860D030[] = +static const union AnimCmd sSpriteAnim_LeftArrow[] = { ANIMCMD_FRAME(16, 1, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd gUnknown_0860D038[] = +static const union AnimCmd sSpriteAnim_RightArrow[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd * const gUnknown_0860D040[] = +static const union AnimCmd * const sSpriteAnimTable_VerticalScrollArrow[] = { - gUnknown_0860D020, - gUnknown_0860D028, + sSpriteAnim_UpArrow, + sSpriteAnim_DownArrow, }; -static const union AnimCmd * const gUnknown_0860D048[] = +static const union AnimCmd * const sSpriteAnimTable_HorizontalScrollArrow[] = { - gUnknown_0860D030, - gUnknown_0860D038, + sSpriteAnim_LeftArrow, + sSpriteAnim_RightArrow, }; -static const struct SpriteTemplate gUnknown_0860D050 = +static const struct SpriteTemplate sHorizontalScrollArrowSpriteTemplate = { .tileTag = 0x0000, .paletteTag = 0xffff, - .oam = &gUnknown_0860CF88, - .anims = gUnknown_0860D048, + .oam = &sOamData_HorizontalScrollArrow, + .anims = sSpriteAnimTable_HorizontalScrollArrow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8190B40 + .callback = SpriteCb_HorizontalScrollArrow }; -static const struct SpriteTemplate gUnknown_0860D068 = +static const struct SpriteTemplate sVerticalScrollArrowSpriteTemplate = { .tileTag = 0x0000, .paletteTag = 0xffff, - .oam = &gUnknown_0860CF80, - .anims = gUnknown_0860D040, + .oam = &sOamData_VerticalScrollArrow, + .anims = sSpriteAnimTable_VerticalScrollArrow, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8190C6C + .callback = SpriteCb_VerticalScrollArrow }; -static const u8 sTourneyTreeTrainerIds[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1}; +// Organized by seed starting position, i.e. seed 0 battles seed 8 first +static const u8 sTourneyTreeTrainerIds[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1}; static void (* const sBattleDomeFunctions[])(void) = { @@ -1081,20 +1114,20 @@ static void (* const sBattleDomeFunctions[])(void) = [BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY] = InitDomeOpponentParty, [BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO] = ShowDomeOpponentInfo, [BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE] = ShowDomeTourneyTree, - [BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE] = ShowPreviousDomeResultsTourneyTree, + [BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE] = ShowPreviousDomeTourneyTree, [BATTLE_DOME_FUNC_SET_OPPONENT_ID] = SetDomeOpponentId, [BATTLE_DOME_FUNC_SET_OPPONENT_GFX] = SetDomeOpponentGraphicsId, [BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE] = ShowNonInteractiveDomeTourneyTree, [BATTLE_DOME_FUNC_RESOLVE_WINNERS] = ResolveDomeRoundWinners, [BATTLE_DOME_FUNC_SAVE] = SaveDomeChallenge, [BATTLE_DOME_FUNC_INCREMENT_STREAK] = IncrementDomeStreaks, - [BATTLE_DOME_FUNC_SET_TRAINERS] = InitDomeFacilityTrainersAndMons, + [BATTLE_DOME_FUNC_SET_TRAINERS] = SetFacilityTrainerAndMonPtrs, [BATTLE_DOME_FUNC_RESET_SKETCH] = ResetSketchedMoves, [BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS] = RestoreDomePlayerPartyHeldItems, - [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyTo3Mons, + [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyToSelectedMons, [BATTLE_DOME_FUNC_COMPARE_SEEDS] = GetPlayerSeededBeforeOpponent, [BATTLE_DOME_FUNC_GET_WINNER_NAME] = BufferLastDomeWinnerName, - [BATTLE_DOME_FUNC_21] = sub_8194F58, + [BATTLE_DOME_FUNC_INIT_RESULTS_TREE] = InitRandomTourneyTreeResults, [BATTLE_DOME_FUNC_INIT_TRAINERS] = InitDomeTrainers, }; @@ -1110,1139 +1143,941 @@ static const u32 sWinStreakMasks[][2] = {~(STREAK_DOME_DOUBLES_50), ~(STREAK_DOME_DOUBLES_OPEN)}, }; +// TODO: The below two arrays probably need better names. The one below for example is only true of sIdToOpponentId[i][0] static const u8 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = { - [0] = {8, 0, 4, 8}, - [1] = {9, 12, 8, 0}, - [2] = {10, 8, 12, 0}, - [3] = {11, 4, 0, 8}, - [4] = {12, 0, 4, 8}, - [5] = {13, 12, 8, 0}, - [6] = {14, 8, 12, 0}, - [7] = {15, 4, 0, 8}, - [8] = {0, 0, 4, 8}, - [9] = {1, 12, 8, 0}, - [10] = {2, 8, 12, 0}, - [11] = {3, 4, 0, 8}, - [12] = {4, 0, 4, 8}, - [13] = {5, 12, 8, 0}, - [14] = {6, 8, 12, 0}, - [15] = {7, 4, 0, 8}, + [0] = { 8, 0, 4, 8}, + [1] = { 9, 12, 8, 0}, + [2] = {10, 8, 12, 0}, + [3] = {11, 4, 0, 8}, + [4] = {12, 0, 4, 8}, + [5] = {13, 12, 8, 0}, + [6] = {14, 8, 12, 0}, + [7] = {15, 4, 0, 8}, + [8] = { 0, 0, 4, 8}, + [9] = { 1, 12, 8, 0}, + [10] = { 2, 8, 12, 0}, + [11] = { 3, 4, 0, 8}, + [12] = { 4, 0, 4, 8}, + [13] = { 5, 12, 8, 0}, + [14] = { 6, 8, 12, 0}, + [15] = { 7, 4, 0, 8}, }; -static const u8 gUnknown_0860D14C[] = {0x00, 0x08, 0x04, 0x0c, 0x07, 0x0f, 0x03, 0x0b, 0x02, 0x0a, 0x06, 0x0e, 0x05, 0x0d, 0x01, 0x09}; - -static const u8 gUnknown_0860D15C[][4] = -{ - {0x00, 0x08, 0x0c, 0x0e}, - {0x00, 0x08, 0x0c, 0x0e}, - {0x01, 0x08, 0x0c, 0x0e}, - {0x01, 0x08, 0x0c, 0x0e}, - {0x02, 0x09, 0x0c, 0x0e}, - {0x02, 0x09, 0x0c, 0x0e}, - {0x03, 0x09, 0x0c, 0x0e}, - {0x03, 0x09, 0x0c, 0x0e}, - {0x04, 0x0a, 0x0d, 0x0e}, - {0x04, 0x0a, 0x0d, 0x0e}, - {0x05, 0x0a, 0x0d, 0x0e}, - {0x05, 0x0a, 0x0d, 0x0e}, - {0x06, 0x0b, 0x0d, 0x0e}, - {0x06, 0x0b, 0x0d, 0x0e}, - {0x07, 0x0b, 0x0d, 0x0e}, - {0x07, 0x0b, 0x0d, 0x0e}, +// sTourneyTreeTrainerIds with every other pair swapped +static const u8 sTourneyTreeTrainerOpponentIds[DOME_TOURNAMENT_TRAINERS_COUNT] = { 0, 8, 4, 12, 7, 15, 3, 11, 2, 10, 6, 14, 5, 13, 1, 9 }; + +// The match number - 1 that a given tournament trainer will participate in for a given round +static const u8 sIdToMatchNumber[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = +{ + { 0, 8, 12, 14}, + { 0, 8, 12, 14}, + { 1, 8, 12, 14}, + { 1, 8, 12, 14}, + { 2, 9, 12, 14}, + { 2, 9, 12, 14}, + { 3, 9, 12, 14}, + { 3, 9, 12, 14}, + { 4, 10, 13, 14}, + { 4, 10, 13, 14}, + { 5, 10, 13, 14}, + { 5, 10, 13, 14}, + { 6, 11, 13, 14}, + { 6, 11, 13, 14}, + { 7, 11, 13, 14}, + { 7, 11, 13, 14}, }; -static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e}; +static const u8 sLastMatchCardNum[DOME_ROUNDS_COUNT] = +{ + [DOME_ROUND1] = 23, + [DOME_ROUND2] = 27, + [DOME_SEMIFINAL] = 29, + [DOME_FINAL] = 30 +}; -static const u8 gUnknown_0860D1A0[][4] = +static const u8 gUnknown_0860D1A0[DOME_TOURNAMENT_TRAINERS_COUNT / 2][DOME_ROUNDS_COUNT] = { - {0x10, 0x18, 0x1c, 0x1e}, - {0x11, 0x18, 0x1c, 0x1e}, - {0x12, 0x19, 0x1c, 0x1e}, - {0x13, 0x19, 0x1c, 0x1e}, - {0x14, 0x1a, 0x1d, 0x1e}, - {0x15, 0x1a, 0x1d, 0x1e}, - {0x16, 0x1b, 0x1d, 0x1e}, - {0x17, 0x1b, 0x1d, 0x1e}, + {16, 24, 28, 30}, + {17, 24, 28, 30}, + {18, 25, 28, 30}, + {19, 25, 28, 30}, + {20, 26, 29, 30}, + {21, 26, 29, 30}, + {22, 27, 29, 30}, + {23, 27, 29, 30}, }; -static const u8 gUnknown_0860D1C0[] = {0x00, 0x0f, 0x08, 0x07, 0x03, 0x0c, 0x0b, 0x04, 0x01, 0x0e, 0x09, 0x06, 0x02, 0x0d, 0x0a, 0x05}; - -static const u8 *const sBattleDomePotentialTexts[] = -{ - gBattleDomeOpponentPotentialText1, - gBattleDomeOpponentPotentialText2, - gBattleDomeOpponentPotentialText3, - gBattleDomeOpponentPotentialText4, - gBattleDomeOpponentPotentialText5, - gBattleDomeOpponentPotentialText6, - gBattleDomeOpponentPotentialText7, - gBattleDomeOpponentPotentialText8, - gBattleDomeOpponentPotentialText9, - gBattleDomeOpponentPotentialText10, - gBattleDomeOpponentPotentialText11, - gBattleDomeOpponentPotentialText12, - gBattleDomeOpponentPotentialText13, - gBattleDomeOpponentPotentialText14, - gBattleDomeOpponentPotentialText15, - gBattleDomeOpponentPotentialText16, - gBattleDomeOpponentPotentialText17, +static const u8 gUnknown_0860D1C0[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 15, 8, 7, 3, 12, 11, 4, 1, 14, 9, 6, 2, 13, 10, 5}; + +// Each tourney trainer has a text describing their potential to win, depending on their seed ranking for the current tourney +// Dome Ace Tucker has their own separate potential text +static const u8 *const sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT + 1] = +{ + BattleDome_Text_Potential1, // Highest potential + BattleDome_Text_Potential2, + BattleDome_Text_Potential3, + BattleDome_Text_Potential4, + BattleDome_Text_Potential5, + BattleDome_Text_Potential6, + BattleDome_Text_Potential7, + BattleDome_Text_Potential8, + BattleDome_Text_Potential9, + BattleDome_Text_Potential10, + BattleDome_Text_Potential11, + BattleDome_Text_Potential12, + BattleDome_Text_Potential13, + BattleDome_Text_Potential14, + BattleDome_Text_Potential15, + BattleDome_Text_Potential16, // Lowest potential + BattleDome_Text_PotentialDomeAceTucker, }; -static const u8 *const sBattleDomeOpponentStyleTexts[] = -{ - gBattleDomeOpponentStyleText1, - gBattleDomeOpponentStyleText2, - gBattleDomeOpponentStyleText3, - gBattleDomeOpponentStyleText4, - gBattleDomeOpponentStyleText5, - gBattleDomeOpponentStyleText6, - gBattleDomeOpponentStyleText7, - gBattleDomeOpponentStyleText8, - gBattleDomeOpponentStyleText9, - gBattleDomeOpponentStyleText10, - gBattleDomeOpponentStyleText11, - gBattleDomeOpponentStyleText12, - gBattleDomeOpponentStyleText13, - gBattleDomeOpponentStyleText14, - gBattleDomeOpponentStyleText15, - gBattleDomeOpponentStyleText16, - gBattleDomeOpponentStyleText17, - gBattleDomeOpponentStyleText18, - gBattleDomeOpponentStyleText19, - gBattleDomeOpponentStyleText20, - gBattleDomeOpponentStyleText21, - gBattleDomeOpponentStyleText22, - gBattleDomeOpponentStyleText23, - gBattleDomeOpponentStyleText24, - gBattleDomeOpponentStyleText25, - gBattleDomeOpponentStyleText26, - gBattleDomeOpponentStyleText27, - gBattleDomeOpponentStyleText28, - gBattleDomeOpponentStyleTextUnused1, - gBattleDomeOpponentStyleTextUnused2, - gBattleDomeOpponentStyleTextUnused3, - gBattleDomeOpponentStyleTextUnused4, +// The first line of text on a trainers info card that gives information about their battle style (dependent on their party's moves) +static const u8 *const sBattleDomeOpponentStyleTexts[NUM_BATTLE_STYLES] = +{ + [DOME_BATTLE_STYLE_RISKY] = BattleDome_Text_StyleRiskDisaster, + [DOME_BATTLE_STYLE_STALL] = BattleDome_Text_StyleEndureLongBattles, + [DOME_BATTLE_STYLE_VARIED] = BattleDome_Text_StyleVariesTactics, + [DOME_BATTLE_STYLE_COMBO_HIGH] = BattleDome_Text_StyleToughWinningPattern, + [DOME_BATTLE_STYLE_RARE_MOVES] = BattleDome_Text_StyleUsesVeryRareMove, // Seems like the text for these two was swapped + [DOME_BATTLE_STYLE_RARE_MOVE] = BattleDome_Text_StyleUsesStartlingMoves, // + [DOME_BATTLE_STYLE_HP] = BattleDome_Text_StyleConstantlyWatchesHP, + [DOME_BATTLE_STYLE_STORE_POWER] = BattleDome_Text_StyleStoresAndLoosesPower, + [DOME_BATTLE_STYLE_ENFEEBLE_LOW] = BattleDome_Text_StyleEnfeeblesFoes, + [DOME_BATTLE_STYLE_LUCK] = BattleDome_Text_StylePrefersLuckTactics, + [DOME_BATTLE_STYLE_REGAL] = BattleDome_Text_StyleRegalAtmosphere, + [DOME_BATTLE_STYLE_LOW_PP] = BattleDome_Text_StylePowerfulLowPPMoves, + [DOME_BATTLE_STYLE_STATUS_ATK] = BattleDome_Text_StyleEnfeebleThenAttack, + [DOME_BATTLE_STYLE_ENDURE] = BattleDome_Text_StyleBattlesWhileEnduring, + [DOME_BATTLE_STYLE_STATUS] = BattleDome_Text_StyleUpsetsFoesEmotionally, + [DOME_BATTLE_STYLE_STRAIGHTFORWARD] = BattleDome_Text_StyleStrongAndStraightforward, + [DOME_BATTLE_STYLE_AGGRESSIVE] = BattleDome_Text_StyleAggressivelyStrongMoves, + [DOME_BATTLE_STYLE_DEF] = BattleDome_Text_StyleCleverlyDodgesAttacks, + [DOME_BATTLE_STYLE_ENFEEBLE_HIGH] = BattleDome_Text_StyleUsesUpsettingMoves, + [DOME_BATTLE_STYLE_POPULAR_POWER] = BattleDome_Text_StyleUsesPopularMoves, + [DOME_BATTLE_STYLE_COMBO_LOW] = BattleDome_Text_StyleHasPowerfulComboMoves, + [DOME_BATTLE_STYLE_ACCURATE] = BattleDome_Text_StyleUsesHighProbabilityMoves, + [DOME_BATTLE_STYLE_POWERFUL] = BattleDome_Text_StyleAggressivelySpectacularMoves, + [DOME_BATTLE_STYLE_ATK_OVER_DEF] = BattleDome_Text_StyleEmphasizesOffenseOverDefense, + [DOME_BATTLE_STYLE_DEF_OVER_ATK] = BattleDome_Text_StyleEmphasizesDefenseOverOffense, + [DOME_BATTLE_STYLE_POPULAR_STRONG] = BattleDome_Text_StyleAttacksQuicklyStrongMoves, + [DOME_BATTLE_STYLE_EFFECTS] = BattleDome_Text_StyleUsesAddedEffectMoves, + [DOME_BATTLE_STYLE_BALANCED] = BattleDome_Text_StyleUsesBalancedMixOfMoves, + [DOME_BATTLE_STYLE_UNUSED1] = BattleDome_Text_StyleSampleMessage1, + [DOME_BATTLE_STYLE_UNUSED2] = BattleDome_Text_StyleSampleMessage2, + [DOME_BATTLE_STYLE_UNUSED3] = BattleDome_Text_StyleSampleMessage3, + [DOME_BATTLE_STYLE_UNUSED4] = BattleDome_Text_StyleSampleMessage4, }; +// The second line of text on a trainers info card that gives information about their party's stat spread static const u8 *const sBattleDomeOpponentStatsTexts[] = { - gBattleDomeOpponentStatsText1, - gBattleDomeOpponentStatsText2, - gBattleDomeOpponentStatsText3, - gBattleDomeOpponentStatsText4, - gBattleDomeOpponentStatsText5, - gBattleDomeOpponentStatsText6, - gBattleDomeOpponentStatsText7, - gBattleDomeOpponentStatsText8, - gBattleDomeOpponentStatsText9, - gBattleDomeOpponentStatsText10, - gBattleDomeOpponentStatsText11, - gBattleDomeOpponentStatsText12, - gBattleDomeOpponentStatsText13, - gBattleDomeOpponentStatsText14, - gBattleDomeOpponentStatsText15, - gBattleDomeOpponentStatsText16, - gBattleDomeOpponentStatsText17, - gBattleDomeOpponentStatsText18, - gBattleDomeOpponentStatsText19, - gBattleDomeOpponentStatsText20, - gBattleDomeOpponentStatsText21, - gBattleDomeOpponentStatsText22, - gBattleDomeOpponentStatsText23, - gBattleDomeOpponentStatsText24, - gBattleDomeOpponentStatsText25, - gBattleDomeOpponentStatsText26, - gBattleDomeOpponentStatsText27, - gBattleDomeOpponentStatsText28, - gBattleDomeOpponentStatsText29, - gBattleDomeOpponentStatsText30, - gBattleDomeOpponentStatsText31, - gBattleDomeOpponentStatsText32, - gBattleDomeOpponentStatsText33, - gBattleDomeOpponentStatsText34, - gBattleDomeOpponentStatsText35, - gBattleDomeOpponentStatsText36, - gBattleDomeOpponentStatsText37, - gBattleDomeOpponentStatsText38, - gBattleDomeOpponentStatsText39, - gBattleDomeOpponentStatsText40, - gBattleDomeOpponentStatsText41, - gBattleDomeOpponentStatsText42, - gBattleDomeOpponentStatsText43, + BattleDome_Text_EmphasizesHPAndAtk, // DOME_TEXT_TWO_GOOD_STATS and DOME_TEXT_HP start here + BattleDome_Text_EmphasizesHPAndDef, + BattleDome_Text_EmphasizesHPAndSpeed, + BattleDome_Text_EmphasizesHPAndSpAtk, + BattleDome_Text_EmphasizesHPAndSpDef, + BattleDome_Text_EmphasizesAtkAndDef, // DOME_TEXT_ATK starts here + BattleDome_Text_EmphasizesAtkAndSpeed, + BattleDome_Text_EmphasizesAtkAndSpAtk, + BattleDome_Text_EmphasizesAtkAndSpDef, + BattleDome_Text_EmphasizesDefAndSpeed, // DOME_TEXT_DEF starts here + BattleDome_Text_EmphasizesDefAndSpAtk, + BattleDome_Text_EmphasizesDefAndSpDef, + BattleDome_Text_EmphasizesSpeedAndSpAtk, // DOME_TEXT_SPEED starts here + BattleDome_Text_EmphasizesSpeedAndSpDef, + BattleDome_Text_EmphasizesSpAtkAndSpDef, // DOME_TEXT_SPATK starts here + BattleDome_Text_EmphasizesHP, // DOME_TEXT_ONE_GOOD_STAT starts here + BattleDome_Text_EmphasizesAtk, + BattleDome_Text_EmphasizesDef, + BattleDome_Text_EmphasizesSpeed, + BattleDome_Text_EmphasizesSpAtk, + BattleDome_Text_EmphasizesSpDef, + BattleDome_Text_NeglectsHPAndAtk, // DOME_TEXT_TWO_BAD_STATS starts here + BattleDome_Text_NeglectsHPAndDef, + BattleDome_Text_NeglectsHPAndSpeed, + BattleDome_Text_NeglectsHPAndSpAtk, + BattleDome_Text_NeglectsHPAndSpDef, + BattleDome_Text_NeglectsAtkAndDef, + BattleDome_Text_NeglectsAtkAndSpeed, + BattleDome_Text_NeglectsAtkAndSpAtk, + BattleDome_Text_NeglectsAtkAndSpDef, + BattleDome_Text_NeglectsDefAndSpeed, + BattleDome_Text_NeglectsDefAndSpAtk, + BattleDome_Text_NeglectsDefAndSpDef, + BattleDome_Text_NeglectsSpeedAndSpAtk, + BattleDome_Text_NeglectsSpeedAndSpDef, + BattleDome_Text_NeglectsSpAtkAndSpDef, + BattleDome_Text_NeglectsHP, // DOME_TEXT_ONE_BAD_STAT starts here + BattleDome_Text_NeglectsAtk, + BattleDome_Text_NeglectsDef, + BattleDome_Text_NeglectsSpeed, + BattleDome_Text_NeglectsSpAtk, + BattleDome_Text_NeglectsSpDef, + [DOME_TEXT_WELL_BALANCED] = BattleDome_Text_RaisesMonsWellBalanced, +}; + +static const u8 sInfoTrainerMonX[FRONTIER_PARTY_SIZE] = {104, 136, 104}; +static const u8 sInfoTrainerMonY[FRONTIER_PARTY_SIZE] = { 38, 62, 78}; +static const u8 sSpeciesNameTextYCoords[] = {0, 4, 0}; + +// Offsets within sBattleDomeOpponentStatsTexts for stat combinations +// SPDEF has no offset because by then all stat combinations have been reached, so it has no combination texts +static const u8 sStatTextOffsets[NUM_STATS - 1] = +{ + DOME_TEXT_HP, + DOME_TEXT_ATK, + DOME_TEXT_DEF, + DOME_TEXT_SPEED, + DOME_TEXT_SPATK }; -static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68}; -static const u8 sInfoTrainerMonY[] = {0x26, 0x3e, 0x4e}; -static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00}; - -static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00}; - -static const u8 *const sBattleDomeMatchNumberTexts[] = -{ - gBattleDomeMatchNumberText1, - gBattleDomeMatchNumberText2, - gBattleDomeMatchNumberText3, - gBattleDomeMatchNumberText4, - gBattleDomeMatchNumberText5, - gBattleDomeMatchNumberText6, - gBattleDomeMatchNumberText7, - gBattleDomeMatchNumberText8, - gBattleDomeMatchNumberText9, - gBattleDomeMatchNumberText10, - gBattleDomeMatchNumberText11, - gBattleDomeMatchNumberText12, - gBattleDomeMatchNumberText13, - gBattleDomeMatchNumberText14, - gBattleDomeMatchNumberText15, +static const u8 *const sBattleDomeMatchNumberTexts[DOME_TOURNAMENT_MATCHES_COUNT] = +{ + BattleDome_Text_Round1Match1, + BattleDome_Text_Round1Match2, + BattleDome_Text_Round1Match3, + BattleDome_Text_Round1Match4, + BattleDome_Text_Round1Match5, + BattleDome_Text_Round1Match6, + BattleDome_Text_Round1Match7, + BattleDome_Text_Round1Match8, + BattleDome_Text_Round2Match1, + BattleDome_Text_Round2Match2, + BattleDome_Text_Round2Match3, + BattleDome_Text_Round2Match4, + BattleDome_Text_SemifinalMatch1, + BattleDome_Text_SemifinalMatch2, + BattleDome_Text_FinalMatch, }; static const u8 *const sBattleDomeWinTexts[] = { - gBattleDomeWinText1, - gBattleDomeWinText2, - gBattleDomeWinText3, - gBattleDomeWinText4, - gBattleDomeWinText5, - gBattleDomeWinText6, - gBattleDomeWinText7, + [DOME_TEXT_NO_WINNER_YET] = BattleDome_Text_LetTheBattleBegin, + [DOME_TEXT_WON_USING_MOVE] = BattleDome_Text_TrainerWonUsingMove, + [DOME_TEXT_CHAMP_USING_MOVE] = BattleDome_Text_TrainerBecameChamp, + [DOME_TEXT_WON_ON_FORFEIT] = BattleDome_Text_TrainerWonByDefault, + [DOME_TEXT_CHAMP_ON_FORFEIT] = BattleDome_Text_TrainerWonOutrightByDefault, + [DOME_TEXT_WON_NO_MOVES] = BattleDome_Text_TrainerWonNoMoves, + [DOME_TEXT_CHAMP_NO_MOVES] = BattleDome_Text_TrainerWonOutrightNoMoves, }; -static const u8 sFirstTrainerMonX[] = {0x60, 0x60, 0x60}; -static const u8 sFirstTrainerMonY[] = {0x38, 0x50, 0x68}; -static const u8 sSecondTrainerMonX[] = {0x90, 0x90, 0x90}; -static const u8 sSecondTrainerMonY[] = {0x38, 0x50, 0x68}; - -static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; - -static const u8 gUnknown_0860D3C4[][3] = -{ - {0x00, 0x02, 0x00}, - {0x02, 0x02, 0x00}, - {0x04, 0x02, 0x00}, - {0x06, 0x02, 0x00}, - {0x08, 0x02, 0x00}, - {0x0a, 0x02, 0x00}, - {0x0c, 0x02, 0x00}, - {0x0e, 0x02, 0x00}, - {0x00, 0x04, 0x01}, - {0x04, 0x04, 0x01}, - {0x08, 0x04, 0x01}, - {0x0c, 0x04, 0x01}, - {0x00, 0x08, 0x02}, - {0x08, 0x08, 0x02}, - {0x00, 0x10, 0x03}, +static const u8 sLeftTrainerMonX[FRONTIER_PARTY_SIZE] = { 96, 96, 96}; +static const u8 sLeftTrainerMonY[FRONTIER_PARTY_SIZE] = { 56, 80, 104}; +static const u8 sRightTrainerMonX[FRONTIER_PARTY_SIZE] = {144, 144, 144}; +static const u8 sRightTrainerMonY[FRONTIER_PARTY_SIZE] = { 56, 80, 104}; + +// Duplicate of sTourneyTreeTrainerIds +static const u8 sTourneyTreeTrainerIds2[DOME_TOURNAMENT_TRAINERS_COUNT] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1}; + +// The number of possible trainers that could be competing in a given match +#define NUM_POSSIBLE_MATCH_TRAINERS(round) (DOME_TOURNAMENT_TRAINERS_COUNT / (1 << (DOME_ROUNDS_COUNT - round - 1))) + +// The range of tournament trainers to check as possible participants in a given match +// Given by the offset in sCompetitorRangeByMatch[][0], the number of trainers in sCompetitorRangeByMatch[][1], and the round +static const u8 sCompetitorRangeByMatch[DOME_TOURNAMENT_MATCHES_COUNT][3] = +{ + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 2, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 3, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 4, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 5, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 6, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1) * 7, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND1), DOME_ROUND1}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 2, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2) * 3, NUM_POSSIBLE_MATCH_TRAINERS(DOME_ROUND2), DOME_ROUND2}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL), DOME_SEMIFINAL}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL) * 1, NUM_POSSIBLE_MATCH_TRAINERS(DOME_SEMIFINAL), DOME_SEMIFINAL}, + { NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL), DOME_FINAL}, }; -static const u8 gUnknown_0860D3F1[][2] = -{ - {0x00, 0x00}, - {0x01, 0x70}, - {0x01, 0x00}, - {0x00, 0x70}, - {0x00, 0x30}, - {0x01, 0x40}, - {0x01, 0x30}, - {0x00, 0x40}, - {0x00, 0x10}, - {0x01, 0x60}, - {0x01, 0x10}, - {0x00, 0x60}, - {0x00, 0x20}, - {0x01, 0x50}, - {0x01, 0x20}, - {0x00, 0x50}, +// 1st value is the windowId (0 for left column, 1 for right column) +// 2nd value is the y coord +static const u8 sTrainerNamePositions[DOME_TOURNAMENT_TRAINERS_COUNT][2] = +{ + { 0, 0}, + { 1, 112}, + { 1, 0}, + { 0, 112}, + { 0, 48}, + { 1, 64}, + { 1, 48}, + { 0, 64}, + { 0, 16}, + { 1, 96}, + { 1, 16}, + { 0, 96}, + { 0, 32}, + { 1, 80}, + { 1, 32}, + { 0, 80}, }; -static const u8 gUnknown_0860D411[][2] = -{ - {0x44, 0x21}, - {0x44, 0x31}, - {0x44, 0x41}, - {0x44, 0x51}, - {0x44, 0x61}, - {0x44, 0x71}, - {0x44, 0x81}, - {0x44, 0x91}, - {0xac, 0x21}, - {0xac, 0x31}, - {0xac, 0x41}, - {0xac, 0x51}, - {0xac, 0x61}, - {0xac, 0x71}, - {0xac, 0x81}, - {0xac, 0x91}, - {0x57, 0x29}, - {0x57, 0x49}, - {0x57, 0x69}, - {0x57, 0x89}, - {0x99, 0x29}, - {0x99, 0x49}, - {0x99, 0x69}, - {0x99, 0x89}, - {0x5f, 0x39}, - {0x5f, 0x79}, - {0x91, 0x39}, - {0x91, 0x79}, - {0x67, 0x59}, - {0x89, 0x59}, - {0x78, 0x59}, +// Coords for the pokeballs on the tourney tree that act as buttons to view trainer/match info +static const u8 sTourneyTreePokeballCoords[DOME_TOURNAMENT_TRAINERS_COUNT + DOME_TOURNAMENT_MATCHES_COUNT][2] = +{ + { 68, 33}, // Left side trainers + { 68, 49}, + { 68, 65}, + { 68, 81}, + { 68, 97}, + { 68, 113}, + { 68, 129}, + { 68, 145}, + {172, 33}, // Right side trainers + {172, 49}, + {172, 65}, + {172, 81}, + {172, 97}, + {172, 113}, + {172, 129}, + {172, 145}, + { 87, 41}, // Left side Round 1 matches + { 87, 73}, + { 87, 105}, + { 87, 137}, + {153, 41}, // Right side Round 1 matches + {153, 73}, + {153, 105}, + {153, 137}, + { 95, 57}, // Left side Round 2 matches + { 95, 121}, + {145, 57}, // Right side Round 2 matches + {145, 121}, + {103, 89}, // Left side semifinal match + {137, 89}, // Right side semifinal match + {120, 89}, // Final match }; -static const struct UnkStruct_860DD10 gUnknown_0860d450[] = +// Each of these line sections define the position of the advancement line on the tourney tree for the victor of that round +// The trainers here are numbered by tourney ID (rank/seed) and ordered according to where they start on the tourney tree +#define LINESECTION_ROUND1_TRAINER1(lastSrc) \ + {.src = 0x6021, .y = 0x04, .x = 0x09}, \ + {.src = 0x6023, .y = 0x04, .x = 0x0a}, \ + {.src = 0x6047, .y = 0x05, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x05, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER9(lastSrc) \ + {.src = 0x6021, .y = 0x06, .x = 0x09}, \ + {.src = 0x6021, .y = 0x06, .x = 0x0a}, \ + {.src = 0x6027, .y = 0x05, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x05, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER13(lastSrc) \ + {.src = 0x6021, .y = 0x08, .x = 0x09}, \ + {.src = 0x6023, .y = 0x08, .x = 0x0a}, \ + {.src = 0x6047, .y = 0x09, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x09, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER5(lastSrc) \ + {.src = 0x6021, .y = 0x0a, .x = 0x09}, \ + {.src = 0x6021, .y = 0x0a, .x = 0x0a}, \ + {.src = 0x6027, .y = 0x09, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x09, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER8(lastSrc) \ + {.src = 0x6021, .y = 0x0c, .x = 0x09}, \ + {.src = 0x6023, .y = 0x0c, .x = 0x0a}, \ + {.src = 0x6047, .y = 0x0d, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x0d, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER16(lastSrc) \ + {.src = 0x6021, .y = 0x0e, .x = 0x09}, \ + {.src = 0x6021, .y = 0x0e, .x = 0x0a}, \ + {.src = 0x6027, .y = 0x0d, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x0d, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER12(lastSrc) \ + {.src = 0x6021, .y = 0x10, .x = 0x09}, \ + {.src = 0x6023, .y = 0x10, .x = 0x0a}, \ + {.src = 0x6047, .y = 0x11, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x11, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER4(lastSrc) \ + {.src = 0x602b, .y = 0x12, .x = 0x09}, \ + {.src = 0x602b, .y = 0x12, .x = 0x0a}, \ + {.src = 0x6027, .y = 0x11, .x = 0x0a}, \ + {.src = lastSrc, .y = 0x11, .x = 0x0b}, + +#define LINESECTION_ROUND1_TRAINER3(lastSrc) \ + {.src = 0x6021, .y = 0x04, .x = 0x14}, \ + {.src = 0x6025, .y = 0x04, .x = 0x13}, \ + {.src = 0x6049, .y = 0x05, .x = 0x13}, \ + {.src = lastSrc, .y = 0x05, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER11(lastSrc) \ + {.src = 0x6021, .y = 0x06, .x = 0x14}, \ + {.src = 0x6021, .y = 0x06, .x = 0x13}, \ + {.src = 0x6029, .y = 0x05, .x = 0x13}, \ + {.src = lastSrc, .y = 0x05, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER15(lastSrc) \ + {.src = 0x6021, .y = 0x08, .x = 0x14}, \ + {.src = 0x6025, .y = 0x08, .x = 0x13}, \ + {.src = 0x6049, .y = 0x09, .x = 0x13}, \ + {.src = lastSrc, .y = 0x09, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER7(lastSrc) \ + {.src = 0x6021, .y = 0x0a, .x = 0x14}, \ + {.src = 0x6021, .y = 0x0a, .x = 0x13}, \ + {.src = 0x6029, .y = 0x09, .x = 0x13}, \ + {.src = lastSrc, .y = 0x09, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER6(lastSrc) \ + {.src = 0x6021, .y = 0x0c, .x = 0x14}, \ + {.src = 0x6025, .y = 0x0c, .x = 0x13}, \ + {.src = 0x6049, .y = 0x0d, .x = 0x13}, \ + {.src = lastSrc, .y = 0x0d, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER14(lastSrc) \ + {.src = 0x6021, .y = 0x0e, .x = 0x14}, \ + {.src = 0x6021, .y = 0x0e, .x = 0x13}, \ + {.src = 0x6029, .y = 0x0d, .x = 0x13}, \ + {.src = lastSrc, .y = 0x0d, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER10(lastSrc) \ + {.src = 0x6021, .y = 0x10, .x = 0x14}, \ + {.src = 0x6025, .y = 0x10, .x = 0x13}, \ + {.src = 0x6049, .y = 0x11, .x = 0x13}, \ + {.src = lastSrc, .y = 0x11, .x = 0x12}, + +#define LINESECTION_ROUND1_TRAINER2(lastSrc) \ + {.src = 0x602b, .y = 0x12, .x = 0x14}, \ + {.src = 0x602b, .y = 0x12, .x = 0x13}, \ + {.src = 0x6029, .y = 0x11, .x = 0x13}, \ + {.src = lastSrc, .y = 0x11, .x = 0x12}, + +#define LINESECTION_ROUND2_MATCH1(lastSrc) \ + {.src = 0x6027, .y = 0x06, .x = 0x0b}, \ + {.src = 0x6047, .y = 0x07, .x = 0x0b}, \ + {.src = lastSrc, .y = 0x07, .x = 0x0c}, + +#define LINESECTION_ROUND2_MATCH2(lastSrc) \ + {.src = 0x6027, .y = 0x08, .x = 0x0b}, \ + {.src = 0x6027, .y = 0x07, .x = 0x0b}, \ + {.src = lastSrc, .y = 0x07, .x = 0x0c}, + +#define LINESECTION_ROUND2_MATCH3(lastSrc) \ + {.src = 0x6027, .y = 0x0e, .x = 0x0b}, \ + {.src = 0x6047, .y = 0x0f, .x = 0x0b}, \ + {.src = lastSrc, .y = 0x0f, .x = 0x0c}, + +#define LINESECTION_ROUND2_MATCH4(lastSrc) \ + {.src = 0x6027, .y = 0x10, .x = 0x0b}, \ + {.src = 0x6027, .y = 0x0f, .x = 0x0b}, \ + {.src = lastSrc, .y = 0x0f, .x = 0x0c}, + +#define LINESECTION_ROUND2_MATCH5(lastSrc) \ + {.src = 0x6029, .y = 0x06, .x = 0x12}, \ + {.src = 0x6049, .y = 0x07, .x = 0x12}, \ + {.src = lastSrc, .y = 0x07, .x = 0x11}, + +#define LINESECTION_ROUND2_MATCH6(lastSrc) \ + {.src = 0x6029, .y = 0x08, .x = 0x12}, \ + {.src = 0x6029, .y = 0x07, .x = 0x12}, \ + {.src = lastSrc, .y = 0x07, .x = 0x11}, + +#define LINESECTION_ROUND2_MATCH7(lastSrc) \ + {.src = 0x6029, .y = 0x0e, .x = 0x12}, \ + {.src = 0x6049, .y = 0x0f, .x = 0x12}, \ + {.src = lastSrc, .y = 0x0f, .x = 0x11}, + +#define LINESECTION_ROUND2_MATCH8(lastSrc) \ + {.src = 0x6029, .y = 0x10, .x = 0x12}, \ + {.src = 0x6029, .y = 0x0f, .x = 0x12}, \ + {.src = lastSrc, .y = 0x0f, .x = 0x11}, + +#define LINESECTION_SEMIFINAL_TOP_LEFT \ + {.src = 0x6027, .y = 0x08, .x = 0x0c}, \ + {.src = 0x6027, .y = 0x09, .x = 0x0c}, \ + {.src = 0x6027, .y = 0x0a, .x = 0x0c}, \ + {.src = 0x603b, .y = 0x0b, .x = 0x0c}, + +#define LINESECTION_SEMIFINAL_BOTTOM_LEFT \ + {.src = 0x6033, .y = 0x0e, .x = 0x0c}, \ + {.src = 0x6032, .y = 0x0d, .x = 0x0c}, \ + {.src = 0x6031, .y = 0x0c, .x = 0x0c}, \ + {.src = 0x6030, .y = 0x0b, .x = 0x0c}, + +#define LINESECTION_SEMIFINAL_TOP_RIGHT \ + {.src = 0x6029, .y = 0x08, .x = 0x11}, \ + {.src = 0x6029, .y = 0x09, .x = 0x11}, \ + {.src = 0x6029, .y = 0x0a, .x = 0x11}, \ + {.src = 0x603c, .y = 0x0b, .x = 0x11}, + +#define LINESECTION_SEMIFINAL_BOTTOM_RIGHT \ + {.src = 0x6038, .y = 0x0e, .x = 0x11}, \ + {.src = 0x6037, .y = 0x0d, .x = 0x11}, \ + {.src = 0x6036, .y = 0x0c, .x = 0x11}, \ + {.src = 0x6035, .y = 0x0b, .x = 0x11}, + +#define LINESECTION_FINAL_LEFT \ + {.src = 0x602c, .y = 0x0b, .x = 0x0d}, \ + {.src = 0x602d, .y = 0x0b, .x = 0x0e}, + +#define LINESECTION_FINAL_RIGHT \ + {.src = 0x602f, .y = 0x0b, .x = 0x10}, \ + {.src = 0x602e, .y = 0x0b, .x = 0x0f}, + + +static const struct TourneyTreeLineSection sLineSectionTrainer1Round1[] = { - {.src = 0x6021, .y = 0x04, .x = 0x09}, - {.src = 0x6023, .y = 0x04, .x = 0x0a}, - {.src = 0x6047, .y = 0x05, .x = 0x0a}, - {.src = 0x6043, .y = 0x05, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER1(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d460[] = +static const struct TourneyTreeLineSection sLineSectionTrainer1Round2[] = { - {.src = 0x6021, .y = 0x04, .x = 0x09}, - {.src = 0x6023, .y = 0x04, .x = 0x0a}, - {.src = 0x6047, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6043, .y = 0x07, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER1(0x6023) + LINESECTION_ROUND2_MATCH1(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d47c[] = -{ - {.src = 0x6021, .y = 0x04, .x = 0x09}, - {.src = 0x6023, .y = 0x04, .x = 0x0a}, - {.src = 0x6047, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer1Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER1(0x6023) + LINESECTION_ROUND2_MATCH1(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d4a8[] = -{ - {.src = 0x6021, .y = 0x04, .x = 0x09}, - {.src = 0x6023, .y = 0x04, .x = 0x0a}, - {.src = 0x6047, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer1Final[] = +{ + LINESECTION_ROUND1_TRAINER1(0x6023) + LINESECTION_ROUND2_MATCH1(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d4dc[] = +static const struct TourneyTreeLineSection sLineSectionTrainer9Round1[] = { - {.src = 0x6021, .y = 0x06, .x = 0x09}, - {.src = 0x6021, .y = 0x06, .x = 0x0a}, - {.src = 0x6027, .y = 0x05, .x = 0x0a}, - {.src = 0x6043, .y = 0x05, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER9(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d4ec[] = +static const struct TourneyTreeLineSection sLineSectionTrainer9Round2[] = { - {.src = 0x6021, .y = 0x06, .x = 0x09}, - {.src = 0x6021, .y = 0x06, .x = 0x0a}, - {.src = 0x6027, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6043, .y = 0x07, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER9(0x6023) + LINESECTION_ROUND2_MATCH1(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d508[] = -{ - {.src = 0x6021, .y = 0x06, .x = 0x09}, - {.src = 0x6021, .y = 0x06, .x = 0x0a}, - {.src = 0x6027, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer9Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER9(0x6023) + LINESECTION_ROUND2_MATCH1(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d534[] = -{ - {.src = 0x6021, .y = 0x06, .x = 0x09}, - {.src = 0x6021, .y = 0x06, .x = 0x0a}, - {.src = 0x6027, .y = 0x05, .x = 0x0a}, - {.src = 0x6023, .y = 0x05, .x = 0x0b}, - {.src = 0x6027, .y = 0x06, .x = 0x0b}, - {.src = 0x6047, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer9Final[] = +{ + LINESECTION_ROUND1_TRAINER9(0x6023) + LINESECTION_ROUND2_MATCH1(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d568[] = +static const struct TourneyTreeLineSection sLineSectionTrainer13Round1[] = { - {.src = 0x6021, .y = 0x08, .x = 0x09}, - {.src = 0x6023, .y = 0x08, .x = 0x0a}, - {.src = 0x6047, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER13(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d578[] = +static const struct TourneyTreeLineSection sLineSectionTrainer13Round2[] = { - {.src = 0x6021, .y = 0x08, .x = 0x09}, - {.src = 0x6023, .y = 0x08, .x = 0x0a}, - {.src = 0x6047, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6043, .y = 0x07, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER13(0x6021) + LINESECTION_ROUND2_MATCH2(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d594[] = -{ - {.src = 0x6021, .y = 0x08, .x = 0x09}, - {.src = 0x6023, .y = 0x08, .x = 0x0a}, - {.src = 0x6047, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer13Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER13(0x6021) + LINESECTION_ROUND2_MATCH2(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d5c0[] = -{ - {.src = 0x6021, .y = 0x08, .x = 0x09}, - {.src = 0x6023, .y = 0x08, .x = 0x0a}, - {.src = 0x6047, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer13Final[] = +{ + LINESECTION_ROUND1_TRAINER13(0x6021) + LINESECTION_ROUND2_MATCH2(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d5f4[] = +static const struct TourneyTreeLineSection sLineSectionTrainer5Round1[] = { - {.src = 0x6021, .y = 0x0a, .x = 0x09}, - {.src = 0x6021, .y = 0x0a, .x = 0x0a}, - {.src = 0x6027, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER5(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d604[] = +static const struct TourneyTreeLineSection sLineSectionTrainer5Round2[] = { - {.src = 0x6021, .y = 0x0a, .x = 0x09}, - {.src = 0x6021, .y = 0x0a, .x = 0x0a}, - {.src = 0x6027, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6043, .y = 0x07, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER5(0x6021) + LINESECTION_ROUND2_MATCH2(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d620[] = -{ - {.src = 0x6021, .y = 0x0a, .x = 0x09}, - {.src = 0x6021, .y = 0x0a, .x = 0x0a}, - {.src = 0x6027, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer5Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER5(0x6021) + LINESECTION_ROUND2_MATCH2(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d64c[] = -{ - {.src = 0x6021, .y = 0x0a, .x = 0x09}, - {.src = 0x6021, .y = 0x0a, .x = 0x0a}, - {.src = 0x6027, .y = 0x09, .x = 0x0a}, - {.src = 0x6021, .y = 0x09, .x = 0x0b}, - {.src = 0x6027, .y = 0x08, .x = 0x0b}, - {.src = 0x6027, .y = 0x07, .x = 0x0b}, - {.src = 0x6023, .y = 0x07, .x = 0x0c}, - {.src = 0x6027, .y = 0x08, .x = 0x0c}, - {.src = 0x6027, .y = 0x09, .x = 0x0c}, - {.src = 0x6027, .y = 0x0a, .x = 0x0c}, - {.src = 0x603b, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer5Final[] = +{ + LINESECTION_ROUND1_TRAINER5(0x6021) + LINESECTION_ROUND2_MATCH2(0x6023) + LINESECTION_SEMIFINAL_TOP_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d680[] = +static const struct TourneyTreeLineSection sLineSectionTrainer8Round1[] = { - {.src = 0x6021, .y = 0x0c, .x = 0x09}, - {.src = 0x6023, .y = 0x0c, .x = 0x0a}, - {.src = 0x6047, .y = 0x0d, .x = 0x0a}, - {.src = 0x6043, .y = 0x0d, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER8(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d690[] = +static const struct TourneyTreeLineSection sLineSectionTrainer8Round2[] = { - {.src = 0x6021, .y = 0x0c, .x = 0x09}, - {.src = 0x6023, .y = 0x0c, .x = 0x0a}, - {.src = 0x6047, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER8(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d6ac[] = -{ - {.src = 0x6021, .y = 0x0c, .x = 0x09}, - {.src = 0x6023, .y = 0x0c, .x = 0x0a}, - {.src = 0x6047, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer8Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER8(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d6d8[] = -{ - {.src = 0x6021, .y = 0x0c, .x = 0x09}, - {.src = 0x6023, .y = 0x0c, .x = 0x0a}, - {.src = 0x6047, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer8Final[] = +{ + LINESECTION_ROUND1_TRAINER8(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d70c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer16Round1[] = { - {.src = 0x6021, .y = 0x0e, .x = 0x09}, - {.src = 0x6021, .y = 0x0e, .x = 0x0a}, - {.src = 0x6027, .y = 0x0d, .x = 0x0a}, - {.src = 0x6043, .y = 0x0d, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER16(0x6043) }; -static const struct UnkStruct_860DD10 gUnknown_0860d71c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer16Round2[] = { - {.src = 0x6021, .y = 0x0e, .x = 0x09}, - {.src = 0x6021, .y = 0x0e, .x = 0x0a}, - {.src = 0x6027, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER16(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d738[] = -{ - {.src = 0x6021, .y = 0x0e, .x = 0x09}, - {.src = 0x6021, .y = 0x0e, .x = 0x0a}, - {.src = 0x6027, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer16Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER16(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d764[] = -{ - {.src = 0x6021, .y = 0x0e, .x = 0x09}, - {.src = 0x6021, .y = 0x0e, .x = 0x0a}, - {.src = 0x6027, .y = 0x0d, .x = 0x0a}, - {.src = 0x6023, .y = 0x0d, .x = 0x0b}, - {.src = 0x6027, .y = 0x0e, .x = 0x0b}, - {.src = 0x6047, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer16Final[] = +{ + LINESECTION_ROUND1_TRAINER16(0x6023) + LINESECTION_ROUND2_MATCH3(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d798[] = +static const struct TourneyTreeLineSection sLineSectionTrainer12Round1[] = { - {.src = 0x6021, .y = 0x10, .x = 0x09}, - {.src = 0x6023, .y = 0x10, .x = 0x0a}, - {.src = 0x6047, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER12(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d7a8[] = +static const struct TourneyTreeLineSection sLineSectionTrainer12Round2[] = { - {.src = 0x6021, .y = 0x10, .x = 0x09}, - {.src = 0x6023, .y = 0x10, .x = 0x0a}, - {.src = 0x6047, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER12(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d7c4[] = -{ - {.src = 0x6021, .y = 0x10, .x = 0x09}, - {.src = 0x6023, .y = 0x10, .x = 0x0a}, - {.src = 0x6047, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer12Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER12(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d7f0[] = -{ - {.src = 0x6021, .y = 0x10, .x = 0x09}, - {.src = 0x6023, .y = 0x10, .x = 0x0a}, - {.src = 0x6047, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer12Final[] = +{ + LINESECTION_ROUND1_TRAINER12(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d824[] = +static const struct TourneyTreeLineSection sLineSectionTrainer4Round1[] = { - {.src = 0x602b, .y = 0x12, .x = 0x09}, - {.src = 0x602b, .y = 0x12, .x = 0x0a}, - {.src = 0x6027, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, + LINESECTION_ROUND1_TRAINER4(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d834[] = +static const struct TourneyTreeLineSection sLineSectionTrainer4Round2[] = { - {.src = 0x602b, .y = 0x12, .x = 0x09}, - {.src = 0x602b, .y = 0x12, .x = 0x0a}, - {.src = 0x6027, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, + LINESECTION_ROUND1_TRAINER4(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d850[] = -{ - {.src = 0x602b, .y = 0x12, .x = 0x09}, - {.src = 0x602b, .y = 0x12, .x = 0x0a}, - {.src = 0x6027, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, +static const struct TourneyTreeLineSection sLineSectionTrainer4Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER4(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d87c[] = -{ - {.src = 0x602b, .y = 0x12, .x = 0x09}, - {.src = 0x602b, .y = 0x12, .x = 0x0a}, - {.src = 0x6027, .y = 0x11, .x = 0x0a}, - {.src = 0x6021, .y = 0x11, .x = 0x0b}, - {.src = 0x6027, .y = 0x10, .x = 0x0b}, - {.src = 0x6027, .y = 0x0f, .x = 0x0b}, - {.src = 0x6021, .y = 0x0f, .x = 0x0c}, - {.src = 0x6033, .y = 0x0e, .x = 0x0c}, - {.src = 0x6032, .y = 0x0d, .x = 0x0c}, - {.src = 0x6031, .y = 0x0c, .x = 0x0c}, - {.src = 0x6030, .y = 0x0b, .x = 0x0c}, - {.src = 0x602c, .y = 0x0b, .x = 0x0d}, - {.src = 0x602d, .y = 0x0b, .x = 0x0e}, +static const struct TourneyTreeLineSection sLineSectionTrainer4Final[] = +{ + LINESECTION_ROUND1_TRAINER4(0x6021) + LINESECTION_ROUND2_MATCH4(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_LEFT + LINESECTION_FINAL_LEFT }; -static const struct UnkStruct_860DD10 gUnknown_0860d8b0[] = +static const struct TourneyTreeLineSection sLineSectionTrainer3Round1[] = { - {.src = 0x6021, .y = 0x04, .x = 0x14}, - {.src = 0x6025, .y = 0x04, .x = 0x13}, - {.src = 0x6049, .y = 0x05, .x = 0x13}, - {.src = 0x6045, .y = 0x05, .x = 0x12}, + LINESECTION_ROUND1_TRAINER3(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860d8c0[] = +static const struct TourneyTreeLineSection sLineSectionTrainer3Round2[] = { - {.src = 0x6021, .y = 0x04, .x = 0x14}, - {.src = 0x6025, .y = 0x04, .x = 0x13}, - {.src = 0x6049, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6045, .y = 0x07, .x = 0x11}, + LINESECTION_ROUND1_TRAINER3(0x6025) + LINESECTION_ROUND2_MATCH5(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860d8dc[] = -{ - {.src = 0x6021, .y = 0x04, .x = 0x14}, - {.src = 0x6025, .y = 0x04, .x = 0x13}, - {.src = 0x6049, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer3Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER3(0x6025) + LINESECTION_ROUND2_MATCH5(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860d908[] = -{ - {.src = 0x6021, .y = 0x04, .x = 0x14}, - {.src = 0x6025, .y = 0x04, .x = 0x13}, - {.src = 0x6049, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer3Final[] = +{ + LINESECTION_ROUND1_TRAINER3(0x6025) + LINESECTION_ROUND2_MATCH5(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860d93c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer11Round1[] = { - {.src = 0x6021, .y = 0x06, .x = 0x14}, - {.src = 0x6021, .y = 0x06, .x = 0x13}, - {.src = 0x6029, .y = 0x05, .x = 0x13}, - {.src = 0x6045, .y = 0x05, .x = 0x12}, + LINESECTION_ROUND1_TRAINER11(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860d94c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer11Round2[] = { - {.src = 0x6021, .y = 0x06, .x = 0x14}, - {.src = 0x6021, .y = 0x06, .x = 0x13}, - {.src = 0x6029, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6045, .y = 0x07, .x = 0x11}, + LINESECTION_ROUND1_TRAINER11(0x6025) + LINESECTION_ROUND2_MATCH5(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860d968[] = -{ - {.src = 0x6021, .y = 0x06, .x = 0x14}, - {.src = 0x6021, .y = 0x06, .x = 0x13}, - {.src = 0x6029, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer11Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER11(0x6025) + LINESECTION_ROUND2_MATCH5(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860d994[] = -{ - {.src = 0x6021, .y = 0x06, .x = 0x14}, - {.src = 0x6021, .y = 0x06, .x = 0x13}, - {.src = 0x6029, .y = 0x05, .x = 0x13}, - {.src = 0x6025, .y = 0x05, .x = 0x12}, - {.src = 0x6029, .y = 0x06, .x = 0x12}, - {.src = 0x6049, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer11Final[] = +{ + LINESECTION_ROUND1_TRAINER11(0x6025) + LINESECTION_ROUND2_MATCH5(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860d9c8[] = +static const struct TourneyTreeLineSection sLineSectionTrainer15Round1[] = { - {.src = 0x6021, .y = 0x08, .x = 0x14}, - {.src = 0x6025, .y = 0x08, .x = 0x13}, - {.src = 0x6049, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, + LINESECTION_ROUND1_TRAINER15(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860d9d8[] = +static const struct TourneyTreeLineSection sLineSectionTrainer15Round2[] = { - {.src = 0x6021, .y = 0x08, .x = 0x14}, - {.src = 0x6025, .y = 0x08, .x = 0x13}, - {.src = 0x6049, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6045, .y = 0x07, .x = 0x11}, + LINESECTION_ROUND1_TRAINER15(0x6021) + LINESECTION_ROUND2_MATCH6(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860d9f4[] = -{ - {.src = 0x6021, .y = 0x08, .x = 0x14}, - {.src = 0x6025, .y = 0x08, .x = 0x13}, - {.src = 0x6049, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer15Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER15(0x6021) + LINESECTION_ROUND2_MATCH6(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860da20[] = -{ - {.src = 0x6021, .y = 0x08, .x = 0x14}, - {.src = 0x6025, .y = 0x08, .x = 0x13}, - {.src = 0x6049, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer15Final[] = +{ + LINESECTION_ROUND1_TRAINER15(0x6021) + LINESECTION_ROUND2_MATCH6(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860da54[] = +static const struct TourneyTreeLineSection sLineSectionTrainer7Round1[] = { - {.src = 0x6021, .y = 0x0a, .x = 0x14}, - {.src = 0x6021, .y = 0x0a, .x = 0x13}, - {.src = 0x6029, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, + LINESECTION_ROUND1_TRAINER7(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860da64[] = +static const struct TourneyTreeLineSection sLineSectionTrainer7Round2[] = { - {.src = 0x6021, .y = 0x0a, .x = 0x14}, - {.src = 0x6021, .y = 0x0a, .x = 0x13}, - {.src = 0x6029, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6045, .y = 0x07, .x = 0x11}, + LINESECTION_ROUND1_TRAINER7(0x6021) + LINESECTION_ROUND2_MATCH6(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860da80[] = -{ - {.src = 0x6021, .y = 0x0a, .x = 0x14}, - {.src = 0x6021, .y = 0x0a, .x = 0x13}, - {.src = 0x6029, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer7Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER7(0x6021) + LINESECTION_ROUND2_MATCH6(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860daac[] = -{ - {.src = 0x6021, .y = 0x0a, .x = 0x14}, - {.src = 0x6021, .y = 0x0a, .x = 0x13}, - {.src = 0x6029, .y = 0x09, .x = 0x13}, - {.src = 0x6021, .y = 0x09, .x = 0x12}, - {.src = 0x6029, .y = 0x08, .x = 0x12}, - {.src = 0x6029, .y = 0x07, .x = 0x12}, - {.src = 0x6025, .y = 0x07, .x = 0x11}, - {.src = 0x6029, .y = 0x08, .x = 0x11}, - {.src = 0x6029, .y = 0x09, .x = 0x11}, - {.src = 0x6029, .y = 0x0a, .x = 0x11}, - {.src = 0x603c, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer7Final[] = +{ + LINESECTION_ROUND1_TRAINER7(0x6021) + LINESECTION_ROUND2_MATCH6(0x6025) + LINESECTION_SEMIFINAL_TOP_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dae0[] = +static const struct TourneyTreeLineSection sLineSectionTrainer6Round1[] = { - {.src = 0x6021, .y = 0x0c, .x = 0x14}, - {.src = 0x6025, .y = 0x0c, .x = 0x13}, - {.src = 0x6049, .y = 0x0d, .x = 0x13}, - {.src = 0x6045, .y = 0x0d, .x = 0x12}, + LINESECTION_ROUND1_TRAINER6(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860daf0[] = +static const struct TourneyTreeLineSection sLineSectionTrainer6Round2[] = { - {.src = 0x6021, .y = 0x0c, .x = 0x14}, - {.src = 0x6025, .y = 0x0c, .x = 0x13}, - {.src = 0x6049, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, + LINESECTION_ROUND1_TRAINER6(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860db0c[] = -{ - {.src = 0x6021, .y = 0x0c, .x = 0x14}, - {.src = 0x6025, .y = 0x0c, .x = 0x13}, - {.src = 0x6049, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer6Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER6(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860db38[] = -{ - {.src = 0x6021, .y = 0x0c, .x = 0x14}, - {.src = 0x6025, .y = 0x0c, .x = 0x13}, - {.src = 0x6049, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer6Final[] = +{ + LINESECTION_ROUND1_TRAINER6(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860db6c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer14Round1[] = { - {.src = 0x6021, .y = 0x0e, .x = 0x14}, - {.src = 0x6021, .y = 0x0e, .x = 0x13}, - {.src = 0x6029, .y = 0x0d, .x = 0x13}, - {.src = 0x6045, .y = 0x0d, .x = 0x12}, + LINESECTION_ROUND1_TRAINER14(0x6045) }; -static const struct UnkStruct_860DD10 gUnknown_0860db7c[] = +static const struct TourneyTreeLineSection sLineSectionTrainer14Round2[] = { - {.src = 0x6021, .y = 0x0e, .x = 0x14}, - {.src = 0x6021, .y = 0x0e, .x = 0x13}, - {.src = 0x6029, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, + LINESECTION_ROUND1_TRAINER14(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860db98[] = -{ - {.src = 0x6021, .y = 0x0e, .x = 0x14}, - {.src = 0x6021, .y = 0x0e, .x = 0x13}, - {.src = 0x6029, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer14Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER14(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dbc4[] = -{ - {.src = 0x6021, .y = 0x0e, .x = 0x14}, - {.src = 0x6021, .y = 0x0e, .x = 0x13}, - {.src = 0x6029, .y = 0x0d, .x = 0x13}, - {.src = 0x6025, .y = 0x0d, .x = 0x12}, - {.src = 0x6029, .y = 0x0e, .x = 0x12}, - {.src = 0x6049, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer14Final[] = +{ + LINESECTION_ROUND1_TRAINER14(0x6025) + LINESECTION_ROUND2_MATCH7(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dbf8[] = +static const struct TourneyTreeLineSection sLineSectionTrainer10Round1[] = { - {.src = 0x6021, .y = 0x10, .x = 0x14}, - {.src = 0x6025, .y = 0x10, .x = 0x13}, - {.src = 0x6049, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, + LINESECTION_ROUND1_TRAINER10(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860dc08[] = +static const struct TourneyTreeLineSection sLineSectionTrainer10Round2[] = { - {.src = 0x6021, .y = 0x10, .x = 0x14}, - {.src = 0x6025, .y = 0x10, .x = 0x13}, - {.src = 0x6049, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, + LINESECTION_ROUND1_TRAINER10(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860dc24[] = -{ - {.src = 0x6021, .y = 0x10, .x = 0x14}, - {.src = 0x6025, .y = 0x10, .x = 0x13}, - {.src = 0x6049, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer10Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER10(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dc50[] = -{ - {.src = 0x6021, .y = 0x10, .x = 0x14}, - {.src = 0x6025, .y = 0x10, .x = 0x13}, - {.src = 0x6049, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer10Final[] = +{ + LINESECTION_ROUND1_TRAINER10(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dc84[] = +static const struct TourneyTreeLineSection sLineSectionTrainer2Round1[] = { - {.src = 0x602b, .y = 0x12, .x = 0x14}, - {.src = 0x602b, .y = 0x12, .x = 0x13}, - {.src = 0x6029, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, + LINESECTION_ROUND1_TRAINER2(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860dc94[] = +static const struct TourneyTreeLineSection sLineSectionTrainer2Round2[] = { - {.src = 0x602b, .y = 0x12, .x = 0x14}, - {.src = 0x602b, .y = 0x12, .x = 0x13}, - {.src = 0x6029, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, + LINESECTION_ROUND1_TRAINER2(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) }; -static const struct UnkStruct_860DD10 gUnknown_0860dcb0[] = -{ - {.src = 0x602b, .y = 0x12, .x = 0x14}, - {.src = 0x602b, .y = 0x12, .x = 0x13}, - {.src = 0x6029, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, +static const struct TourneyTreeLineSection sLineSectionTrainer2Semifinal[] = +{ + LINESECTION_ROUND1_TRAINER2(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT }; -static const struct UnkStruct_860DD10 gUnknown_0860dcdc[] = -{ - {.src = 0x602b, .y = 0x12, .x = 0x14}, - {.src = 0x602b, .y = 0x12, .x = 0x13}, - {.src = 0x6029, .y = 0x11, .x = 0x13}, - {.src = 0x6021, .y = 0x11, .x = 0x12}, - {.src = 0x6029, .y = 0x10, .x = 0x12}, - {.src = 0x6029, .y = 0x0f, .x = 0x12}, - {.src = 0x6021, .y = 0x0f, .x = 0x11}, - {.src = 0x6038, .y = 0x0e, .x = 0x11}, - {.src = 0x6037, .y = 0x0d, .x = 0x11}, - {.src = 0x6036, .y = 0x0c, .x = 0x11}, - {.src = 0x6035, .y = 0x0b, .x = 0x11}, - {.src = 0x602f, .y = 0x0b, .x = 0x10}, - {.src = 0x602e, .y = 0x0b, .x = 0x0f}, +static const struct TourneyTreeLineSection sLineSectionTrainer2Final[] = +{ + LINESECTION_ROUND1_TRAINER2(0x6021) + LINESECTION_ROUND2_MATCH8(0x6021) + LINESECTION_SEMIFINAL_BOTTOM_RIGHT + LINESECTION_FINAL_RIGHT }; -static const struct UnkStruct_860DD10 * const gUnknown_0860DD10[DOME_TOURNAMENT_TRAINERS_COUNT][4] = -{ - {gUnknown_0860d450, gUnknown_0860d460, gUnknown_0860d47c, gUnknown_0860d4a8}, - {gUnknown_0860dc84, gUnknown_0860dc94, gUnknown_0860dcb0, gUnknown_0860dcdc}, - {gUnknown_0860d8b0, gUnknown_0860d8c0, gUnknown_0860d8dc, gUnknown_0860d908}, - {gUnknown_0860d824, gUnknown_0860d834, gUnknown_0860d850, gUnknown_0860d87c}, - {gUnknown_0860d5f4, gUnknown_0860d604, gUnknown_0860d620, gUnknown_0860d64c}, - {gUnknown_0860dae0, gUnknown_0860daf0, gUnknown_0860db0c, gUnknown_0860db38}, - {gUnknown_0860da54, gUnknown_0860da64, gUnknown_0860da80, gUnknown_0860daac}, - {gUnknown_0860d680, gUnknown_0860d690, gUnknown_0860d6ac, gUnknown_0860d6d8}, - {gUnknown_0860d4dc, gUnknown_0860d4ec, gUnknown_0860d508, gUnknown_0860d534}, - {gUnknown_0860dbf8, gUnknown_0860dc08, gUnknown_0860dc24, gUnknown_0860dc50}, - {gUnknown_0860d93c, gUnknown_0860d94c, gUnknown_0860d968, gUnknown_0860d994}, - {gUnknown_0860d798, gUnknown_0860d7a8, gUnknown_0860d7c4, gUnknown_0860d7f0}, - {gUnknown_0860d568, gUnknown_0860d578, gUnknown_0860d594, gUnknown_0860d5c0}, - {gUnknown_0860db6c, gUnknown_0860db7c, gUnknown_0860db98, gUnknown_0860dbc4}, - {gUnknown_0860d9c8, gUnknown_0860d9d8, gUnknown_0860d9f4, gUnknown_0860da20}, - {gUnknown_0860d70c, gUnknown_0860d71c, gUnknown_0860d738, gUnknown_0860d764}, +static const struct TourneyTreeLineSection *const sTourneyTreeLineSections[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = +{ + {sLineSectionTrainer1Round1, sLineSectionTrainer1Round2, sLineSectionTrainer1Semifinal, sLineSectionTrainer1Final}, + {sLineSectionTrainer2Round1, sLineSectionTrainer2Round2, sLineSectionTrainer2Semifinal, sLineSectionTrainer2Final}, + {sLineSectionTrainer3Round1, sLineSectionTrainer3Round2, sLineSectionTrainer3Semifinal, sLineSectionTrainer3Final}, + {sLineSectionTrainer4Round1, sLineSectionTrainer4Round2, sLineSectionTrainer4Semifinal, sLineSectionTrainer4Final}, + {sLineSectionTrainer5Round1, sLineSectionTrainer5Round2, sLineSectionTrainer5Semifinal, sLineSectionTrainer5Final}, + {sLineSectionTrainer6Round1, sLineSectionTrainer6Round2, sLineSectionTrainer6Semifinal, sLineSectionTrainer6Final}, + {sLineSectionTrainer7Round1, sLineSectionTrainer7Round2, sLineSectionTrainer7Semifinal, sLineSectionTrainer7Final}, + {sLineSectionTrainer8Round1, sLineSectionTrainer8Round2, sLineSectionTrainer8Semifinal, sLineSectionTrainer8Final}, + {sLineSectionTrainer9Round1, sLineSectionTrainer9Round2, sLineSectionTrainer9Semifinal, sLineSectionTrainer9Final}, + {sLineSectionTrainer10Round1, sLineSectionTrainer10Round2, sLineSectionTrainer10Semifinal, sLineSectionTrainer10Final}, + {sLineSectionTrainer11Round1, sLineSectionTrainer11Round2, sLineSectionTrainer11Semifinal, sLineSectionTrainer11Final}, + {sLineSectionTrainer12Round1, sLineSectionTrainer12Round2, sLineSectionTrainer12Semifinal, sLineSectionTrainer12Final}, + {sLineSectionTrainer13Round1, sLineSectionTrainer13Round2, sLineSectionTrainer13Semifinal, sLineSectionTrainer13Final}, + {sLineSectionTrainer14Round1, sLineSectionTrainer14Round2, sLineSectionTrainer14Semifinal, sLineSectionTrainer14Final}, + {sLineSectionTrainer15Round1, sLineSectionTrainer15Round2, sLineSectionTrainer15Semifinal, sLineSectionTrainer15Final}, + {sLineSectionTrainer16Round1, sLineSectionTrainer16Round2, sLineSectionTrainer16Semifinal, sLineSectionTrainer16Final}, }; -static const u8 gUnknown_0860DE10[DOME_TOURNAMENT_TRAINERS_COUNT][4] = -{ - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, - {0x04, 0x07, 0x0b, 0x0d}, +static const u8 sTourneyTreeLineSectionArrayCounts[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = +{ + {ARRAY_COUNT(sLineSectionTrainer1Round1), ARRAY_COUNT(sLineSectionTrainer1Round2), ARRAY_COUNT(sLineSectionTrainer1Semifinal), ARRAY_COUNT(sLineSectionTrainer1Final)}, + {ARRAY_COUNT(sLineSectionTrainer2Round1), ARRAY_COUNT(sLineSectionTrainer2Round2), ARRAY_COUNT(sLineSectionTrainer2Semifinal), ARRAY_COUNT(sLineSectionTrainer2Final)}, + {ARRAY_COUNT(sLineSectionTrainer3Round1), ARRAY_COUNT(sLineSectionTrainer3Round2), ARRAY_COUNT(sLineSectionTrainer3Semifinal), ARRAY_COUNT(sLineSectionTrainer3Final)}, + {ARRAY_COUNT(sLineSectionTrainer4Round1), ARRAY_COUNT(sLineSectionTrainer4Round2), ARRAY_COUNT(sLineSectionTrainer4Semifinal), ARRAY_COUNT(sLineSectionTrainer4Final)}, + {ARRAY_COUNT(sLineSectionTrainer5Round1), ARRAY_COUNT(sLineSectionTrainer5Round2), ARRAY_COUNT(sLineSectionTrainer5Semifinal), ARRAY_COUNT(sLineSectionTrainer5Final)}, + {ARRAY_COUNT(sLineSectionTrainer6Round1), ARRAY_COUNT(sLineSectionTrainer6Round2), ARRAY_COUNT(sLineSectionTrainer6Semifinal), ARRAY_COUNT(sLineSectionTrainer6Final)}, + {ARRAY_COUNT(sLineSectionTrainer7Round1), ARRAY_COUNT(sLineSectionTrainer7Round2), ARRAY_COUNT(sLineSectionTrainer7Semifinal), ARRAY_COUNT(sLineSectionTrainer7Final)}, + {ARRAY_COUNT(sLineSectionTrainer8Round1), ARRAY_COUNT(sLineSectionTrainer8Round2), ARRAY_COUNT(sLineSectionTrainer8Semifinal), ARRAY_COUNT(sLineSectionTrainer8Final)}, + {ARRAY_COUNT(sLineSectionTrainer9Round1), ARRAY_COUNT(sLineSectionTrainer9Round2), ARRAY_COUNT(sLineSectionTrainer9Semifinal), ARRAY_COUNT(sLineSectionTrainer9Final)}, + {ARRAY_COUNT(sLineSectionTrainer10Round1), ARRAY_COUNT(sLineSectionTrainer10Round2), ARRAY_COUNT(sLineSectionTrainer10Semifinal), ARRAY_COUNT(sLineSectionTrainer10Final)}, + {ARRAY_COUNT(sLineSectionTrainer11Round1), ARRAY_COUNT(sLineSectionTrainer11Round2), ARRAY_COUNT(sLineSectionTrainer11Semifinal), ARRAY_COUNT(sLineSectionTrainer11Final)}, + {ARRAY_COUNT(sLineSectionTrainer12Round1), ARRAY_COUNT(sLineSectionTrainer12Round2), ARRAY_COUNT(sLineSectionTrainer12Semifinal), ARRAY_COUNT(sLineSectionTrainer12Final)}, + {ARRAY_COUNT(sLineSectionTrainer13Round1), ARRAY_COUNT(sLineSectionTrainer13Round2), ARRAY_COUNT(sLineSectionTrainer13Semifinal), ARRAY_COUNT(sLineSectionTrainer13Final)}, + {ARRAY_COUNT(sLineSectionTrainer14Round1), ARRAY_COUNT(sLineSectionTrainer14Round2), ARRAY_COUNT(sLineSectionTrainer14Semifinal), ARRAY_COUNT(sLineSectionTrainer14Final)}, + {ARRAY_COUNT(sLineSectionTrainer15Round1), ARRAY_COUNT(sLineSectionTrainer15Round2), ARRAY_COUNT(sLineSectionTrainer15Semifinal), ARRAY_COUNT(sLineSectionTrainer15Final)}, + {ARRAY_COUNT(sLineSectionTrainer16Round1), ARRAY_COUNT(sLineSectionTrainer16Round2), ARRAY_COUNT(sLineSectionTrainer16Semifinal), ARRAY_COUNT(sLineSectionTrainer16Final)}, }; // code @@ -2280,57 +2115,57 @@ static void GetDomeData(void) case DOME_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; - case DOME_DATA_2: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + case DOME_DATA_ATTEMPTED_SINGLES_50: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50; break; - case DOME_DATA_3: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + case DOME_DATA_ATTEMPTED_SINGLES_OPEN: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen; break; - case DOME_DATA_4: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + case DOME_DATA_HAS_WON_SINGLES_50: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50; break; - case DOME_DATA_5: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + case DOME_DATA_HAS_WON_SINGLES_OPEN: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen; break; - case DOME_DATA_6: + case DOME_DATA_ATTEMPTED_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_4; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoubles50; } else { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50; } break; - case DOME_DATA_7: + case DOME_DATA_HAS_WON_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_6; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoubles50; } else { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50; } break; - case DOME_DATA_8: + case DOME_DATA_SELECTED_MONS: ClearSelectedPartyOrder(); gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3]; gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8; break; - case DOME_DATA_9: - gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; + case DOME_DATA_PREV_TOURNEY_TYPE: + gSpecialVar_Result = (gSaveBlock2Ptr->frontier.domeLvlMode * 2) - 3 + gSaveBlock2Ptr->frontier.domeBattleMode; break; } } @@ -2351,51 +2186,51 @@ static void SetDomeData(void) else gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; - case DOME_DATA_2: - gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + case DOME_DATA_ATTEMPTED_SINGLES_50: + gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006; break; - case DOME_DATA_3: - gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + case DOME_DATA_ATTEMPTED_SINGLES_OPEN: + gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006; break; - case DOME_DATA_4: - gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + case DOME_DATA_HAS_WON_SINGLES_50: + gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006; break; - case DOME_DATA_5: - gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + case DOME_DATA_HAS_WON_SINGLES_OPEN: + gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006; break; - case DOME_DATA_6: + case DOME_DATA_ATTEMPTED_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_4 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeAttemptedDoubles50 = gSpecialVar_0x8006; } else { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006; } break; - case DOME_DATA_7: + case DOME_DATA_HAS_WON_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_6 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeHasWonDoubles50 = gSpecialVar_0x8006; } else { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006; } break; - case DOME_DATA_8: + case DOME_DATA_SELECTED_MONS: gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty); break; } @@ -2408,105 +2243,115 @@ static void InitDomeTrainers(void) int species[FRONTIER_PARTY_SIZE]; int monTypesBits, monTypesCount; int trainerId; - int monSetId; - u16 *statSums; + int monId; + u16 *rankingScores; int *statValues; u8 ivs = 0; species[0] = 0; species[1] = 0; species[2] = 0; - statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); - statValues = AllocZeroed(sizeof(int) * 6); + rankingScores = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); + statValues = AllocZeroed(sizeof(int) * NUM_STATS); - gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1; - gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; - gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER; - gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; + gSaveBlock2Ptr->frontier.domeLvlMode = gSaveBlock2Ptr->frontier.lvlMode + 1; + gSaveBlock2Ptr->frontier.domeBattleMode = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; + DOME_TRAINERS[0].trainerId = TRAINER_PLAYER; + DOME_TRAINERS[0].isEliminated = FALSE; + DOME_TRAINERS[0].eliminatedAt = 0; + DOME_TRAINERS[0].forfeited = FALSE; + // Store the data used to display party information on the player's tourney page for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); + DOME_MONS[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < MAX_MON_MOVES; j++) - gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL); + gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL); for (j = 0; j < NUM_STATS; j++) - gSaveBlock2Ptr->frontier.field_EFC[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL); + gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_HP_EV + j, NULL); - gSaveBlock2Ptr->frontier.field_EFC[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]); + gSaveBlock2Ptr->frontier.domePlayerPartyData[i].nature = GetNature(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1]); } + // Populate the tourney roster with random frontier trainers (dependent on streak) for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { + // Choose trainer. First 5/16 trainers are easier than the rest if (i > 5) { do { - trainerId = sub_8162548(GetCurrentFacilityWinStreak(), 0); + trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak(), 0); for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; } else { do { - trainerId = sub_8162548(GetCurrentFacilityWinStreak() + 1, 0); + trainerId = GetRandomScaledFrontierTrainerId(GetCurrentFacilityWinStreak() + 1, 0); for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; } + // Choose party for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - // Make sure the mon is valid. do { - monSetId = RandomizeFacilityTrainerMonSet(trainerId); + monId = GetRandomFrontierMonFromSet(trainerId); for (k = 0; k < j; k++) { - int checkingMonSetId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; - if (checkingMonSetId == monSetId - || species[0] == gFacilityTrainerMons[monSetId].species - || species[1] == gFacilityTrainerMons[monSetId].species - || gFacilityTrainerMons[checkingMonSetId].itemTableId == gFacilityTrainerMons[monSetId].itemTableId) + // Make sure the mon is valid. + int alreadySelectedMonId = DOME_MONS[i][k]; + if (alreadySelectedMonId == monId + || species[0] == gFacilityTrainerMons[monId].species + || species[1] == gFacilityTrainerMons[monId].species + || gFacilityTrainerMons[alreadySelectedMonId].itemTableId == gFacilityTrainerMons[monId].itemTableId) break; } } while (k != j); - gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId; - species[j] = gFacilityTrainerMons[monSetId].species; + DOME_MONS[i][j] = monId; + species[j] = gFacilityTrainerMons[monId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; + DOME_TRAINERS[i].isEliminated = FALSE; + DOME_TRAINERS[i].eliminatedAt = 0; + DOME_TRAINERS[i].forfeited = FALSE; } + // rankingScores is used to determine the seed (ranking) of the trainers + // rankingScores[0] is for the player, rankingScores[1-15] are for the opponent trainers + + // Calculate player's ranking score monTypesBits = 0; - statSums[0] = 0; + rankingScores[0] = 0; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { + // trainerId var re-used here as index of selected mons trainerId = gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1; - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL); - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL); - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL); - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL); - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL); - statSums[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_ATK, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_DEF, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPATK, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPDEF, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_SPEED, NULL); + rankingScores[0] += GetMonData(&gPlayerParty[trainerId], MON_DATA_MAX_HP, NULL); monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type1]; monTypesBits |= gBitTable[gBaseStats[GetMonData(&gPlayerParty[trainerId], MON_DATA_SPECIES, NULL)].type2]; } + // Count the number of types in the players party, to factor into the ranking for (monTypesCount = 0, j = 0; j < 32; j++) { if (monTypesBits & 1) @@ -2515,29 +2360,30 @@ static void InitDomeTrainers(void) } monLevel = SetFacilityPtrsGetLevel(); - statSums[0] += (monTypesCount * monLevel) / 20; + rankingScores[0] += (monTypesCount * monLevel) / 20; + // Calculate rankingScores for the opponent trainers for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { monTypesBits = 0; - statSums[i] = 0; - ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + rankingScores[i] = 0; + ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId); for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, + CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species, monLevel, ivs, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, + gFacilityTrainerMons[DOME_MONS[i][j]].evSpread, + gFacilityTrainerMons[DOME_MONS[i][j]].nature, statValues); - statSums[i] += statValues[STAT_ATK]; - statSums[i] += statValues[STAT_DEF]; - statSums[i] += statValues[STAT_SPATK]; - statSums[i] += statValues[STAT_SPDEF]; - statSums[i] += statValues[STAT_SPEED]; - statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; + rankingScores[i] += statValues[STAT_ATK]; + rankingScores[i] += statValues[STAT_DEF]; + rankingScores[i] += statValues[STAT_SPATK]; + rankingScores[i] += statValues[STAT_SPDEF]; + rankingScores[i] += statValues[STAT_SPEED]; + rankingScores[i] += statValues[STAT_HP]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; } for (monTypesCount = 0, j = 0; j < 32; j++) @@ -2546,54 +2392,56 @@ static void InitDomeTrainers(void) monTypesCount++; monTypesBits >>= 1; } - statSums[i] += (monTypesCount * monLevel) / 20; + rankingScores[i] += (monTypesCount * monLevel) / 20; } + // Seed tourney trainers according to their ranking for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT - 1; i++) { for (j = i + 1; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) { - if (statSums[i] < statSums[j]) + if (rankingScores[i] < rankingScores[j]) { - SwapDomeTrainers(i, j, statSums); + SwapDomeTrainers(i, j, rankingScores); } else { - if (statSums[i] == statSums[j]) + if (rankingScores[i] == rankingScores[j]) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == TRAINER_PLAYER) - SwapDomeTrainers(i, j, statSums); - else if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) - SwapDomeTrainers(i, j, statSums); + if (DOME_TRAINERS[j].trainerId == TRAINER_PLAYER) + SwapDomeTrainers(i, j, rankingScores); + else if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId) + SwapDomeTrainers(i, j, rankingScores); } } } } + // Add Frontier Brain to the tourney if they should be fought at the end of it if (GetFrontierBrainStatus() != FRONTIER_BRAIN_NOT_READY) { for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) break; } - if (gUnknown_0860D3F1[i][0] != 0) + if (sTrainerNamePositions[i][0] != 0) { j = 0; - gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN; } else { j = 1; - gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN; } for (i = 0; i < FRONTIER_PARTY_SIZE; i++) - gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i); + DOME_MONS[j][i] = GetFrontierBrainMonSpecies(i); } - Free(statSums); + Free(rankingScores); Free(statValues); } @@ -2649,10 +2497,10 @@ static void SwapDomeTrainers(int id1, int id2, u16 *statsArray) u16 temp; SWAP(statsArray[id1], statsArray[id2], temp); - SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp); + SWAP(DOME_TRAINERS[id1].trainerId, DOME_TRAINERS[id2].trainerId, temp); - for (i = 0; i < 3; i++) - SWAP(gSaveBlock2Ptr->frontier.domeMonIds[id1][i], gSaveBlock2Ptr->frontier.domeMonIds[id2][i], temp); + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) + SWAP(DOME_MONS[id1][i], DOME_MONS[id2][i], temp); } static void BufferDomeRoundText(void) @@ -2668,9 +2516,9 @@ static void BufferDomeOpponentName(void) static void InitDomeOpponentParty(void) { - gUnknown_0203CD70 = 0; - gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); - gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); + gPlayerPartyLostHP = 0; + sPlayerPartyMaxHP = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); + sPlayerPartyMaxHP += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); CalculatePlayerPartyCount(); CreateDomeOpponentMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); } @@ -2678,160 +2526,168 @@ static void InitDomeOpponentParty(void) static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) { int i; - u8 happiness = 0xFF; - u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. + u8 friendship = MAX_FRIENDSHIP; + u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using (DOME_TRAINERS[tournamentTrainerId].trainerId) instead of (tournamentTrainerId). As a result, all Pokemon have ivs of 3. u8 level = SetFacilityPtrsGetLevel(); CreateMonWithEVSpreadNatureOTID(&gEnemyParty[monPartyId], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].species, + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].species, level, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].nature, + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].nature, fixedIv, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].evSpread, otId); + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].evSpread, otId); - happiness = 0xFF; + friendship = MAX_FRIENDSHIP; for (i = 0; i < MAX_MON_MOVES; i++) { SetMonMoveSlot(&gEnemyParty[monPartyId], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i], i); - if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION) - happiness = 0; + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i], i); + if (gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION) + friendship = 0; } - SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &friendship); SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, - &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].itemTableId]); + &gBattleFrontierHeldItems[gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].itemTableId]); } static void CreateDomeOpponentMons(u16 tournamentTrainerId) { u8 monsCount = 0; u32 otId = 0; - int i, bits; + int i, selectedMonBits; ZeroEnemyPartyMons(); - bits = GetDomeTrainerMonCountInBits(tournamentTrainerId); + selectedMonBits = GetDomeTrainerSelectedMons(tournamentTrainerId); otId = Random32(); + if (Random() % 10 > 5) { - for (i = 0; i < 3; i++) + // Create mon if it was selected, starting from front + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - if (bits & 1) + if (selectedMonBits & 1) { CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } - bits >>= 1; + selectedMonBits >>= 1; } } else { - for (i = 2; i >= 0; i--) + // Create mon if it was selected, starting from back + for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--) { - if (bits & 4) + if (selectedMonBits & 4) { CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } - bits <<= 1; + selectedMonBits <<= 1; } } } -int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) +int GetDomeTrainerSelectedMons(u16 tournamentTrainerId) { - int bits; + int selectedMonBits; if (Random() & 1) { - bits = sub_818FCBC(tournamentTrainerId, FALSE); - if (bits == 0) - bits = sub_818FDB8(tournamentTrainerId, TRUE); + selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, FALSE); + if (selectedMonBits == 0) + selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, TRUE); } else { - bits = sub_818FDB8(tournamentTrainerId, FALSE); - if (bits == 0) - bits = sub_818FCBC(tournamentTrainerId, TRUE); + selectedMonBits = SelectOpponentMonsUsingOtId(tournamentTrainerId, FALSE); + if (selectedMonBits == 0) + selectedMonBits = SelectOpponentMonsUsingPersonality(tournamentTrainerId, TRUE); } - return bits; + return selectedMonBits; } -static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) +// Could probably use a better name once GetTypeEffectivenessPoints is clarified +// Personality seems to be used to select a different weighting system for type effectiveness points +static int SelectOpponentMonsUsingPersonality(u16 tournamentTrainerId, bool8 allowRandom) { int i, moveId, playerMonId; - int array[FRONTIER_PARTY_SIZE]; + int partyMovePoints[FRONTIER_PARTY_SIZE]; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - array[i] = 0; + partyMovePoints[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY); } else { - array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId], - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY); } } } } - return sub_818FEB4(array, arg1); + return SelectOpponentMonsFromParty(partyMovePoints, allowRandom); } -static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) +// See above function, identical but uses MON_DATA_OT_ID +static int SelectOpponentMonsUsingOtId(u16 tournamentTrainerId, bool8 allowRandom) { int i, moveId, playerMonId; - int array[FRONTIER_PARTY_SIZE]; + int partyMovePoints[FRONTIER_PARTY_SIZE]; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - array[i] = 0; + partyMovePoints[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID); } else { - array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId], - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID); } } } } - return sub_818FEB4(array, arg1); + return SelectOpponentMonsFromParty(partyMovePoints, allowRandom); } -static int sub_818FEB4(int *arr, bool8 arg1) +static int SelectOpponentMonsFromParty(int *partyMovePoints, bool8 allowRandom) { int i, j; - int bits = 0; - int array[3]; + int selectedMonBits = 0; + int partyPositions[FRONTIER_PARTY_SIZE]; - for (i = 0; i < 3; i++) - array[i] = i; + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) + partyPositions[i] = i; - if (arr[0] == arr[1] && arr[0] == arr[2]) + // All party mons have equal move score totals, choose randomly + if (partyMovePoints[0] == partyMovePoints[1] + && partyMovePoints[0] == partyMovePoints[2]) { - if (arg1) + if (allowRandom) { i = 0; - while (i != 2) + while (i != DOME_BATTLE_PARTY_SIZE) { - u32 rand = Random() & 3; - if (rand != 3 && !(bits & gBitTable[rand])) + u32 rand = Random() & FRONTIER_PARTY_SIZE; + if (rand != FRONTIER_PARTY_SIZE && !(selectedMonBits & gBitTable[rand])) { - bits |= gBitTable[rand]; + selectedMonBits |= gBitTable[rand]; i++; } } @@ -2839,43 +2695,33 @@ static int sub_818FEB4(int *arr, bool8 arg1) } else { - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { - for (j = i + 1; j < 3; j++) + for (j = i + 1; j < FRONTIER_PARTY_SIZE; j++) { int temp; - if (arr[i] < arr[j]) + if (partyMovePoints[i] < partyMovePoints[j]) { - temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - - temp = array[i]; - array[i] = array[j]; - array[j] = temp; + SWAP(partyMovePoints[i], partyMovePoints[j],temp) + SWAP(partyPositions[i], partyPositions[j], temp) } - if (arr[i] == arr[j] && (Random() & 1)) + if (partyMovePoints[i] == partyMovePoints[j] && (Random() & 1)) { - temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - - temp = array[i]; - array[i] = array[j]; - array[j] = temp; + SWAP(partyMovePoints[i], partyMovePoints[j],temp) + SWAP(partyPositions[i], partyPositions[j], temp) } } } - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { - bits |= gBitTable[array[i]]; + selectedMonBits |= gBitTable[partyPositions[i]]; } } - return bits; + return selectedMonBits; } #define TYPE_x0 0 @@ -2886,6 +2732,7 @@ static int sub_818FEB4(int *arr, bool8 arg1) #define TYPE_x4 80 // Functionally equivalent, while loop is impossible to match. +// arg2 is either 2, a personality, or an OTID #ifdef NONMATCHING static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) { @@ -2908,25 +2755,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) } else { - while (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE) + while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) { - if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT) + if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { i += 3; + continue; } - else + else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { - u8 val = gTypeEffectiveness[i + 0]; - if (val == moveType) - { - // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. - if (gTypeEffectiveness[i + 1] == defType1 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; - if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; - } - i += 3; + // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. + if (TYPE_EFFECT_DEF_TYPE(i) == defType1 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10; + if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10; } + i += 3; } } @@ -2935,19 +2779,19 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) case 0: switch (typePower) { - case 10: - case 5: - case 0: + case TYPE_x0_50: + case TYPE_x0_25: + case TYPE_x0: default: typePower = 0; break; - case 20: + case TYPE_x1: typePower = 2; break; - case 40: + case TYPE_x2: typePower = 4; break; - case 80: + case TYPE_x4: typePower = 8; break; } @@ -2956,22 +2800,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) switch (typePower) { default: - case 20: + case TYPE_x1: typePower = 0; break; - case 5: + case TYPE_x0_25: typePower = 4; break; - case 0: + case TYPE_x0: typePower = 8; break; - case 10: + case TYPE_x0_50: typePower = 2; break; - case 40: + case TYPE_x2: typePower = -2; break; - case 80: + case TYPE_x4: typePower = -4; break; } @@ -3246,24 +3090,28 @@ _08190156:\n\ } #endif // NONMATCHING +// Duplicate of GetFrontierTrainerFixedIvs +// NOTE: In CreateDomeOpponentMon a tournament trainer ID (0-15) is passed instead, resulting in all IVs of 3 +// To fix, see CreateDomeOpponentMon static u8 GetDomeTrainerMonIvs(u16 trainerId) { u8 fixedIv; - if (trainerId <= 99) + + if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99 fixedIv = 3; - else if (trainerId <= 119) + else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119 fixedIv = 6; - else if (trainerId <= 139) + else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139 fixedIv = 9; - else if (trainerId <= 159) + else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159 fixedIv = 12; - else if (trainerId <= 179) + else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179 fixedIv = 15; - else if (trainerId <= 199) + else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199 fixedIv = 18; - else if (trainerId <= 219) + else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219 fixedIv = 21; - else + else // 220+ (- 299) fixedIv = 31; return fixedIv; @@ -3271,38 +3119,41 @@ static u8 GetDomeTrainerMonIvs(u16 trainerId) static int TournamentIdOfOpponent(int roundId, int trainerId) { - int i, j, val; + int i, j, opponentMax; + // Get trainer's tournament id for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } + // Get trainer's opponent's tournament id if (roundId != DOME_ROUND1) { if (roundId == DOME_FINAL) - val = sIdToOpponentId[i][roundId] + 8; + opponentMax = sIdToOpponentId[i][roundId] + 8; else - val = sIdToOpponentId[i][roundId] + 4; + opponentMax = sIdToOpponentId[i][roundId] + 4; - for (j = sIdToOpponentId[i][roundId]; j < val; j++) + // Get first non-eliminated trainer in range of possible opponents + for (j = sIdToOpponentId[i][roundId]; j < opponentMax; j++) { - if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) + if (sTourneyTreeTrainerOpponentIds[j] != i && !DOME_TRAINERS[sTourneyTreeTrainerOpponentIds[j]].isEliminated) break; } - if (j != val) - return gUnknown_0860D14C[j]; + if (j != opponentMax) + return sTourneyTreeTrainerOpponentIds[j]; else - return 0xFF; + return 0xFF; // Already eliminated } else { - if (!gSaveBlock2Ptr->frontier.domeTrainers[sIdToOpponentId[i][roundId]].isEliminated) + if (!DOME_TRAINERS[sIdToOpponentId[i][roundId]].isEliminated) return sIdToOpponentId[i][roundId]; else - return 0xFF; + return 0xFF; // Already eliminated } } @@ -3311,9 +3162,10 @@ static void SetDomeOpponentId(void) gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); } +// While not an issue in-game, this will overflow if called after the player's opponent for the current round has been eliminated static u16 TrainerIdOfPlayerOpponent(void) { - return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId; + return DOME_TRAINERS[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId; } static void SetDomeOpponentGraphicsId(void) @@ -3343,25 +3195,27 @@ static void IncrementDomeStreaks(void) gSaveBlock2Ptr->frontier.domeRecordWinStreaks[battleMode][lvlMode] = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; } +// For showing the opponent info card of the upcoming trainer static void ShowDomeOpponentInfo(void) { - u8 taskId = CreateTask(Task_ShowOpponentInfo, 0); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; + u8 taskId = CreateTask(Task_ShowTourneyInfoCard, 0); + gTasks[taskId].tState = 0; + gTasks[taskId].tTournamentId = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); + gTasks[taskId].tMode = INFOCARD_NEXT_OPPONENT; + gTasks[taskId].tPrevTaskId = 0; - SetMainCallback2(CB2_BattleDome); + SetMainCallback2(CB2_TourneyTree); } -static void Task_ShowOpponentInfo(u8 taskId) +// For showing the opponent info card or the match info card +static void Task_ShowTourneyInfoCard(u8 taskId) { int i; - int r5 = gTasks[taskId].data[1]; - int r9 = gTasks[taskId].data[2]; - int r7 = gTasks[taskId].data[3]; + int tournamentId = gTasks[taskId].tTournamentId; + int mode = gTasks[taskId].tMode; + int id = gTasks[taskId].tPrevTaskId; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: SetHBlankCallback(NULL); @@ -3369,8 +3223,8 @@ static void Task_ShowOpponentInfo(u8 taskId) EnableInterrupts(INTR_FLAG_VBLANK); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0860CE84, ARRAY_COUNT(gUnknown_0860CE84)); - InitWindows(gUnknown_0860CEB4); + InitBgsFromTemplates(0, sInfoCardBgTemplates, ARRAY_COUNT(sInfoCardBgTemplates)); + InitWindows(sInfoCardWindowTemplates); DeactivateAllTextPrinters(); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -3378,12 +3232,12 @@ static void Task_ShowOpponentInfo(u8 taskId) gBattle_BG1_Y = 0; gBattle_BG3_X = 0; gBattle_BG3_Y = 0; - if (r9 == 2) + if (mode == INFOCARD_MATCH) gBattle_BG2_X = 0, gBattle_BG2_Y = 0; else gBattle_BG2_X = 0, gBattle_BG2_Y = 160; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -3395,72 +3249,76 @@ static void Task_ShowOpponentInfo(u8 taskId) SetGpuReg(REG_OFFSET_WIN1H, 0); SetGpuReg(REG_OFFSET_WIN1V, 0); SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); ResetPaletteFade(); ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 2: - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83D50, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D84970, 0x2000, 0, 1); - DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D84F00, 0x800, 0, 1); - LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet); - LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); - LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); + DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyInfoCard_Tilemap, 0x2000, 0, 1); + DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyInfoCardBg_Tilemap, 0x800, 0, 1); + LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet); + LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200); + LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200); LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20); - if (r9 == 2) - LoadCompressedPalette(gUnknown_08D854C8, 0x50, 0x20); + if (mode == INFOCARD_MATCH) + LoadCompressedPalette(gDomeTourneyMatchCardBg_Pal, 0x50, 0x20); // Changes the moving info card bg to orange when in match card mode CpuFill32(0, gPlttBufferFaded, 0x400); ShowBg(0); ShowBg(1); ShowBg(2); ShowBg(3); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 3: - SetVBlankCallback(VblankCb0_BattleDome); - sBattleDomeStruct = AllocZeroed(sizeof(*sBattleDomeStruct)); - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) - sBattleDomeStruct->arr[i] = 0xFF; + SetVBlankCallback(VblankCb_TourneyInfoCard); + sInfoCard = AllocZeroed(sizeof(*sInfoCard)); + for (i = 0; i < NUM_INFOCARD_SPRITES; i++) + sInfoCard->spriteIds[i] = 0xFF; LoadMonIconPalettes(); - i = CreateTask(sub_8190CD4, 0); + i = CreateTask(Task_HandleInfoCardInput, 0); gTasks[i].data[0] = 0; gTasks[i].data[2] = 0; - gTasks[i].data[3] = r9; - gTasks[i].data[4] = r7; - if (r9 == 2) + gTasks[i].data[3] = mode; + gTasks[i].data[4] = id; + if (mode == INFOCARD_MATCH) { - DisplayMatchInfoOnCard(0, r5); - sBattleDomeStruct->unk_10 = 1; + DisplayMatchInfoOnCard(0, tournamentId); + sInfoCard->pos = 1; } else { - DisplayTrainerInfoOnCard(0, r5); + DisplayTrainerInfoOnCard(0, tournamentId); } SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); - if (r9 != 0) + if (mode != INFOCARD_NEXT_OPPONENT) { - r7 = CreateSprite(&gUnknown_0860D068, 120, 4, 0); - StartSpriteAnim(&gSprites[r7], 0); - gSprites[r7].data[0] = i; - - r7 = CreateSprite(&gUnknown_0860D068, 120, 156, 0); - StartSpriteAnim(&gSprites[r7], 1); - gSprites[r7].data[0] = i; - - r7 = CreateSprite(&gUnknown_0860D050, 6, 80, 0); - StartSpriteAnim(&gSprites[r7], 0); - gSprites[r7].data[0] = i; - gSprites[r7].data[1] = 0; - if (r9 == 1) - gSprites[r7].invisible = TRUE; - - r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0); - StartSpriteAnim(&gSprites[r7], 1); - gSprites[r7].data[0] = i; - gSprites[r7].data[1] = 1; + // Scroll up arrow + id = CreateSprite(&sVerticalScrollArrowSpriteTemplate, 120, 4, 0); + StartSpriteAnim(&gSprites[id], 0); + gSprites[id].data[0] = i; + + // Scroll down arrow + id = CreateSprite(&sVerticalScrollArrowSpriteTemplate, 120, 156, 0); + StartSpriteAnim(&gSprites[id], 1); + gSprites[id].data[0] = i; + + // Scroll left arrow + id = CreateSprite(&sHorizontalScrollArrowSpriteTemplate, 6, 80, 0); + StartSpriteAnim(&gSprites[id], 0); + gSprites[id].data[0] = i; + gSprites[id].data[1] = 0; + if (mode == INFOCARD_TRAINER) + gSprites[id].invisible = TRUE; + + // Scroll right arrow + id = CreateSprite(&sHorizontalScrollArrowSpriteTemplate, 234, 80, 0); + StartSpriteAnim(&gSprites[id], 1); + gSprites[id].data[0] = i; + gSprites[id].data[1] = 1; } DestroyTask(taskId); break; @@ -3470,7 +3328,6 @@ static void Task_ShowOpponentInfo(u8 taskId) // Note: Card scrolling up means the current card goes down and another one appears from top. // The same is true for scrolling left. // That means that the sprite needs to move with the moving card in the opposite scrolling direction. - static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) { sprite->pos1.y += 4; @@ -3485,7 +3342,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) { if (sprite->pos1.y >= 192) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3505,7 +3362,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) { if (sprite->pos1.y <= -32) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3525,7 +3382,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) { if (sprite->pos1.x >= 272) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3545,7 +3402,7 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) { if (sprite->pos1.x <= -32) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; FreeAndDestroyTrainerPicSprite(sprite->data[3]); } } @@ -3575,8 +3432,8 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) { if (sprite->pos1.y >= 176) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + FreeAndDestroyMonIconSprite(sprite); } } } @@ -3597,8 +3454,8 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) { if (sprite->pos1.y <= -16) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + FreeAndDestroyMonIconSprite(sprite); } } } @@ -3619,8 +3476,8 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) { if (sprite->pos1.x >= 256) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + FreeAndDestroyMonIconSprite(sprite); } } } @@ -3641,13 +3498,13 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) { if (sprite->pos1.x <= -16) { - sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); + sInfoCard->spriteIds[sprite->data[2]] = 0xFF; + FreeAndDestroyMonIconSprite(sprite); } } } -static void sub_8190B40(struct Sprite *sprite) +static void SpriteCb_HorizontalScrollArrow(struct Sprite *sprite) { int taskId1 = sprite->data[0]; int arrId = gTasks[gTasks[taskId1].data[4]].data[1]; @@ -3658,13 +3515,13 @@ static void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) + if ((DOME_TRAINERS[tournmanetTrainerId].isEliminated + && sInfoCard->pos - 1 < DOME_TRAINERS[tournmanetTrainerId].eliminatedAt)) { sprite->invisible = FALSE; } - else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && sBattleDomeStruct->unk_10 - 1 < roundId) + else if (!DOME_TRAINERS[tournmanetTrainerId].isEliminated + && sInfoCard->pos - 1 < roundId) { sprite->invisible = FALSE; } @@ -3676,7 +3533,7 @@ static void sub_8190B40(struct Sprite *sprite) } else { - if (sBattleDomeStruct->unk_10 != 0) + if (sInfoCard->pos != 0) { sprite->invisible = FALSE; } @@ -3691,7 +3548,7 @@ static void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if (sBattleDomeStruct->unk_10 > 1) + if (sInfoCard->pos > 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = TRUE; @@ -3703,7 +3560,7 @@ static void sub_8190B40(struct Sprite *sprite) } else { - if (sBattleDomeStruct->unk_10 != 0) + if (sInfoCard->pos != 0) { sprite->invisible = FALSE; } @@ -3716,13 +3573,13 @@ static void sub_8190B40(struct Sprite *sprite) } } -static void sub_8190C6C(struct Sprite *sprite) +static void SpriteCb_VerticalScrollArrow(struct Sprite *sprite) { int taskId1 = sprite->data[0]; if (gTasks[taskId1].data[3] == 1) { - if (sBattleDomeStruct->unk_10 != 0) + if (sInfoCard->pos != 0) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = TRUE; @@ -3734,7 +3591,7 @@ static void sub_8190C6C(struct Sprite *sprite) } else { - if (sBattleDomeStruct->unk_10 != 1) + if (sInfoCard->pos != 1) { if (gTasks[taskId1].data[0] == 2) sprite->invisible = TRUE; @@ -3746,39 +3603,53 @@ static void sub_8190C6C(struct Sprite *sprite) } } -static void sub_8190CD4(u8 taskId) +// Task states for Task_HandleInfoCardInput +#define STATE_FADE_IN 0 +#define STATE_WAIT_FADE 1 +#define STATE_GET_INPUT 2 +#define STATE_REACT_INPUT 3 +#define STATE_MOVE_UP 4 +#define STATE_MOVE_DOWN 5 +#define STATE_MOVE_LEFT 6 +#define STATE_MOVE_RIGHT 7 +#define STATE_CLOSE_CARD 8 + +#define tUsingAlternateSlot data[2] // CARD_ALTERNATE_SLOT + +static void Task_HandleInfoCardInput(u8 taskId) { int i; int windowId = 0; - int r9 = gTasks[taskId].data[3]; + int mode = gTasks[taskId].data[3]; int taskId2 = gTasks[taskId].data[4]; - int trainerTournamentId = 0; + int trainerTourneyId = 0; int matchNo = 0; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: + case STATE_FADE_IN: if (!gPaletteFade.active) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = STATE_WAIT_FADE; } break; - case 1: + case STATE_WAIT_FADE: if (!gPaletteFade.active) - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; break; - case 2: - i = sub_819221C(taskId); + case STATE_GET_INPUT: + i = Task_GetInfoCardInput(taskId); switch (i) { - case 9: + case INFOCARD_INPUT_AB: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 8; + gTasks[taskId].tState = STATE_CLOSE_CARD; break; - case 1 ... 8: + case TRAINERCARD_INPUT_UP ... TRAINERCARD_INPUT_RIGHT: + case MATCHCARD_INPUT_UP ... MATCHCARD_INPUT_RIGHT: gTasks[taskId].data[5] = i; - if (gTasks[taskId].data[2] != 0) + if (gTasks[taskId].tUsingAlternateSlot) windowId = 9; else windowId = 0; @@ -3788,19 +3659,19 @@ static void sub_8190CD4(u8 taskId) CopyWindowToVram(i, 2); FillWindowPixelBuffer(i, PIXEL_FILL(0)); } - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_REACT_INPUT; break; - case 0: + case INFOCARD_INPUT_NONE: break; } break; - case 3: + case STATE_REACT_INPUT: i = gTasks[taskId].data[5]; switch (i) { - case 1: - case 5: - if (gTasks[taskId].data[2]) + case TRAINERCARD_INPUT_UP: + case MATCHCARD_INPUT_UP: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -3815,108 +3686,108 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (i == 1) + if (i == TRAINERCARD_INPUT_UP) { - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - sBattleDomeStruct->unk_10 = 0; + trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); + sInfoCard->pos = 0; } } - else + else // i == MATCHCARD_INPUT_UP { - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = sBattleDomeStruct->unk_11[0]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } - else if (sBattleDomeStruct->unk_10 == 2) + else if (sInfoCard->pos == 2) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; gBattle_BG2_Y = 320; - trainerTournamentId = sBattleDomeStruct->unk_11[1]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, trainerTourneyId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_UP, matchNo); } } - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollUp; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollUp; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollUp; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollUp; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 4; + gTasks[taskId].tState = STATE_MOVE_UP; gTasks[taskId].data[5] = 0; break; - case 2: - case 6: - if (gTasks[taskId].data[2]) + case TRAINERCARD_INPUT_DOWN: + case MATCHCARD_INPUT_DOWN: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -3931,107 +3802,107 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (i == 2) + if (i == TRAINERCARD_INPUT_DOWN) { - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } else { gBattle_BG2_X = 0; gBattle_BG2_Y = 0; - trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - sBattleDomeStruct->unk_10 = 0; + trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); + sInfoCard->pos = 0; } } - else + else // i == MATCHCARD_INPUT_DOWN { - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = sBattleDomeStruct->unk_11[0]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } - else if (sBattleDomeStruct->unk_10 == 2) + else if (sInfoCard->pos == 2) { matchNo = gTasks[taskId2].data[1] - 16; - sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + BufferDomeWinString(matchNo, sInfoCard->tournamentIds); gBattle_BG2_X = 0; gBattle_BG2_Y = 160; - trainerTournamentId = sBattleDomeStruct->unk_11[1]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, trainerTourneyId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_DOWN, matchNo); } } - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollDown; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollDown; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollDown; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollDown; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 5; + gTasks[taskId].tState = STATE_MOVE_DOWN; gTasks[taskId].data[5] = 0; break; - case 3: - if (gTasks[taskId].data[2]) + case TRAINERCARD_INPUT_LEFT: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4046,75 +3917,75 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); + trainerTourneyId = sTourneyTreeTrainerIds[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId); } else { gBattle_BG2_X = 256; gBattle_BG2_Y = 0; - matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1]; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + matchNo = sIdToMatchNumber[gTasks[taskId2].data[1]][sInfoCard->pos - 1]; + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo); } - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 6; + gTasks[taskId].tState = STATE_MOVE_LEFT; gTasks[taskId].data[5] = 0; break; - case 7: - if (gTasks[taskId].data[2]) + case MATCHCARD_INPUT_LEFT: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4129,75 +4000,75 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (sBattleDomeStruct->unk_10 == 0) + if (sInfoCard->pos == 0) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = sBattleDomeStruct->unk_11[0]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, trainerTourneyId); } else { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_LEFT, matchNo); } - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollLeft; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollLeft; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 6; + gTasks[taskId].tState = STATE_MOVE_LEFT; gTasks[taskId].data[5] = 0; break; - case 4: - if (gTasks[taskId].data[2]) + case TRAINERCARD_INPUT_RIGHT: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4212,7 +4083,7 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (sBattleDomeStruct->unk_10 == 1) + if (sInfoCard->pos == 1) { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; @@ -4222,63 +4093,63 @@ static void sub_8190CD4(u8 taskId) gBattle_BG2_X = 0; gBattle_BG2_Y = 0; } - matchNo = gUnknown_0860D15C[gTasks[taskId2].data[1]][sBattleDomeStruct->unk_10 - 1]; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); + matchNo = sIdToMatchNumber[gTasks[taskId2].data[1]][sInfoCard->pos - 1]; + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, matchNo); - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 7; + gTasks[taskId].tState = STATE_MOVE_RIGHT; gTasks[taskId].data[5] = 0; break; - case 8: - if (gTasks[taskId].data[2]) + case MATCHCARD_INPUT_RIGHT: + if (gTasks[taskId].tUsingAlternateSlot) { gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -4293,76 +4164,76 @@ static void sub_8190CD4(u8 taskId) gBattle_BG1_Y = 0; } - if (sBattleDomeStruct->unk_10 == 2) + if (sInfoCard->pos == 2) { gBattle_BG2_X = 256; gBattle_BG2_Y = 160; - trainerTournamentId = sBattleDomeStruct->unk_11[1]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId); + trainerTourneyId = sInfoCard->tournamentIds[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, trainerTourneyId); } else { gBattle_BG2_X = 0; gBattle_BG2_Y = 160; matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); + DisplayMatchInfoOnCard(gTasks[taskId].tUsingAlternateSlot | MOVE_CARD_RIGHT, matchNo); } - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2] ^ 1; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot ^ 1; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_TrainerIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; - gSprites[sBattleDomeStruct->arr[i]].data[3] = sBattleDomeStruct->arr[i]; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_TrainerIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].data[3] = sInfoCard->spriteIds[i]; } } else { - if (sBattleDomeStruct->arr[i] != 0xFF) + if (sInfoCard->spriteIds[i] != 0xFF) { - gSprites[sBattleDomeStruct->arr[i]].callback = SpriteCb_MonIconCardScrollRight; - gSprites[sBattleDomeStruct->arr[i]].data[0] = gTasks[taskId].data[2]; - gSprites[sBattleDomeStruct->arr[i]].data[1] = 0; - gSprites[sBattleDomeStruct->arr[i]].data[2] = i; + gSprites[sInfoCard->spriteIds[i]].callback = SpriteCb_MonIconCardScrollRight; + gSprites[sInfoCard->spriteIds[i]].data[0] = gTasks[taskId].tUsingAlternateSlot; + gSprites[sInfoCard->spriteIds[i]].data[1] = 0; + gSprites[sInfoCard->spriteIds[i]].data[2] = i; } } } - gTasks[taskId].data[0] = 7; + gTasks[taskId].tState = STATE_MOVE_RIGHT; gTasks[taskId].data[5] = 0; break; } break; - case 4: + case STATE_MOVE_UP: if (++gTasks[taskId].data[5] != 41) { gBattle_BG0_Y -= 4; @@ -4371,10 +4242,10 @@ static void sub_8190CD4(u8 taskId) } else { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; } break; - case 5: + case STATE_MOVE_DOWN: if (++gTasks[taskId].data[5] != 41) { gBattle_BG0_Y += 4; @@ -4383,10 +4254,10 @@ static void sub_8190CD4(u8 taskId) } else { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; } break; - case 6: + case STATE_MOVE_LEFT: if (++gTasks[taskId].data[5] != 65) { gBattle_BG0_X -= 4; @@ -4395,10 +4266,10 @@ static void sub_8190CD4(u8 taskId) } else { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; } break; - case 7: + case STATE_MOVE_RIGHT: if (++gTasks[taskId].data[5] != 65) { gBattle_BG0_X += 4; @@ -4407,43 +4278,44 @@ static void sub_8190CD4(u8 taskId) } else { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; } break; - case 8: + case STATE_CLOSE_CARD: if (!gPaletteFade.active) { - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + for (i = 0; i < NUM_INFOCARD_SPRITES / 2; i++) { if (i < 2) { - if (sBattleDomeStruct->arr[i] != 0xFF) - FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); + if (sInfoCard->spriteIds[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]); } else { - if (sBattleDomeStruct->arr[i] != 0xFF) - sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]); + if (sInfoCard->spriteIds[i] != 0xFF) + FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]); } } - for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + for (i = NUM_INFOCARD_SPRITES / 2; i < NUM_INFOCARD_SPRITES; i++) { if (i < 10) { - if (sBattleDomeStruct->arr[i] != 0xFF) - FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); + if (sInfoCard->spriteIds[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sInfoCard->spriteIds[i]); } else { - if (sBattleDomeStruct->arr[i] != 0xFF) - sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]); + if (sInfoCard->spriteIds[i] != 0xFF) + FreeAndDestroyMonIconSprite(&gSprites[sInfoCard->spriteIds[i]]); } } FreeMonIconPalettes(); - FREE_AND_SET_NULL(sBattleDomeStruct); + FREE_AND_SET_NULL(sInfoCard); FreeAllWindowBuffers(); - if (r9 == 0) + + if (mode == INFOCARD_NEXT_OPPONENT) { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } @@ -4451,10 +4323,10 @@ static void sub_8190CD4(u8 taskId) { i = CreateTask(Task_ShowTourneyTree, 0); gTasks[i].data[0] = 0; - gTasks[i].data[1] = 0; + gTasks[i].tNotInteractive = FALSE; gTasks[i].data[2] = 3; gTasks[i].data[3] = gTasks[taskId].data[4]; - gTasks[i].data[4] = gTasks[taskId2].data[6]; + gTasks[i].tIsPrevTourneyTree = gTasks[taskId2].data[6]; } DestroyTask(taskId); } @@ -4462,116 +4334,142 @@ static void sub_8190CD4(u8 taskId) } } -static u8 sub_819221C(u8 taskId) +// undefine task states for Task_HandleInfoCardInput +#undef STATE_FADE_IN +#undef STATE_WAIT_FADE +#undef STATE_GET_INPUT +#undef STATE_REACT_INPUT +#undef STATE_MOVE_UP +#undef STATE_MOVE_DOWN +#undef STATE_MOVE_LEFT +#undef STATE_MOVE_RIGHT +#undef STATE_CLOSE_CARD + +static u8 Task_GetInfoCardInput(u8 taskId) { - u8 retVal = 0; + u8 input = INFOCARD_INPUT_NONE; int taskId2 = gTasks[taskId].data[4]; - int r5 = gTasks[taskId2].data[1]; - u8 r10 = sTourneyTreeTrainerIds[r5]; + int position = gTasks[taskId2].data[1]; + u8 tourneyId = sTourneyTreeTrainerIds[position]; u16 roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; if (gMain.newKeys & (A_BUTTON | B_BUTTON)) - retVal = 9; + input = INFOCARD_INPUT_AB; - if (gTasks[taskId].data[3] == 0) - return retVal; + // Next opponent card cant scroll + if (gTasks[taskId].data[3] == INFOCARD_NEXT_OPPONENT) + return input; - if (gTasks[taskId].data[3] == 1) + if (gTasks[taskId].data[3] == INFOCARD_TRAINER) { - if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 0) + // For trainer info cards, pos is 0 when on a trainer info card (not viewing that trainer's match progression) + // Scrolling up/down from a trainer info card goes to other trainer info cards + if (gMain.newKeys & DPAD_UP && sInfoCard->pos == 0) { - if (r5 == 0) - r5 = 15; + if (position == 0) + position = DOME_TOURNAMENT_TRAINERS_COUNT - 1; else - r5--; - retVal = 1; + position--; + input = TRAINERCARD_INPUT_UP; } - else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 0) + else if (gMain.newKeys & DPAD_DOWN && sInfoCard->pos == 0) { - if (r5 == 15) - r5 = 0; + if (position == DOME_TOURNAMENT_TRAINERS_COUNT - 1) + position = 0; else - r5++; - retVal = 2; + position++; + input = TRAINERCARD_INPUT_DOWN; } - else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) + // Scrolling left can only be done after scrolling right + else if (gMain.newKeys & DPAD_LEFT && sInfoCard->pos != 0) { - sBattleDomeStruct->unk_10--; - retVal = 3; + sInfoCard->pos--; + input = TRAINERCARD_INPUT_LEFT; } + // Scrolling right from a trainer info card shows their match progression else if (gMain.newKeys & DPAD_RIGHT) { - if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) + // Can only scroll right from a trainer card until the round they were eliminated + if (DOME_TRAINERS[tourneyId].isEliminated && sInfoCard->pos - 1 < DOME_TRAINERS[tourneyId].eliminatedAt) { - sBattleDomeStruct->unk_10++; - retVal = 4; + sInfoCard->pos++; + input = TRAINERCARD_INPUT_RIGHT; } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) + // otherwise can scroll as far right as the current round allows + if (!DOME_TRAINERS[tourneyId].isEliminated && sInfoCard->pos - 1 < roundId) { - sBattleDomeStruct->unk_10++; - retVal = 4; + sInfoCard->pos++; + input = TRAINERCARD_INPUT_RIGHT; } } - if (retVal == 9) + if (input == INFOCARD_INPUT_AB) { - if (sBattleDomeStruct->unk_10 != 0) - gTasks[taskId2].data[1] = gUnknown_0860D1A0[r5 / 2][sBattleDomeStruct->unk_10 - 1]; + if (sInfoCard->pos != 0) + gTasks[taskId2].data[1] = gUnknown_0860D1A0[position / 2][sInfoCard->pos - 1]; else - gTasks[taskId2].data[1] = r5; + gTasks[taskId2].data[1] = position; } } - else + else // gTasks[taskId].data[3] == INFOCARD_MATCH { - if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 1) + // For match info cards, pos is 1 when on the match card, 0 when on the left trainer, and 1 when on the right trainer + // Scrolling up/down from a match info card goes to the next/previous match + if (gMain.newKeys & DPAD_UP && sInfoCard->pos == 1) { - if (r5 == 16) - r5 = gUnknown_0860D19C[roundId]; + if (position == DOME_TOURNAMENT_TRAINERS_COUNT) + position = sLastMatchCardNum[roundId]; else - r5--; - retVal = 5; + position--; + input = MATCHCARD_INPUT_UP; } - else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 1) + else if (gMain.newKeys & DPAD_DOWN && sInfoCard->pos == 1) { - if (r5 == gUnknown_0860D19C[roundId]) - r5 = 16; + if (position == sLastMatchCardNum[roundId]) + position = DOME_TOURNAMENT_TRAINERS_COUNT; else - r5++; - retVal = 6; + position++; + input = MATCHCARD_INPUT_DOWN; } - else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) + // Scrolling left/right from a match info card shows the trainer info card of the competitors for that match + else if (gMain.newKeys & DPAD_LEFT && sInfoCard->pos != 0) { - retVal = 7; - sBattleDomeStruct->unk_10--; + input = MATCHCARD_INPUT_LEFT; + sInfoCard->pos--; } - else if (gMain.newKeys & DPAD_RIGHT && (sBattleDomeStruct->unk_10 == 0 || sBattleDomeStruct->unk_10 == 1)) + else if (gMain.newKeys & DPAD_RIGHT && (sInfoCard->pos == 0 || sInfoCard->pos == 1)) { - retVal = 8; - sBattleDomeStruct->unk_10++; + input = MATCHCARD_INPUT_RIGHT; + sInfoCard->pos++; } - if (retVal == 9) + if (input == INFOCARD_INPUT_AB) { - if (sBattleDomeStruct->unk_10 == 0) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[0]]; - else if (sBattleDomeStruct->unk_10 == 2) - gTasks[taskId2].data[1] = gUnknown_0860D1C0[sBattleDomeStruct->unk_11[1]]; - else - gTasks[taskId2].data[1] = r5; + if (sInfoCard->pos == 0) // On left trainer info card + gTasks[taskId2].data[1] = gUnknown_0860D1C0[sInfoCard->tournamentIds[0]]; + else if (sInfoCard->pos == 2) // On right trainer info card + gTasks[taskId2].data[1] = gUnknown_0860D1C0[sInfoCard->tournamentIds[1]]; + else // On match info card + gTasks[taskId2].data[1] = position; } } - if (retVal != 0 && retVal != 9) + if (input != INFOCARD_INPUT_NONE && input != INFOCARD_INPUT_AB) { PlaySE(SE_SELECT); - gTasks[taskId2].data[1] = r5; - gTasks[taskId].data[2] ^= 1; + gTasks[taskId2].data[1] = position; + gTasks[taskId].tUsingAlternateSlot ^= 1; } - return retVal; + return input; } -static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) +#undef tUsingAlternateSlot + +// allocatedArray below needs to be large enough to hold stat totals for each mon, or totals of each type of move points +#define ALLOC_ARRAY_SIZE (NUM_STATS * FRONTIER_PARTY_SIZE >= NUM_MOVE_POINT_TYPES ? (NUM_STATS * FRONTIER_PARTY_SIZE) : NUM_MOVE_POINT_TYPES) + +static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) { struct TextPrinterTemplate textPrinter; int i, j, k; @@ -4581,63 +4479,67 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) int windowId = 0; int x = 0, y = 0; u8 palSlot = 0; - s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18); - trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId; + s16 *allocatedArray = AllocZeroed(sizeof(s16) * ALLOC_ARRAY_SIZE); + trainerId = DOME_TRAINERS[trainerTourneyId].trainerId; - if (flags & 1) - arrId = 8, windowId = 9, palSlot = 2; - if (flags & 2) + if (flags & CARD_ALTERNATE_SLOT) + arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; + if (flags & MOVE_CARD_RIGHT) x = 256; - if (flags & 4) + if (flags & MOVE_CARD_DOWN) y = 160; - if (flags & 8) + if (flags & MOVE_CARD_LEFT) x = -256; - if (flags & 0x10) + if (flags & MOVE_CARD_UP) y = -160; + // Create trainer pic sprite if (trainerId == TRAINER_PLAYER) - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else if (trainerId == TRAINER_FRONTIER_BRAIN) - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); else - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[arrId]].invisible = TRUE; - for (i = 0; i < 3; i++) + // Create party mon icons + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (trainerId == TRAINER_PLAYER) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i], + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i], SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } else if (trainerId == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i], + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTourneyId][i], SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } else { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species, + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species, SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[2 + i + arrId]].invisible = TRUE; } + + // Initialize the text printer textPrinter.fontId = 2; textPrinter.x = 0; textPrinter.y = 0; @@ -4646,10 +4548,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) textPrinter.letterSpacing = 2; textPrinter.lineSpacing = 0; textPrinter.unk = 0; - textPrinter.fgColor = 14; - textPrinter.bgColor = 0; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5; + textPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; + // Get class and trainer name i = 0; if (trainerId == TRAINER_PLAYER) j = gFacilityClassToTrainerClass[FACILITY_CLASS_BRENDAN]; @@ -4678,6 +4581,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) StringAppend(gStringVar1, gStringVar2); } + // Print class and trainer name textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, gStringVar1, 0xD0, textPrinter.letterSpacing); textPrinter.currentChar = gStringVar1; textPrinter.windowId = windowId; @@ -4686,15 +4590,16 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) AddTextPrinter(&textPrinter, 0, NULL); textPrinter.letterSpacing = 0; - for (i = 0; i < 3; i++) + // Print names of the party mons + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - textPrinter.currentY = gUnknown_0860D346[i]; + textPrinter.currentY = sSpeciesNameTextYCoords[i]; if (trainerId == TRAINER_PLAYER) - textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]]; + textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTourneyId][i]]; else if (trainerId == TRAINER_FRONTIER_BRAIN) - textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]]; + textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTourneyId][i]]; else - textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species]; + textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species]; textPrinter.windowId = 1 + i + windowId; if (i == 1) @@ -4709,10 +4614,12 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) PutWindowTilemap(windowId + 4); CopyWindowToVram(windowId + 4, 3); + + // Print text about trainers potential in the tourney if (trainerId == TRAINER_FRONTIER_BRAIN) - textPrinter.currentChar = sBattleDomePotentialTexts[16]; + textPrinter.currentChar = sBattleDomePotentialTexts[DOME_TOURNAMENT_TRAINERS_COUNT]; else - textPrinter.currentChar = sBattleDomePotentialTexts[trainerTournamentId]; + textPrinter.currentChar = sBattleDomePotentialTexts[trainerTourneyId]; textPrinter.fontId = 1; textPrinter.windowId = windowId + 4; @@ -4721,91 +4628,103 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) textPrinter.currentY = 4; AddTextPrinter(&textPrinter, 0, NULL); - for (i = 0; i < 3; i++) + // Calculate move scores to determine the trainers battle style + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < MAX_MON_MOVES; j++) { - for (k = 0; k < DOME_TOURNAMENT_TRAINERS_COUNT; k++) + for (k = 0; k < NUM_MOVE_POINT_TYPES; k++) { if (trainerId == TRAINER_FRONTIER_BRAIN) - allocatedArray[k] += sMovePointsForDomeTrainers[GetFrontierBrainMonMove(i, j)][k]; + allocatedArray[k] += sBattleStyleMovePoints[GetFrontierBrainMonMove(i, j)][k]; else if (trainerId == TRAINER_PLAYER) - allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; + allocatedArray[k] += sBattleStyleMovePoints[gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j]][k]; else - allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].moves[j]][k]; + allocatedArray[k] += sBattleStyleMovePoints[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].moves[j]][k]; } } } - for (i = 0; i < ARRAY_COUNT(gUnknown_0860C988); i++) + // Get the battle style the trainer uses + // Each element of sBattleStyleThresholds is an array of point thresholds for particular move qualities + // If all the point thresholds in the array are satisfied, the player is considered to be using that battle style + for (i = 0; i < ARRAY_COUNT(sBattleStyleThresholds); i++) { - int r4 = 0; + int thresholdStatCount = 0; - for (k = 0, j = 0; j < DOME_TOURNAMENT_TRAINERS_COUNT; j++) + for (k = 0, j = 0; j < NUM_MOVE_POINT_TYPES; j++) { - if (gUnknown_0860C988[i][j] != 0) + if (sBattleStyleThresholds[i][j] != 0) { - r4++; - if (allocatedArray[j] != 0 && allocatedArray[j] >= gUnknown_0860C988[i][j]) - k++; + thresholdStatCount++; + if (allocatedArray[j] != 0 && allocatedArray[j] >= sBattleStyleThresholds[i][j]) + k++; // number of point thresholds met/exceeded } } - if (r4 == k) - break; + if (thresholdStatCount == k) + break; // All thresholds for battle style met/exceeded, player uses this battle style } + // Print the trainers battle style textPrinter.currentChar = sBattleDomeOpponentStyleTexts[i]; textPrinter.y = 20; textPrinter.currentY = 20; AddTextPrinter(&textPrinter, 0, NULL); - for (i = 0; i < 18; i++) + for (i = 0; i < ALLOC_ARRAY_SIZE; i++) allocatedArray[i] = 0; + // Calculate EV/nature points for the stat portion of battle style if (trainerId == TRAINER_FRONTIER_BRAIN || trainerId == TRAINER_PLAYER) { - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - for (j = 0; j < 6; j++) + // Add the EVs for this mon + for (j = 0; j < NUM_STATS; j++) { if (trainerId == TRAINER_FRONTIER_BRAIN) allocatedArray[j] = GetFrontierBrainMonEvs(i, j); else - allocatedArray[j] = gSaveBlock2Ptr->frontier.field_EFC[i].evs[j]; + allocatedArray[j] = gSaveBlock2Ptr->frontier.domePlayerPartyData[i].evs[j]; } - allocatedArray[6] += allocatedArray[0]; - for (j = 0; j < 5; j++) + + // HP doesnt have a nature modifier, so just add it here + allocatedArray[NUM_STATS] += allocatedArray[STAT_HP]; + + // Add the EVs with the nature modifier for this mon and and track number of negative natures + for (j = 0; j < NUM_EV_STATS; j++) { if (trainerId == TRAINER_FRONTIER_BRAIN) nature = GetFrontierBrainMonNature(i); else - nature = gSaveBlock2Ptr->frontier.field_EFC[i].nature; + nature = gSaveBlock2Ptr->frontier.domePlayerPartyData[i].nature; if (gNatureStatTable[nature][j] > 0) { - allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100; + allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 110) / 100; } else if (gNatureStatTable[nature][j] < 0) { - allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100; - allocatedArray[j + 13]++; + allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 90) / 100; + allocatedArray[j + NUM_STATS + NUM_EV_STATS + 2]++; } else { - allocatedArray[j + 7] += allocatedArray[j + 1]; + allocatedArray[j + NUM_STATS + 1] += allocatedArray[j + 1]; } } } - for (j = 0, i = 0; i < 6; i++) - j += allocatedArray[6 + i]; - for (i = 0; i < 6; i++) - allocatedArray[i] = (allocatedArray[6 + i] * 100) / j; + for (j = 0, i = 0; i < NUM_STATS; i++) + j += allocatedArray[NUM_STATS + i]; + for (i = 0; i < NUM_STATS; i++) + allocatedArray[i] = (allocatedArray[NUM_STATS + i] * 100) / j; } + // Same as above but for regular trainers instead of the frontier brain or player else { - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - int evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; + int evBits = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].evSpread; for (k = 0, j = 0; j < NUM_STATS; j++) { allocatedArray[j] = 0; @@ -4814,7 +4733,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) evBits >>= 1; } k = MAX_TOTAL_EVS / k; - evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; + evBits = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].evSpread; for (j = 0; j < NUM_STATS; j++) { if (evBits & 1) @@ -4822,37 +4741,42 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) evBits >>= 1; } - allocatedArray[6] += allocatedArray[0]; - for (j = 0; j < 5; j++) + allocatedArray[NUM_STATS] += allocatedArray[STAT_HP]; + for (j = 0; j < NUM_EV_STATS; j++) { - nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].nature; + nature = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].nature; if (gNatureStatTable[nature][j] > 0) { - allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100; + allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 110) / 100; } else if (gNatureStatTable[nature][j] < 0) { - allocatedArray[j + 7] += (allocatedArray[j + 1] * 90) / 100; - allocatedArray[j + 13]++; + allocatedArray[j + NUM_STATS + 1] += (allocatedArray[j + 1] * 90) / 100; + allocatedArray[j + NUM_STATS + NUM_EV_STATS + 2]++; } else { - allocatedArray[j + 7] += allocatedArray[j + 1]; + allocatedArray[j + NUM_STATS + 1] += allocatedArray[j + 1]; } } } - for (j = 0, i = 0; i < 6; i++) - j += allocatedArray[i + 6]; - for (i = 0; i < 6; i++) - allocatedArray[i] = (allocatedArray[6 + i] * 100) / j; + for (j = 0, i = 0; i < NUM_STATS; i++) + j += allocatedArray[i + NUM_STATS]; + for (i = 0; i < NUM_STATS; i++) + allocatedArray[i] = (allocatedArray[NUM_STATS + i] * 100) / j; } - for (i = 0, j = 0, k = 0; k < 6; k++) + // Count the number of good/bad stats for the party + // i is the number of good stats, j is the number of bad stats + for (i = 0, j = 0, k = 0; k < NUM_STATS; k++) { + // Any stat above 29 EVs is considered good if (allocatedArray[k] > 29) { + // If 2 good stats have been found already, choose which to use if (i == 2) { + if (allocatedArray[6] < allocatedArray[k]) { if (allocatedArray[7] < allocatedArray[k]) @@ -4885,8 +4809,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) i++; } } + + // Any stat with 0 EVs is considered bad if (allocatedArray[k] == 0) { + // If 2 bad stats have been found already, choose which to use if (j == 2) { if (allocatedArray[k + 12] >= 2 @@ -4915,17 +4842,19 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } } + // Get the string ID to display which stats are good/bad if (i == 2) - i = gUnknown_0860D349[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1)); + i = sStatTextOffsets[allocatedArray[6]] + (allocatedArray[7] - (allocatedArray[6] + 1)) + DOME_TEXT_TWO_GOOD_STATS; else if (i == 1) - i = allocatedArray[6] + 15; + i = allocatedArray[6] + DOME_TEXT_ONE_GOOD_STAT; else if (j == 2) - i = gUnknown_0860D349[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + 21; + i = sStatTextOffsets[allocatedArray[8]] + (allocatedArray[9] - (allocatedArray[8] + 1)) + DOME_TEXT_TWO_BAD_STATS; else if (j == 1) - i = allocatedArray[8] + 36; + i = allocatedArray[8] + DOME_TEXT_ONE_BAD_STAT; else - i = 42; + i = DOME_TEXT_WELL_BALANCED; + // Print the stat text textPrinter.currentChar = sBattleDomeOpponentStatsTexts[i]; textPrinter.y = 36; textPrinter.currentY = 36; @@ -4933,55 +4862,61 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) Free(allocatedArray); } -static int sub_8192F08(u8 arg0, u8 *arg1) +static int BufferDomeWinString(u8 matchNum, u8 *tournamentIds) { int i; u8 tournamentId; - int retVal = 0; + int winStringId = 0; int count = 0; - for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + // Get winners name + for (i = sCompetitorRangeByMatch[matchNum][0]; i < sCompetitorRangeByMatch[matchNum][0] + sCompetitorRangeByMatch[matchNum][1]; i++) { - tournamentId = gUnknown_0860D3B4[i]; - if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated) + tournamentId = sTourneyTreeTrainerIds2[i]; + if (!DOME_TRAINERS[tournamentId].isEliminated) { - arg1[count] = tournamentId; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + tournamentIds[count] = tournamentId; + if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId); count++; } } + // Neither trainer has been eliminated, battle hasn't occurred yet if (count == 2) - return 0; + return DOME_TEXT_NO_WINNER_YET; - for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + for (i = sCompetitorRangeByMatch[matchNum][0]; i < sCompetitorRangeByMatch[matchNum][0] + sCompetitorRangeByMatch[matchNum][1]; i++) { - tournamentId = gUnknown_0860D3B4[i]; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2]) + tournamentId = sTourneyTreeTrainerIds2[i]; + + if (DOME_TRAINERS[tournamentId].isEliminated + && DOME_TRAINERS[tournamentId].eliminatedAt >= sCompetitorRangeByMatch[matchNum][2]) { - arg1[count] = tournamentId; + tournamentIds[count] = tournamentId; count++; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt == gUnknown_0860D3C4[arg0][2]) + + if (DOME_TRAINERS[tournamentId].eliminatedAt == sCompetitorRangeByMatch[matchNum][2]) { - StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]); - retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2; - if (gSaveBlock2Ptr->frontier.field_EC0[tournamentId] == 0 && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 == 0) - retVal = 4; + // Set initial winStringId offset + StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId]]); + winStringId = DOME_TRAINERS[tournamentId].forfeited * 2; // (DOME_TEXT_WON_USING_MOVE - 1) or (DOME_TEXT_WON_ON_FORFEIT - 1) + + if (gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId] == MOVE_NONE && DOME_TRAINERS[tournamentId].forfeited == FALSE) + winStringId = DOME_TEXT_WON_NO_MOVES - 1; } else { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId); } } @@ -4989,10 +4924,10 @@ static int sub_8192F08(u8 arg0, u8 *arg1) break; } - if (arg0 == 14) - return retVal + 2; + if (matchNum == DOME_TOURNAMENT_MATCHES_COUNT - 1) + return winStringId + 2; // use DOME_TEXT_CHAMP_* else - return retVal + 1; + return winStringId + 1; // use DOME_TEXT_WON_* } static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) @@ -5008,137 +4943,137 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) int x = 0, y = 0; u8 palSlot = 0; - if (flags & 1) - arrId = 8, windowId = 9, palSlot = 2; - if (flags & 2) + if (flags & CARD_ALTERNATE_SLOT) + arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; + if (flags & MOVE_CARD_RIGHT) x = 256; - if (flags & 4) + if (flags & MOVE_CARD_DOWN) y = 160; - if (flags & 8) + if (flags & MOVE_CARD_LEFT) x = -256; - if (flags & 0x10) + if (flags & MOVE_CARD_UP) y = -160; // Copy trainers information to handy arrays. - winStringId = sub_8192F08(matchNo, sBattleDomeStruct->unk_11); - for (i = 0; i < 2; i++) + winStringId = BufferDomeWinString(matchNo, sInfoCard->tournamentIds); + for (i = 0; i < NUM_INFOCARD_TRAINERS; i++) { - tournamentIds[i] = sBattleDomeStruct->unk_11[i]; - trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated) + tournamentIds[i] = sInfoCard->tournamentIds[i]; + trainerIds[i] = DOME_TRAINERS[tournamentIds[i]].trainerId; + if (DOME_TRAINERS[tournamentIds[i]].eliminatedAt <= sCompetitorRangeByMatch[matchNo][2] + && DOME_TRAINERS[tournamentIds[i]].isEliminated) lost[i] = TRUE; else lost[i] = FALSE; } - // Draw first trainer sprite. + // Draw left trainer sprite. if (trainerIds[0] == TRAINER_PLAYER) - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); else - sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + sInfoCard->spriteIds[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[arrId]].invisible = TRUE; if (lost[0]) - gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3; + gSprites[sInfoCard->spriteIds[arrId]].oam.paletteNum = 3; - // Draw second trainer sprite. + // Draw right trainer sprite. if (trainerIds[1] == TRAINER_PLAYER) - sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) - sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); else - sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + sInfoCard->spriteIds[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[1 + arrId]].invisible = TRUE; if (lost[1]) - gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3; + gSprites[sInfoCard->spriteIds[1 + arrId]].oam.paletteNum = 3; - // Draw first trainer's pokemon icons. - for (i = 0; i < 3; i++) + // Draw left trainer's pokemon icons. + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (trainerIds[0] == TRAINER_PLAYER) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i], + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i], SpriteCb_MonIcon, - x | sFirstTrainerMonX[i], - y + sFirstTrainerMonY[i], + x | sLeftTrainerMonX[i], + y + sLeftTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i], + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i], SpriteCb_MonIcon, - x | sFirstTrainerMonX[i], - y + sFirstTrainerMonY[i], + x | sLeftTrainerMonX[i], + y + sLeftTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } else { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i]].species, + sInfoCard->spriteIds[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[0]][i]].species, SpriteCb_MonIcon, - x | sFirstTrainerMonX[i], - y + sFirstTrainerMonY[i], + x | sLeftTrainerMonX[i], + y + sLeftTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.priority = 0; } - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[2 + i + arrId]].invisible = TRUE; if (lost[0]) { - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3; - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].sMonIconStill = TRUE; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].oam.paletteNum = 3; + gSprites[sInfoCard->spriteIds[2 + i + arrId]].sMonIconStill = TRUE; } } - // Draw second trainer's pokemon icons. - for (i = 0; i < 3; i++) + // Draw right trainer's pokemon icons. + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { if (trainerIds[1] == TRAINER_PLAYER) { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i], + sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i], SpriteCb_MonIcon, - x | sSecondTrainerMonX[i], - y + sSecondTrainerMonY[i], + x | sRightTrainerMonX[i], + y + sRightTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0; } else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i], + sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i], SpriteCb_MonIcon, - x | sSecondTrainerMonX[i], - y + sSecondTrainerMonY[i], + x | sRightTrainerMonX[i], + y + sRightTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0; } else { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i]].species, + sInfoCard->spriteIds[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[1]][i]].species, SpriteCb_MonIcon, - x | sSecondTrainerMonX[i], - y + sSecondTrainerMonY[i], + x | sRightTrainerMonX[i], + y + sRightTrainerMonY[i], 0, 0, TRUE); - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.priority = 0; } - if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = TRUE; + if (flags & MOVE_CARD) + gSprites[sInfoCard->spriteIds[5 + i + arrId]].invisible = TRUE; if (lost[1]) { - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3; - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].sMonIconStill = TRUE; + gSprites[sInfoCard->spriteIds[5 + i + arrId]].oam.paletteNum = 3; + gSprites[sInfoCard->spriteIds[5 + i + arrId]].sMonIconStill = TRUE; } } - // Print the win string (or 'Let the battle begin!' one). + // Print the win string (or 'Let the battle begin!'). textPrinter.x = 0; textPrinter.y = 2; textPrinter.currentX = textPrinter.x; @@ -5146,9 +5081,9 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) textPrinter.letterSpacing = 0; textPrinter.lineSpacing = 0; textPrinter.unk = 0; - textPrinter.fgColor = 14; - textPrinter.bgColor = 0; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5; + textPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; StringExpandPlaceholders(gStringVar4, sBattleDomeWinTexts[winStringId]); textPrinter.currentChar = gStringVar4; textPrinter.windowId = windowId + 8; @@ -5159,7 +5094,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) textPrinter.currentY = textPrinter.y = 0; AddTextPrinter(&textPrinter, 0, NULL); - // Print first trainer's name. + // Print left trainer's name. if (trainerIds[0] == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) @@ -5177,7 +5112,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) CopyWindowToVram(windowId + 6, 3); AddTextPrinter(&textPrinter, 0, NULL); - // Print second trainer's name. + // Print right trainer's name. if (trainerIds[1] == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) @@ -5207,103 +5142,112 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) static void ShowDomeTourneyTree(void) { u8 taskId = CreateTask(Task_ShowTourneyTree, 0); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tNotInteractive = FALSE; gTasks[taskId].data[2] = 2; - gTasks[taskId].data[4] = 0; - SetMainCallback2(CB2_BattleDome); + gTasks[taskId].tIsPrevTourneyTree = FALSE; + SetMainCallback2(CB2_TourneyTree); } -static void ShowPreviousDomeResultsTourneyTree(void) +// To show the results of the last tourney on the computer in the lobby +static void ShowPreviousDomeTourneyTree(void) { u8 taskId; - InitDomeFacilityTrainersAndMons(); - gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1; - gSaveBlock2Ptr->frontier.curChallengeBattleNum = 3; + SetFacilityTrainerAndMonPtrs(); + gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.domeLvlMode - 1; + gSaveBlock2Ptr->frontier.curChallengeBattleNum = DOME_FINAL; taskId = CreateTask(Task_ShowTourneyTree, 0); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0; + gTasks[taskId].tState = 0; + gTasks[taskId].tNotInteractive = FALSE; gTasks[taskId].data[2] = 2; - gTasks[taskId].data[4] = 1; - SetMainCallback2(CB2_BattleDome); + gTasks[taskId].tIsPrevTourneyTree = TRUE; + SetMainCallback2(CB2_TourneyTree); } -static void sub_819395C(u8 taskId) +// Task states for Task_HandleTourneyTreeInput +#define STATE_FADE_IN 0 +#define STATE_WAIT_FADE 1 +#define STATE_GET_INPUT 2 +#define STATE_SHOW_INFOCARD_TRAINER 3 +#define STATE_SHOW_INFOCARD_MATCH 5 +#define STATE_CLOSE_TOURNEY_TREE 7 + +static void Task_HandleTourneyTreeInput(u8 taskId) { u8 newTaskId = 0; int spriteId = gTasks[taskId].data[1]; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: + case STATE_FADE_IN: if (!gPaletteFade.active) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = STATE_WAIT_FADE; StartSpriteAnim(&gSprites[spriteId], 1); } break; - case 1: + case STATE_WAIT_FADE: if (!gPaletteFade.active) - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_GET_INPUT; break; - case 2: + case STATE_GET_INPUT: switch (UpdateTourneyTreeCursor(taskId)) { - case 0: + case TOURNEY_TREE_SELECTED_CLOSE: default: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 7; + gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE; break; - case 1: + case TOURNEY_TREE_NO_SELECTION: break; - case 2: + case TOURNEY_TREE_SELECTED_TRAINER: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_SHOW_INFOCARD_TRAINER; break; - case 3: + case TOURNEY_TREE_SELECTED_MATCH: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 5; + gTasks[taskId].tState = STATE_SHOW_INFOCARD_MATCH; break; } break; - case 3: + case STATE_SHOW_INFOCARD_TRAINER: if (!gPaletteFade.active) { FreeAllWindowBuffers(); ScanlineEffect_Stop(); FREE_AND_SET_NULL(sTilemapBuffer); - newTaskId = CreateTask(Task_ShowOpponentInfo, 0); - gTasks[newTaskId].data[0] = 0; - gTasks[newTaskId].data[1] = sTourneyTreeTrainerIds[spriteId]; - gTasks[newTaskId].data[2] = 1; - gTasks[newTaskId].data[3] = taskId; - - gTasks[taskId].data[0] = 4; - sBattleDomeStruct->unk_10 = 0; + newTaskId = CreateTask(Task_ShowTourneyInfoCard, 0); + gTasks[newTaskId].tState = 0; + gTasks[newTaskId].tTournamentId = sTourneyTreeTrainerIds[spriteId]; + gTasks[newTaskId].tMode = INFOCARD_TRAINER; + gTasks[newTaskId].tPrevTaskId = taskId; + + gTasks[taskId].tState = STATE_SHOW_INFOCARD_TRAINER + 1; + sInfoCard->pos = 0; } break; - case 4: + case STATE_SHOW_INFOCARD_TRAINER + 1: break; - case 5: + case STATE_SHOW_INFOCARD_MATCH: if (!gPaletteFade.active) { FreeAllWindowBuffers(); ScanlineEffect_Stop(); FREE_AND_SET_NULL(sTilemapBuffer); - newTaskId = CreateTask(Task_ShowOpponentInfo, 0); - gTasks[newTaskId].data[0] = 0; - gTasks[newTaskId].data[1] = spriteId - 16; - gTasks[newTaskId].data[2] = 2; - gTasks[newTaskId].data[3] = taskId; + newTaskId = CreateTask(Task_ShowTourneyInfoCard, 0); + gTasks[newTaskId].tState = 0; + gTasks[newTaskId].tTournamentId = spriteId - DOME_TOURNAMENT_TRAINERS_COUNT; + gTasks[newTaskId].tMode = INFOCARD_MATCH; + gTasks[newTaskId].tPrevTaskId = taskId; - gTasks[taskId].data[0] = 6; + gTasks[taskId].tState = STATE_SHOW_INFOCARD_MATCH + 1; } break; - case 6: + case STATE_SHOW_INFOCARD_MATCH + 1: break; - case 7: + case STATE_CLOSE_TOURNEY_TREE: if (!gPaletteFade.active) { FreeAllWindowBuffers(); @@ -5317,157 +5261,188 @@ static void sub_819395C(u8 taskId) } } +// undefine task states for Task_HandleTourneyTreeInput +#undef STATE_FADE_IN +#undef STATE_WAIT_FADE +#undef STATE_GET_INPUT +#undef STATE_SHOW_INFOCARD_TRAINER +#undef STATE_SHOW_INFOCARD_MATCH +#undef STATE_CLOSE_TOURNEY_TREE + + +#define MOVE_DIR_UP 0 +#define MOVE_DIR_DOWN 1 +#define MOVE_DIR_LEFT 2 +#define MOVE_DIR_RIGHT 3 +#define MOVE_DIR_NONE 4 + +// Move the tourney tree cursor +// The 'cursor' is actually just which button sprite is currently doing the 'selected' animation static u8 UpdateTourneyTreeCursor(u8 taskId) { - u8 retVal = 1; - int direction = 4; + u8 selection = TOURNEY_TREE_NO_SELECTION; + int direction = MOVE_DIR_NONE; int tourneyTreeCursorSpriteId = gTasks[taskId].data[1]; int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && tourneyTreeCursorSpriteId == 31)) + if (gMain.newKeys == B_BUTTON || (gMain.newKeys & A_BUTTON && tourneyTreeCursorSpriteId == TOURNEY_TREE_CLOSE_BUTTON)) { PlaySE(SE_SELECT); - retVal = 0; + selection = TOURNEY_TREE_SELECTED_CLOSE; } else if (gMain.newKeys & A_BUTTON) { - if (tourneyTreeCursorSpriteId < 16) + if (tourneyTreeCursorSpriteId < DOME_TOURNAMENT_TRAINERS_COUNT) { PlaySE(SE_SELECT); - retVal = 2; + selection = TOURNEY_TREE_SELECTED_TRAINER; } else { PlaySE(SE_SELECT); - retVal = 3; + selection = TOURNEY_TREE_SELECTED_MATCH; } } else { if (gMain.newKeys == DPAD_UP && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][0] != 0xFF) - direction = 0; + direction = MOVE_DIR_UP; else if (gMain.newKeys == DPAD_DOWN && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][1] != 0xFF) - direction = 1; + direction = MOVE_DIR_DOWN; else if (gMain.newKeys == DPAD_LEFT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][2] != 0xFF) - direction = 2; + direction = MOVE_DIR_LEFT; else if (gMain.newKeys == DPAD_RIGHT && sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][3] != 0xFF) - direction = 3; + direction = MOVE_DIR_RIGHT; } - if (direction != 4) + if (direction != MOVE_DIR_NONE) { PlaySE(SE_SELECT); - StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 0); + StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 0); // Do unselected sprite anim tourneyTreeCursorSpriteId = sTourneyTreeCursorMovementMap[tourneyTreeCursorSpriteId][roundId][direction]; - StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 1); + StartSpriteAnim(&gSprites[tourneyTreeCursorSpriteId], 1); // Do selected sprite anim gTasks[taskId].data[1] = tourneyTreeCursorSpriteId; } - return retVal; + return selection; } +#undef MOVE_DIR_UP +#undef MOVE_DIR_DOWN +#undef MOVE_DIR_LEFT +#undef MOVE_DIR_RIGHT +#undef MOVE_DIR_NONE + +// Shows the results of the just-completed round for the current tourney static void ShowNonInteractiveDomeTourneyTree(void) { u8 taskId = CreateTask(Task_ShowTourneyTree, 0); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 1; + gTasks[taskId].tState = 0; + gTasks[taskId].tNotInteractive = TRUE; gTasks[taskId].data[2] = 2; - gTasks[taskId].data[4] = 0; - SetMainCallback2(CB2_BattleDome); + gTasks[taskId].tIsPrevTourneyTree = FALSE; + SetMainCallback2(CB2_TourneyTree); } static void ResolveDomeRoundWinners(void) { int i; - if (gSpecialVar_0x8005 == 1) + if (gSpecialVar_0x8005 == DOME_PLAYER_WON_MATCH) { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; + DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = TRUE; + DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; + + // If the player's match was the final one, no NPC vs NPC matches to decide if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < DOME_FINAL) DecideRoundWinners(gSaveBlock2Ptr->frontier.curChallengeBattleNum); } - else + else // DOME_PLAYER_LOST_MATCH or DOME_PLAYER_RETIRED { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; - if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9) - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1; + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = TRUE; + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; + + if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == DOME_PLAYER_RETIRED) + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].forfeited = TRUE; + + // Player lost, decide remaining outcome of tournament for (i = gSaveBlock2Ptr->frontier.curChallengeBattleNum; i < DOME_ROUNDS_COUNT; i++) DecideRoundWinners(i); } } +// Decides the winning move of an NPC vs NPC match static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roundId) { int i, j, k; - int moveScores[4 * 3]; - u16 moveIds[4 * 3]; + int moveScores[MAX_MON_MOVES * FRONTIER_PARTY_SIZE]; + u16 moveIds[MAX_MON_MOVES * FRONTIER_PARTY_SIZE]; u16 bestScore = 0; u16 bestId = 0; int movePower = 0; SetFacilityPtrsGetLevel(); // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons. - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < MAX_MON_MOVES; j++) { - // TODO: Clean this up, looks like a different data structure - moveScores[i * 4 + j] = 0; - if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN) - moveIds[i * 4 + j] = GetFrontierBrainMonMove(i, j); + // TODO: Clean this up, looks like a different data structure (2D array) + moveScores[i * MAX_MON_MOVES + j] = 0; + if (DOME_TRAINERS[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + moveIds[i * MAX_MON_MOVES + j] = GetFrontierBrainMonMove(i, j); else - moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[winnerTournamentId][i]].moves[j]; + moveIds[i * MAX_MON_MOVES + j] = gFacilityTrainerMons[DOME_MONS[winnerTournamentId][i]].moves[j]; - movePower = gBattleMoves[moveIds[i * 4 + j]].power; + movePower = gBattleMoves[moveIds[i * MAX_MON_MOVES + j]].power; if (movePower == 0) movePower = 40; else if (movePower == 1) movePower = 60; - else if (moveIds[i * 4 + j] == MOVE_SELF_DESTRUCT || moveIds[i * 4 + j] == MOVE_EXPLOSION) + else if (moveIds[i * MAX_MON_MOVES + j] == MOVE_SELF_DESTRUCT + || moveIds[i * MAX_MON_MOVES + j] == MOVE_EXPLOSION) movePower /= 2; - for (k = 0; k < 3; k++) + for (k = 0; k < FRONTIER_PARTY_SIZE; k++) { u32 var = 0; - u32 targetSpecies = 0; - u32 targetAbility = 0; + u16 targetSpecies = SPECIES_NONE; + u16 targetAbility = ABILITY_NONE; do { var = Random32(); - } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].nature != GetNatureFromPersonality(var)); + } while (gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].nature != GetNatureFromPersonality(var)); - targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].species; + targetSpecies = gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].species; if (var & 1) targetAbility = gBaseStats[targetSpecies].abilities[1]; else targetAbility = gBaseStats[targetSpecies].abilities[0]; - var = AI_TypeCalc(moveIds[i * 4 + j], targetSpecies, targetAbility); + var = AI_TypeCalc(moveIds[i * MAX_MON_MOVES + j], targetSpecies, targetAbility); if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE) - moveScores[i * 4 + j] += movePower; + moveScores[i * MAX_MON_MOVES + j] += movePower; else if (var & MOVE_RESULT_NO_EFFECT) - moveScores[i * 4 + j] += 0; + moveScores[i * MAX_MON_MOVES + j] += 0; else if (var & MOVE_RESULT_SUPER_EFFECTIVE) - moveScores[i * 4 + j] += movePower * 2; + moveScores[i * MAX_MON_MOVES + j] += movePower * 2; else if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE) - moveScores[i * 4 + j] += movePower / 2; + moveScores[i * MAX_MON_MOVES + j] += movePower / 2; else - moveScores[i * 4 + j] += movePower; + moveScores[i * MAX_MON_MOVES + j] += movePower; } - if (bestScore < moveScores[i * 4 + j]) + if (bestScore < moveScores[i * MAX_MON_MOVES + j]) { - bestId = i * 4 + j; - bestScore = moveScores[i * 4 + j]; + bestId = i * MAX_MON_MOVES + j; + bestScore = moveScores[i * MAX_MON_MOVES + j]; } - else if (bestScore == moveScores[i * 4 + j]) + else if (bestScore == moveScores[i * MAX_MON_MOVES + j]) { - if (moveIds[bestId] < moveIds[i * 4 + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id? - bestId = i * 4 + j; + if (moveIds[bestId] < moveIds[i * MAX_MON_MOVES + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id? + bestId = i * MAX_MON_MOVES + j; } } } @@ -5476,7 +5451,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun goto LABEL; while (j != 0) { - for (j = 0, k = 0; k < MAX_MON_MOVES * 3; k++) + for (j = 0, k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) { if (bestScore < moveScores[k]) { @@ -5494,7 +5469,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun { for (i = 0; i < roundId - 1; i++) { - if (gSaveBlock2Ptr->frontier.field_EC0[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) + if (gSaveBlock2Ptr->frontier.domeWinningMoves[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) break; } if (i == roundId - 1) @@ -5503,7 +5478,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun moveScores[j] = 0; bestScore = 0; j = 0; - for (k = 0; k < MAX_MON_MOVES * 3; k++) + for (k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) j += moveScores[k]; } } @@ -5518,10 +5493,10 @@ static void Task_ShowTourneyTree(u8 taskId) { int i; struct TextPrinterTemplate textPrinter; - int r10 = gTasks[taskId].data[1]; + int notInteractive = gTasks[taskId].tNotInteractive; int r4 = gTasks[taskId].data[2]; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: SetHBlankCallback(NULL); @@ -5529,8 +5504,8 @@ static void Task_ShowTourneyTree(u8 taskId) EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0860CE74, ARRAY_COUNT(gUnknown_0860CE74)); - InitWindows(gUnknown_0860CE94); + InitBgsFromTemplates(0, sTourneyTreeBgTemplates, ARRAY_COUNT(sTourneyTreeBgTemplates)); + InitWindows(sTourneyTreeWindowTemplates); DeactivateAllTextPrinters(); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -5540,7 +5515,7 @@ static void Task_ShowTourneyTree(u8 taskId) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 0xB00, 0); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 1: SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -5552,45 +5527,46 @@ static void Task_ShowTourneyTree(u8 taskId) SetGpuReg(REG_OFFSET_WIN1H, 0x9098); SetGpuReg(REG_OFFSET_WIN1V, 0x9F); SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); ResetPaletteFade(); ResetSpriteData(); FreeAllSpritePalettes(); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 2: sTilemapBuffer = AllocZeroed(0x800); - LZDecompressWram(gUnknown_08D83900, sTilemapBuffer); + LZDecompressWram(gDomeTourneyLineMask_Tilemap, sTilemapBuffer); SetBgTilemapBuffer(1, sTilemapBuffer); CopyBgTilemapBufferToVram(1); - DecompressAndLoadBgGfxUsingHeap(1, gUnknown_08D82F10, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D834FC, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(2, gUnknown_08D83B2C, 0x2000, 0, 1); - DecompressAndLoadBgGfxUsingHeap(3, gUnknown_08D83C3C, 0x2000, 0, 1); - LoadCompressedPalette(gUnknown_08D85358, 0, 0x200); - LoadCompressedPalette(gUnknown_08D85444, 0x100, 0x200); + DecompressAndLoadBgGfxUsingHeap(1, gDomeTourneyBg_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLine_Gfx, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, gDomeTourneyLineDown_Tilemap, 0x2000, 0, 1); + DecompressAndLoadBgGfxUsingHeap(3, gDomeTourneyLineUp_Tilemap, 0x2000, 0, 1); + LoadCompressedPalette(gDomeTourneyTree_Pal, 0, 0x200); + LoadCompressedPalette(gDomeTourneyTreeButtons_Pal, 0x100, 0x200); LoadCompressedPalette(gBattleWindowTextPalette, 0xF0, 0x20); CpuFill32(0, gPlttBufferFaded, 0x400); ShowBg(0); ShowBg(1); ShowBg(2); ShowBg(3); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 3: - LoadCompressedSpriteSheet(sDomeOptionsSpriteSheet); - if (r10 == 0) + LoadCompressedSpriteSheet(sTourneyTreeButtonsSpriteSheet); + if (notInteractive == FALSE) { - for (i = 0; i < (unsigned) 31; i++) - CreateSprite(&gUnknown_0860CFA8, gUnknown_0860D411[i][0], gUnknown_0860D411[i][1], 0); - if (gTasks[taskId].data[4]) - CreateSprite(&gUnknown_0860D008, 218, 12, 0); + for (i = 0; i < ARRAY_COUNT(sTourneyTreePokeballCoords); i++) + CreateSprite(&sTourneyTreePokeballSpriteTemplate, sTourneyTreePokeballCoords[i][0], sTourneyTreePokeballCoords[i][1], 0); + + if (gTasks[taskId].tIsPrevTourneyTree) + CreateSprite(&sExitButtonSpriteTemplate, 218, 12, 0); else - CreateSprite(&gUnknown_0860CFD8, 218, 12, 0); + CreateSprite(&sCancelButtonSpriteTemplate, 218, 12, 0); } SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJ_1D_MAP); - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 4: textPrinter.fontId = 2; @@ -5603,94 +5579,94 @@ static void Task_ShowTourneyTree(u8 taskId) textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x70, textPrinter.letterSpacing); textPrinter.currentY = 1; textPrinter.unk = 0; - textPrinter.fgColor = 14; - textPrinter.bgColor = 0; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5; + textPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; AddTextPrinter(&textPrinter, 0, NULL); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { int roundId, var2; - CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - if (r10 == 1) + CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId); + if (notInteractive == TRUE) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + if (DOME_TRAINERS[i].eliminatedAt != DOME_ROUND1) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; - sub_81948EC(i, var2); + var2 = DOME_TRAINERS[i].eliminatedAt - 1; + DrawTourneyAdvancementLine(i, var2); } } else if (gSaveBlock2Ptr->frontier.curChallengeBattleNum != DOME_ROUND2) { - sub_81948EC(i, gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2); + DrawTourneyAdvancementLine(i, gSaveBlock2Ptr->frontier.curChallengeBattleNum - 2); } } - else if (r10 == 0) + else if (notInteractive == FALSE) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + if (DOME_TRAINERS[i].eliminatedAt != DOME_ROUND1) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; - sub_81948EC(i, var2); + var2 = DOME_TRAINERS[i].eliminatedAt - 1; + DrawTourneyAdvancementLine(i, var2); } } else if (gSaveBlock2Ptr->frontier.curChallengeBattleNum != DOME_ROUND1) { - if (gTasks[taskId].data[4]) + if (gTasks[taskId].tIsPrevTourneyTree) var2 = gSaveBlock2Ptr->frontier.curChallengeBattleNum; else var2 = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; - sub_81948EC(i, var2); + DrawTourneyAdvancementLine(i, var2); } } - if (gTasks[taskId].data[4]) + if (gTasks[taskId].tIsPrevTourneyTree) roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum; else roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; - if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1) - || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt <= roundId)) - && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if ( ((notInteractive == TRUE && DOME_TRAINERS[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1) + || (notInteractive == FALSE && DOME_TRAINERS[i].eliminatedAt <= roundId)) + && DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { - textPrinter.fgColor = 3; - textPrinter.shadowColor = 4; + textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; + textPrinter.shadowColor = TEXT_COLOR_RED; } else { - textPrinter.fgColor = 11; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; } } else { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { - textPrinter.fgColor = 3; - textPrinter.shadowColor = 4; + textPrinter.fgColor = TEXT_COLOR_LIGHT_GREY; + textPrinter.shadowColor = TEXT_COLOR_RED; } else { - textPrinter.fgColor = 14; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; } } - if (gUnknown_0860D3F1[i][0] == 0) + if (sTrainerNamePositions[i][0] == 0) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); else textPrinter.currentX = 3; textPrinter.currentChar = gDisplayedStringBattle; - textPrinter.windowId = gUnknown_0860D3F1[i][0]; - textPrinter.currentY = gUnknown_0860D3F1[i][1]; + textPrinter.windowId = sTrainerNamePositions[i][0]; + textPrinter.currentY = sTrainerNamePositions[i][1]; AddTextPrinter(&textPrinter, 0, NULL); } - gTasks[taskId].data[0]++; + gTasks[taskId].tState++; break; case 5: PutWindowTilemap(0); @@ -5699,27 +5675,27 @@ static void Task_ShowTourneyTree(u8 taskId) CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); CopyWindowToVram(2, 3); - SetHBlankCallback(HblankCb_BattleDome); - SetVBlankCallback(VblankCb1_BattleDome); + SetHBlankCallback(HblankCb_TourneyTree); + SetVBlankCallback(VblankCb_TourneyTree); if (r4 == 2) { - if (r10 == 0) + if (notInteractive == FALSE) { - i = CreateTask(sub_819395C, 0); - gTasks[i].data[0] = r10; - gTasks[i].data[1] = r10; - gTasks[i].data[6] = gTasks[taskId].data[4]; + i = CreateTask(Task_HandleTourneyTreeInput, 0); + gTasks[i].data[0] = notInteractive; + gTasks[i].data[1] = notInteractive; + gTasks[i].data[6] = gTasks[taskId].tIsPrevTourneyTree; } else { - i = CreateTask(sub_8194950, 0); + i = CreateTask(Task_HandleStaticTourneyTreeInput, 0); gTasks[i].data[0] = 0; } } else { i = gTasks[taskId].data[3]; - gTasks[i].data[0] = 0; + gTasks[i].tState = 0; } ScanlineEffect_Clear(); @@ -5744,32 +5720,39 @@ static void Task_ShowTourneyTree(u8 taskId) } } -static void sub_81948EC(u8 tournamentId, u8 arg1) +static void DrawTourneyAdvancementLine(u8 tournamentId, u8 roundId) { int i; - const struct UnkStruct_860DD10 *structPtr = gUnknown_0860DD10[tournamentId][arg1]; + const struct TourneyTreeLineSection *lineSection = sTourneyTreeLineSections[tournamentId][roundId]; - for (i = 0; i < gUnknown_0860DE10[tournamentId][arg1]; i++) - CopyToBgTilemapBufferRect_ChangePalette(1, &structPtr[i].src, structPtr[i].x, structPtr[i].y, 1, 1, 0x11); + for (i = 0; i < sTourneyTreeLineSectionArrayCounts[tournamentId][roundId]; i++) + CopyToBgTilemapBufferRect_ChangePalette(1, &lineSection[i].src, lineSection[i].x, lineSection[i].y, 1, 1, 17); CopyBgTilemapBufferToVram(1); } -static void sub_8194950(u8 taskId) +#define STATE_FADE_IN 0 +#define STATE_SHOW_RESULTS 1 +#define STATE_DELAY 2 +#define STATE_WAIT_FOR_INPUT 3 +#define STATE_CLOSE_TOURNEY_TREE 4 + +// The non-interactive tourney tree that's shown when a round is completed +static void Task_HandleStaticTourneyTreeInput(u8 taskId) { int i; struct TextPrinterTemplate textPrinter; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { - case 0: + case STATE_FADE_IN: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = STATE_SHOW_RESULTS; break; - case 1: + case STATE_SHOW_RESULTS: if (!gPaletteFade.active) { - gTasks[taskId].data[0] = 2; + gTasks[taskId].tState = STATE_DELAY; gTasks[taskId].data[3] = 64; textPrinter.fontId = 2; textPrinter.x = 0; @@ -5777,45 +5760,47 @@ static void sub_8194950(u8 taskId) textPrinter.letterSpacing = 2; textPrinter.lineSpacing = 0; textPrinter.unk = 0; - textPrinter.fgColor = 11; - textPrinter.bgColor = 0; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2; + textPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; + + // Update the advancement lines and gray out eliminated trainer names for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1 - && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId); + if (DOME_TRAINERS[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1 + && DOME_TRAINERS[i].isEliminated) { - if (gUnknown_0860D3F1[i][0] == 0) + if (sTrainerNamePositions[i][0] == 0) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); else textPrinter.currentX = 3; textPrinter.currentChar = gDisplayedStringBattle; - textPrinter.windowId = gUnknown_0860D3F1[i][0]; - textPrinter.currentY = gUnknown_0860D3F1[i][1]; + textPrinter.windowId = sTrainerNamePositions[i][0]; + textPrinter.currentY = sTrainerNamePositions[i][1]; AddTextPrinter(&textPrinter, 0, NULL); } - if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (!DOME_TRAINERS[i].isEliminated) { int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; - sub_81948EC(i, roundId); + DrawTourneyAdvancementLine(i, roundId); } } } break; - case 2: + case STATE_DELAY: if (--gTasks[taskId].data[3] == 0) - gTasks[taskId].data[0] = 3; + gTasks[taskId].tState = STATE_WAIT_FOR_INPUT; break; - case 3: + case STATE_WAIT_FOR_INPUT: if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].data[0] = 4; + gTasks[taskId].tState = STATE_CLOSE_TOURNEY_TREE; } break; - case 4: + case STATE_CLOSE_TOURNEY_TREE: if (!gPaletteFade.active) { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); @@ -5825,7 +5810,13 @@ static void sub_8194950(u8 taskId) } } -static void CB2_BattleDome(void) +#undef STATE_FADE_IN +#undef STATE_SHOW_RESULTS +#undef STATE_DELAY +#undef STATE_WAIT_FOR_INPUT +#undef STATE_CLOSE_TOURNEY_TREE + +static void CB2_TourneyTree(void) { AnimateSprites(); BuildOamBuffer(); @@ -5834,7 +5825,7 @@ static void CB2_BattleDome(void) RunTasks(); } -static void VblankCb0_BattleDome(void) +static void VblankCb_TourneyInfoCard(void) { ChangeBgX(3, 0x80, 1); ChangeBgY(3, 0x80, 2); @@ -5854,7 +5845,7 @@ static void VblankCb0_BattleDome(void) *(vu32*)(REG_ADDR_WIN0H) = ((win0H << 16) | (win1H)); \ } -static void HblankCb_BattleDome(void) +static void HblankCb_TourneyTree(void) { register u32 vCount asm("r0") = REG_VCOUNT; register u32 vCount_ asm("r1") = vCount; @@ -5862,7 +5853,8 @@ static void HblankCb_BattleDome(void) { if (vCount < 50) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5870,13 +5862,15 @@ static void HblankCb_BattleDome(void) { if (vCount < 75) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } else if (vCount < 82) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5884,13 +5878,15 @@ static void HblankCb_BattleDome(void) { if (vCount < 103) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } else if (vCount < 119) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } @@ -5898,7 +5894,8 @@ static void HblankCb_BattleDome(void) { if (vCount_ < 135) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5907,11 +5904,12 @@ static void HblankCb_BattleDome(void) } } - REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ; + REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ + | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ; SET_WIN0H_WIN1H(0, 0); } -static void VblankCb1_BattleDome(void) +static void VblankCb_TourneyTree(void) { SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); @@ -5925,7 +5923,7 @@ static void VblankCb1_BattleDome(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void InitDomeFacilityTrainersAndMons(void) +static void SetFacilityTrainerAndMonPtrs(void) { gFacilityTrainerMons = gBattleFrontierMons; gFacilityTrainers = gBattleFrontierTrainers; @@ -5935,7 +5933,7 @@ static void ResetSketchedMoves(void) { int i, moveSlot; - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; int count; @@ -5961,7 +5959,7 @@ static void RestoreDomePlayerPartyHeldItems(void) { int i; - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL); @@ -5969,13 +5967,14 @@ static void RestoreDomePlayerPartyHeldItems(void) } } -static void ReduceDomePlayerPartyTo3Mons(void) +static void ReduceDomePlayerPartyToSelectedMons(void) { ReducePlayerPartyToSelectedMons(); } static void GetPlayerSeededBeforeOpponent(void) { + // A higher tournament ID is a worse seed if (TrainerIdToTournamentId(gTrainerBattleOpponent_A) > TrainerIdToTournamentId(TRAINER_PLAYER)) gSpecialVar_Result = 1; else @@ -5986,23 +5985,24 @@ static void BufferLastDomeWinnerName(void) { int i; - InitDomeFacilityTrainersAndMons(); + SetFacilityTrainerAndMonPtrs(); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (!DOME_TRAINERS[i].isEliminated) break; } - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[i].trainerId); } -static void sub_8194F58(void) +// For showing the previous tourney results before the player has entered a challenge +static void InitRandomTourneyTreeResults(void) { int i, j, k; int monLevel; int species[FRONTIER_PARTY_SIZE]; int monTypesBits; int trainerId; - int monSetId; + int monId; u8 lvlMode; u16 *statSums; int *statValues; @@ -6011,18 +6011,18 @@ static void sub_8194F58(void) species[0] = 0; species[1] = 0; species[2] = 0; - if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) + if ((gSaveBlock2Ptr->frontier.domeLvlMode != -gSaveBlock2Ptr->frontier.domeBattleMode) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); statValues = AllocZeroed(sizeof(int) * NUM_STATS); lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.lvlMode = 0; + gSaveBlock2Ptr->frontier.lvlMode = FRONTIER_LVL_50; // This one, I'd like to call a 'C fakematching'. { u8 one; - gSaveBlock2Ptr->frontier.field_D0A = (one = 1); - gSaveBlock2Ptr->frontier.field_D0B = one; + gSaveBlock2Ptr->frontier.domeLvlMode = (one = 1); + gSaveBlock2Ptr->frontier.domeBattleMode = one; } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) @@ -6038,35 +6038,35 @@ static void sub_8194F58(void) for (j = 0; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - // Make sure the mon is valid. do { - monSetId = RandomizeFacilityTrainerMonSet(trainerId); + monId = GetRandomFrontierMonFromSet(trainerId); for (k = 0; k < j; k++) { - int checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; - if (checkingMonId == monSetId - || species[0] == gFacilityTrainerMons[monSetId].species - || species[1] == gFacilityTrainerMons[monSetId].species - || gFacilityTrainerMons[checkingMonId].itemTableId == gFacilityTrainerMons[monSetId].itemTableId) + // Make sure the mon is valid. + int alreadySelectedMonId = DOME_MONS[i][k]; + if (alreadySelectedMonId == monId + || species[0] == gFacilityTrainerMons[monId].species + || species[1] == gFacilityTrainerMons[monId].species + || gFacilityTrainerMons[alreadySelectedMonId].itemTableId == gFacilityTrainerMons[monId].itemTableId) break; } } while (k != j); - gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId; - species[j] = gFacilityTrainerMons[monSetId].species; + DOME_MONS[i][j] = monId; + species[j] = gFacilityTrainerMons[monId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; + DOME_TRAINERS[i].isEliminated = FALSE; + DOME_TRAINERS[i].eliminatedAt = 0; + DOME_TRAINERS[i].forfeited = FALSE; } monLevel = 50; @@ -6074,13 +6074,13 @@ static void sub_8194F58(void) { monTypesBits = 0; statSums[i] = 0; - ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId); for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, + CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species, monLevel, ivs, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, + gFacilityTrainerMons[DOME_MONS[i][j]].evSpread, + gFacilityTrainerMons[DOME_MONS[i][j]].nature, statValues); statSums[i] += statValues[STAT_ATK]; @@ -6089,8 +6089,8 @@ static void sub_8194F58(void) statSums[i] += statValues[STAT_SPDEF]; statSums[i] += statValues[STAT_SPEED]; statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; } // Because GF hates temporary vars, trainerId acts like monTypesCount here. @@ -6113,7 +6113,7 @@ static void sub_8194F58(void) } else if (statSums[i] == statSums[j]) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) + if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId) SwapDomeTrainers(i, j, statSums); } } @@ -6122,7 +6122,7 @@ static void sub_8194F58(void) Free(statSums); Free(statValues); - for (i = 0; i < 4; i++) + for (i = 0; i < DOME_ROUNDS_COUNT; i++) DecideRoundWinners(i); gSaveBlock2Ptr->frontier.lvlMode = lvlMode; @@ -6134,7 +6134,7 @@ static int TrainerIdToTournamentId(u16 trainerId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } @@ -6148,7 +6148,7 @@ int TrainerIdToDomeTournamentId(u16 trainerId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } @@ -6157,14 +6157,15 @@ int TrainerIdToDomeTournamentId(u16 trainerId) static u8 sub_81953E8(u8 tournamentId, u8 round) { - u8 arr[2]; - sub_8192F08(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][round] - 16, arr); - if (tournamentId == arr[0]) - return arr[1]; + u8 tournamentIds[2]; + BufferDomeWinString(gUnknown_0860D1A0[gUnknown_0860D1C0[tournamentId] / 2][round] - 16, tournamentIds); + if (tournamentId == tournamentIds[0]) + return tournamentIds[1]; else - return arr[0]; + return tournamentIds[0]; } +// Determines which trainers won in the NPC vs NPC battles static void DecideRoundWinners(u8 roundId) { int i; @@ -6175,24 +6176,24 @@ static void DecideRoundWinners(u8 roundId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated || gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].isEliminated || DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) continue; tournamentId1 = i; - tournamentId2 = TournamentIdOfOpponent(roundId, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId); + tournamentId2 = TournamentIdOfOpponent(roundId, DOME_TRAINERS[tournamentId1].trainerId); // Frontier Brain always wins, check tournamentId1. - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF) + if (DOME_TRAINERS[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } // Frontier Brain always wins, check tournamentId2. - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF) + else if (DOME_TRAINERS[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } // Decide which one of two trainers wins! else if (tournamentId2 != 0xFF) @@ -6200,17 +6201,17 @@ static void DecideRoundWinners(u8 roundId) // BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results. // Calculate points for both trainers. - for (monId1 = 0; monId1 < 3; monId1++) + for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++) { for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++) { - for (monId2 = 0; monId2 < 3; monId2++) + for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++) { - points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].moves[moveSlot], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId2]].species, 2); + points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].moves[moveSlot], + gFacilityTrainerMons[DOME_MONS[tournamentId2][monId2]].species, 2); } } - species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].species; + species = gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].species; points1 += ( gBaseStats[species].baseHP + gBaseStats[species].baseAttack + gBaseStats[species].baseDefense @@ -6223,17 +6224,17 @@ static void DecideRoundWinners(u8 roundId) // Favor trainers with higher id; points1 += tournamentId1; - for (monId1 = 0; monId1 < 3; monId1++) + for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++) { for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++) { - for (monId2 = 0; monId2 < 3; monId2++) + for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++) { - points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].moves[moveSlot], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId2]].species, 2); + points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].moves[moveSlot], + gFacilityTrainerMons[DOME_MONS[tournamentId1][monId2]].species, 2); } } - species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].species; + species = gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].species; points2 += ( gBaseStats[species].baseHP + gBaseStats[species].baseAttack + gBaseStats[species].baseDefense @@ -6248,28 +6249,28 @@ static void DecideRoundWinners(u8 roundId) if (points1 > points2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } else if (points1 < points2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } // Points are the same, so we favor the one with the higher id. else if (tournamentId1 > tournamentId2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } else { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } } } @@ -6291,7 +6292,7 @@ static void CopyDomeTrainerName(u8 *str, u16 trainerId) for (i = 0; i < PLAYER_NAME_LENGTH; i++) str[i] = gSaveBlock2Ptr->playerName[i]; } - else if (trainerId < 300) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { for (i = 0; i < PLAYER_NAME_LENGTH; i++) str[i] = gFacilityTrainers[trainerId].trainerName[i]; diff --git a/src/battle_factory.c b/src/battle_factory.c index b7e43394ec56..913b1b1a0f88 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -12,6 +12,7 @@ #include "constants/battle_ai.h" #include "constants/battle_factory.h" #include "constants/battle_frontier.h" +#include "constants/battle_frontier_mons.h" #include "constants/frontier_util.h" #include "constants/layouts.h" #include "constants/trainers.h" @@ -304,7 +305,7 @@ static void GenerateOpponentMons(void) do { - trainerId = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -331,7 +332,7 @@ static void GenerateOpponentMons(void) if (j != 6) continue; - if (lvlMode == FRONTIER_LVL_50 && monSetId > 849) + if (lvlMode == FRONTIER_LVL_50 && monSetId > FRONTIER_MONS_HIGH_TIER) continue; for (k = firstMonId; k < firstMonId + i; k++) @@ -727,7 +728,7 @@ void FillFactoryBrainParty(void) if (gFacilityTrainerMons[monSetId].species == SPECIES_UNOWN) continue; - if (monLevel == 50 && monSetId > 849) + if (monLevel == 50 && monSetId > FRONTIER_MONS_HIGH_TIER) continue; for (j = 0; j < 6; j++) diff --git a/src/battle_interface.c b/src/battle_interface.c index cf9aa7f1bebb..12273addb106 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -761,62 +761,52 @@ static s32 DummiedOutFunction(s16 unused1, s16 unused2, s32 unused3) { return 9; } - -#ifdef NONMATCHING -static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) +void sub_8072308(s16 number, u16 *dest, bool8 unk) { s8 i, j; - u8 array[4]; - u8 *arrayPtr; - s32 r9, vaaa; + u8 buff[4]; for (i = 0; i < 4; i++) - array[i] = 0; + { + buff[i] = 0; + } - i = 3; - r9 = -1; - arrayPtr = array; - while (1) + for (i = 3; ; i--) { - if (arg0 > 0) + if (number > 0) { - array[i] = arg0 % 10; - arg0 = arg0 / 10; - i--; + buff[i] = number % 10; + number /= 10; } else { + for (; i > -1; i--) + { + buff[i] = 0xFF; + } + if (buff[3] == 0xFF) + buff[3] = 0; break; } } - for (; i > -1; i--) - { - array[i] = 0xFF; - } - - if (arrayPtr[3] == 0xFF) - arrayPtr[3] = 0; - - if (arg2 == 0) + if (!unk) { for (i = 0, j = 0; i < 4; i++) { - if (array[j] == 0xFF) + if (buff[j] == 0xFF) { - arg1[j] &= 0xFC00; - arg1[j] |= 0x1E; - - arg1[i + 0x20] &= 0xFC00; - arg1[i + 0x20] |= 0x1E; + dest[j + 0x00] &= 0xFC00; + dest[j + 0x00] |= 0x1E; + dest[i + 0x20] &= 0xFC00; + dest[i + 0x20] |= 0x1E; } else { - arg1[j] &= 0xFC00; - arg1[j] |= array[j] + 0x14; - - arg1[i + 0x20] &= 0xFC00; - arg1[i + 0x20] |= array[i] + 0x34; + dest[j + 0x00] &= 0xFC00; + dest[j + 0x00] |= 0x14 + buff[j]; + dest[i + 0x20] &= 0xFC00; + dest[i + 0x20] |= 0x34 + buff[i]; } j++; } @@ -825,254 +815,24 @@ static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) { for (i = 0; i < 4; i++) { - if (array[i] == 0xFF) + if (buff[i] == 0xFF) { - arg1[i] &= 0xFC00; - arg1[i] |= 0x1E; - - arg1[i + 0x20] &= 0xFC00; - arg1[i + 0x20] |= 0x1E; + dest[i + 0x00] &= 0xFC00; + dest[i + 0x00] |= 0x1E; + dest[i + 0x20] &= 0xFC00; + dest[i + 0x20] |= 0x1E; } else { - arg1[i] &= 0xFC00; - arg1[i] |= array[i] + 0x14; - - arg1[i + 0x20] &= 0xFC00; - arg1[i + 0x20] |= array[i] + 0x34; + dest[i + 0x00] &= 0xFC00; + dest[i + 0x00] |= 0x14 + buff[i]; + dest[i + 0x20] &= 0xFC00; + dest[i + 0x20] |= 0x34 + buff[i]; } } } } -#else -NAKED -static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - adds r7, r1, 0\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - mov r10, r2\n\ - movs r3, 0\n\ - movs r2, 0\n\ -_08072324:\n\ - lsls r0, r3, 24\n\ - asrs r0, 24\n\ - mov r3, sp\n\ - adds r1, r3, r0\n\ - strb r2, [r1]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _08072324\n\ - movs r3, 0x3\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - mov r9, r0\n\ - mov r8, sp\n\ -_08072344:\n\ - lsls r0, r5, 16\n\ - asrs r6, r0, 16\n\ - cmp r6, 0\n\ - ble _08072372\n\ - lsls r4, r3, 24\n\ - asrs r4, 24\n\ - mov r1, sp\n\ - adds r5, r1, r4\n\ - adds r0, r6, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - strb r0, [r5]\n\ - adds r0, r6, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - subs r4, 0x1\n\ - lsls r4, 24\n\ - lsrs r3, r4, 24\n\ - b _08072344\n\ -_08072372:\n\ - lsls r1, r3, 24\n\ - asrs r0, r1, 24\n\ - cmp r0, r9\n\ - ble _08072396\n\ - movs r4, 0xFF\n\ - movs r3, 0x1\n\ - negs r3, r3\n\ -_08072380:\n\ - asrs r2, r1, 24\n\ - mov r5, sp\n\ - adds r1, r5, r2\n\ - ldrb r0, [r1]\n\ - orrs r0, r4\n\ - strb r0, [r1]\n\ - subs r2, 0x1\n\ - lsls r1, r2, 24\n\ - asrs r0, r1, 24\n\ - cmp r0, r3\n\ - bgt _08072380\n\ -_08072396:\n\ - mov r1, r8\n\ - ldrb r0, [r1, 0x3]\n\ - cmp r0, 0xFF\n\ - bne _080723A2\n\ - movs r0, 0\n\ - strb r0, [r1, 0x3]\n\ -_080723A2:\n\ - mov r2, r10\n\ - cmp r2, 0\n\ - bne _08072432\n\ - movs r3, 0\n\ - movs r1, 0\n\ - movs r6, 0xFC\n\ - lsls r6, 8\n\ - movs r5, 0x1E\n\ - mov r12, r5\n\ -_080723B4:\n\ - lsls r1, 24\n\ - asrs r2, r1, 24\n\ - mov r0, sp\n\ - adds r5, r0, r2\n\ - ldrb r0, [r5]\n\ - mov r8, r1\n\ - cmp r0, 0xFF\n\ - bne _080723EA\n\ - lsls r1, r2, 1\n\ - adds r1, r7\n\ - ldrh r2, [r1]\n\ - adds r0, r6, 0\n\ - ands r0, r2\n\ - mov r2, r12\n\ - orrs r0, r2\n\ - strh r0, [r1]\n\ - lsls r3, 24\n\ - asrs r1, r3, 23\n\ - adds r1, r7\n\ - adds r1, 0x40\n\ - ldrh r2, [r1]\n\ - adds r0, r6, 0\n\ - ands r0, r2\n\ - mov r5, r12\n\ - orrs r0, r5\n\ - strh r0, [r1]\n\ - b _0807241A\n\ -_080723EA:\n\ - lsls r2, 1\n\ - adds r2, r7\n\ - ldrh r0, [r2]\n\ - adds r1, r6, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x14\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - lsls r4, r3, 24\n\ - asrs r3, r4, 24\n\ - lsls r2, r3, 1\n\ - adds r2, r7\n\ - adds r2, 0x40\n\ - ldrh r0, [r2]\n\ - adds r1, r6, 0\n\ - ands r1, r0\n\ - mov r5, sp\n\ - adds r0, r5, r3\n\ - ldrb r0, [r0]\n\ - adds r0, 0x34\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - adds r3, r4, 0\n\ -_0807241A:\n\ - movs r0, 0x80\n\ - lsls r0, 17\n\ - add r0, r8\n\ - lsrs r1, r0, 24\n\ - movs r2, 0x80\n\ - lsls r2, 17\n\ - adds r0, r3, r2\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _080723B4\n\ - b _08072496\n\ -_08072432:\n\ - movs r3, 0\n\ - movs r4, 0xFC\n\ - lsls r4, 8\n\ - movs r6, 0x1E\n\ -_0807243A:\n\ - lsls r1, r3, 24\n\ - asrs r2, r1, 24\n\ - mov r3, sp\n\ - adds r5, r3, r2\n\ - ldrb r0, [r5]\n\ - adds r3, r1, 0\n\ - cmp r0, 0xFF\n\ - bne _08072466\n\ - lsls r1, r2, 1\n\ - adds r1, r7\n\ - ldrh r2, [r1]\n\ - adds r0, r4, 0\n\ - ands r0, r2\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ - adds r1, 0x40\n\ - ldrh r2, [r1]\n\ - adds r0, r4, 0\n\ - ands r0, r2\n\ - orrs r0, r6\n\ - strh r0, [r1]\n\ - b _08072488\n\ -_08072466:\n\ - lsls r2, 1\n\ - adds r2, r7\n\ - ldrh r0, [r2]\n\ - adds r1, r4, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x14\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ - adds r2, 0x40\n\ - ldrh r0, [r2]\n\ - adds r1, r4, 0\n\ - ands r1, r0\n\ - ldrb r0, [r5]\n\ - adds r0, 0x34\n\ - orrs r1, r0\n\ - strh r1, [r2]\n\ -_08072488:\n\ - movs r5, 0x80\n\ - lsls r5, 17\n\ - adds r0, r3, r5\n\ - lsrs r3, r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0x3\n\ - ble _0807243A\n\ -_08072496:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} - -#endif // NONMATCHING void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2) { diff --git a/src/battle_palace.c b/src/battle_palace.c index 56fd04c686aa..6336662546a2 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -159,7 +159,7 @@ static void SetPalaceOpponent(void) static void BufferOpponentIntroSpeech(void) { - if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND) + if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } diff --git a/src/battle_pike.c b/src/battle_pike.c index e7da8d03853d..1c05d12cfa2f 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -1400,7 +1400,7 @@ static void PrepareOneTrainer(bool8 difficult) challengeNum = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode] / 14; do { - trainerId = sub_8162548(challengeNum, battleNum); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -1425,7 +1425,7 @@ static void PrepareTwoTrainers(void) gFacilityTrainers = gBattleFrontierTrainers; do { - trainerId = sub_8162548(challengeNum, 1); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -1440,7 +1440,7 @@ static void PrepareTwoTrainers(void) do { - trainerId = sub_8162548(challengeNum, 1); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 1); for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -1466,12 +1466,12 @@ static void BufferTrainerIntro(void) { if (gSpecialVar_0x8005 == 0) { - if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND) + if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } else if (gSpecialVar_0x8005 == 1) { - if (gTrainerBattleOpponent_B < TRAINER_RECORD_MIXING_FRIEND) + if (gTrainerBattleOpponent_B < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_B].speechBefore); } } diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 493526fad923..9fa6beb1db0c 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1493,7 +1493,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId) { do { - trainerId = sub_8162548(challengeNum + 1, battleNum); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum + 1, battleNum); for (i = 0; i < eventObjectId; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -1505,7 +1505,7 @@ static u16 GetUniqueTrainerId(u8 eventObjectId) { do { - trainerId = sub_8162548(challengeNum, battleNum); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, battleNum); for (i = 0; i < eventObjectId; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) diff --git a/src/battle_setup.c b/src/battle_setup.c index 3234e8974ab6..33d50807fb7f 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -305,7 +305,7 @@ const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = [REMATCH_TRENT] = REMATCH(TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5, ROUTE112), [REMATCH_SAWYER] = REMATCH(TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5, MT_CHIMNEY), [REMATCH_KIRA_AND_DAN] = REMATCH(TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5, ABANDONED_SHIP_ROOMS2_1F), - [REMATCH_WALLY_3] = REMATCH(TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6, VICTORY_ROAD_1F), + [REMATCH_WALLY_3] = REMATCH(TRAINER_WALLY_VR_2, TRAINER_WALLY_VR_3, TRAINER_WALLY_VR_4, TRAINER_WALLY_VR_5, TRAINER_WALLY_VR_5, VICTORY_ROAD_1F), [REMATCH_ROXANNE] = REMATCH(TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5, RUSTBORO_CITY), [REMATCH_BRAWLY] = REMATCH(TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5, DEWFORD_TOWN), [REMATCH_WATTSON] = REMATCH(TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5, MAUVILLE_CITY), @@ -961,12 +961,12 @@ static u8 TrainerBattleLoadArg8(const u8 *ptr) static u16 GetTrainerAFlag(void) { - return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_A; + return TRAINER_FLAGS_START + gTrainerBattleOpponent_A; } static u16 GetTrainerBFlag(void) { - return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_B; + return TRAINER_FLAGS_START + gTrainerBattleOpponent_B; } static bool32 IsPlayerDefeated(u32 battleOutcome) @@ -1193,7 +1193,7 @@ void SetUpTwoTrainersBattle(void) bool32 GetTrainerFlagFromScriptPointer(const u8 *data) { u32 flag = TrainerBattleLoadArg16(data + 2); - return FlagGet(FLAG_TRAINER_FLAG_START + flag); + return FlagGet(TRAINER_FLAGS_START + flag); } void SetUpTrainerMovement(void) @@ -1232,17 +1232,17 @@ static void SetBattledTrainerFlag(void) bool8 HasTrainerBeenFought(u16 trainerId) { - return FlagGet(FLAG_TRAINER_FLAG_START + trainerId); + return FlagGet(TRAINER_FLAGS_START + trainerId); } void SetTrainerFlag(u16 trainerId) { - FlagSet(FLAG_TRAINER_FLAG_START + trainerId); + FlagSet(TRAINER_FLAGS_START + trainerId); } void ClearTrainerFlag(u16 trainerId) { - FlagClear(FLAG_TRAINER_FLAG_START + trainerId); + FlagClear(TRAINER_FLAGS_START + trainerId); } void BattleSetup_StartTrainerBattle(void) diff --git a/src/battle_tent.c b/src/battle_tent.c index 860c07a53d00..b2db0e39cf1b 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -12,6 +12,8 @@ #include "frontier_util.h" #include "string_util.h" #include "constants/battle_tent.h" +#include "constants/battle_tent_trainers.h" +#include "constants/battle_tent_mons.h" #include "constants/items.h" #include "constants/layouts.h" #include "constants/region_map_sections.h" @@ -134,7 +136,7 @@ static void SetVerdanturfTentTrainerGfx(void) static void BufferVerdanturfTentTrainerIntro(void) { - if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND) + if (gTrainerBattleOpponent_A < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } @@ -311,7 +313,7 @@ static void GenerateInitialRentalMons(void) while (i != PARTY_SIZE) { // Cannot have two pokemon of the same species. - monSetId = Random() % 70; + monSetId = Random() % NUM_SLATEPORT_TENT_MONS; for (j = firstMonId; j < firstMonId + i; j++) { u16 monId = monIds[j]; @@ -353,10 +355,10 @@ static void GenerateOpponentMons(void) { u16 trainerId; s32 i, j, k; - register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack. u16 species[FRONTIER_PARTY_SIZE]; u16 heldItems[FRONTIER_PARTY_SIZE]; - s32 setsCount = 0; + s32 monId = 0; gFacilityTrainers = gSlateportBattleTentTrainers; gFacilityTrainerMons = gSlateportBattleTentMons; @@ -365,7 +367,7 @@ static void GenerateOpponentMons(void) { do { - trainerId = Random() % 30; + trainerId = Random() % NUM_BATTLE_TENT_TRAINERS; for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -374,21 +376,21 @@ static void GenerateOpponentMons(void) } while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum); gTrainerBattleOpponent_A = trainerId; - while (gFacilityTrainers[gTrainerBattleOpponent_A].monSets[setsCount] != 0xFFFF) - setsCount++; - if (setsCount > 8) + while (gFacilityTrainers[gTrainerBattleOpponent_A].monSet[monId] != 0xFFFF) + monId++; + if (monId > 8) break; - setsCount = 0; + monId = 0; } if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < 2) gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = gTrainerBattleOpponent_A; - monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; + monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet; i = 0; while (i != FRONTIER_PARTY_SIZE) { - sRandMonSetId = monSets[Random() % setsCount]; + sRandMonSetId = monSet[Random() % monId]; for (j = 0; j < 6; j++) { if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.rentalMons[j].monId].species) diff --git a/src/battle_tower.c b/src/battle_tower.c index 47dc49065c56..8f6393cbf5c8 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -25,6 +25,9 @@ #include "battle_factory.h" #include "constants/apprentice.h" #include "constants/battle_frontier.h" +#include "constants/battle_frontier_mons.h" +#include "constants/battle_tent_mons.h" +#include "constants/battle_tent_trainers.h" #include "constants/battle_tower.h" #include "constants/frontier_util.h" #include "constants/items.h" @@ -849,30 +852,37 @@ static const u8 sBattleTowerPartySizes2[] = [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; -static const u16 gUnknown_085DF9FA[][2] = +// Trainer ID ranges for possible frontier trainers to encounter on particular challenges +// Trainers are scaled by difficulty, so higher trainer IDs have better teams +static const u16 sFrontierTrainerIdRanges[][2] = { - {0x0000, 0x0063}, - {0x0050, 0x0077}, - {0x0064, 0x008b}, - {0x0078, 0x009f}, - {0x008c, 0x00b3}, - {0x00a0, 0x00c7}, - {0x00b4, 0x00db}, - {0x00c8, 0x012b}, + {FRONTIER_TRAINER_BRADY, FRONTIER_TRAINER_JILL}, // 0 - 99 + {FRONTIER_TRAINER_TREVIN, FRONTIER_TRAINER_CHLOE}, // 80 - 119 + {FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_SOFIA}, // 100 - 139 + {FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_JAZLYN}, // 120 - 159 + {FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_ALISON}, // 140 - 179 + {FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_LAMAR}, // 160 - 199 + {FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_TESS}, // 180 - 219 + {FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299 }; -static const u16 gUnknown_085DFA1A[][2] = +static const u16 sFrontierTrainerIdRangesHard[][2] = { - {0x0064, 0x0077}, - {0x0078, 0x008b}, - {0x008c, 0x009f}, - {0x00a0, 0x00b3}, - {0x00b4, 0x00c7}, - {0x00c8, 0x00db}, - {0x00dc, 0x00ef}, - {0x00c8, 0x012b}, - {0x00b3, 0x008d}, - {0x00c8, 0x00b7}, + {FRONTIER_TRAINER_ERIK, FRONTIER_TRAINER_CHLOE}, // 100 - 119 + {FRONTIER_TRAINER_NORTON, FRONTIER_TRAINER_SOFIA}, // 120 - 139 + {FRONTIER_TRAINER_BRADEN, FRONTIER_TRAINER_JAZLYN}, // 140 - 159 + {FRONTIER_TRAINER_ZACHERY, FRONTIER_TRAINER_ALISON}, // 160 - 179 + {FRONTIER_TRAINER_HANK, FRONTIER_TRAINER_LAMAR}, // 180 - 199 + {FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_TESS}, // 200 - 219 + {FRONTIER_TRAINER_LEON, FRONTIER_TRAINER_RAUL}, // 220 - 239 + {FRONTIER_TRAINER_JAXON, FRONTIER_TRAINER_GRETEL}, // 200 - 299 +}; + +// Trainer IDs? Don't make sense as part of previous array, min/max relationship reversed and never accessed +static const u16 sUnused_085DFA1A[][2] = +{ + {179, 141}, // FRONTIER_TRAINER_ALISON - FRONTIER_TRAINER_KAYDEN + {200, 183}, // FRONTIER_TRAINER_JAXON - FRONTIER_TRAINER_HUNTER }; static const u8 sBattleTowerPartySizes[FRONTIER_MODE_COUNT] = @@ -1077,7 +1087,7 @@ static void SetNextFacilityOpponent(void) s32 i; while (1) { - id = sub_8162548(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum); + id = GetRandomScaledFrontierTrainerId(challengeNum, gSaveBlock2Ptr->frontier.curChallengeBattleNum); // Ensure trainer wasn't previously fought in this challenge. for (i = 0; i < gSaveBlock2Ptr->frontier.curChallengeBattleNum; i++) @@ -1097,7 +1107,7 @@ static void SetNextFacilityOpponent(void) } } -u16 sub_8162548(u8 challengeNum, u8 battleNum) +u16 GetRandomScaledFrontierTrainerId(u8 challengeNum, u8 battleNum) { u16 trainerId; @@ -1105,49 +1115,54 @@ u16 sub_8162548(u8 challengeNum, u8 battleNum) { if (battleNum == 6) { - trainerId = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1; - trainerId = gUnknown_085DFA1A[challengeNum][0] + (Random() % trainerId); + // The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges + trainerId = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1; + trainerId = sFrontierTrainerIdRangesHard[challengeNum][0] + (Random() % trainerId); } else { - trainerId = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1; - trainerId = gUnknown_085DF9FA[challengeNum][0] + (Random() % trainerId); + trainerId = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1; + trainerId = sFrontierTrainerIdRanges[challengeNum][0] + (Random() % trainerId); } } else { - trainerId = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1; - trainerId = gUnknown_085DF9FA[7][0] + (Random() % trainerId); + // After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables + trainerId = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1; + trainerId = sFrontierTrainerIdRanges[7][0] + (Random() % trainerId); } return trainerId; } -static void sub_81625B4(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *arg3) // Unused +// Unused +static void GetRandomScaledFrontierTrainerIdRange(u8 challengeNum, u8 battleNum, u16 *trainerIdPtr, u8 *rangePtr) { - u16 trainerId, count; + u16 trainerId, range; if (challengeNum <= 7) { if (battleNum == 6) { - count = (gUnknown_085DFA1A[challengeNum][1] - gUnknown_085DFA1A[challengeNum][0]) + 1; - trainerId = gUnknown_085DFA1A[challengeNum][0]; + // The last battle in each challenge has a jump in difficulty, pulls from a table with higher ranges + range = (sFrontierTrainerIdRangesHard[challengeNum][1] - sFrontierTrainerIdRangesHard[challengeNum][0]) + 1; + trainerId = sFrontierTrainerIdRangesHard[challengeNum][0]; } else { - count = (gUnknown_085DF9FA[challengeNum][1] - gUnknown_085DF9FA[challengeNum][0]) + 1; - trainerId = gUnknown_085DF9FA[challengeNum][0]; + range = (sFrontierTrainerIdRanges[challengeNum][1] - sFrontierTrainerIdRanges[challengeNum][0]) + 1; + trainerId = sFrontierTrainerIdRanges[challengeNum][0]; } } else { - count = (gUnknown_085DF9FA[7][1] - gUnknown_085DF9FA[7][0]) + 1; - trainerId = gUnknown_085DF9FA[7][0]; + // After challenge 7, trainer IDs always come from the last, hardest range, which is the same for both trainer ID tables + range = (sFrontierTrainerIdRanges[7][1] - sFrontierTrainerIdRanges[7][0]) + 1; + trainerId = sFrontierTrainerIdRanges[7][0]; } *trainerIdPtr = trainerId; - *arg3 = count; + *rangePtr = range; } void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId) @@ -1166,7 +1181,7 @@ void SetBattleFacilityTrainerGfxId(u16 trainerId, u8 tempVarId) SetFrontierBrainEventObjGfx_2(); return; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { facilityClass = gFacilityTrainers[trainerId].facilityClass; } @@ -1258,7 +1273,7 @@ u8 GetBattleFacilityTrainerGfxId(u16 trainerId) { facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { facilityClass = gFacilityTrainers[trainerId].facilityClass; } @@ -1400,7 +1415,7 @@ u8 GetFrontierTrainerFrontSpriteId(u16 trainerId) { return GetFrontierBrainTrainerPicIndex(); } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { return gFacilityClassToPicIndex[gFacilityTrainers[trainerId].facilityClass]; } @@ -1437,7 +1452,7 @@ u8 GetFrontierOpponentClass(u16 trainerId) { trainerClass = gTrainers[TRAINER_STEVEN].trainerClass; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { trainerClass = gFacilityClassToTrainerClass[gFacilityTrainers[trainerId].facilityClass]; } @@ -1478,7 +1493,7 @@ static u8 GetFrontierTrainerFacilityClass(u16 trainerId) { facilityClass = gSaveBlock2Ptr->frontier.ereaderTrainer.facilityClass; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { facilityClass = gFacilityTrainers[trainerId].facilityClass; } @@ -1520,7 +1535,7 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId) for (i = 0; i < PLAYER_NAME_LENGTH; i++) dst[i] = gTrainers[TRAINER_STEVEN].trainerName[i]; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { for (i = 0; i < PLAYER_NAME_LENGTH; i++) dst[i] = gFacilityTrainers[trainerId].trainerName[i]; @@ -1575,7 +1590,7 @@ static bool8 IsFrontierTrainerFemale(u16 trainerId) { return IsFrontierBrainFemale(); } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { facilityClass = gFacilityTrainers[trainerId].facilityClass; } @@ -1623,18 +1638,18 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) { s32 i, j; u16 chosenMonIndices[4]; - u8 friendship = 0xFF; + u8 friendship = MAX_FRIENDSHIP; u8 level = SetFacilityPtrsGetLevel(); u8 fixedIV = 0; u8 bfMonCount; - const u16 *monSets = NULL; + const u16 *monSet = NULL; u32 otID = 0; - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { // Normal battle frontier trainer. fixedIV = GetFrontierTrainerFixedIvs(trainerId); - monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; + monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet; } else if (trainerId == TRAINER_EREADER) { @@ -1672,20 +1687,20 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) // Attempt to fill the trainer's party with random Pokemon until 3 have been // successfully chosen. The trainer's party may not have duplicate pokemon species // or duplicate held items. - for (bfMonCount = 0; monSets[bfMonCount] != 0xFFFF; bfMonCount++) + for (bfMonCount = 0; monSet[bfMonCount] != 0xFFFF; bfMonCount++) ; i = 0; otID = Random32(); while (i != monCount) { - u16 monSetId = monSets[Random() % bfMonCount]; - if ((level == 50 || level == 20) && monSetId > 849) + u16 monId = monSet[Random() % bfMonCount]; + if ((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER) continue; // Ensure this pokemon species isn't a duplicate. for (j = 0; j < i + firstMonId; j++) { - if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species) + if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species) break; } if (j != i + firstMonId) @@ -1695,7 +1710,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) for (j = 0; j < i + firstMonId; j++) { if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0 - && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]) + && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]) break; } if (j != i + firstMonId) @@ -1705,34 +1720,34 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) // because the species and held items were already checked directly above. for (j = 0; j < i; j++) { - if (chosenMonIndices[j] == monSetId) + if (chosenMonIndices[j] == monId) break; } if (j != i) continue; - chosenMonIndices[i] = monSetId; + chosenMonIndices[i] = monId; // Place the chosen pokemon into the trainer's party. CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId], - gFacilityTrainerMons[monSetId].species, + gFacilityTrainerMons[monId].species, level, - gFacilityTrainerMons[monSetId].nature, + gFacilityTrainerMons[monId].nature, fixedIV, - gFacilityTrainerMons[monSetId].evSpread, + gFacilityTrainerMons[monId].evSpread, otID); - friendship = 255; + friendship = MAX_FRIENDSHIP; // Give the chosen pokemon its specified moves. for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j); - if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION) + SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j); + if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION) friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is. } SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); // The pokemon was successfully added to the trainer's party, so it's safe to move on to // the next party slot. @@ -1744,7 +1759,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) { s32 i, j; - u8 friendship = 0xFF; + u8 friendship = MAX_FRIENDSHIP; u8 level = 0; u8 fixedIV = 0; struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0]; @@ -1762,7 +1777,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) for (i = 0; i != 3; i++) { CreateMonWithEVSpread(&gEnemyParty[firstMonId + i], apprentice->party[i].species, level, fixedIV, 8); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { if (apprentice->party[i].moves[j] == MOVE_FRUSTRATION) @@ -1773,27 +1788,27 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) } } -u16 RandomizeFacilityTrainerMonSet(u16 trainerId) +u16 GetRandomFrontierMonFromSet(u16 trainerId) { u8 level = SetFacilityPtrsGetLevel(); - const u16 *monSets = gFacilityTrainers[trainerId].monSets; - u8 bfMonCount = 0; - u32 monSetId = monSets[bfMonCount]; + const u16 *monSet = gFacilityTrainers[trainerId].monSet; + u8 numMons = 0; + u32 monId = monSet[numMons]; - while (monSetId != 0xFFFF) + while (monId != 0xFFFF) { - bfMonCount++; - monSetId = monSets[bfMonCount]; - if (monSetId == 0xFFFF) + numMons++; + monId = monSet[numMons]; + if (monId == 0xFFFF) break; } do { - monSetId = monSets[Random() % bfMonCount]; - } while((level == 50 || level == 20) && monSetId > 849); + monId = monSet[Random() % numMons]; + } while((level == 50 || level == 20) && monId > FRONTIER_MONS_HIGH_TIER); - return monSetId; + return monId; } static void FillFactoryTrainerParty(void) @@ -1813,7 +1828,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId) u8 fixedIV; u32 otID; - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; // Unused variable. u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -1843,21 +1858,21 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId) otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - u16 monSetId = gUnknown_03006298[i]; + u16 monId = gUnknown_03006298[i]; CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i], - gFacilityTrainerMons[monSetId].species, + gFacilityTrainerMons[monId].species, level, - gFacilityTrainerMons[monSetId].nature, + gFacilityTrainerMons[monId].nature, fixedIV, - gFacilityTrainerMons[monSetId].evSpread, + gFacilityTrainerMons[monId].evSpread, otID); friendship = 0; for (j = 0; j < MAX_MON_MOVES; j++) - SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j); + SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j); SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); } } @@ -1871,25 +1886,25 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId) for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - u16 monSetId = gUnknown_03006298[i]; + u16 monId = gUnknown_03006298[i]; CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i], - gFacilityTrainerMons[monSetId].species, + gFacilityTrainerMons[monId].species, level, - gFacilityTrainerMons[monSetId].nature, + gFacilityTrainerMons[monId].nature, fixedIV, - gFacilityTrainerMons[monSetId].evSpread, + gFacilityTrainerMons[monId].evSpread, otID); friendship = 0; for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monSetId].moves[j], j); - if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION) + SetMonMoveAvoidReturn(&gEnemyParty[firstMonId + i], gFacilityTrainerMons[monId].moves[j], j); + if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION) friendship = 0; } SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonData(&gEnemyParty[firstMonId + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); } } @@ -1922,7 +1937,7 @@ static void GetOpponentIntroSpeech(void) if (trainerId == TRAINER_EREADER) FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting); - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore); else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); @@ -2150,7 +2165,7 @@ static void sub_8163EE4(void) StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName); playerRecord->winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode); - for (i = 0; i < 6; i++) + for (i = 0; i < EASY_CHAT_BATTLE_WORDS_COUNT; i++) { playerRecord->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i]; playerRecord->speechWon[i] = gSaveBlock1Ptr->easyChatBattleWon[i]; @@ -2252,7 +2267,7 @@ static void LoadMultiPartnerCandidatesData(void) u32 spArray[5]; s32 r10; u16 trainerId; - u16 monSetId; + u16 monId; u32 lvlMode, battleMode; s32 challengeNum; u32 species1, species2; @@ -2272,7 +2287,7 @@ static void LoadMultiPartnerCandidatesData(void) { do { - trainerId = sub_8162548(challengeNum, 0); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, 0); for (i = 0; i < j; i++) { if (gSaveBlock2Ptr->frontier.trainerIds[i] == trainerId) @@ -2294,24 +2309,24 @@ static void LoadMultiPartnerCandidatesData(void) { while (1) { - monSetId = RandomizeFacilityTrainerMonSet(trainerId); - if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monSetId].itemTableId) + monId = GetRandomFrontierMonFromSet(trainerId); + if (j % 2 != 0 && gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[r10 - 1]].itemTableId == gFacilityTrainerMons[monId].itemTableId) continue; for (k = 8; k < r10; k++) { - if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monSetId].species) + if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.trainerIds[k]].species == gFacilityTrainerMons[monId].species) break; - if (species1 == gFacilityTrainerMons[monSetId].species) + if (species1 == gFacilityTrainerMons[monId].species) break; - if (species2 == gFacilityTrainerMons[monSetId].species) + if (species2 == gFacilityTrainerMons[monId].species) break; } if (k == r10) break; } - gSaveBlock2Ptr->frontier.trainerIds[r10] = monSetId; + gSaveBlock2Ptr->frontier.trainerIds[r10] = monId; r10++; } } @@ -2392,7 +2407,7 @@ static void LoadMultiPartnerCandidatesData(void) } } -static void sub_81646BC(u16 trainerId, u16 monSetId) +static void sub_81646BC(u16 trainerId, u16 monId) { u16 move = 0; u16 species = 0; @@ -2400,10 +2415,10 @@ static void sub_81646BC(u16 trainerId, u16 monSetId) if (trainerId != TRAINER_EREADER) { - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { - move = gFacilityTrainerMons[monSetId].moves[0]; - species = gFacilityTrainerMons[monSetId].species; + move = gFacilityTrainerMons[monId].moves[0]; + species = gFacilityTrainerMons[monId].species; } else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) { @@ -2430,7 +2445,7 @@ static void sub_81646BC(u16 trainerId, u16 monSetId) static void ShowPartnerCandidateMessage(void) { s32 i, j, partnerId; - s32 monSetId; + s32 monId; s32 level = SetFacilityPtrsGetLevel(); u16 winStreak = GetCurrentFacilityWinStreak(); s32 challengeNum = winStreak / 7; @@ -2448,7 +2463,7 @@ static void ShowPartnerCandidateMessage(void) case PARTNER_MSGID_INTRO: if (trainerId == TRAINER_EREADER) return; - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { GetFrontierTrainerName(gStringVar1, trainerId); } @@ -2468,16 +2483,16 @@ static void ShowPartnerCandidateMessage(void) } break; case PARTNER_MSGID_MON1: - monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2]; - sub_81646BC(trainerId, monSetId); + monId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2]; + sub_81646BC(trainerId, monId); break; case PARTNER_MSGID_MON2_ASK: - monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2]; - sub_81646BC(trainerId, monSetId); + monId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2]; + sub_81646BC(trainerId, monId); break; case PARTNER_MSGID_ACCEPT: gPartnerTrainerId = trainerId; - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { gSaveBlock2Ptr->frontier.trainerIds[18] = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2]; gSaveBlock2Ptr->frontier.trainerIds[19] = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2]; @@ -2496,7 +2511,7 @@ static void ShowPartnerCandidateMessage(void) { while (1) { - i = sub_8162548(challengeNum, k / 2); + i = GetRandomScaledFrontierTrainerId(challengeNum, k / 2); if (gPartnerTrainerId == i) continue; @@ -2520,7 +2535,7 @@ static void ShowPartnerCandidateMessage(void) return; // First check is redundant, only needs to make sure it's not an Apprentice - if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + if (trainerId < FRONTIER_TRAINERS_COUNT) { ShowFieldMessage(sPartnerTrainerTextTables[partnerId].strings[gSpecialVar_0x8005]); } @@ -2575,7 +2590,7 @@ static void LoadLinkMultiOpponentsData(void) { do { - trainerId = sub_8162548(challengeNum, i / 2); + trainerId = GetRandomScaledFrontierTrainerId(challengeNum, i / 2); for (j = 0; j < i; j++) { if (gSaveBlock2Ptr->frontier.trainerIds[j] == trainerId) @@ -2908,13 +2923,13 @@ static void CopyEReaderTrainerFarewellMessage(void) FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.farewellPlayerLost); } -void sub_81653CC(void) +void TryHideBattleTowerReporter(void) { if (gSaveBlock2Ptr->frontier.challengeStatus == CHALLENGE_STATUS_SAVING) - sub_80F01B8(); + HideBattleTowerReporter(); if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE) { - sub_80F01B8(); + HideBattleTowerReporter(); FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE); } } @@ -2926,7 +2941,7 @@ static void FillPartnerParty(u16 trainerId) s32 i, j; u32 ivs, level; u32 friendship; - u16 monSetId; + u16 monId; u32 otID; u8 trainerName[PLAYER_NAME_LENGTH + 1]; SetFacilityPtrsGetLevel(); @@ -2960,30 +2975,30 @@ static void FillPartnerParty(u16 trainerId) // Scrapped, lol. trainerName[0] = gGameLanguage; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { level = SetFacilityPtrsGetLevel(); ivs = GetFrontierTrainerFixedIvs(trainerId); otID = Random32(); for (i = 0; i < 2; i++) { - monSetId = gSaveBlock2Ptr->frontier.trainerIds[i + 18]; + monId = gSaveBlock2Ptr->frontier.trainerIds[i + 18]; CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i], - gFacilityTrainerMons[monSetId].species, + gFacilityTrainerMons[monId].species, level, - gFacilityTrainerMons[monSetId].nature, + gFacilityTrainerMons[monId].nature, ivs, - gFacilityTrainerMons[monSetId].evSpread, + gFacilityTrainerMons[monId].evSpread, otID); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monSetId].moves[j], j); - if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION) + SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monId].moves[j], j); + if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION) friendship = 0; } SetMonData(&gPlayerParty[3 + i], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++) trainerName[j] = gFacilityTrainers[trainerId].trainerName[j]; SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, &trainerName); @@ -3164,7 +3179,7 @@ void GetBattleTowerTrainerLanguage(u8 *dst, u16 trainerId) { *dst = gGameLanguage; } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { *dst = gGameLanguage; } @@ -3237,28 +3252,30 @@ s32 GetHighestLevelInPlayerParty(void) return highestLevel; } +// Frontier Trainer parties are roughly scaled in difficulty with higher trainer IDs, so scale IVs as well +// Duplicated in Battle Dome as GetDomeTrainerMonIvs static u8 GetFrontierTrainerFixedIvs(u16 trainerId) { - u8 fixedIV = 0; + u8 fixedIv; - if (trainerId < 100) - fixedIV = 3; - else if (trainerId < 120) - fixedIV = 6; - else if (trainerId < 140) - fixedIV = 9; - else if (trainerId < 160) - fixedIV = 12; - else if (trainerId < 180) - fixedIV = 15; - else if (trainerId < 200) - fixedIV = 18; - else if (trainerId < 220) - fixedIV = 21; - else - fixedIV = 31; + if (trainerId <= FRONTIER_TRAINER_JILL) // 0 - 99 + fixedIv = 3; + else if (trainerId <= FRONTIER_TRAINER_CHLOE) // 100 - 119 + fixedIv = 6; + else if (trainerId <= FRONTIER_TRAINER_SOFIA) // 120 - 139 + fixedIv = 9; + else if (trainerId <= FRONTIER_TRAINER_JAZLYN) // 140 - 159 + fixedIv = 12; + else if (trainerId <= FRONTIER_TRAINER_ALISON) // 160 - 179 + fixedIv = 15; + else if (trainerId <= FRONTIER_TRAINER_LAMAR) // 180 - 199 + fixedIv = 18; + else if (trainerId <= FRONTIER_TRAINER_TESS) // 200 - 219 + fixedIv = 21; + else // 220+ (- 299) + fixedIv = 31; - return fixedIV; + return fixedIv; } static u16 sub_8165D40(void) @@ -3280,19 +3297,19 @@ static u16 sub_8165D40(void) static u8 SetTentPtrsGetLevel(void) { u8 level = 30; - u32 tentFacility = VarGet(VAR_FRONTIER_FACILITY); + u32 facility = VarGet(VAR_FRONTIER_FACILITY); - if (tentFacility == TENT_SLATEPORT) + if (facility == FRONTIER_FACILITY_FACTORY) { gFacilityTrainers = gSlateportBattleTentTrainers; gFacilityTrainerMons = gSlateportBattleTentMons; } - else if (tentFacility == TENT_VERDANTURF) + else if (facility == FRONTIER_FACILITY_PALACE) { gFacilityTrainers = gVerdanturfBattleTentTrainers; gFacilityTrainerMons = gVerdanturfBattleTentMons; } - else if (tentFacility == TENT_FALLARBOR) + else if (facility == FRONTIER_FACILITY_ARENA) { gFacilityTrainers = gFallarborBattleTentTrainers; gFacilityTrainerMons = gFallarborBattleTentMons; @@ -3339,19 +3356,19 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) u8 level = SetTentPtrsGetLevel(); u8 fixedIV = 0; u8 bfMonCount; - const u16 *monSets = NULL; + const u16 *monSet = NULL; u32 otID = 0; - u16 monSetId; + u16 monId; - monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; + monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet; bfMonCount = 0; - monSetId = monSets[bfMonCount]; - while (monSetId != 0xFFFF) + monId = monSet[bfMonCount]; + while (monId != 0xFFFF) { bfMonCount++; - monSetId = monSets[bfMonCount]; - if (monSetId == 0xFFFF) + monId = monSet[bfMonCount]; + if (monId == 0xFFFF) break; } @@ -3359,12 +3376,12 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) otID = Random32(); while (i != monCount) { - u16 monSetId = monSets[Random() % bfMonCount]; + u16 monId = monSet[Random() % bfMonCount]; // Ensure this pokemon species isn't a duplicate. for (j = 0; j < i + firstMonId; j++) { - if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monSetId].species) + if (GetMonData(&gEnemyParty[j], MON_DATA_SPECIES, NULL) == gFacilityTrainerMons[monId].species) break; } if (j != i + firstMonId) @@ -3374,7 +3391,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) for (j = 0; j < i + firstMonId; j++) { if (GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) != 0 - && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]) + && GetMonData(&gEnemyParty[j], MON_DATA_HELD_ITEM, NULL) == gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]) break; } if (j != i + firstMonId) @@ -3384,34 +3401,34 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) // because the species and held items were already checked directly above. for (j = 0; j < i; j++) { - if (chosenMonIndices[j] == monSetId) + if (chosenMonIndices[j] == monId) break; } if (j != i) continue; - chosenMonIndices[i] = monSetId; + chosenMonIndices[i] = monId; // Place the chosen pokemon into the trainer's party. CreateMonWithEVSpreadNatureOTID(&gEnemyParty[i + firstMonId], - gFacilityTrainerMons[monSetId].species, + gFacilityTrainerMons[monId].species, level, - gFacilityTrainerMons[monSetId].nature, + gFacilityTrainerMons[monId].nature, fixedIV, - gFacilityTrainerMons[monSetId].evSpread, + gFacilityTrainerMons[monId].evSpread, otID); - friendship = 255; + friendship = MAX_FRIENDSHIP; // Give the chosen pokemon its specified moves. for (j = 0; j < MAX_MON_MOVES; j++) { - SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monSetId].moves[j], j); - if (gFacilityTrainerMons[monSetId].moves[j] == MOVE_FRUSTRATION) + SetMonMoveSlot(&gEnemyParty[i + firstMonId], gFacilityTrainerMons[monId].moves[j], j); + if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION) friendship = 0; // Frustration is more powerful the lower the pokemon's friendship is. } SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_FRIENDSHIP, &friendship); - SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonData(&gEnemyParty[i + firstMonId], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); // The pokemon was successfully added to the trainer's party, so it's safe to move on to // the next party slot. diff --git a/src/cable_club.c b/src/cable_club.c index ab72ee3f2fa7..11920bea9856 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -592,7 +592,7 @@ void TryTradeLinkup(void) sub_80B236C(2, 2); } -void sub_80B2E74(void) +void TryRecordMixLinkup(void) { gSpecialVar_Result = 0; gLinkType = LINKTYPE_0x3311; @@ -784,7 +784,8 @@ static void sub_80B3220(u8 taskId) } } -void sub_80B3254(void) +// Unused +void CableClubSaveGame(void) { SaveGame(); } @@ -1298,10 +1299,10 @@ void sub_80B3AF8(u8 taskId) } } -void sub_80B3BC4(void) +void TrySetBattleTowerLinkType(void) { if (gWirelessCommType == 0) { - gLinkType = LINKTYPE_0x2288; + gLinkType = LINKTYPE_BATTLE_TOWER; } } diff --git a/src/coins.c b/src/coins.c index 1b9656abde68..302817f8dbc9 100644 --- a/src/coins.c +++ b/src/coins.c @@ -48,7 +48,7 @@ void SetCoins(u16 coinAmount) gSaveBlock1Ptr->coins = coinAmount ^ gSaveBlock2Ptr->encryptionKey; } -bool8 GiveCoins(u16 toAdd) +bool8 AddCoins(u16 toAdd) { u16 newAmount; u16 ownedCoins = GetCoins(); @@ -70,7 +70,7 @@ bool8 GiveCoins(u16 toAdd) return TRUE; } -bool8 TakeCoins(u16 toSub) +bool8 RemoveCoins(u16 toSub) { u16 ownedCoins = GetCoins(); if (ownedCoins >= toSub) diff --git a/src/contest.c b/src/contest.c index e538b5ae0783..66dbdb6f1146 100644 --- a/src/contest.c +++ b/src/contest.c @@ -5093,7 +5093,7 @@ static void sub_80DE864(u8 a) gContestResources->field_18->unk4_0 = 1; break; case MOVE_RETURN: - gAnimFriendship = 0xFF; + gAnimFriendship = MAX_FRIENDSHIP; break; case MOVE_FRUSTRATION: gAnimFriendship = 0; diff --git a/src/crt0.s b/src/crt0.s index 9ed67896847b..3ab7117133cd 100644 --- a/src/crt0.s +++ b/src/crt0.s @@ -163,7 +163,7 @@ IntrMain: @ 8000248 IntrMain_FoundIntr: strh r0, [r3, OFFSET_REG_IF - 0x200] bic r2, r2, r0 - ldr r0, =gRfuState + ldr r0, =gSTWIStatus ldr r0, [r0] ldrb r0, [r0, 0xA] mov r1, 0x8 diff --git a/src/data/battle_frontier/battle_frontier_mons.h b/src/data/battle_frontier/battle_frontier_mons.h index 44cfb80363a5..d94d6acaf388 100644 --- a/src/data/battle_frontier/battle_frontier_mons.h +++ b/src/data/battle_frontier/battle_frontier_mons.h @@ -1,6173 +1,6173 @@ -const struct FacilityMon gBattleFrontierMons[] = +const struct FacilityMon gBattleFrontierMons[NUM_FRONTIER_MONS] = { - [0] = { + [FRONTIER_MON_SUNKERN] = { .species = SPECIES_SUNKERN, .moves = {MOVE_MEGA_DRAIN, MOVE_HELPING_HAND, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [1] = { + [FRONTIER_MON_AZURILL] = { .species = SPECIES_AZURILL, .moves = {MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RASH }, - [2] = { + [FRONTIER_MON_CATERPIE] = { .species = SPECIES_CATERPIE, .moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [3] = { + [FRONTIER_MON_WEEDLE] = { .species = SPECIES_WEEDLE, .moves = {MOVE_POISON_STING, MOVE_STRING_SHOT, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [4] = { + [FRONTIER_MON_WURMPLE] = { .species = SPECIES_WURMPLE, .moves = {MOVE_TACKLE, MOVE_STRING_SHOT, MOVE_POISON_STING, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [5] = { + [FRONTIER_MON_RALTS] = { .species = SPECIES_RALTS, .moves = {MOVE_CONFUSION, MOVE_IMPRISON, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [6] = { + [FRONTIER_MON_MAGIKARP] = { .species = SPECIES_MAGIKARP, .moves = {MOVE_FLAIL, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [7] = { + [FRONTIER_MON_FEEBAS] = { .species = SPECIES_FEEBAS, .moves = {MOVE_FLAIL, MOVE_MIRROR_COAT, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [8] = { + [FRONTIER_MON_METAPOD] = { .species = SPECIES_METAPOD, .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [9] = { + [FRONTIER_MON_KAKUNA] = { .species = SPECIES_KAKUNA, .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [10] = { + [FRONTIER_MON_PICHU] = { .species = SPECIES_PICHU, .moves = {MOVE_SWEET_KISS, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_SHOCK_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RASH }, - [11] = { + [FRONTIER_MON_SILCOON] = { .species = SPECIES_SILCOON, .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [12] = { + [FRONTIER_MON_CASCOON] = { .species = SPECIES_CASCOON, .moves = {MOVE_HARDEN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [13] = { + [FRONTIER_MON_IGGLYBUFF] = { .species = SPECIES_IGGLYBUFF, .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_SEISMIC_TOSS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [14] = { + [FRONTIER_MON_WOOPER] = { .species = SPECIES_WOOPER, .moves = {MOVE_YAWN, MOVE_DIG, MOVE_WATER_PULSE, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [15] = { + [FRONTIER_MON_TYROGUE] = { .species = SPECIES_TYROGUE, .moves = {MOVE_MACH_PUNCH, MOVE_PROTECT, MOVE_DOUBLE_TEAM, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [16] = { + [FRONTIER_MON_SENTRET] = { .species = SPECIES_SENTRET, .moves = {MOVE_QUICK_ATTACK, MOVE_FOLLOW_ME, MOVE_HELPING_HAND, MOVE_ASSIST}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [17] = { + [FRONTIER_MON_CLEFFA] = { .species = SPECIES_CLEFFA, .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_ATTRACT, MOVE_METRONOME}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SERIOUS }, - [18] = { + [FRONTIER_MON_SEEDOT] = { .species = SPECIES_SEEDOT, .moves = {MOVE_BULLET_SEED, MOVE_BIDE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [19] = { + [FRONTIER_MON_LOTAD] = { .species = SPECIES_LOTAD, .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_SUNNY_DAY, MOVE_MEGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [20] = { + [FRONTIER_MON_POOCHYENA] = { .species = SPECIES_POOCHYENA, .moves = {MOVE_CRUNCH, MOVE_SWAGGER, MOVE_ROAR, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [21] = { + [FRONTIER_MON_SHEDINJA] = { .species = SPECIES_SHEDINJA, .moves = {MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_SILVER_WIND, MOVE_GRUDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_NAIVE }, - [22] = { + [FRONTIER_MON_MAKUHITA] = { .species = SPECIES_MAKUHITA, .moves = {MOVE_FAKE_OUT, MOVE_SEISMIC_TOSS, MOVE_DETECT, MOVE_WHIRLWIND}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [23] = { + [FRONTIER_MON_WHISMUR] = { .species = SPECIES_WHISMUR, .moves = {MOVE_UPROAR, MOVE_SWAGGER, MOVE_BODY_SLAM, MOVE_SMELLING_SALT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [24] = { + [FRONTIER_MON_ZIGZAGOON] = { .species = SPECIES_ZIGZAGOON, .moves = {MOVE_HEADBUTT, MOVE_PIN_MISSILE, MOVE_SWIFT, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [25] = { + [FRONTIER_MON_ZUBAT] = { .species = SPECIES_ZUBAT, .moves = {MOVE_POISON_FANG, MOVE_WHIRLWIND, MOVE_CONFUSE_RAY, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [26] = { + [FRONTIER_MON_TOGEPI] = { .species = SPECIES_TOGEPI, .moves = {MOVE_RETURN, MOVE_YAWN, MOVE_WISH, MOVE_SWEET_KISS}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [27] = { + [FRONTIER_MON_SPINARAK] = { .species = SPECIES_SPINARAK, .moves = {MOVE_SIGNAL_BEAM, MOVE_NIGHT_SHADE, MOVE_SPIDER_WEB, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [28] = { + [FRONTIER_MON_MARILL] = { .species = SPECIES_MARILL, .moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_LIGHT_SCREEN, MOVE_RETURN}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [29] = { + [FRONTIER_MON_HOPPIP] = { .species = SPECIES_HOPPIP, .moves = {MOVE_MEGA_DRAIN, MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_STUN_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_LAX }, - [30] = { + [FRONTIER_MON_SLUGMA] = { .species = SPECIES_SLUGMA, .moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_YAWN, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [31] = { + [FRONTIER_MON_SWINUB] = { .species = SPECIES_SWINUB, .moves = {MOVE_ICY_WIND, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_GENTLE }, - [32] = { + [FRONTIER_MON_SMEARGLE] = { .species = SPECIES_SMEARGLE, .moves = {MOVE_EXTREME_SPEED, MOVE_FAKE_OUT, MOVE_QUICK_ATTACK, MOVE_MACH_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [33] = { + [FRONTIER_MON_PIDGEY] = { .species = SPECIES_PIDGEY, .moves = {MOVE_GUST, MOVE_SAND_ATTACK, MOVE_WHIRLWIND, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [34] = { + [FRONTIER_MON_RATTATA] = { .species = SPECIES_RATTATA, .moves = {MOVE_HYPER_FANG, MOVE_PURSUIT, MOVE_QUICK_ATTACK, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [35] = { + [FRONTIER_MON_WYNAUT] = { .species = SPECIES_WYNAUT, .moves = {MOVE_ENCORE, MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_JOLLY }, - [36] = { + [FRONTIER_MON_SKITTY] = { .species = SPECIES_SKITTY, .moves = {MOVE_SING, MOVE_ATTRACT, MOVE_CHARM, MOVE_DOUBLE_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [37] = { + [FRONTIER_MON_SPEAROW] = { .species = SPECIES_SPEAROW, .moves = {MOVE_FURY_ATTACK, MOVE_PURSUIT, MOVE_MIRROR_MOVE, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [38] = { + [FRONTIER_MON_HOOTHOOT] = { .species = SPECIES_HOOTHOOT, .moves = {MOVE_CONFUSION, MOVE_HYPNOSIS, MOVE_SUPERSONIC, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [39] = { + [FRONTIER_MON_DIGLETT] = { .species = SPECIES_DIGLETT, .moves = {MOVE_MAGNITUDE, MOVE_SLASH, MOVE_ROCK_TOMB, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAIVE }, - [40] = { + [FRONTIER_MON_LEDYBA] = { .species = SPECIES_LEDYBA, .moves = {MOVE_PSYBEAM, MOVE_AGILITY, MOVE_BATON_PASS, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [41] = { + [FRONTIER_MON_NINCADA] = { .species = SPECIES_NINCADA, .moves = {MOVE_MUD_SLAP, MOVE_DIG, MOVE_TOXIC, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [42] = { + [FRONTIER_MON_SURSKIT] = { .species = SPECIES_SURSKIT, .moves = {MOVE_BUBBLE_BEAM, MOVE_RAIN_DANCE, MOVE_SWEET_SCENT, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [43] = { + [FRONTIER_MON_JIGGLYPUFF] = { .species = SPECIES_JIGGLYPUFF, .moves = {MOVE_SING, MOVE_WISH, MOVE_MIMIC, MOVE_DOUBLE_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [44] = { + [FRONTIER_MON_TAILLOW] = { .species = SPECIES_TAILLOW, .moves = {MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_ENDEAVOR, MOVE_FOCUS_ENERGY}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [45] = { + [FRONTIER_MON_WINGULL] = { .species = SPECIES_WINGULL, .moves = {MOVE_WATER_PULSE, MOVE_FLY, MOVE_QUICK_ATTACK, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [46] = { + [FRONTIER_MON_NIDORAN_M] = { .species = SPECIES_NIDORAN_M, .moves = {MOVE_DOUBLE_KICK, MOVE_POISON_STING, MOVE_DISABLE, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [47] = { + [FRONTIER_MON_NIDORAN_F] = { .species = SPECIES_NIDORAN_F, .moves = {MOVE_CRUNCH, MOVE_DOUBLE_KICK, MOVE_FLATTER, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [48] = { + [FRONTIER_MON_KIRLIA] = { .species = SPECIES_KIRLIA, .moves = {MOVE_CONFUSION, MOVE_WILL_O_WISP, MOVE_FUTURE_SIGHT, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [49] = { + [FRONTIER_MON_MAREEP] = { .species = SPECIES_MAREEP, .moves = {MOVE_SHOCK_WAVE, MOVE_FLASH, MOVE_REFLECT, MOVE_COTTON_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [50] = { + [FRONTIER_MON_MEDITITE] = { .species = SPECIES_MEDITITE, .moves = {MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [51] = { + [FRONTIER_MON_SLAKOTH] = { .species = SPECIES_SLAKOTH, .moves = {MOVE_YAWN, MOVE_SCRATCH, MOVE_ENCORE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [52] = { + [FRONTIER_MON_PARAS] = { .species = SPECIES_PARAS, .moves = {MOVE_SPORE, MOVE_LEECH_LIFE, MOVE_SLASH, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [53] = { + [FRONTIER_MON_EKANS] = { .species = SPECIES_EKANS, .moves = {MOVE_ACID, MOVE_DIG, MOVE_SCREECH, MOVE_TORMENT}, .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [54] = { + [FRONTIER_MON_DITTO] = { .species = SPECIES_DITTO, .moves = {MOVE_TRANSFORM, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_METAL_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [55] = { + [FRONTIER_MON_BARBOACH] = { .species = SPECIES_BARBOACH, .moves = {MOVE_MAGNITUDE, MOVE_WATER_PULSE, MOVE_SPARK, MOVE_FUTURE_SIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_BASHFUL }, - [56] = { + [FRONTIER_MON_MEOWTH] = { .species = SPECIES_MEOWTH, .moves = {MOVE_SLASH, MOVE_BITE, MOVE_SCREECH, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [57] = { + [FRONTIER_MON_PINECO] = { .species = SPECIES_PINECO, .moves = {MOVE_SELF_DESTRUCT, MOVE_TAKE_DOWN, MOVE_REFLECT, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [58] = { + [FRONTIER_MON_TRAPINCH] = { .species = SPECIES_TRAPINCH, .moves = {MOVE_TOXIC, MOVE_DIG, MOVE_SANDSTORM, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SERIOUS }, - [59] = { + [FRONTIER_MON_SPHEAL] = { .species = SPECIES_SPHEAL, .moves = {MOVE_ICE_BALL, MOVE_WATER_PULSE, MOVE_HAIL, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [60] = { + [FRONTIER_MON_HORSEA] = { .species = SPECIES_HORSEA, .moves = {MOVE_WATER_GUN, MOVE_AGILITY, MOVE_ICY_WIND, MOVE_TWISTER}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [61] = { + [FRONTIER_MON_SHROOMISH] = { .species = SPECIES_SHROOMISH, .moves = {MOVE_SPORE, MOVE_BULLET_SEED, MOVE_LEECH_SEED, MOVE_HEADBUTT}, .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [62] = { + [FRONTIER_MON_SHUPPET] = { .species = SPECIES_SHUPPET, .moves = {MOVE_WILL_O_WISP, MOVE_NIGHT_SHADE, MOVE_GRUDGE, MOVE_KNOCK_OFF}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RASH }, - [63] = { + [FRONTIER_MON_DUSKULL] = { .species = SPECIES_DUSKULL, .moves = {MOVE_SKILL_SWAP, MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [64] = { + [FRONTIER_MON_ELECTRIKE] = { .species = SPECIES_ELECTRIKE, .moves = {MOVE_SPARK, MOVE_THUNDER_WAVE, MOVE_ROAR, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [65] = { + [FRONTIER_MON_VULPIX] = { .species = SPECIES_VULPIX, .moves = {MOVE_WILL_O_WISP, MOVE_CONFUSE_RAY, MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [66] = { + [FRONTIER_MON_PIKACHU] = { .species = SPECIES_PIKACHU, .moves = {MOVE_THUNDER_PUNCH, MOVE_THUNDER_WAVE, MOVE_DOUBLE_TEAM, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LIGHT_BALL, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [67] = { + [FRONTIER_MON_SANDSHREW] = { .species = SPECIES_SANDSHREW, .moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [68] = { + [FRONTIER_MON_POLIWAG] = { .species = SPECIES_POLIWAG, .moves = {MOVE_HYPNOSIS, MOVE_ICY_WIND, MOVE_WATER_GUN, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [69] = { + [FRONTIER_MON_BELLSPROUT] = { .species = SPECIES_BELLSPROUT, .moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_STUN_SPORE, MOVE_WRAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_LAX }, - [70] = { + [FRONTIER_MON_GEODUDE] = { .species = SPECIES_GEODUDE, .moves = {MOVE_MAGNITUDE, MOVE_ROCK_BLAST, MOVE_STRENGTH, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [71] = { + [FRONTIER_MON_DRATINI] = { .species = SPECIES_DRATINI, .moves = {MOVE_OUTRAGE, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_WATER_PULSE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [72] = { + [FRONTIER_MON_SNUBBULL] = { .species = SPECIES_SNUBBULL, .moves = {MOVE_BITE, MOVE_CHARM, MOVE_SWAGGER, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [73] = { + [FRONTIER_MON_REMORAID] = { .species = SPECIES_REMORAID, .moves = {MOVE_BUBBLE_BEAM, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [74] = { + [FRONTIER_MON_LARVITAR] = { .species = SPECIES_LARVITAR, .moves = {MOVE_THRASH, MOVE_ROCK_SLIDE, MOVE_DIG, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [75] = { + [FRONTIER_MON_BALTOY] = { .species = SPECIES_BALTOY, .moves = {MOVE_PSYBEAM, MOVE_ANCIENT_POWER, MOVE_LIGHT_SCREEN, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [76] = { + [FRONTIER_MON_SNORUNT] = { .species = SPECIES_SNORUNT, .moves = {MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_LEER, MOVE_BITE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [77] = { + [FRONTIER_MON_BAGON] = { .species = SPECIES_BAGON, .moves = {MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [78] = { + [FRONTIER_MON_BELDUM] = { .species = SPECIES_BELDUM, .moves = {MOVE_TAKE_DOWN, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [79] = { + [FRONTIER_MON_GULPIN] = { .species = SPECIES_GULPIN, .moves = {MOVE_TOXIC, MOVE_YAWN, MOVE_PAIN_SPLIT, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SERIOUS }, - [80] = { + [FRONTIER_MON_VENONAT] = { .species = SPECIES_VENONAT, .moves = {MOVE_PSYBEAM, MOVE_SUPERSONIC, MOVE_STUN_SPORE, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [81] = { + [FRONTIER_MON_MANKEY] = { .species = SPECIES_MANKEY, .moves = {MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SCREECH, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [82] = { + [FRONTIER_MON_MACHOP] = { .species = SPECIES_MACHOP, .moves = {MOVE_SEISMIC_TOSS, MOVE_REVENGE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [83] = { + [FRONTIER_MON_SHELLDER] = { .species = SPECIES_SHELLDER, .moves = {MOVE_ICICLE_SPEAR, MOVE_SUPERSONIC, MOVE_CLAMP, MOVE_WITHDRAW}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [84] = { + [FRONTIER_MON_SMOOCHUM] = { .species = SPECIES_SMOOCHUM, .moves = {MOVE_SWEET_KISS, MOVE_SING, MOVE_MUD_SLAP, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [85] = { + [FRONTIER_MON_NUMEL] = { .species = SPECIES_NUMEL, .moves = {MOVE_EMBER, MOVE_MAGNITUDE, MOVE_ROCK_TOMB, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [86] = { + [FRONTIER_MON_CARVANHA] = { .species = SPECIES_CARVANHA, .moves = {MOVE_BITE, MOVE_SCREECH, MOVE_SCARY_FACE, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [87] = { + [FRONTIER_MON_CORPHISH] = { .species = SPECIES_CORPHISH, .moves = {MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [88] = { + [FRONTIER_MON_CHARMANDER] = { .species = SPECIES_CHARMANDER, .moves = {MOVE_FIRE_SPIN, MOVE_METAL_CLAW, MOVE_SMOKESCREEN, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [89] = { + [FRONTIER_MON_CYNDAQUIL] = { .species = SPECIES_CYNDAQUIL, .moves = {MOVE_EMBER, MOVE_SWIFT, MOVE_QUICK_ATTACK, MOVE_SMOKESCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [90] = { + [FRONTIER_MON_ABRA] = { .species = SPECIES_ABRA, .moves = {MOVE_MIMIC, MOVE_METRONOME, MOVE_FLASH, MOVE_SEISMIC_TOSS}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [91] = { + [FRONTIER_MON_DODUO] = { .species = SPECIES_DODUO, .moves = {MOVE_FURY_ATTACK, MOVE_UPROAR, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [92] = { + [FRONTIER_MON_GASTLY] = { .species = SPECIES_GASTLY, .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_NIGHT_SHADE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [93] = { + [FRONTIER_MON_SWABLU] = { .species = SPECIES_SWABLU, .moves = {MOVE_TAKE_DOWN, MOVE_DREAM_EATER, MOVE_SING, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [94] = { + [FRONTIER_MON_TREECKO] = { .species = SPECIES_TREECKO, .moves = {MOVE_BULLET_SEED, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_LONELY }, - [95] = { + [FRONTIER_MON_TORCHIC] = { .species = SPECIES_TORCHIC, .moves = {MOVE_FIRE_SPIN, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [96] = { + [FRONTIER_MON_MUDKIP] = { .species = SPECIES_MUDKIP, .moves = {MOVE_WHIRLPOOL, MOVE_ENDEAVOR, MOVE_MUD_SPORT, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [97] = { + [FRONTIER_MON_SQUIRTLE] = { .species = SPECIES_SQUIRTLE, .moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_WITHDRAW, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [98] = { + [FRONTIER_MON_TOTODILE] = { .species = SPECIES_TOTODILE, .moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_SCREECH, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [99] = { + [FRONTIER_MON_SLOWPOKE] = { .species = SPECIES_SLOWPOKE, .moves = {MOVE_CONFUSION, MOVE_DISABLE, MOVE_WATER_PULSE, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [100] = { + [FRONTIER_MON_BULBASAUR] = { .species = SPECIES_BULBASAUR, .moves = {MOVE_RAZOR_LEAF, MOVE_SWEET_SCENT, MOVE_SLEEP_POWDER, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [101] = { + [FRONTIER_MON_CHIKORITA] = { .species = SPECIES_CHIKORITA, .moves = {MOVE_SECRET_POWER, MOVE_BULLET_SEED, MOVE_MUD_SLAP, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [102] = { + [FRONTIER_MON_ODDISH] = { .species = SPECIES_ODDISH, .moves = {MOVE_ACID, MOVE_STUN_SPORE, MOVE_SWEET_SCENT, MOVE_MOONLIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [103] = { + [FRONTIER_MON_PSYDUCK] = { .species = SPECIES_PSYDUCK, .moves = {MOVE_CONFUSION, MOVE_FURY_SWIPES, MOVE_AERIAL_ACE, MOVE_DISABLE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HASTY }, - [104] = { + [FRONTIER_MON_CUBONE] = { .species = SPECIES_CUBONE, .moves = {MOVE_BONE_CLUB, MOVE_HEADBUTT, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [105] = { + [FRONTIER_MON_GOLDEEN] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_WATERFALL, MOVE_FURY_ATTACK, MOVE_AGILITY, MOVE_PSYBEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [106] = { + [FRONTIER_MON_NATU] = { .species = SPECIES_NATU, .moves = {MOVE_NIGHT_SHADE, MOVE_FUTURE_SIGHT, MOVE_CONFUSE_RAY, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [107] = { + [FRONTIER_MON_CLEFAIRY] = { .species = SPECIES_CLEFAIRY, .moves = {MOVE_FOLLOW_ME, MOVE_RETURN, MOVE_ENCORE, MOVE_SING}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [108] = { + [FRONTIER_MON_MAGNEMITE] = { .species = SPECIES_MAGNEMITE, .moves = {MOVE_SHOCK_WAVE, MOVE_SUPERSONIC, MOVE_METAL_SOUND, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_GENTLE }, - [109] = { + [FRONTIER_MON_SEEL] = { .species = SPECIES_SEEL, .moves = {MOVE_AURORA_BEAM, MOVE_DIVE, MOVE_BODY_SLAM, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [110] = { + [FRONTIER_MON_GRIMER] = { .species = SPECIES_GRIMER, .moves = {MOVE_SLUDGE, MOVE_ROCK_TOMB, MOVE_ACID_ARMOR, MOVE_MINIMIZE}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [111] = { + [FRONTIER_MON_KRABBY] = { .species = SPECIES_KRABBY, .moves = {MOVE_CRABHAMMER, MOVE_MUD_SHOT, MOVE_FLAIL, MOVE_KNOCK_OFF}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [112] = { + [FRONTIER_MON_EXEGGCUTE] = { .species = SPECIES_EXEGGCUTE, .moves = {MOVE_CONFUSION, MOVE_ANCIENT_POWER, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [113] = { + [FRONTIER_MON_EEVEE] = { .species = SPECIES_EEVEE, .moves = {MOVE_CHARM, MOVE_ATTRACT, MOVE_FLAIL, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [114] = { + [FRONTIER_MON_DROWZEE] = { .species = SPECIES_DROWZEE, .moves = {MOVE_CONFUSION, MOVE_HEADBUTT, MOVE_DISABLE, MOVE_BARRIER}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [115] = { + [FRONTIER_MON_VOLTORB] = { .species = SPECIES_VOLTORB, .moves = {MOVE_SPARK, MOVE_SCREECH, MOVE_ROLLOUT, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [116] = { + [FRONTIER_MON_CHINCHOU] = { .species = SPECIES_CHINCHOU, .moves = {MOVE_SPARK, MOVE_DIVE, MOVE_CONFUSE_RAY, MOVE_TAKE_DOWN}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [117] = { + [FRONTIER_MON_TEDDIURSA] = { .species = SPECIES_TEDDIURSA, .moves = {MOVE_SECRET_POWER, MOVE_FAKE_TEARS, MOVE_FAINT_ATTACK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [118] = { + [FRONTIER_MON_DELIBIRD] = { .species = SPECIES_DELIBIRD, .moves = {MOVE_PRESENT, MOVE_ICE_BALL, MOVE_AERIAL_ACE, MOVE_HAIL}, .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [119] = { + [FRONTIER_MON_HOUNDOUR] = { .species = SPECIES_HOUNDOUR, .moves = {MOVE_CRUNCH, MOVE_EMBER, MOVE_ROAR, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [120] = { + [FRONTIER_MON_PHANPY] = { .species = SPECIES_PHANPY, .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_ROCK_TOMB, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [121] = { + [FRONTIER_MON_SPOINK] = { .species = SPECIES_SPOINK, .moves = {MOVE_PSYWAVE, MOVE_BOUNCE, MOVE_MAGIC_COAT, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [122] = { + [FRONTIER_MON_ARON] = { .species = SPECIES_ARON, .moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_METAL_SOUND, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [123] = { + [FRONTIER_MON_LUVDISC] = { .species = SPECIES_LUVDISC, .moves = {MOVE_SWEET_KISS, MOVE_ATTRACT, MOVE_DIVE, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [124] = { + [FRONTIER_MON_TENTACOOL] = { .species = SPECIES_TENTACOOL, .moves = {MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER, MOVE_WRAP}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [125] = { + [FRONTIER_MON_CACNEA] = { .species = SPECIES_CACNEA, .moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_COTTON_SPORE, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [126] = { + [FRONTIER_MON_UNOWN] = { .species = SPECIES_UNOWN, .moves = {MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [127] = { + [FRONTIER_MON_KOFFING] = { .species = SPECIES_KOFFING, .moves = {MOVE_SLUDGE, MOVE_SMOKESCREEN, MOVE_TORMENT, MOVE_HAZE}, .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [128] = { + [FRONTIER_MON_STARYU] = { .species = SPECIES_STARYU, .moves = {MOVE_BUBBLE_BEAM, MOVE_MINIMIZE, MOVE_SWIFT, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [129] = { + [FRONTIER_MON_SKIPLOOM] = { .species = SPECIES_SKIPLOOM, .moves = {MOVE_MEGA_DRAIN, MOVE_CONFUSION, MOVE_COTTON_SPORE, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [130] = { + [FRONTIER_MON_NUZLEAF] = { .species = SPECIES_NUZLEAF, .moves = {MOVE_EXTRASENSORY, MOVE_FAKE_OUT, MOVE_RAZOR_WIND, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [131] = { + [FRONTIER_MON_LOMBRE] = { .species = SPECIES_LOMBRE, .moves = {MOVE_WATER_PULSE, MOVE_FAKE_OUT, MOVE_BRICK_BREAK, MOVE_ABSORB}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [132] = { + [FRONTIER_MON_VIBRAVA] = { .species = SPECIES_VIBRAVA, .moves = {MOVE_DRAGON_BREATH, MOVE_DIG, MOVE_SCREECH, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [133] = { + [FRONTIER_MON_RHYHORN] = { .species = SPECIES_RHYHORN, .moves = {MOVE_ROCK_BLAST, MOVE_DIG, MOVE_SCARY_FACE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [134] = { + [FRONTIER_MON_CLAMPERL] = { .species = SPECIES_CLAMPERL, .moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_IRON_DEFENSE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_DEEP_SEA_SCALE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [135] = { + [FRONTIER_MON_PIDGEOTTO] = { .species = SPECIES_PIDGEOTTO, .moves = {MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK, MOVE_FEATHER_DANCE, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [136] = { + [FRONTIER_MON_GROWLITHE] = { .species = SPECIES_GROWLITHE, .moves = {MOVE_FLAME_WHEEL, MOVE_BITE, MOVE_ROAR, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [137] = { + [FRONTIER_MON_FARFETCHD] = { .species = SPECIES_FARFETCHD, .moves = {MOVE_SLASH, MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_STICK, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [138] = { + [FRONTIER_MON_OMANYTE] = { .species = SPECIES_OMANYTE, .moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ANCIENT_POWER, MOVE_TICKLE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [139] = { + [FRONTIER_MON_KABUTO] = { .species = SPECIES_KABUTO, .moves = {MOVE_MEGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_SAND_ATTACK, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [140] = { + [FRONTIER_MON_LILEEP] = { .species = SPECIES_LILEEP, .moves = {MOVE_ANCIENT_POWER, MOVE_ACID, MOVE_INGRAIN, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [141] = { + [FRONTIER_MON_ANORITH] = { .species = SPECIES_ANORITH, .moves = {MOVE_METAL_CLAW, MOVE_FURY_CUTTER, MOVE_ANCIENT_POWER, MOVE_WATER_GUN}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [142] = { + [FRONTIER_MON_AIPOM] = { .species = SPECIES_AIPOM, .moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_BATON_PASS, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [143] = { + [FRONTIER_MON_ELEKID] = { .species = SPECIES_ELEKID, .moves = {MOVE_THUNDER_PUNCH, MOVE_QUICK_ATTACK, MOVE_SWIFT, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAIVE }, - [144] = { + [FRONTIER_MON_LOUDRED] = { .species = SPECIES_LOUDRED, .moves = {MOVE_STOMP, MOVE_HOWL, MOVE_ASTONISH, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [145] = { + [FRONTIER_MON_SPINDA] = { .species = SPECIES_SPINDA, .moves = {MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [146] = { + [FRONTIER_MON_NIDORINA] = { .species = SPECIES_NIDORINA, .moves = {MOVE_DOUBLE_KICK, MOVE_BITE, MOVE_AERIAL_ACE, MOVE_FLATTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [147] = { + [FRONTIER_MON_NIDORINO] = { .species = SPECIES_NIDORINO, .moves = {MOVE_DOUBLE_KICK, MOVE_WATER_PULSE, MOVE_MUD_SLAP, MOVE_FLATTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [148] = { + [FRONTIER_MON_FLAAFFY] = { .species = SPECIES_FLAAFFY, .moves = {MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_COTTON_SPORE, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MILD }, - [149] = { + [FRONTIER_MON_MAGBY] = { .species = SPECIES_MAGBY, .moves = {MOVE_FIRE_PUNCH, MOVE_SMOKESCREEN, MOVE_CONFUSE_RAY, MOVE_SMOG}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [150] = { + [FRONTIER_MON_NOSEPASS] = { .species = SPECIES_NOSEPASS, .moves = {MOVE_ROCK_SLIDE, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [151] = { + [FRONTIER_MON_CORSOLA] = { .species = SPECIES_CORSOLA, .moves = {MOVE_BUBBLE_BEAM, MOVE_MIRROR_COAT, MOVE_ATTRACT, MOVE_ANCIENT_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [152] = { + [FRONTIER_MON_MAWILE] = { .species = SPECIES_MAWILE, .moves = {MOVE_CRUNCH, MOVE_FAKE_TEARS, MOVE_IRON_DEFENSE, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [153] = { + [FRONTIER_MON_BUTTERFREE] = { .species = SPECIES_BUTTERFREE, .moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_WHIRLWIND}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [154] = { + [FRONTIER_MON_BEEDRILL] = { .species = SPECIES_BEEDRILL, .moves = {MOVE_TWINEEDLE, MOVE_PURSUIT, MOVE_ENDEAVOR, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [155] = { + [FRONTIER_MON_POLIWHIRL] = { .species = SPECIES_POLIWHIRL, .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_SLAP, MOVE_ICY_WIND, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [156] = { + [FRONTIER_MON_ONIX] = { .species = SPECIES_ONIX, .moves = {MOVE_ROCK_SLIDE, MOVE_BIND, MOVE_DRAGON_BREATH, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [157] = { + [FRONTIER_MON_BEAUTIFLY] = { .species = SPECIES_BEAUTIFLY, .moves = {MOVE_SILVER_WIND, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_WHIRLWIND}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [158] = { + [FRONTIER_MON_DUSTOX] = { .species = SPECIES_DUSTOX, .moves = {MOVE_SILVER_WIND, MOVE_TOXIC, MOVE_PSYBEAM, MOVE_WHIRLWIND}, .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [159] = { + [FRONTIER_MON_LEDIAN] = { .species = SPECIES_LEDIAN, .moves = {MOVE_COMET_PUNCH, MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_BASHFUL }, - [160] = { + [FRONTIER_MON_ARIADOS] = { .species = SPECIES_ARIADOS, .moves = {MOVE_SIGNAL_BEAM, MOVE_SPIDER_WEB, MOVE_NIGHT_SHADE, MOVE_TOXIC}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SERIOUS }, - [161] = { + [FRONTIER_MON_YANMA] = { .species = SPECIES_YANMA, .moves = {MOVE_SIGNAL_BEAM, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_DETECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RELAXED }, - [162] = { + [FRONTIER_MON_DELCATTY_1] = { .species = SPECIES_DELCATTY, .moves = {MOVE_SECRET_POWER, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_HEAL_BELL}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [163] = { + [FRONTIER_MON_SABLEYE_1] = { .species = SPECIES_SABLEYE, .moves = {MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_KNOCK_OFF, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [164] = { + [FRONTIER_MON_LICKITUNG_1] = { .species = SPECIES_LICKITUNG, .moves = {MOVE_SLAM, MOVE_BRICK_BREAK, MOVE_LICK, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [165] = { + [FRONTIER_MON_WEEPINBELL_1] = { .species = SPECIES_WEEPINBELL, .moves = {MOVE_RAZOR_LEAF, MOVE_ACID, MOVE_WRAP, MOVE_SWEET_SCENT}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [166] = { + [FRONTIER_MON_GRAVELER_1] = { .species = SPECIES_GRAVELER, .moves = {MOVE_MAGNITUDE, MOVE_ROCK_THROW, MOVE_DEFENSE_CURL, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [167] = { + [FRONTIER_MON_GLOOM_1] = { .species = SPECIES_GLOOM, .moves = {MOVE_PETAL_DANCE, MOVE_ACID, MOVE_STUN_SPORE, MOVE_MOONLIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [168] = { + [FRONTIER_MON_PORYGON_1] = { .species = SPECIES_PORYGON, .moves = {MOVE_PSYBEAM, MOVE_ICY_WIND, MOVE_RECYCLE, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [169] = { + [FRONTIER_MON_KADABRA_1] = { .species = SPECIES_KADABRA, .moves = {MOVE_CONFUSION, MOVE_ROLE_PLAY, MOVE_FUTURE_SIGHT, MOVE_DISABLE}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [170] = { + [FRONTIER_MON_WAILMER_1] = { .species = SPECIES_WAILMER, .moves = {MOVE_WHIRLPOOL, MOVE_ROAR, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [171] = { + [FRONTIER_MON_ROSELIA_1] = { .species = SPECIES_ROSELIA, .moves = {MOVE_MAGICAL_LEAF, MOVE_TOXIC, MOVE_GRASS_WHISTLE, MOVE_COTTON_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [172] = { + [FRONTIER_MON_VOLBEAT_1] = { .species = SPECIES_VOLBEAT, .moves = {MOVE_SILVER_WIND, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [173] = { + [FRONTIER_MON_ILLUMISE_1] = { .species = SPECIES_ILLUMISE, .moves = {MOVE_SILVER_WIND, MOVE_WISH, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [174] = { + [FRONTIER_MON_IVYSAUR_1] = { .species = SPECIES_IVYSAUR, .moves = {MOVE_PETAL_DANCE, MOVE_GROWTH, MOVE_SWEET_SCENT, MOVE_FURY_CUTTER}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [175] = { + [FRONTIER_MON_CHARMELEON_1] = { .species = SPECIES_CHARMELEON, .moves = {MOVE_SLASH, MOVE_FIRE_SPIN, MOVE_SWORDS_DANCE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [176] = { + [FRONTIER_MON_WARTORTLE_1] = { .species = SPECIES_WARTORTLE, .moves = {MOVE_WATER_PULSE, MOVE_BITE, MOVE_MUD_SLAP, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [177] = { + [FRONTIER_MON_PARASECT_1] = { .species = SPECIES_PARASECT, .moves = {MOVE_SLASH, MOVE_PSYBEAM, MOVE_STUN_SPORE, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RASH }, - [178] = { + [FRONTIER_MON_MACHOKE_1] = { .species = SPECIES_MACHOKE, .moves = {MOVE_LOW_KICK, MOVE_ROCK_TOMB, MOVE_FORESIGHT, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [179] = { + [FRONTIER_MON_HAUNTER_1] = { .species = SPECIES_HAUNTER, .moves = {MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_SPITE, MOVE_GRUDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RASH }, - [180] = { + [FRONTIER_MON_BAYLEEF_1] = { .species = SPECIES_BAYLEEF, .moves = {MOVE_RAZOR_LEAF, MOVE_TOXIC, MOVE_SAFEGUARD, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [181] = { + [FRONTIER_MON_QUILAVA_1] = { .species = SPECIES_QUILAVA, .moves = {MOVE_FLAME_WHEEL, MOVE_FURY_SWIPES, MOVE_SWIFT, MOVE_SMOKESCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [182] = { + [FRONTIER_MON_CROCONAW_1] = { .species = SPECIES_CROCONAW, .moves = {MOVE_SLASH, MOVE_WATER_PULSE, MOVE_BITE, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [183] = { + [FRONTIER_MON_TOGETIC_1] = { .species = SPECIES_TOGETIC, .moves = {MOVE_AERIAL_ACE, MOVE_MAGICAL_LEAF, MOVE_WISH, MOVE_FOLLOW_ME}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [184] = { + [FRONTIER_MON_MURKROW_1] = { .species = SPECIES_MURKROW, .moves = {MOVE_FAINT_ATTACK, MOVE_FLY, MOVE_TORMENT, MOVE_TAUNT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [185] = { + [FRONTIER_MON_WOBBUFFET_1] = { .species = SPECIES_WOBBUFFET, .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_CHARM, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [186] = { + [FRONTIER_MON_PLUSLE_1] = { .species = SPECIES_PLUSLE, .moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_QUICK_ATTACK, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [187] = { + [FRONTIER_MON_MINUN_1] = { .species = SPECIES_MINUN, .moves = {MOVE_SPARK, MOVE_CHARM, MOVE_ENCORE, MOVE_HELPING_HAND}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [188] = { + [FRONTIER_MON_GROVYLE_1] = { .species = SPECIES_GROVYLE, .moves = {MOVE_FURY_CUTTER, MOVE_ENDEAVOR, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [189] = { + [FRONTIER_MON_COMBUSKEN_1] = { .species = SPECIES_COMBUSKEN, .moves = {MOVE_EMBER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [190] = { + [FRONTIER_MON_MARSHTOMP_1] = { .species = SPECIES_MARSHTOMP, .moves = {MOVE_MUD_SHOT, MOVE_WATER_GUN, MOVE_ROCK_TOMB, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [191] = { + [FRONTIER_MON_PONYTA_1] = { .species = SPECIES_PONYTA, .moves = {MOVE_FIRE_SPIN, MOVE_BOUNCE, MOVE_QUICK_ATTACK, MOVE_TAIL_WHIP}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [192] = { + [FRONTIER_MON_AZUMARILL_1] = { .species = SPECIES_AZUMARILL, .moves = {MOVE_BUBBLE_BEAM, MOVE_FACADE, MOVE_DIG, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [193] = { + [FRONTIER_MON_SUDOWOODO_1] = { .species = SPECIES_SUDOWOODO, .moves = {MOVE_ROCK_SLIDE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM, MOVE_BLOCK}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [194] = { + [FRONTIER_MON_MAGCARGO_1] = { .species = SPECIES_MAGCARGO, .moves = {MOVE_ROCK_SLIDE, MOVE_EMBER, MOVE_ACID_ARMOR, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [195] = { + [FRONTIER_MON_PUPITAR_1] = { .species = SPECIES_PUPITAR, .moves = {MOVE_DIG, MOVE_BITE, MOVE_SCARY_FACE, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [196] = { + [FRONTIER_MON_SEALEO_1] = { .species = SPECIES_SEALEO, .moves = {MOVE_ICE_BALL, MOVE_HAIL, MOVE_SNORE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [197] = { + [FRONTIER_MON_RATICATE_1] = { .species = SPECIES_RATICATE, .moves = {MOVE_ENDEAVOR, MOVE_PURSUIT, MOVE_SCARY_FACE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAIVE }, - [198] = { + [FRONTIER_MON_MASQUERAIN_1] = { .species = SPECIES_MASQUERAIN, .moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_ICY_WIND, MOVE_STUN_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_RELAXED }, - [199] = { + [FRONTIER_MON_FURRET_1] = { .species = SPECIES_FURRET, .moves = {MOVE_SLAM, MOVE_PROTECT, MOVE_HELPING_HAND, MOVE_FOLLOW_ME}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_SERIOUS }, - [200] = { + [FRONTIER_MON_DUNSPARCE_1] = { .species = SPECIES_DUNSPARCE, .moves = {MOVE_HEADBUTT, MOVE_GLARE, MOVE_DEFENSE_CURL, MOVE_ROLLOUT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [201] = { + [FRONTIER_MON_DRAGONAIR_1] = { .species = SPECIES_DRAGONAIR, .moves = {MOVE_DRAGON_BREATH, MOVE_LEER, MOVE_WRAP, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [202] = { + [FRONTIER_MON_MIGHTYENA_1] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_BITE, MOVE_POISON_FANG, MOVE_TAUNT, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_TIMID }, - [203] = { + [FRONTIER_MON_LINOONE_1] = { .species = SPECIES_LINOONE, .moves = {MOVE_SECRET_POWER, MOVE_SAND_ATTACK, MOVE_COVET, MOVE_TICKLE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [204] = { + [FRONTIER_MON_CASTFORM_1] = { .species = SPECIES_CASTFORM, .moves = {MOVE_EMBER, MOVE_WATER_PULSE, MOVE_SHOCK_WAVE, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HASTY }, - [205] = { + [FRONTIER_MON_SHELGON_1] = { .species = SPECIES_SHELGON, .moves = {MOVE_HEADBUTT, MOVE_DRAGON_BREATH, MOVE_PROTECT, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [206] = { + [FRONTIER_MON_METANG_1] = { .species = SPECIES_METANG, .moves = {MOVE_METAL_CLAW, MOVE_CONFUSION, MOVE_PURSUIT, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [207] = { + [FRONTIER_MON_WIGGLYTUFF_1] = { .species = SPECIES_WIGGLYTUFF, .moves = {MOVE_SING, MOVE_DISABLE, MOVE_WISH, MOVE_SECRET_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RELAXED }, - [208] = { + [FRONTIER_MON_SUNFLORA_1] = { .species = SPECIES_SUNFLORA, .moves = {MOVE_PETAL_DANCE, MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [209] = { + [FRONTIER_MON_CHIMECHO_1] = { .species = SPECIES_CHIMECHO, .moves = {MOVE_PSYWAVE, MOVE_TAKE_DOWN, MOVE_HEAL_BELL, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [210] = { + [FRONTIER_MON_GLIGAR_1] = { .species = SPECIES_GLIGAR, .moves = {MOVE_METAL_CLAW, MOVE_DIG, MOVE_AERIAL_ACE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HASTY }, - [211] = { + [FRONTIER_MON_QWILFISH_1] = { .species = SPECIES_QWILFISH, .moves = {MOVE_BUBBLE_BEAM, MOVE_PIN_MISSILE, MOVE_SPIKES, MOVE_MINIMIZE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_IMPISH }, - [212] = { + [FRONTIER_MON_SNEASEL_1] = { .species = SPECIES_SNEASEL, .moves = {MOVE_FAINT_ATTACK, MOVE_FAKE_OUT, MOVE_ICY_WIND, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [213] = { + [FRONTIER_MON_PELIPPER_1] = { .species = SPECIES_PELIPPER, .moves = {MOVE_WATER_PULSE, MOVE_AERIAL_ACE, MOVE_STOCKPILE, MOVE_SWALLOW}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [214] = { + [FRONTIER_MON_SWELLOW_1] = { .species = SPECIES_SWELLOW, .moves = {MOVE_FLY, MOVE_ENDEAVOR, MOVE_FACADE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [215] = { + [FRONTIER_MON_LAIRON_1] = { .species = SPECIES_LAIRON, .moves = {MOVE_METAL_CLAW, MOVE_ROCK_TOMB, MOVE_IRON_DEFENSE, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [216] = { + [FRONTIER_MON_TANGELA_1] = { .species = SPECIES_TANGELA, .moves = {MOVE_MEGA_DRAIN, MOVE_SLAM, MOVE_TOXIC, MOVE_BIND}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [217] = { + [FRONTIER_MON_ARBOK_1] = { .species = SPECIES_ARBOK, .moves = {MOVE_POISON_FANG, MOVE_DIG, MOVE_BITE, MOVE_GLARE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [218] = { + [FRONTIER_MON_PERSIAN_1] = { .species = SPECIES_PERSIAN, .moves = {MOVE_FAKE_OUT, MOVE_SLASH, MOVE_TORMENT, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [219] = { + [FRONTIER_MON_SEADRA_1] = { .species = SPECIES_SEADRA, .moves = {MOVE_AURORA_BEAM, MOVE_SMOKESCREEN, MOVE_WATER_GUN, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [220] = { + [FRONTIER_MON_KECLEON_1] = { .species = SPECIES_KECLEON, .moves = {MOVE_SECRET_POWER, MOVE_PSYBEAM, MOVE_MAGIC_COAT, MOVE_SEISMIC_TOSS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAIVE }, - [221] = { + [FRONTIER_MON_VIGOROTH_1] = { .species = SPECIES_VIGOROTH, .moves = {MOVE_SLASH, MOVE_COUNTER, MOVE_ENCORE, MOVE_UPROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [222] = { + [FRONTIER_MON_LUNATONE_1] = { .species = SPECIES_LUNATONE, .moves = {MOVE_CONFUSION, MOVE_COSMIC_POWER, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [223] = { + [FRONTIER_MON_SOLROCK_1] = { .species = SPECIES_SOLROCK, .moves = {MOVE_CONFUSION, MOVE_FIRE_SPIN, MOVE_LIGHT_SCREEN, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [224] = { + [FRONTIER_MON_NOCTOWL_1] = { .species = SPECIES_NOCTOWL, .moves = {MOVE_CONFUSION, MOVE_AERIAL_ACE, MOVE_FAINT_ATTACK, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [225] = { + [FRONTIER_MON_SANDSLASH_1] = { .species = SPECIES_SANDSLASH, .moves = {MOVE_CRUSH_CLAW, MOVE_ROCK_SLIDE, MOVE_SWIFT, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [226] = { + [FRONTIER_MON_VENOMOTH_1] = { .species = SPECIES_VENOMOTH, .moves = {MOVE_SILVER_WIND, MOVE_PSYBEAM, MOVE_SLEEP_POWDER, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [227] = { + [FRONTIER_MON_CHANSEY_1] = { .species = SPECIES_CHANSEY, .moves = {MOVE_METRONOME, MOVE_REFRESH, MOVE_DEFENSE_CURL, MOVE_MINIMIZE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RELAXED }, - [228] = { + [FRONTIER_MON_SEAKING_1] = { .species = SPECIES_SEAKING, .moves = {MOVE_WATER_PULSE, MOVE_PSYBEAM, MOVE_SWIFT, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [229] = { + [FRONTIER_MON_JUMPLUFF_1] = { .species = SPECIES_JUMPLUFF, .moves = {MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [230] = { + [FRONTIER_MON_PILOSWINE_1] = { .species = SPECIES_PILOSWINE, .moves = {MOVE_DIG, MOVE_ANCIENT_POWER, MOVE_HAIL, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [231] = { + [FRONTIER_MON_GOLBAT_1] = { .species = SPECIES_GOLBAT, .moves = {MOVE_AIR_CUTTER, MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [232] = { + [FRONTIER_MON_PRIMEAPE_1] = { .species = SPECIES_PRIMEAPE, .moves = {MOVE_KARATE_CHOP, MOVE_COUNTER, MOVE_SWAGGER, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [233] = { + [FRONTIER_MON_HITMONLEE_1] = { .species = SPECIES_HITMONLEE, .moves = {MOVE_ROLLING_KICK, MOVE_BRICK_BREAK, MOVE_FOCUS_ENERGY, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [234] = { + [FRONTIER_MON_HITMONCHAN_1] = { .species = SPECIES_HITMONCHAN, .moves = {MOVE_MACH_PUNCH, MOVE_SKY_UPPERCUT, MOVE_DETECT, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [235] = { + [FRONTIER_MON_GIRAFARIG_1] = { .species = SPECIES_GIRAFARIG, .moves = {MOVE_PSYBEAM, MOVE_STOMP, MOVE_WISH, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [236] = { + [FRONTIER_MON_HITMONTOP_1] = { .species = SPECIES_HITMONTOP, .moves = {MOVE_TRIPLE_KICK, MOVE_DIG, MOVE_MACH_PUNCH, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [237] = { + [FRONTIER_MON_BANETTE_1] = { .species = SPECIES_BANETTE, .moves = {MOVE_NIGHT_SHADE, MOVE_WILL_O_WISP, MOVE_SPITE, MOVE_KNOCK_OFF}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [238] = { + [FRONTIER_MON_NINJASK_1] = { .species = SPECIES_NINJASK, .moves = {MOVE_BATON_PASS, MOVE_SWORDS_DANCE, MOVE_ENDURE, MOVE_DIG}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MILD }, - [239] = { + [FRONTIER_MON_SEVIPER_1] = { .species = SPECIES_SEVIPER, .moves = {MOVE_POISON_TAIL, MOVE_BITE, MOVE_GLARE, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [240] = { + [FRONTIER_MON_ZANGOOSE_1] = { .species = SPECIES_ZANGOOSE, .moves = {MOVE_SLASH, MOVE_DOUBLE_KICK, MOVE_ROAR, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [241] = { + [FRONTIER_MON_CAMERUPT_1] = { .species = SPECIES_CAMERUPT, .moves = {MOVE_MAGNITUDE, MOVE_PROTECT, MOVE_SANDSTORM, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [242] = { + [FRONTIER_MON_SHARPEDO_1] = { .species = SPECIES_SHARPEDO, .moves = {MOVE_SLASH, MOVE_BITE, MOVE_WATER_PULSE, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [243] = { + [FRONTIER_MON_TROPIUS_1] = { .species = SPECIES_TROPIUS, .moves = {MOVE_MAGICAL_LEAF, MOVE_WHIRLWIND, MOVE_AERIAL_ACE, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [244] = { + [FRONTIER_MON_MAGNETON_1] = { .species = SPECIES_MAGNETON, .moves = {MOVE_SHOCK_WAVE, MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_LONELY }, - [245] = { + [FRONTIER_MON_MANTINE_1] = { .species = SPECIES_MANTINE, .moves = {MOVE_BUBBLE_BEAM, MOVE_AERIAL_ACE, MOVE_RAIN_DANCE, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [246] = { + [FRONTIER_MON_STANTLER_1] = { .species = SPECIES_STANTLER, .moves = {MOVE_EXTRASENSORY, MOVE_CONFUSE_RAY, MOVE_STOMP, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [247] = { + [FRONTIER_MON_ABSOL_1] = { .species = SPECIES_ABSOL, .moves = {MOVE_BITE, MOVE_RAZOR_WIND, MOVE_FUTURE_SIGHT, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [248] = { + [FRONTIER_MON_SWALOT_1] = { .species = SPECIES_SWALOT, .moves = {MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_SLUDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIRKY }, - [249] = { + [FRONTIER_MON_CRAWDAUNT_1] = { .species = SPECIES_CRAWDAUNT, .moves = {MOVE_BUBBLE_BEAM, MOVE_VICE_GRIP, MOVE_KNOCK_OFF, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [250] = { + [FRONTIER_MON_PIDGEOT_1] = { .species = SPECIES_PIDGEOT, .moves = {MOVE_AERIAL_ACE, MOVE_FEATHER_DANCE, MOVE_MUD_SLAP, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [251] = { + [FRONTIER_MON_GRUMPIG_1] = { .species = SPECIES_GRUMPIG, .moves = {MOVE_PSYBEAM, MOVE_CONFUSE_RAY, MOVE_FUTURE_SIGHT, MOVE_MAGIC_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [252] = { + [FRONTIER_MON_TORKOAL_1] = { .species = SPECIES_TORKOAL, .moves = {MOVE_EMBER, MOVE_FIRE_SPIN, MOVE_SMOKESCREEN, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [253] = { + [FRONTIER_MON_KINGLER_1] = { .species = SPECIES_KINGLER, .moves = {MOVE_CRABHAMMER, MOVE_METAL_CLAW, MOVE_MUD_SHOT, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [254] = { + [FRONTIER_MON_CACTURNE_1] = { .species = SPECIES_CACTURNE, .moves = {MOVE_NEEDLE_ARM, MOVE_FAINT_ATTACK, MOVE_ACID, MOVE_MEGA_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_HASTY }, - [255] = { + [FRONTIER_MON_BELLOSSOM_1] = { .species = SPECIES_BELLOSSOM, .moves = {MOVE_PETAL_DANCE, MOVE_SAFEGUARD, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [256] = { + [FRONTIER_MON_OCTILLERY_1] = { .species = SPECIES_OCTILLERY, .moves = {MOVE_OCTAZOOKA, MOVE_AURORA_BEAM, MOVE_PSYBEAM, MOVE_ROCK_BLAST}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [257] = { + [FRONTIER_MON_HUNTAIL_1] = { .species = SPECIES_HUNTAIL, .moves = {MOVE_WHIRLPOOL, MOVE_SCARY_FACE, MOVE_MUD_SLAP, MOVE_BITE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [258] = { + [FRONTIER_MON_GOREBYSS_1] = { .species = SPECIES_GOREBYSS, .moves = {MOVE_WHIRLPOOL, MOVE_AMNESIA, MOVE_ICY_WIND, MOVE_CONFUSION}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [259] = { + [FRONTIER_MON_RELICANTH_1] = { .species = SPECIES_RELICANTH, .moves = {MOVE_ANCIENT_POWER, MOVE_WATER_PULSE, MOVE_HARDEN, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [260] = { + [FRONTIER_MON_OMASTAR_1] = { .species = SPECIES_OMASTAR, .moves = {MOVE_BUBBLE_BEAM, MOVE_SPIKE_CANNON, MOVE_TICKLE, MOVE_ANCIENT_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [261] = { + [FRONTIER_MON_KABUTOPS_1] = { .species = SPECIES_KABUTOPS, .moves = {MOVE_SLASH, MOVE_DIG, MOVE_FURY_CUTTER, MOVE_KNOCK_OFF}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [262] = { + [FRONTIER_MON_POLIWRATH_1] = { .species = SPECIES_POLIWRATH, .moves = {MOVE_SUBMISSION, MOVE_DIG, MOVE_ROCK_TOMB, MOVE_BUBBLE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [263] = { + [FRONTIER_MON_SCYTHER_1] = { .species = SPECIES_SCYTHER, .moves = {MOVE_FURY_CUTTER, MOVE_AERIAL_ACE, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [264] = { + [FRONTIER_MON_PINSIR_1] = { .species = SPECIES_PINSIR, .moves = {MOVE_SUBMISSION, MOVE_FOCUS_ENERGY, MOVE_SWORDS_DANCE, MOVE_REVENGE}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [265] = { + [FRONTIER_MON_POLITOED_1] = { .species = SPECIES_POLITOED, .moves = {MOVE_DIVE, MOVE_DIG, MOVE_HYPNOSIS, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RELAXED }, - [266] = { + [FRONTIER_MON_CLOYSTER_1] = { .species = SPECIES_CLOYSTER, .moves = {MOVE_AURORA_BEAM, MOVE_SPIKE_CANNON, MOVE_SUPERSONIC, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [267] = { + [FRONTIER_MON_DELCATTY_2] = { .species = SPECIES_DELCATTY, .moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_THUNDERBOLT, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [268] = { + [FRONTIER_MON_SABLEYE_2] = { .species = SPECIES_SABLEYE, .moves = {MOVE_SHADOW_BALL, MOVE_FAINT_ATTACK, MOVE_CONFUSE_RAY, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [269] = { + [FRONTIER_MON_LICKITUNG_2] = { .species = SPECIES_LICKITUNG, .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [270] = { + [FRONTIER_MON_WEEPINBELL_2] = { .species = SPECIES_WEEPINBELL, .moves = {MOVE_SLUDGE_BOMB, MOVE_RAZOR_LEAF, MOVE_SLEEP_POWDER, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIRKY }, - [271] = { + [FRONTIER_MON_GRAVELER_2] = { .species = SPECIES_GRAVELER, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [272] = { + [FRONTIER_MON_GLOOM_2] = { .species = SPECIES_GLOOM, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SLUDGE_BOMB, MOVE_MOONLIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [273] = { + [FRONTIER_MON_PORYGON_2] = { .species = SPECIES_PORYGON, .moves = {MOVE_TRI_ATTACK, MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [274] = { + [FRONTIER_MON_KADABRA_2] = { .species = SPECIES_KADABRA, .moves = {MOVE_PSYCHIC, MOVE_THUNDER_WAVE, MOVE_REFLECT, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [275] = { + [FRONTIER_MON_WAILMER_2] = { .species = SPECIES_WAILMER, .moves = {MOVE_WATER_SPOUT, MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [276] = { + [FRONTIER_MON_ROSELIA_2] = { .species = SPECIES_ROSELIA, .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_GRASS_WHISTLE, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [277] = { + [FRONTIER_MON_VOLBEAT_2] = { .species = SPECIES_VOLBEAT, .moves = {MOVE_SIGNAL_BEAM, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_TAIL_GLOW}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [278] = { + [FRONTIER_MON_ILLUMISE_2] = { .species = SPECIES_ILLUMISE, .moves = {MOVE_SILVER_WIND, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [279] = { + [FRONTIER_MON_IVYSAUR_2] = { .species = SPECIES_IVYSAUR, .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_LEECH_SEED}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [280] = { + [FRONTIER_MON_CHARMELEON_2] = { .species = SPECIES_CHARMELEON, .moves = {MOVE_FLAMETHROWER, MOVE_SLASH, MOVE_ANCIENT_POWER, MOVE_DRAGON_RAGE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [281] = { + [FRONTIER_MON_WARTORTLE_2] = { .species = SPECIES_WARTORTLE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAPID_SPIN, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [282] = { + [FRONTIER_MON_PARASECT_2] = { .species = SPECIES_PARASECT, .moves = {MOVE_SPORE, MOVE_GIGA_DRAIN, MOVE_DIG, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [283] = { + [FRONTIER_MON_MACHOKE_2] = { .species = SPECIES_MACHOKE, .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FORESIGHT, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [284] = { + [FRONTIER_MON_HAUNTER_2] = { .species = SPECIES_HAUNTER, .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [285] = { + [FRONTIER_MON_BAYLEEF_2] = { .species = SPECIES_BAYLEEF, .moves = {MOVE_GIGA_DRAIN, MOVE_BODY_SLAM, MOVE_GRASS_WHISTLE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [286] = { + [FRONTIER_MON_QUILAVA_2] = { .species = SPECIES_QUILAVA, .moves = {MOVE_FLAMETHROWER, MOVE_CRUSH_CLAW, MOVE_BODY_SLAM, MOVE_SMOKESCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [287] = { + [FRONTIER_MON_CROCONAW_2] = { .species = SPECIES_CROCONAW, .moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_DIG}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [288] = { + [FRONTIER_MON_TOGETIC_2] = { .species = SPECIES_TOGETIC, .moves = {MOVE_RETURN, MOVE_SWEET_KISS, MOVE_AERIAL_ACE, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [289] = { + [FRONTIER_MON_MURKROW_2] = { .species = SPECIES_MURKROW, .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [290] = { + [FRONTIER_MON_WOBBUFFET_2] = { .species = SPECIES_WOBBUFFET, .moves = {MOVE_COUNTER, MOVE_MIRROR_COAT, MOVE_ENCORE, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_CAREFUL }, - [291] = { + [FRONTIER_MON_PLUSLE_2] = { .species = SPECIES_PLUSLE, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_SEISMIC_TOSS, MOVE_WISH}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [292] = { + [FRONTIER_MON_MINUN_2] = { .species = SPECIES_MINUN, .moves = {MOVE_THUNDERBOLT, MOVE_ATTRACT, MOVE_CHARM, MOVE_WISH}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [293] = { + [FRONTIER_MON_GROVYLE_2] = { .species = SPECIES_GROVYLE, .moves = {MOVE_GIGA_DRAIN, MOVE_CRUSH_CLAW, MOVE_SCREECH, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [294] = { + [FRONTIER_MON_COMBUSKEN_2] = { .species = SPECIES_COMBUSKEN, .moves = {MOVE_FLAMETHROWER, MOVE_SKY_UPPERCUT, MOVE_SLASH, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [295] = { + [FRONTIER_MON_MARSHTOMP_2] = { .species = SPECIES_MARSHTOMP, .moves = {MOVE_MUDDY_WATER, MOVE_EARTHQUAKE, MOVE_MUD_SLAP, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [296] = { + [FRONTIER_MON_PONYTA_2] = { .species = SPECIES_PONYTA, .moves = {MOVE_FLAMETHROWER, MOVE_BODY_SLAM, MOVE_DOUBLE_KICK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [297] = { + [FRONTIER_MON_AZUMARILL_2] = { .species = SPECIES_AZUMARILL, .moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_IRON_TAIL, MOVE_DIG}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [298] = { + [FRONTIER_MON_SUDOWOODO_2] = { .species = SPECIES_SUDOWOODO, .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_LOW_KICK, MOVE_SELF_DESTRUCT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [299] = { + [FRONTIER_MON_MAGCARGO_2] = { .species = SPECIES_MAGCARGO, .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [300] = { + [FRONTIER_MON_PUPITAR_2] = { .species = SPECIES_PUPITAR, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [301] = { + [FRONTIER_MON_SEALEO_2] = { .species = SPECIES_SEALEO, .moves = {MOVE_ICE_BEAM, MOVE_SURF, MOVE_BODY_SLAM, MOVE_HAIL}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [302] = { + [FRONTIER_MON_RATICATE_2] = { .species = SPECIES_RATICATE, .moves = {MOVE_SUPER_FANG, MOVE_HYPER_FANG, MOVE_SHADOW_BALL, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [303] = { + [FRONTIER_MON_MASQUERAIN_2] = { .species = SPECIES_MASQUERAIN, .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_GIGA_DRAIN, MOVE_STUN_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [304] = { + [FRONTIER_MON_FURRET_2] = { .species = SPECIES_FURRET, .moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_FOLLOW_ME}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [305] = { + [FRONTIER_MON_DUNSPARCE_2] = { .species = SPECIES_DUNSPARCE, .moves = {MOVE_ICE_BEAM, MOVE_ROCK_TOMB, MOVE_BITE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [306] = { + [FRONTIER_MON_DRAGONAIR_2] = { .species = SPECIES_DRAGONAIR, .moves = {MOVE_RETURN, MOVE_REST, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [307] = { + [FRONTIER_MON_MIGHTYENA_2] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_CRUNCH, MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIRKY }, - [308] = { + [FRONTIER_MON_LINOONE_2] = { .species = SPECIES_LINOONE, .moves = {MOVE_TRICK, MOVE_FRUSTRATION, MOVE_THUNDER_WAVE, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [309] = { + [FRONTIER_MON_CASTFORM_2] = { .species = SPECIES_CASTFORM, .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_WATER_PULSE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [310] = { + [FRONTIER_MON_SHELGON_2] = { .species = SPECIES_SHELGON, .moves = {MOVE_FRUSTRATION, MOVE_DRAGON_DANCE, MOVE_CRUNCH, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [311] = { + [FRONTIER_MON_METANG_2] = { .species = SPECIES_METANG, .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_BODY_SLAM, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [312] = { + [FRONTIER_MON_WIGGLYTUFF_2] = { .species = SPECIES_WIGGLYTUFF, .moves = {MOVE_FAKE_TEARS, MOVE_SING, MOVE_DREAM_EATER, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [313] = { + [FRONTIER_MON_SUNFLORA_2] = { .species = SPECIES_SUNFLORA, .moves = {MOVE_GIGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_GROWTH, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [314] = { + [FRONTIER_MON_CHIMECHO_2] = { .species = SPECIES_CHIMECHO, .moves = {MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEAL_BELL}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [315] = { + [FRONTIER_MON_GLIGAR_2] = { .species = SPECIES_GLIGAR, .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_GUILLOTINE, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [316] = { + [FRONTIER_MON_QWILFISH_2] = { .species = SPECIES_QWILFISH, .moves = {MOVE_REVENGE, MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [317] = { + [FRONTIER_MON_SNEASEL_2] = { .species = SPECIES_SNEASEL, .moves = {MOVE_CRUSH_CLAW, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [318] = { + [FRONTIER_MON_PELIPPER_2] = { .species = SPECIES_PELIPPER, .moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_AERIAL_ACE, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [319] = { + [FRONTIER_MON_SWELLOW_2] = { .species = SPECIES_SWELLOW, .moves = {MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PURSUIT, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [320] = { + [FRONTIER_MON_LAIRON_2] = { .species = SPECIES_LAIRON, .moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_ROAR, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [321] = { + [FRONTIER_MON_TANGELA_2] = { .species = SPECIES_TANGELA, .moves = {MOVE_GIGA_DRAIN, MOVE_STUN_SPORE, MOVE_REST, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [322] = { + [FRONTIER_MON_ARBOK_2] = { .species = SPECIES_ARBOK, .moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_GLARE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [323] = { + [FRONTIER_MON_PERSIAN_2] = { .species = SPECIES_PERSIAN, .moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_ROAR, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [324] = { + [FRONTIER_MON_SEADRA_2] = { .species = SPECIES_SEADRA, .moves = {MOVE_HYDRO_PUMP, MOVE_FRUSTRATION, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [325] = { + [FRONTIER_MON_KECLEON_2] = { .species = SPECIES_KECLEON, .moves = {MOVE_TRICK, MOVE_BRICK_BREAK, MOVE_SHADOW_BALL, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [326] = { + [FRONTIER_MON_VIGOROTH_2] = { .species = SPECIES_VIGOROTH, .moves = {MOVE_CRUSH_CLAW, MOVE_REVERSAL, MOVE_ENDURE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [327] = { + [FRONTIER_MON_LUNATONE_2] = { .species = SPECIES_LUNATONE, .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_CALM_MIND}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [328] = { + [FRONTIER_MON_SOLROCK_2] = { .species = SPECIES_SOLROCK, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COSMIC_POWER, MOVE_OVERHEAT}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [329] = { + [FRONTIER_MON_NOCTOWL_2] = { .species = SPECIES_NOCTOWL, .moves = {MOVE_PSYCHIC, MOVE_FAINT_ATTACK, MOVE_AERIAL_ACE, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [330] = { + [FRONTIER_MON_SANDSLASH_2] = { .species = SPECIES_SANDSLASH, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUSH_CLAW, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [331] = { + [FRONTIER_MON_VENOMOTH_2] = { .species = SPECIES_VENOMOTH, .moves = {MOVE_SIGNAL_BEAM, MOVE_PSYCHIC, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [332] = { + [FRONTIER_MON_CHANSEY_2] = { .species = SPECIES_CHANSEY, .moves = {MOVE_SEISMIC_TOSS, MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_SOFT_BOILED}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_RELAXED }, - [333] = { + [FRONTIER_MON_SEAKING_2] = { .species = SPECIES_SEAKING, .moves = {MOVE_HORN_DRILL, MOVE_MEGAHORN, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [334] = { + [FRONTIER_MON_JUMPLUFF_2] = { .species = SPECIES_JUMPLUFF, .moves = {MOVE_LEECH_SEED, MOVE_SLEEP_POWDER, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [335] = { + [FRONTIER_MON_PILOSWINE_2] = { .species = SPECIES_PILOSWINE, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BODY_SLAM, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_ADAMANT }, - [336] = { + [FRONTIER_MON_GOLBAT_2] = { .species = SPECIES_GOLBAT, .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_AIR_CUTTER}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [337] = { + [FRONTIER_MON_PRIMEAPE_2] = { .species = SPECIES_PRIMEAPE, .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_TOMB, MOVE_OVERHEAT, MOVE_BULK_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [338] = { + [FRONTIER_MON_HITMONLEE_2] = { .species = SPECIES_HITMONLEE, .moves = {MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_FORESIGHT, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [339] = { + [FRONTIER_MON_HITMONCHAN_2] = { .species = SPECIES_HITMONCHAN, .moves = {MOVE_DYNAMIC_PUNCH, MOVE_MACH_PUNCH, MOVE_DETECT, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [340] = { + [FRONTIER_MON_GIRAFARIG_2] = { .species = SPECIES_GIRAFARIG, .moves = {MOVE_PSYCHIC, MOVE_CRUNCH, MOVE_BATON_PASS, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [341] = { + [FRONTIER_MON_HITMONTOP_2] = { .species = SPECIES_HITMONTOP, .moves = {MOVE_DOUBLE_EDGE, MOVE_SEISMIC_TOSS, MOVE_ROCK_SLIDE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [342] = { + [FRONTIER_MON_BANETTE_2] = { .species = SPECIES_BANETTE, .moves = {MOVE_SHADOW_BALL, MOVE_FRUSTRATION, MOVE_SCREECH, MOVE_WILL_O_WISP}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_ADAMANT }, - [343] = { + [FRONTIER_MON_NINJASK_2] = { .species = SPECIES_NINJASK, .moves = {MOVE_SLASH, MOVE_SHADOW_BALL, MOVE_SWORDS_DANCE, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [344] = { + [FRONTIER_MON_SEVIPER_2] = { .species = SPECIES_SEVIPER, .moves = {MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [345] = { + [FRONTIER_MON_ZANGOOSE_2] = { .species = SPECIES_ZANGOOSE, .moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [346] = { + [FRONTIER_MON_CAMERUPT_2] = { .species = SPECIES_CAMERUPT, .moves = {MOVE_EARTHQUAKE, MOVE_ERUPTION, MOVE_BODY_SLAM, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [347] = { + [FRONTIER_MON_SHARPEDO_2] = { .species = SPECIES_SHARPEDO, .moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [348] = { + [FRONTIER_MON_TROPIUS_2] = { .species = SPECIES_TROPIUS, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [349] = { + [FRONTIER_MON_MAGNETON_2] = { .species = SPECIES_MAGNETON, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [350] = { + [FRONTIER_MON_MANTINE_2] = { .species = SPECIES_MANTINE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [351] = { + [FRONTIER_MON_STANTLER_2] = { .species = SPECIES_STANTLER, .moves = {MOVE_FRUSTRATION, MOVE_SHADOW_BALL, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [352] = { + [FRONTIER_MON_ABSOL_2] = { .species = SPECIES_ABSOL, .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_IRON_TAIL}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [353] = { + [FRONTIER_MON_SWALOT_2] = { .species = SPECIES_SWALOT, .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_BODY_SLAM, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [354] = { + [FRONTIER_MON_CRAWDAUNT_2] = { .species = SPECIES_CRAWDAUNT, .moves = {MOVE_GUILLOTINE, MOVE_FRUSTRATION, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [355] = { + [FRONTIER_MON_PIDGEOT_2] = { .species = SPECIES_PIDGEOT, .moves = {MOVE_RETURN, MOVE_AERIAL_ACE, MOVE_STEEL_WING, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [356] = { + [FRONTIER_MON_GRUMPIG_2] = { .species = SPECIES_GRUMPIG, .moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [357] = { + [FRONTIER_MON_TORKOAL_2] = { .species = SPECIES_TORKOAL, .moves = {MOVE_OVERHEAT, MOVE_BODY_SLAM, MOVE_SMOKESCREEN, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [358] = { + [FRONTIER_MON_KINGLER_2] = { .species = SPECIES_KINGLER, .moves = {MOVE_GUILLOTINE, MOVE_ROCK_TOMB, MOVE_FLAIL, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [359] = { + [FRONTIER_MON_CACTURNE_2] = { .species = SPECIES_CACTURNE, .moves = {MOVE_MEGA_KICK, MOVE_TEETER_DANCE, MOVE_FAINT_ATTACK, MOVE_SANDSTORM}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_HARDY }, - [360] = { + [FRONTIER_MON_BELLOSSOM_2] = { .species = SPECIES_BELLOSSOM, .moves = {MOVE_SOLAR_BEAM, MOVE_ATTRACT, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [361] = { + [FRONTIER_MON_OCTILLERY_2] = { .species = SPECIES_OCTILLERY, .moves = {MOVE_OCTAZOOKA, MOVE_FIRE_BLAST, MOVE_THUNDER_WAVE, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [362] = { + [FRONTIER_MON_HUNTAIL_2] = { .species = SPECIES_HUNTAIL, .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [363] = { + [FRONTIER_MON_GOREBYSS_2] = { .species = SPECIES_GOREBYSS, .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_PSYCHIC, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [364] = { + [FRONTIER_MON_RELICANTH_2] = { .species = SPECIES_RELICANTH, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [365] = { + [FRONTIER_MON_OMASTAR_2] = { .species = SPECIES_OMASTAR, .moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_ICE_BEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [366] = { + [FRONTIER_MON_KABUTOPS_2] = { .species = SPECIES_KABUTOPS, .moves = {MOVE_SLASH, MOVE_ROCK_SLIDE, MOVE_FLAIL, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [367] = { + [FRONTIER_MON_POLIWRATH_2] = { .species = SPECIES_POLIWRATH, .moves = {MOVE_BRICK_BREAK, MOVE_HYPNOSIS, MOVE_REST, MOVE_BELLY_DRUM}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [368] = { + [FRONTIER_MON_SCYTHER_2] = { .species = SPECIES_SCYTHER, .moves = {MOVE_SILVER_WIND, MOVE_AERIAL_ACE, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [369] = { + [FRONTIER_MON_PINSIR_2] = { .species = SPECIES_PINSIR, .moves = {MOVE_GUILLOTINE, MOVE_SWORDS_DANCE, MOVE_FLAIL, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [370] = { + [FRONTIER_MON_POLITOED_2] = { .species = SPECIES_POLITOED, .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_MUD_SLAP, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [371] = { + [FRONTIER_MON_CLOYSTER_2] = { .species = SPECIES_CLOYSTER, .moves = {MOVE_DIVE, MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [372] = { + [FRONTIER_MON_DUGTRIO_1] = { .species = SPECIES_DUGTRIO, .moves = {MOVE_EARTHQUAKE, MOVE_TRI_ATTACK, MOVE_SLASH, MOVE_SAND_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [373] = { + [FRONTIER_MON_MEDICHAM_1] = { .species = SPECIES_MEDICHAM, .moves = {MOVE_PSYCHIC, MOVE_HI_JUMP_KICK, MOVE_CALM_MIND, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [374] = { + [FRONTIER_MON_MISDREAVUS_1] = { .species = SPECIES_MISDREAVUS, .moves = {MOVE_PAIN_SPLIT, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [375] = { + [FRONTIER_MON_FEAROW_1] = { .species = SPECIES_FEAROW, .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_FACADE, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [376] = { + [FRONTIER_MON_GRANBULL_1] = { .species = SPECIES_GRANBULL, .moves = {MOVE_MEGA_KICK, MOVE_SMELLING_SALT, MOVE_THUNDER_WAVE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [377] = { + [FRONTIER_MON_JYNX_1] = { .species = SPECIES_JYNX, .moves = {MOVE_ICE_BEAM, MOVE_FAKE_OUT, MOVE_LOVELY_KISS, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [378] = { + [FRONTIER_MON_DUSCLOPS_1] = { .species = SPECIES_DUSCLOPS, .moves = {MOVE_WILL_O_WISP, MOVE_SEISMIC_TOSS, MOVE_PAIN_SPLIT, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [379] = { + [FRONTIER_MON_DODRIO_1] = { .species = SPECIES_DODRIO, .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [380] = { + [FRONTIER_MON_MR_MIME_1] = { .species = SPECIES_MR_MIME, .moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_FAKE_OUT, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [381] = { + [FRONTIER_MON_LANTURN_1] = { .species = SPECIES_LANTURN, .moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [382] = { + [FRONTIER_MON_BRELOOM_1] = { .species = SPECIES_BRELOOM, .moves = {MOVE_SKY_UPPERCUT, MOVE_MACH_PUNCH, MOVE_HEADBUTT, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [383] = { + [FRONTIER_MON_FORRETRESS_1] = { .species = SPECIES_FORRETRESS, .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_LIGHT_SCREEN, MOVE_SPIKES}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [384] = { + [FRONTIER_MON_WHISCASH_1] = { .species = SPECIES_WHISCASH, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AMNESIA, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [385] = { + [FRONTIER_MON_XATU_1] = { .species = SPECIES_XATU, .moves = {MOVE_DRILL_PECK, MOVE_NIGHT_SHADE, MOVE_WISH, MOVE_FUTURE_SIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [386] = { + [FRONTIER_MON_SKARMORY_1] = { .species = SPECIES_SKARMORY, .moves = {MOVE_STEEL_WING, MOVE_AIR_CUTTER, MOVE_COUNTER, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [387] = { + [FRONTIER_MON_MAROWAK_1] = { .species = SPECIES_MAROWAK, .moves = {MOVE_BONEMERANG, MOVE_ROCK_SLIDE, MOVE_ICY_WIND, MOVE_HEADBUTT}, .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [388] = { + [FRONTIER_MON_QUAGSIRE_1] = { .species = SPECIES_QUAGSIRE, .moves = {MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [389] = { + [FRONTIER_MON_CLEFABLE_1] = { .species = SPECIES_CLEFABLE, .moves = {MOVE_METRONOME, MOVE_DOUBLE_TEAM, MOVE_REFLECT, MOVE_FOLLOW_ME}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BRAVE }, - [390] = { + [FRONTIER_MON_HARIYAMA_1] = { .species = SPECIES_HARIYAMA, .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [391] = { + [FRONTIER_MON_RAICHU_1] = { .species = SPECIES_RAICHU, .moves = {MOVE_THUNDERBOLT, MOVE_QUICK_ATTACK, MOVE_LIGHT_SCREEN, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [392] = { + [FRONTIER_MON_DEWGONG_1] = { .species = SPECIES_DEWGONG, .moves = {MOVE_ICE_BEAM, MOVE_ICY_WIND, MOVE_HEADBUTT, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [393] = { + [FRONTIER_MON_MANECTRIC_1] = { .species = SPECIES_MANECTRIC, .moves = {MOVE_THUNDERBOLT, MOVE_FLASH, MOVE_QUICK_ATTACK, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [394] = { + [FRONTIER_MON_VILEPLUME_1] = { .species = SPECIES_VILEPLUME, .moves = {MOVE_SLUDGE_BOMB, MOVE_PETAL_DANCE, MOVE_MOONLIGHT, MOVE_AROMATHERAPY}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [395] = { + [FRONTIER_MON_VICTREEBEL_1] = { .species = SPECIES_VICTREEBEL, .moves = {MOVE_GIGA_DRAIN, MOVE_SLEEP_POWDER, MOVE_SWEET_SCENT, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [396] = { + [FRONTIER_MON_ELECTRODE_1] = { .species = SPECIES_ELECTRODE, .moves = {MOVE_THUNDERBOLT, MOVE_SWIFT, MOVE_LIGHT_SCREEN, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [397] = { + [FRONTIER_MON_EXPLOUD_1] = { .species = SPECIES_EXPLOUD, .moves = {MOVE_HYPER_VOICE, MOVE_SHADOW_BALL, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [398] = { + [FRONTIER_MON_SHIFTRY_1] = { .species = SPECIES_SHIFTRY, .moves = {MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_QUICK_ATTACK, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [399] = { + [FRONTIER_MON_GLALIE_1] = { .species = SPECIES_GLALIE, .moves = {MOVE_ICE_BEAM, MOVE_CRUNCH, MOVE_HAIL, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [400] = { + [FRONTIER_MON_LUDICOLO_1] = { .species = SPECIES_LUDICOLO, .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [401] = { + [FRONTIER_MON_HYPNO_1] = { .species = SPECIES_HYPNO, .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_HYPNOSIS}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [402] = { + [FRONTIER_MON_GOLEM_1] = { .species = SPECIES_GOLEM, .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_COUNTER, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [403] = { + [FRONTIER_MON_RHYDON_1] = { .species = SPECIES_RHYDON, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_TOMB, MOVE_SCARY_FACE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [404] = { + [FRONTIER_MON_ALAKAZAM_1] = { .species = SPECIES_ALAKAZAM, .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [405] = { + [FRONTIER_MON_WEEZING_1] = { .species = SPECIES_WEEZING, .moves = {MOVE_SLUDGE_BOMB, MOVE_WILL_O_WISP, MOVE_SHADOW_BALL, MOVE_SMOKESCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [406] = { + [FRONTIER_MON_KANGASKHAN_1] = { .species = SPECIES_KANGASKHAN, .moves = {MOVE_DIZZY_PUNCH, MOVE_BRICK_BREAK, MOVE_COUNTER, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [407] = { + [FRONTIER_MON_ELECTABUZZ_1] = { .species = SPECIES_ELECTABUZZ, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [408] = { + [FRONTIER_MON_TAUROS_1] = { .species = SPECIES_TAUROS, .moves = {MOVE_EARTHQUAKE, MOVE_THRASH, MOVE_SWAGGER, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [409] = { + [FRONTIER_MON_SLOWBRO_1] = { .species = SPECIES_SLOWBRO, .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_HEADBUTT, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [410] = { + [FRONTIER_MON_SLOWKING_1] = { .species = SPECIES_SLOWKING, .moves = {MOVE_PSYCHIC, MOVE_BRICK_BREAK, MOVE_AMNESIA, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [411] = { + [FRONTIER_MON_MILTANK_1] = { .species = SPECIES_MILTANK, .moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_MILK_DRINK}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [412] = { + [FRONTIER_MON_ALTARIA_1] = { .species = SPECIES_ALTARIA, .moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_REFRESH, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [413] = { + [FRONTIER_MON_NIDOQUEEN_1] = { .species = SPECIES_NIDOQUEEN, .moves = {MOVE_SLUDGE_BOMB, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [414] = { + [FRONTIER_MON_NIDOKING_1] = { .species = SPECIES_NIDOKING, .moves = {MOVE_HORN_DRILL, MOVE_DOUBLE_KICK, MOVE_BODY_SLAM, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [415] = { + [FRONTIER_MON_MAGMAR_1] = { .species = SPECIES_MAGMAR, .moves = {MOVE_FLAMETHROWER, MOVE_SMOKESCREEN, MOVE_BRICK_BREAK, MOVE_BARRIER}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [416] = { + [FRONTIER_MON_CRADILY_1] = { .species = SPECIES_CRADILY, .moves = {MOVE_GIGA_DRAIN, MOVE_ROCK_SLIDE, MOVE_BARRIER, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [417] = { + [FRONTIER_MON_ARMALDO_1] = { .species = SPECIES_ARMALDO, .moves = {MOVE_SLASH, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [418] = { + [FRONTIER_MON_GOLDUCK_1] = { .species = SPECIES_GOLDUCK, .moves = {MOVE_HYDRO_PUMP, MOVE_DIG, MOVE_BRICK_BREAK, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [419] = { + [FRONTIER_MON_RAPIDASH_1] = { .species = SPECIES_RAPIDASH, .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_KICK, MOVE_QUICK_ATTACK, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIET }, - [420] = { + [FRONTIER_MON_MUK_1] = { .species = SPECIES_MUK, .moves = {MOVE_SLUDGE_BOMB, MOVE_BODY_SLAM, MOVE_SCREECH, MOVE_MINIMIZE}, .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [421] = { + [FRONTIER_MON_GENGAR_1] = { .species = SPECIES_GENGAR, .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [422] = { + [FRONTIER_MON_AMPHAROS_1] = { .species = SPECIES_AMPHAROS, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_THUNDER_WAVE, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [423] = { + [FRONTIER_MON_SCIZOR_1] = { .species = SPECIES_SCIZOR, .moves = {MOVE_METAL_CLAW, MOVE_AERIAL_ACE, MOVE_COUNTER, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [424] = { + [FRONTIER_MON_HERACROSS_1] = { .species = SPECIES_HERACROSS, .moves = {MOVE_MEGAHORN, MOVE_BRICK_BREAK, MOVE_ROCK_TOMB, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [425] = { + [FRONTIER_MON_URSARING_1] = { .species = SPECIES_URSARING, .moves = {MOVE_MEGA_KICK, MOVE_CRUNCH, MOVE_AERIAL_ACE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [426] = { + [FRONTIER_MON_HOUNDOOM_1] = { .species = SPECIES_HOUNDOOM, .moves = {MOVE_FLAMETHROWER, MOVE_SHADOW_BALL, MOVE_COUNTER, MOVE_WILL_O_WISP}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [427] = { + [FRONTIER_MON_DONPHAN_1] = { .species = SPECIES_DONPHAN, .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [428] = { + [FRONTIER_MON_CLAYDOL_1] = { .species = SPECIES_CLAYDOL, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [429] = { + [FRONTIER_MON_WAILORD_1] = { .species = SPECIES_WAILORD, .moves = {MOVE_SURF, MOVE_ICY_WIND, MOVE_BODY_SLAM, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [430] = { + [FRONTIER_MON_NINETALES_1] = { .species = SPECIES_NINETALES, .moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [431] = { + [FRONTIER_MON_MACHAMP_1] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [432] = { + [FRONTIER_MON_SHUCKLE_1] = { .species = SPECIES_SHUCKLE, .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BRAVE }, - [433] = { + [FRONTIER_MON_STEELIX_1] = { .species = SPECIES_STEELIX, .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_ROCK_TOMB, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [434] = { + [FRONTIER_MON_TENTACRUEL_1] = { .species = SPECIES_TENTACRUEL, .moves = {MOVE_SLUDGE_BOMB, MOVE_ICY_WIND, MOVE_BARRIER, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_IMPISH }, - [435] = { + [FRONTIER_MON_AERODACTYL_1] = { .species = SPECIES_AERODACTYL, .moves = {MOVE_ANCIENT_POWER, MOVE_DRAGON_BREATH, MOVE_AERIAL_ACE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [436] = { + [FRONTIER_MON_PORYGON2_1] = { .species = SPECIES_PORYGON2, .moves = {MOVE_TRI_ATTACK, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [437] = { + [FRONTIER_MON_GARDEVOIR_1] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_DREAM_EATER, MOVE_HYPNOSIS, MOVE_MAGICAL_LEAF, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [438] = { + [FRONTIER_MON_EXEGGUTOR_1] = { .species = SPECIES_EXEGGUTOR, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [439] = { + [FRONTIER_MON_STARMIE_1] = { .species = SPECIES_STARMIE, .moves = {MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [440] = { + [FRONTIER_MON_FLYGON_1] = { .species = SPECIES_FLYGON, .moves = {MOVE_EARTHQUAKE, MOVE_STEEL_WING, MOVE_FAINT_ATTACK, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [441] = { + [FRONTIER_MON_VENUSAUR_1] = { .species = SPECIES_VENUSAUR, .moves = {MOVE_GIGA_DRAIN, MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_SLEEP_POWDER}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [442] = { + [FRONTIER_MON_VAPOREON_1] = { .species = SPECIES_VAPOREON, .moves = {MOVE_SURF, MOVE_ROAR, MOVE_BITE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [443] = { + [FRONTIER_MON_JOLTEON_1] = { .species = SPECIES_JOLTEON, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ATTRACT, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [444] = { + [FRONTIER_MON_FLAREON_1] = { .species = SPECIES_FLAREON, .moves = {MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_BITE, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [445] = { + [FRONTIER_MON_MEGANIUM_1] = { .species = SPECIES_MEGANIUM, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_LIGHT_SCREEN, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [446] = { + [FRONTIER_MON_ESPEON_1] = { .species = SPECIES_ESPEON, .moves = {MOVE_PSYCHIC, MOVE_CHARM, MOVE_CALM_MIND, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [447] = { + [FRONTIER_MON_UMBREON_1] = { .species = SPECIES_UMBREON, .moves = {MOVE_CONFUSE_RAY, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [448] = { + [FRONTIER_MON_BLASTOISE_1] = { .species = SPECIES_BLASTOISE, .moves = {MOVE_HYDRO_PUMP, MOVE_RAIN_DANCE, MOVE_BITE, MOVE_SEISMIC_TOSS}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [449] = { + [FRONTIER_MON_FERALIGATR_1] = { .species = SPECIES_FERALIGATR, .moves = {MOVE_SURF, MOVE_RAIN_DANCE, MOVE_AERIAL_ACE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [450] = { + [FRONTIER_MON_AGGRON_1] = { .species = SPECIES_AGGRON, .moves = {MOVE_IRON_TAIL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [451] = { + [FRONTIER_MON_BLAZIKEN_1] = { .species = SPECIES_BLAZIKEN, .moves = {MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_DOUBLE_KICK, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [452] = { + [FRONTIER_MON_WALREIN_1] = { .species = SPECIES_WALREIN, .moves = {MOVE_BLIZZARD, MOVE_HAIL, MOVE_YAWN, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [453] = { + [FRONTIER_MON_SCEPTILE_1] = { .species = SPECIES_SCEPTILE, .moves = {MOVE_LEAF_BLADE, MOVE_LEECH_SEED, MOVE_AERIAL_ACE, MOVE_DETECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [454] = { + [FRONTIER_MON_CHARIZARD_1] = { .species = SPECIES_CHARIZARD, .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_ROAR, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [455] = { + [FRONTIER_MON_TYPHLOSION_1] = { .species = SPECIES_TYPHLOSION, .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SMOKESCREEN, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [456] = { + [FRONTIER_MON_LAPRAS_1] = { .species = SPECIES_LAPRAS, .moves = {MOVE_SURF, MOVE_ATTRACT, MOVE_CONFUSE_RAY, MOVE_SING}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [457] = { + [FRONTIER_MON_CROBAT_1] = { .species = SPECIES_CROBAT, .moves = {MOVE_SLUDGE_BOMB, MOVE_BITE, MOVE_ASTONISH, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [458] = { + [FRONTIER_MON_SWAMPERT_1] = { .species = SPECIES_SWAMPERT, .moves = {MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_REST, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [459] = { + [FRONTIER_MON_GYARADOS_1] = { .species = SPECIES_GYARADOS, .moves = {MOVE_RETURN, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [460] = { + [FRONTIER_MON_SNORLAX_1] = { .species = SPECIES_SNORLAX, .moves = {MOVE_FACADE, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [461] = { + [FRONTIER_MON_KINGDRA_1] = { .species = SPECIES_KINGDRA, .moves = {MOVE_HYDRO_PUMP, MOVE_DRAGON_BREATH, MOVE_ICY_WIND, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [462] = { + [FRONTIER_MON_BLISSEY_1] = { .species = SPECIES_BLISSEY, .moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_SING, MOVE_SOFT_BOILED}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [463] = { + [FRONTIER_MON_MILOTIC_1] = { .species = SPECIES_MILOTIC, .moves = {MOVE_HYDRO_PUMP, MOVE_ICY_WIND, MOVE_RECOVER, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [464] = { + [FRONTIER_MON_ARCANINE_1] = { .species = SPECIES_ARCANINE, .moves = {MOVE_FLAMETHROWER, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [465] = { + [FRONTIER_MON_SALAMENCE_1] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_DRAGON_CLAW, MOVE_AERIAL_ACE, MOVE_HEADBUTT, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [466] = { + [FRONTIER_MON_METAGROSS_1] = { .species = SPECIES_METAGROSS, .moves = {MOVE_METEOR_MASH, MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [467] = { + [FRONTIER_MON_SLAKING_1] = { .species = SPECIES_SLAKING, .moves = {MOVE_YAWN, MOVE_BULK_UP, MOVE_SWAGGER, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [468] = { + [FRONTIER_MON_DUGTRIO_2] = { .species = SPECIES_DUGTRIO, .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_TRI_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [469] = { + [FRONTIER_MON_MEDICHAM_2] = { .species = SPECIES_MEDICHAM, .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_PSYCHIC, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [470] = { + [FRONTIER_MON_MAROWAK_2] = { .species = SPECIES_MAROWAK, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [471] = { + [FRONTIER_MON_QUAGSIRE_2] = { .species = SPECIES_QUAGSIRE, .moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_YAWN, MOVE_ANCIENT_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_SASSY }, - [472] = { + [FRONTIER_MON_MISDREAVUS_2] = { .species = SPECIES_MISDREAVUS, .moves = {MOVE_PSYCHIC, MOVE_ATTRACT, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [473] = { + [FRONTIER_MON_FEAROW_2] = { .species = SPECIES_FEAROW, .moves = {MOVE_DRILL_PECK, MOVE_TRI_ATTACK, MOVE_ATTRACT, MOVE_PURSUIT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [474] = { + [FRONTIER_MON_GRANBULL_2] = { .species = SPECIES_GRANBULL, .moves = {MOVE_OVERHEAT, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_QUIET }, - [475] = { + [FRONTIER_MON_JYNX_2] = { .species = SPECIES_JYNX, .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_LOVELY_KISS, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [476] = { + [FRONTIER_MON_DUSCLOPS_2] = { .species = SPECIES_DUSCLOPS, .moves = {MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [477] = { + [FRONTIER_MON_DODRIO_2] = { .species = SPECIES_DODRIO, .moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_FAINT_ATTACK, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [478] = { + [FRONTIER_MON_MR_MIME_2] = { .species = SPECIES_MR_MIME, .moves = {MOVE_BATON_PASS, MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_PSYCHIC}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [479] = { + [FRONTIER_MON_LANTURN_2] = { .species = SPECIES_LANTURN, .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [480] = { + [FRONTIER_MON_BRELOOM_2] = { .species = SPECIES_BRELOOM, .moves = {MOVE_GIGA_DRAIN, MOVE_LEECH_SEED, MOVE_FOCUS_PUNCH, MOVE_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [481] = { + [FRONTIER_MON_FORRETRESS_2] = { .species = SPECIES_FORRETRESS, .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_COUNTER, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [482] = { + [FRONTIER_MON_SKARMORY_2] = { .species = SPECIES_SKARMORY, .moves = {MOVE_SPIKES, MOVE_ROAR, MOVE_DRILL_PECK, MOVE_TOXIC}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [483] = { + [FRONTIER_MON_WHISCASH_2] = { .species = SPECIES_WHISCASH, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_SPARK, MOVE_FUTURE_SIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [484] = { + [FRONTIER_MON_XATU_2] = { .species = SPECIES_XATU, .moves = {MOVE_FLY, MOVE_TOXIC, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [485] = { + [FRONTIER_MON_CLEFABLE_2] = { .species = SPECIES_CLEFABLE, .moves = {MOVE_METEOR_MASH, MOVE_COSMIC_POWER, MOVE_DOUBLE_TEAM, MOVE_FOLLOW_ME}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [486] = { + [FRONTIER_MON_HARIYAMA_2] = { .species = SPECIES_HARIYAMA, .moves = {MOVE_CROSS_CHOP, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [487] = { + [FRONTIER_MON_RAICHU_2] = { .species = SPECIES_RAICHU, .moves = {MOVE_THUNDERBOLT, MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [488] = { + [FRONTIER_MON_DEWGONG_2] = { .species = SPECIES_DEWGONG, .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_ENCORE, MOVE_DISABLE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [489] = { + [FRONTIER_MON_MANECTRIC_2] = { .species = SPECIES_MANECTRIC, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_CRUNCH, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [490] = { + [FRONTIER_MON_VILEPLUME_2] = { .species = SPECIES_VILEPLUME, .moves = {MOVE_INGRAIN, MOVE_DOUBLE_TEAM, MOVE_TOXIC, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [491] = { + [FRONTIER_MON_VICTREEBEL_2] = { .species = SPECIES_VICTREEBEL, .moves = {MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_SLEEP_POWDER, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_SERIOUS }, - [492] = { + [FRONTIER_MON_ELECTRODE_2] = { .species = SPECIES_ELECTRODE, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [493] = { + [FRONTIER_MON_EXPLOUD_2] = { .species = SPECIES_EXPLOUD, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [494] = { + [FRONTIER_MON_SHIFTRY_2] = { .species = SPECIES_SHIFTRY, .moves = {MOVE_LEECH_SEED, MOVE_DIG, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_IMPISH }, - [495] = { + [FRONTIER_MON_GLALIE_2] = { .species = SPECIES_GLALIE, .moves = {MOVE_EXPLOSION, MOVE_ENDURE, MOVE_BODY_SLAM, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [496] = { + [FRONTIER_MON_LUDICOLO_2] = { .species = SPECIES_LUDICOLO, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [497] = { + [FRONTIER_MON_HYPNO_2] = { .species = SPECIES_HYPNO, .moves = {MOVE_HYPNOSIS, MOVE_NIGHTMARE, MOVE_DREAM_EATER, MOVE_PSYCHIC}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [498] = { + [FRONTIER_MON_GOLEM_2] = { .species = SPECIES_GOLEM, .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [499] = { + [FRONTIER_MON_RHYDON_2] = { .species = SPECIES_RHYDON, .moves = {MOVE_EARTHQUAKE, MOVE_HORN_DRILL, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [500] = { + [FRONTIER_MON_ALAKAZAM_2] = { .species = SPECIES_ALAKAZAM, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [501] = { + [FRONTIER_MON_WEEZING_2] = { .species = SPECIES_WEEZING, .moves = {MOVE_MEMENTO, MOVE_SLUDGE_BOMB, MOVE_FACADE, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [502] = { + [FRONTIER_MON_KANGASKHAN_2] = { .species = SPECIES_KANGASKHAN, .moves = {MOVE_CRUSH_CLAW, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [503] = { + [FRONTIER_MON_ELECTABUZZ_2] = { .species = SPECIES_ELECTABUZZ, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_ATTRACT, MOVE_FOCUS_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [504] = { + [FRONTIER_MON_TAUROS_2] = { .species = SPECIES_TAUROS, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [505] = { + [FRONTIER_MON_SLOWBRO_2] = { .species = SPECIES_SLOWBRO, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_MODEST }, - [506] = { + [FRONTIER_MON_SLOWKING_2] = { .species = SPECIES_SLOWKING, .moves = {MOVE_YAWN, MOVE_THUNDER_WAVE, MOVE_SURF, MOVE_PSYCHIC}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [507] = { + [FRONTIER_MON_MILTANK_2] = { .species = SPECIES_MILTANK, .moves = {MOVE_FOCUS_PUNCH, MOVE_SHADOW_BALL, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [508] = { + [FRONTIER_MON_ALTARIA_2] = { .species = SPECIES_ALTARIA, .moves = {MOVE_PERISH_SONG, MOVE_DRAGON_BREATH, MOVE_PURSUIT, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [509] = { + [FRONTIER_MON_NIDOQUEEN_2] = { .species = SPECIES_NIDOQUEEN, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [510] = { + [FRONTIER_MON_NIDOKING_2] = { .species = SPECIES_NIDOKING, .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [511] = { + [FRONTIER_MON_MAGMAR_2] = { .species = SPECIES_MAGMAR, .moves = {MOVE_FIRE_BLAST, MOVE_SMOKESCREEN, MOVE_THUNDER_PUNCH, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [512] = { + [FRONTIER_MON_CRADILY_2] = { .species = SPECIES_CRADILY, .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [513] = { + [FRONTIER_MON_ARMALDO_2] = { .species = SPECIES_ARMALDO, .moves = {MOVE_IRON_TAIL, MOVE_ANCIENT_POWER, MOVE_BRICK_BREAK, MOVE_KNOCK_OFF}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [514] = { + [FRONTIER_MON_GOLDUCK_2] = { .species = SPECIES_GOLDUCK, .moves = {MOVE_CROSS_CHOP, MOVE_SURF, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [515] = { + [FRONTIER_MON_RAPIDASH_2] = { .species = SPECIES_RAPIDASH, .moves = {MOVE_FIRE_BLAST, MOVE_BOUNCE, MOVE_DOUBLE_TEAM, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [516] = { + [FRONTIER_MON_MUK_2] = { .species = SPECIES_MUK, .moves = {MOVE_CURSE, MOVE_REST, MOVE_SLUDGE_BOMB, MOVE_DYNAMIC_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [517] = { + [FRONTIER_MON_GENGAR_2] = { .species = SPECIES_GENGAR, .moves = {MOVE_SLUDGE_BOMB, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [518] = { + [FRONTIER_MON_AMPHAROS_2] = { .species = SPECIES_AMPHAROS, .moves = {MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_FOCUS_PUNCH, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [519] = { + [FRONTIER_MON_SCIZOR_2] = { .species = SPECIES_SCIZOR, .moves = {MOVE_SILVER_WIND, MOVE_STEEL_WING, MOVE_SWORDS_DANCE, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [520] = { + [FRONTIER_MON_HERACROSS_2] = { .species = SPECIES_HERACROSS, .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ATTRACT, MOVE_BULK_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [521] = { + [FRONTIER_MON_URSARING_2] = { .species = SPECIES_URSARING, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [522] = { + [FRONTIER_MON_HOUNDOOM_2] = { .species = SPECIES_HOUNDOOM, .moves = {MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_ROAR, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [523] = { + [FRONTIER_MON_DONPHAN_2] = { .species = SPECIES_DONPHAN, .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [524] = { + [FRONTIER_MON_CLAYDOL_2] = { .species = SPECIES_CLAYDOL, .moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_COSMIC_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [525] = { + [FRONTIER_MON_WAILORD_2] = { .species = SPECIES_WAILORD, .moves = {MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_CURSE, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [526] = { + [FRONTIER_MON_NINETALES_2] = { .species = SPECIES_NINETALES, .moves = {MOVE_HEAT_WAVE, MOVE_BODY_SLAM, MOVE_GRUDGE, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [527] = { + [FRONTIER_MON_MACHAMP_2] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_BULK_UP, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [528] = { + [FRONTIER_MON_SHUCKLE_2] = { .species = SPECIES_SHUCKLE, .moves = {MOVE_SANDSTORM, MOVE_DIG, MOVE_FLASH, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_CAREFUL }, - [529] = { + [FRONTIER_MON_STEELIX_2] = { .species = SPECIES_STEELIX, .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_SANDSTORM, MOVE_BLOCK}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [530] = { + [FRONTIER_MON_TENTACRUEL_2] = { .species = SPECIES_TENTACRUEL, .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [531] = { + [FRONTIER_MON_AERODACTYL_2] = { .species = SPECIES_AERODACTYL, .moves = {MOVE_HYPER_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ANCIENT_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [532] = { + [FRONTIER_MON_PORYGON2_2] = { .species = SPECIES_PORYGON2, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [533] = { + [FRONTIER_MON_GARDEVOIR_2] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [534] = { + [FRONTIER_MON_EXEGGUTOR_2] = { .species = SPECIES_EXEGGUTOR, .moves = {MOVE_RETURN, MOVE_CURSE, MOVE_SLEEP_POWDER, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [535] = { + [FRONTIER_MON_STARMIE_2] = { .species = SPECIES_STARMIE, .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [536] = { + [FRONTIER_MON_FLYGON_2] = { .species = SPECIES_FLYGON, .moves = {MOVE_SOLAR_BEAM, MOVE_FIRE_BLAST, MOVE_CRUNCH, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [537] = { + [FRONTIER_MON_VENUSAUR_2] = { .species = SPECIES_VENUSAUR, .moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_DOUBLE_TEAM, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [538] = { + [FRONTIER_MON_VAPOREON_2] = { .species = SPECIES_VAPOREON, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [539] = { + [FRONTIER_MON_JOLTEON_2] = { .species = SPECIES_JOLTEON, .moves = {MOVE_THUNDERBOLT, MOVE_DIG, MOVE_DOUBLE_KICK, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [540] = { + [FRONTIER_MON_FLAREON_2] = { .species = SPECIES_FLAREON, .moves = {MOVE_CURSE, MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [541] = { + [FRONTIER_MON_MEGANIUM_2] = { .species = SPECIES_MEGANIUM, .moves = {MOVE_LEECH_SEED, MOVE_SUBSTITUTE, MOVE_DOUBLE_TEAM, MOVE_GRASS_WHISTLE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [542] = { + [FRONTIER_MON_ESPEON_2] = { .species = SPECIES_ESPEON, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_CALM_MIND, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [543] = { + [FRONTIER_MON_UMBREON_2] = { .species = SPECIES_UMBREON, .moves = {MOVE_CURSE, MOVE_SCREECH, MOVE_DOUBLE_TEAM, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [544] = { + [FRONTIER_MON_BLASTOISE_2] = { .species = SPECIES_BLASTOISE, .moves = {MOVE_HYDRO_PUMP, MOVE_MEGA_KICK, MOVE_BRICK_BREAK, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [545] = { + [FRONTIER_MON_FERALIGATR_2] = { .species = SPECIES_FERALIGATR, .moves = {MOVE_SURF, MOVE_DRAGON_CLAW, MOVE_BRICK_BREAK, MOVE_SCARY_FACE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [546] = { + [FRONTIER_MON_AGGRON_2] = { .species = SPECIES_AGGRON, .moves = {MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [547] = { + [FRONTIER_MON_BLAZIKEN_2] = { .species = SPECIES_BLAZIKEN, .moves = {MOVE_BLAZE_KICK, MOVE_MEGA_KICK, MOVE_THUNDER_PUNCH, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [548] = { + [FRONTIER_MON_WALREIN_2] = { .species = SPECIES_WALREIN, .moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [549] = { + [FRONTIER_MON_SCEPTILE_2] = { .species = SPECIES_SCEPTILE, .moves = {MOVE_LEAF_BLADE, MOVE_THUNDER_PUNCH, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [550] = { + [FRONTIER_MON_CHARIZARD_2] = { .species = SPECIES_CHARIZARD, .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE, MOVE_SMOKESCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [551] = { + [FRONTIER_MON_TYPHLOSION_2] = { .species = SPECIES_TYPHLOSION, .moves = {MOVE_FLAMETHROWER, MOVE_THUNDER_PUNCH, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [552] = { + [FRONTIER_MON_LAPRAS_2] = { .species = SPECIES_LAPRAS, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BODY_SLAM, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_TIMID }, - [553] = { + [FRONTIER_MON_CROBAT_2] = { .species = SPECIES_CROBAT, .moves = {MOVE_TOXIC, MOVE_GIGA_DRAIN, MOVE_CONFUSE_RAY, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [554] = { + [FRONTIER_MON_SWAMPERT_2] = { .species = SPECIES_SWAMPERT, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [555] = { + [FRONTIER_MON_GYARADOS_2] = { .species = SPECIES_GYARADOS, .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDERBOLT, MOVE_FIRE_BLAST, MOVE_BLIZZARD}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [556] = { + [FRONTIER_MON_SNORLAX_2] = { .species = SPECIES_SNORLAX, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [557] = { + [FRONTIER_MON_KINGDRA_2] = { .species = SPECIES_KINGDRA, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_DRAGON_BREATH, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [558] = { + [FRONTIER_MON_BLISSEY_2] = { .species = SPECIES_BLISSEY, .moves = {MOVE_SEISMIC_TOSS, MOVE_SING, MOVE_ATTRACT, MOVE_SUBSTITUTE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [559] = { + [FRONTIER_MON_MILOTIC_2] = { .species = SPECIES_MILOTIC, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_SAFEGUARD, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [560] = { + [FRONTIER_MON_ARCANINE_2] = { .species = SPECIES_ARCANINE, .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_CRUNCH, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [561] = { + [FRONTIER_MON_SALAMENCE_2] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_DOUBLE_EDGE, MOVE_CRUNCH, MOVE_SWAGGER, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [562] = { + [FRONTIER_MON_METAGROSS_2] = { .species = SPECIES_METAGROSS, .moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_PSYCH_UP, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [563] = { + [FRONTIER_MON_SLAKING_2] = { .species = SPECIES_SLAKING, .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_YAWN, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_ADAMANT }, - [564] = { + [FRONTIER_MON_DUGTRIO_3] = { .species = SPECIES_DUGTRIO, .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_FISSURE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [565] = { + [FRONTIER_MON_MEDICHAM_3] = { .species = SPECIES_MEDICHAM, .moves = {MOVE_DYNAMIC_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_HARDY }, - [566] = { + [FRONTIER_MON_MISDREAVUS_3] = { .species = SPECIES_MISDREAVUS, .moves = {MOVE_PERISH_SONG, MOVE_MEAN_LOOK, MOVE_THUNDER_WAVE, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [567] = { + [FRONTIER_MON_FEAROW_3] = { .species = SPECIES_FEAROW, .moves = {MOVE_DRILL_PECK, MOVE_RETURN, MOVE_STEEL_WING, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [568] = { + [FRONTIER_MON_GRANBULL_3] = { .species = SPECIES_GRANBULL, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [569] = { + [FRONTIER_MON_JYNX_3] = { .species = SPECIES_JYNX, .moves = {MOVE_DREAM_EATER, MOVE_LOVELY_KISS, MOVE_ATTRACT, MOVE_SUBSTITUTE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [570] = { + [FRONTIER_MON_DUSCLOPS_3] = { .species = SPECIES_DUSCLOPS, .moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [571] = { + [FRONTIER_MON_DODRIO_3] = { .species = SPECIES_DODRIO, .moves = {MOVE_DOUBLE_EDGE, MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [572] = { + [FRONTIER_MON_MR_MIME_3] = { .species = SPECIES_MR_MIME, .moves = {MOVE_TRICK, MOVE_TORMENT, MOVE_PSYCHIC, MOVE_THUNDERBOLT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [573] = { + [FRONTIER_MON_LANTURN_3] = { .species = SPECIES_LANTURN, .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_CONFUSE_RAY, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [574] = { + [FRONTIER_MON_BRELOOM_3] = { .species = SPECIES_BRELOOM, .moves = {MOVE_IRON_TAIL, MOVE_FOCUS_PUNCH, MOVE_ATTRACT, MOVE_SPORE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [575] = { + [FRONTIER_MON_FORRETRESS_3] = { .species = SPECIES_FORRETRESS, .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_GIGA_DRAIN, MOVE_ZAP_CANNON}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [576] = { + [FRONTIER_MON_WHISCASH_3] = { .species = SPECIES_WHISCASH, .moves = {MOVE_SLEEP_TALK, MOVE_REST, MOVE_SURF, MOVE_FISSURE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_HARDY }, - [577] = { + [FRONTIER_MON_XATU_3] = { .species = SPECIES_XATU, .moves = {MOVE_DRILL_PECK, MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [578] = { + [FRONTIER_MON_SKARMORY_3] = { .species = SPECIES_SKARMORY, .moves = {MOVE_TOXIC, MOVE_CURSE, MOVE_REST, MOVE_FLY}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [579] = { + [FRONTIER_MON_MAROWAK_3] = { .species = SPECIES_MAROWAK, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [580] = { + [FRONTIER_MON_QUAGSIRE_3] = { .species = SPECIES_QUAGSIRE, .moves = {MOVE_EARTHQUAKE, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [581] = { + [FRONTIER_MON_CLEFABLE_3] = { .species = SPECIES_CLEFABLE, .moves = {MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_FLAMETHROWER, MOVE_MAGICAL_LEAF}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [582] = { + [FRONTIER_MON_HARIYAMA_3] = { .species = SPECIES_HARIYAMA, .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [583] = { + [FRONTIER_MON_RAICHU_3] = { .species = SPECIES_RAICHU, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_IRON_TAIL, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [584] = { + [FRONTIER_MON_DEWGONG_3] = { .species = SPECIES_DEWGONG, .moves = {MOVE_HORN_DRILL, MOVE_SHEER_COLD, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [585] = { + [FRONTIER_MON_MANECTRIC_3] = { .species = SPECIES_MANECTRIC, .moves = {MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_THUNDER_WAVE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [586] = { + [FRONTIER_MON_VILEPLUME_3] = { .species = SPECIES_VILEPLUME, .moves = {MOVE_ATTRACT, MOVE_STUN_SPORE, MOVE_SLUDGE_BOMB, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [587] = { + [FRONTIER_MON_VICTREEBEL_3] = { .species = SPECIES_VICTREEBEL, .moves = {MOVE_STUN_SPORE, MOVE_INGRAIN, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [588] = { + [FRONTIER_MON_ELECTRODE_3] = { .species = SPECIES_ELECTRODE, .moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [589] = { + [FRONTIER_MON_EXPLOUD_3] = { .species = SPECIES_EXPLOUD, .moves = {MOVE_OVERHEAT, MOVE_ICE_BEAM, MOVE_THUNDER_PUNCH, MOVE_EXTRASENSORY}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [590] = { + [FRONTIER_MON_SHIFTRY_3] = { .species = SPECIES_SHIFTRY, .moves = {MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [591] = { + [FRONTIER_MON_GLALIE_3] = { .species = SPECIES_GLALIE, .moves = {MOVE_BLIZZARD, MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [592] = { + [FRONTIER_MON_LUDICOLO_3] = { .species = SPECIES_LUDICOLO, .moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [593] = { + [FRONTIER_MON_HYPNO_3] = { .species = SPECIES_HYPNO, .moves = {MOVE_PSYCH_UP, MOVE_SWAGGER, MOVE_MEGA_KICK, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [594] = { + [FRONTIER_MON_GOLEM_3] = { .species = SPECIES_GOLEM, .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [595] = { + [FRONTIER_MON_RHYDON_3] = { .species = SPECIES_RHYDON, .moves = {MOVE_MEGAHORN, MOVE_CRUSH_CLAW, MOVE_EARTHQUAKE, MOVE_HORN_DRILL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [596] = { + [FRONTIER_MON_ALAKAZAM_3] = { .species = SPECIES_ALAKAZAM, .moves = {MOVE_TRICK, MOVE_DISABLE, MOVE_PSYCHIC, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [597] = { + [FRONTIER_MON_WEEZING_3] = { .species = SPECIES_WEEZING, .moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [598] = { + [FRONTIER_MON_KANGASKHAN_3] = { .species = SPECIES_KANGASKHAN, .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [599] = { + [FRONTIER_MON_ELECTABUZZ_3] = { .species = SPECIES_ELECTABUZZ, .moves = {MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_THUNDERBOLT, MOVE_CROSS_CHOP}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [600] = { + [FRONTIER_MON_TAUROS_3] = { .species = SPECIES_TAUROS, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [601] = { + [FRONTIER_MON_SLOWBRO_3] = { .species = SPECIES_SLOWBRO, .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_QUIET }, - [602] = { + [FRONTIER_MON_SLOWKING_3] = { .species = SPECIES_SLOWKING, .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [603] = { + [FRONTIER_MON_MILTANK_3] = { .species = SPECIES_MILTANK, .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [604] = { + [FRONTIER_MON_ALTARIA_3] = { .species = SPECIES_ALTARIA, .moves = {MOVE_SING, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [605] = { + [FRONTIER_MON_NIDOQUEEN_3] = { .species = SPECIES_NIDOQUEEN, .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_CRUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [606] = { + [FRONTIER_MON_NIDOKING_3] = { .species = SPECIES_NIDOKING, .moves = {MOVE_HORN_DRILL, MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [607] = { + [FRONTIER_MON_MAGMAR_3] = { .species = SPECIES_MAGMAR, .moves = {MOVE_MEGA_KICK, MOVE_CROSS_CHOP, MOVE_IRON_TAIL, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_IMPISH }, - [608] = { + [FRONTIER_MON_CRADILY_3] = { .species = SPECIES_CRADILY, .moves = {MOVE_SUBSTITUTE, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [609] = { + [FRONTIER_MON_ARMALDO_3] = { .species = SPECIES_ARMALDO, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_SWORDS_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [610] = { + [FRONTIER_MON_GOLDUCK_3] = { .species = SPECIES_GOLDUCK, .moves = {MOVE_HYDRO_PUMP, MOVE_CROSS_CHOP, MOVE_BLIZZARD, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [611] = { + [FRONTIER_MON_RAPIDASH_3] = { .species = SPECIES_RAPIDASH, .moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY, MOVE_HYPNOSIS}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [612] = { + [FRONTIER_MON_MUK_3] = { .species = SPECIES_MUK, .moves = {MOVE_SLUDGE_BOMB, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_QUIET }, - [613] = { + [FRONTIER_MON_GENGAR_3] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_GIGA_DRAIN, MOVE_SKILL_SWAP}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [614] = { + [FRONTIER_MON_AMPHAROS_3] = { .species = SPECIES_AMPHAROS, .moves = {MOVE_THUNDERBOLT, MOVE_MEGA_KICK, MOVE_IRON_TAIL, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [615] = { + [FRONTIER_MON_SCIZOR_3] = { .species = SPECIES_SCIZOR, .moves = {MOVE_REVERSAL, MOVE_ENDURE, MOVE_AGILITY, MOVE_SLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_CAREFUL }, - [616] = { + [FRONTIER_MON_HERACROSS_3] = { .species = SPECIES_HERACROSS, .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [617] = { + [FRONTIER_MON_URSARING_3] = { .species = SPECIES_URSARING, .moves = {MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH, MOVE_CRUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [618] = { + [FRONTIER_MON_HOUNDOOM_3] = { .species = SPECIES_HOUNDOOM, .moves = {MOVE_OVERHEAT, MOVE_SHADOW_BALL, MOVE_SLUDGE_BOMB, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [619] = { + [FRONTIER_MON_DONPHAN_3] = { .species = SPECIES_DONPHAN, .moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SECRET_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [620] = { + [FRONTIER_MON_CLAYDOL_3] = { .species = SPECIES_CLAYDOL, .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [621] = { + [FRONTIER_MON_WAILORD_3] = { .species = SPECIES_WAILORD, .moves = {MOVE_HYDRO_PUMP, MOVE_FISSURE, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [622] = { + [FRONTIER_MON_NINETALES_3] = { .species = SPECIES_NINETALES, .moves = {MOVE_FIRE_BLAST, MOVE_IRON_TAIL, MOVE_CONFUSE_RAY, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [623] = { + [FRONTIER_MON_MACHAMP_3] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_FIRE_BLAST, MOVE_THUNDER_PUNCH, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [624] = { + [FRONTIER_MON_SHUCKLE_3] = { .species = SPECIES_SHUCKLE, .moves = {MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_TOXIC, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_CAREFUL }, - [625] = { + [FRONTIER_MON_STEELIX_3] = { .species = SPECIES_STEELIX, .moves = {MOVE_EARTHQUAKE, MOVE_BODY_SLAM, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [626] = { + [FRONTIER_MON_TENTACRUEL_3] = { .species = SPECIES_TENTACRUEL, .moves = {MOVE_SURF, MOVE_GIGA_DRAIN, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [627] = { + [FRONTIER_MON_AERODACTYL_3] = { .species = SPECIES_AERODACTYL, .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FIRE_BLAST, MOVE_DRAGON_CLAW}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [628] = { + [FRONTIER_MON_PORYGON2_3] = { .species = SPECIES_PORYGON2, .moves = {MOVE_PSYCHIC, MOVE_TRI_ATTACK, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [629] = { + [FRONTIER_MON_GARDEVOIR_3] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH, MOVE_MAGICAL_LEAF}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [630] = { + [FRONTIER_MON_EXEGGUTOR_3] = { .species = SPECIES_EXEGGUTOR, .moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [631] = { + [FRONTIER_MON_STARMIE_3] = { .species = SPECIES_STARMIE, .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [632] = { + [FRONTIER_MON_FLYGON_3] = { .species = SPECIES_FLYGON, .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [633] = { + [FRONTIER_MON_VENUSAUR_3] = { .species = SPECIES_VENUSAUR, .moves = {MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SLEEP_POWDER}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [634] = { + [FRONTIER_MON_VAPOREON_3] = { .species = SPECIES_VAPOREON, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [635] = { + [FRONTIER_MON_JOLTEON_3] = { .species = SPECIES_JOLTEON, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_AGILITY, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [636] = { + [FRONTIER_MON_FLAREON_3] = { .species = SPECIES_FLAREON, .moves = {MOVE_SHADOW_BALL, MOVE_FLAIL, MOVE_ENDURE, MOVE_OVERHEAT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [637] = { + [FRONTIER_MON_MEGANIUM_3] = { .species = SPECIES_MEGANIUM, .moves = {MOVE_EARTHQUAKE, MOVE_FLAIL, MOVE_ENDURE, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [638] = { + [FRONTIER_MON_ESPEON_3] = { .species = SPECIES_ESPEON, .moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_WISH, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [639] = { + [FRONTIER_MON_UMBREON_3] = { .species = SPECIES_UMBREON, .moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ATTRACT, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [640] = { + [FRONTIER_MON_BLASTOISE_3] = { .species = SPECIES_BLASTOISE, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [641] = { + [FRONTIER_MON_FERALIGATR_3] = { .species = SPECIES_FERALIGATR, .moves = {MOVE_HYDRO_PUMP, MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [642] = { + [FRONTIER_MON_AGGRON_3] = { .species = SPECIES_AGGRON, .moves = {MOVE_SURF, MOVE_THUNDER, MOVE_FIRE_BLAST, MOVE_BLIZZARD}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [643] = { + [FRONTIER_MON_BLAZIKEN_3] = { .species = SPECIES_BLAZIKEN, .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_ENDURE, MOVE_REVERSAL}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [644] = { + [FRONTIER_MON_WALREIN_3] = { .species = SPECIES_WALREIN, .moves = {MOVE_SHEER_COLD, MOVE_FISSURE, MOVE_SURF, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [645] = { + [FRONTIER_MON_SCEPTILE_3] = { .species = SPECIES_SCEPTILE, .moves = {MOVE_LEAF_BLADE, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [646] = { + [FRONTIER_MON_CHARIZARD_3] = { .species = SPECIES_CHARIZARD, .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_BITE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [647] = { + [FRONTIER_MON_TYPHLOSION_3] = { .species = SPECIES_TYPHLOSION, .moves = {MOVE_EARTHQUAKE, MOVE_OVERHEAT, MOVE_ENDURE, MOVE_REVERSAL}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [648] = { + [FRONTIER_MON_LAPRAS_3] = { .species = SPECIES_LAPRAS, .moves = {MOVE_DOUBLE_EDGE, MOVE_PSYCHIC, MOVE_CONFUSE_RAY, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [649] = { + [FRONTIER_MON_CROBAT_3] = { .species = SPECIES_CROBAT, .moves = {MOVE_AIR_CUTTER, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [650] = { + [FRONTIER_MON_SWAMPERT_3] = { .species = SPECIES_SWAMPERT, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_BRAVE }, - [651] = { + [FRONTIER_MON_GYARADOS_3] = { .species = SPECIES_GYARADOS, .moves = {MOVE_SURF, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [652] = { + [FRONTIER_MON_SNORLAX_3] = { .species = SPECIES_SNORLAX, .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_ADAMANT }, - [653] = { + [FRONTIER_MON_KINGDRA_3] = { .species = SPECIES_KINGDRA, .moves = {MOVE_FLAIL, MOVE_HYDRO_PUMP, MOVE_DRAGON_DANCE, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [654] = { + [FRONTIER_MON_BLISSEY_3] = { .species = SPECIES_BLISSEY, .moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_CALM_MIND, MOVE_SOFT_BOILED}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [655] = { + [FRONTIER_MON_MILOTIC_3] = { .species = SPECIES_MILOTIC, .moves = {MOVE_SURF, MOVE_BLIZZARD, MOVE_ATTRACT, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [656] = { + [FRONTIER_MON_ARCANINE_3] = { .species = SPECIES_ARCANINE, .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [657] = { + [FRONTIER_MON_SALAMENCE_3] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [658] = { + [FRONTIER_MON_METAGROSS_3] = { .species = SPECIES_METAGROSS, .moves = {MOVE_EARTHQUAKE, MOVE_METEOR_MASH, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [659] = { + [FRONTIER_MON_SLAKING_3] = { .species = SPECIES_SLAKING, .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_ADAMANT }, - [660] = { + [FRONTIER_MON_DUGTRIO_4] = { .species = SPECIES_DUGTRIO, .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_ROCK_SLIDE, MOVE_FISSURE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [661] = { + [FRONTIER_MON_MEDICHAM_4] = { .species = SPECIES_MEDICHAM, .moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [662] = { + [FRONTIER_MON_MISDREAVUS_4] = { .species = SPECIES_MISDREAVUS, .moves = {MOVE_DESTINY_BOND, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_TIMID }, - [663] = { + [FRONTIER_MON_FEAROW_4] = { .species = SPECIES_FEAROW, .moves = {MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SKY_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [664] = { + [FRONTIER_MON_GRANBULL_4] = { .species = SPECIES_GRANBULL, .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_BRAVE }, - [665] = { + [FRONTIER_MON_JYNX_4] = { .species = SPECIES_JYNX, .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_LOVELY_KISS, MOVE_FAKE_TEARS}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [666] = { + [FRONTIER_MON_DUSCLOPS_4] = { .species = SPECIES_DUSCLOPS, .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_CURSE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [667] = { + [FRONTIER_MON_DODRIO_4] = { .species = SPECIES_DODRIO, .moves = {MOVE_FLAIL, MOVE_ENDURE, MOVE_DRILL_PECK, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [668] = { + [FRONTIER_MON_MR_MIME_4] = { .species = SPECIES_MR_MIME, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [669] = { + [FRONTIER_MON_LANTURN_4] = { .species = SPECIES_LANTURN, .moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [670] = { + [FRONTIER_MON_BRELOOM_4] = { .species = SPECIES_BRELOOM, .moves = {MOVE_FOCUS_PUNCH, MOVE_SLUDGE_BOMB, MOVE_SPORE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [671] = { + [FRONTIER_MON_FORRETRESS_4] = { .species = SPECIES_FORRETRESS, .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [672] = { + [FRONTIER_MON_WHISCASH_4] = { .species = SPECIES_WHISCASH, .moves = {MOVE_FISSURE, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [673] = { + [FRONTIER_MON_XATU_4] = { .species = SPECIES_XATU, .moves = {MOVE_PSYCHIC, MOVE_DRILL_PECK, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [674] = { + [FRONTIER_MON_SKARMORY_4] = { .species = SPECIES_SKARMORY, .moves = {MOVE_DRILL_PECK, MOVE_STEEL_WING, MOVE_COUNTER, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [675] = { + [FRONTIER_MON_MAROWAK_4] = { .species = SPECIES_MAROWAK, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_MEGA_KICK}, .itemTableId = BATTLE_FRONTIER_ITEM_THICK_CLUB, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [676] = { + [FRONTIER_MON_QUAGSIRE_4] = { .species = SPECIES_QUAGSIRE, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_SASSY }, - [677] = { + [FRONTIER_MON_CLEFABLE_4] = { .species = SPECIES_CLEFABLE, .moves = {MOVE_MEGA_KICK, MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_SOFT_BOILED}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [678] = { + [FRONTIER_MON_HARIYAMA_4] = { .species = SPECIES_HARIYAMA, .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [679] = { + [FRONTIER_MON_RAICHU_4] = { .species = SPECIES_RAICHU, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_PROTECT, MOVE_MEGA_KICK}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [680] = { + [FRONTIER_MON_DEWGONG_4] = { .species = SPECIES_DEWGONG, .moves = {MOVE_SHEER_COLD, MOVE_ICE_BEAM, MOVE_SURF, MOVE_SIGNAL_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [681] = { + [FRONTIER_MON_MANECTRIC_4] = { .species = SPECIES_MANECTRIC, .moves = {MOVE_THUNDERBOLT, MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [682] = { + [FRONTIER_MON_VILEPLUME_4] = { .species = SPECIES_VILEPLUME, .moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [683] = { + [FRONTIER_MON_VICTREEBEL_4] = { .species = SPECIES_VICTREEBEL, .moves = {MOVE_GIGA_DRAIN, MOVE_DOUBLE_EDGE, MOVE_SLUDGE_BOMB, MOVE_SYNTHESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [684] = { + [FRONTIER_MON_ELECTRODE_4] = { .species = SPECIES_ELECTRODE, .moves = {MOVE_EXPLOSION, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [685] = { + [FRONTIER_MON_EXPLOUD_4] = { .species = SPECIES_EXPLOUD, .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_OVERHEAT}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [686] = { + [FRONTIER_MON_SHIFTRY_4] = { .species = SPECIES_SHIFTRY, .moves = {MOVE_EXPLOSION, MOVE_GIGA_DRAIN, MOVE_MEGA_KICK, MOVE_FAKE_OUT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [687] = { + [FRONTIER_MON_GLALIE_4] = { .species = SPECIES_GLALIE, .moves = {MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [688] = { + [FRONTIER_MON_LUDICOLO_4] = { .species = SPECIES_LUDICOLO, .moves = {MOVE_LEECH_SEED, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_TOXIC}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [689] = { + [FRONTIER_MON_HYPNO_4] = { .species = SPECIES_HYPNO, .moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [690] = { + [FRONTIER_MON_GOLEM_4] = { .species = SPECIES_GOLEM, .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [691] = { + [FRONTIER_MON_RHYDON_4] = { .species = SPECIES_RHYDON, .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_HORN_DRILL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [692] = { + [FRONTIER_MON_ALAKAZAM_4] = { .species = SPECIES_ALAKAZAM, .moves = {MOVE_PSYCHIC, MOVE_THUNDER_PUNCH, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [693] = { + [FRONTIER_MON_WEEZING_4] = { .species = SPECIES_WEEZING, .moves = {MOVE_EXPLOSION, MOVE_SLUDGE_BOMB, MOVE_FRUSTRATION, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [694] = { + [FRONTIER_MON_KANGASKHAN_4] = { .species = SPECIES_KANGASKHAN, .moves = {MOVE_MEGA_KICK, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [695] = { + [FRONTIER_MON_ELECTABUZZ_4] = { .species = SPECIES_ELECTABUZZ, .moves = {MOVE_THUNDERBOLT, MOVE_PSYCHIC, MOVE_MEGA_KICK, MOVE_CROSS_CHOP}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [696] = { + [FRONTIER_MON_TAUROS_4] = { .species = SPECIES_TAUROS, .moves = {MOVE_DOUBLE_EDGE, MOVE_ROCK_TOMB, MOVE_THUNDERBOLT, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [697] = { + [FRONTIER_MON_SLOWBRO_4] = { .species = SPECIES_SLOWBRO, .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_SASSY }, - [698] = { + [FRONTIER_MON_SLOWKING_4] = { .species = SPECIES_SLOWKING, .moves = {MOVE_PSYCHIC, MOVE_SURF, MOVE_ICE_BEAM, MOVE_FLAMETHROWER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [699] = { + [FRONTIER_MON_MILTANK_4] = { .species = SPECIES_MILTANK, .moves = {MOVE_DOUBLE_EDGE, MOVE_CURSE, MOVE_DOUBLE_TEAM, MOVE_MILK_DRINK}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [700] = { + [FRONTIER_MON_ALTARIA_4] = { .species = SPECIES_ALTARIA, .moves = {MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [701] = { + [FRONTIER_MON_NIDOQUEEN_4] = { .species = SPECIES_NIDOQUEEN, .moves = {MOVE_SUPERPOWER, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [702] = { + [FRONTIER_MON_NIDOKING_4] = { .species = SPECIES_NIDOKING, .moves = {MOVE_MEGAHORN, MOVE_SLUDGE_BOMB, MOVE_EARTHQUAKE, MOVE_THUNDER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [703] = { + [FRONTIER_MON_MAGMAR_4] = { .species = SPECIES_MAGMAR, .moves = {MOVE_FLAMETHROWER, MOVE_PSYCHIC, MOVE_CROSS_CHOP, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [704] = { + [FRONTIER_MON_CRADILY_4] = { .species = SPECIES_CRADILY, .moves = {MOVE_TOXIC, MOVE_INGRAIN, MOVE_MIRROR_COAT, MOVE_GIGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [705] = { + [FRONTIER_MON_ARMALDO_4] = { .species = SPECIES_ARMALDO, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [706] = { + [FRONTIER_MON_GOLDUCK_4] = { .species = SPECIES_GOLDUCK, .moves = {MOVE_SURF, MOVE_CROSS_CHOP, MOVE_ICE_BEAM, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [707] = { + [FRONTIER_MON_RAPIDASH_4] = { .species = SPECIES_RAPIDASH, .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_IRON_TAIL, MOVE_DOUBLE_KICK}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [708] = { + [FRONTIER_MON_MUK_4] = { .species = SPECIES_MUK, .moves = {MOVE_SLUDGE_BOMB, MOVE_BRICK_BREAK, MOVE_GIGA_DRAIN, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_BRAVE }, - [709] = { + [FRONTIER_MON_GENGAR_4] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [710] = { + [FRONTIER_MON_AMPHAROS_4] = { .species = SPECIES_AMPHAROS, .moves = {MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_THUNDER_WAVE, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [711] = { + [FRONTIER_MON_SCIZOR_4] = { .species = SPECIES_SCIZOR, .moves = {MOVE_SILVER_WIND, MOVE_SWORDS_DANCE, MOVE_AGILITY, MOVE_BATON_PASS}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [712] = { + [FRONTIER_MON_HERACROSS_4] = { .species = SPECIES_HERACROSS, .moves = {MOVE_MEGAHORN, MOVE_EARTHQUAKE, MOVE_REVERSAL, MOVE_ENDURE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [713] = { + [FRONTIER_MON_URSARING_4] = { .species = SPECIES_URSARING, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [714] = { + [FRONTIER_MON_HOUNDOOM_4] = { .species = SPECIES_HOUNDOOM, .moves = {MOVE_OVERHEAT, MOVE_SOLAR_BEAM, MOVE_CRUNCH, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [715] = { + [FRONTIER_MON_DONPHAN_4] = { .species = SPECIES_DONPHAN, .moves = {MOVE_FISSURE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_IRON_TAIL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [716] = { + [FRONTIER_MON_CLAYDOL_4] = { .species = SPECIES_CLAYDOL, .moves = {MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [717] = { + [FRONTIER_MON_WAILORD_4] = { .species = SPECIES_WAILORD, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_FISSURE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [718] = { + [FRONTIER_MON_NINETALES_4] = { .species = SPECIES_NINETALES, .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_CONFUSE_RAY, MOVE_WILL_O_WISP}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [719] = { + [FRONTIER_MON_MACHAMP_4] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_FLAMETHROWER, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [720] = { + [FRONTIER_MON_SHUCKLE_4] = { .species = SPECIES_SHUCKLE, .moves = {MOVE_TOXIC, MOVE_DOUBLE_TEAM, MOVE_WRAP, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_CAREFUL }, - [721] = { + [FRONTIER_MON_STEELIX_4] = { .species = SPECIES_STEELIX, .moves = {MOVE_EARTHQUAKE, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [722] = { + [FRONTIER_MON_TENTACRUEL_4] = { .species = SPECIES_TENTACRUEL, .moves = {MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [723] = { + [FRONTIER_MON_AERODACTYL_4] = { .species = SPECIES_AERODACTYL, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_FIRE_BLAST, MOVE_BITE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [724] = { + [FRONTIER_MON_PORYGON2_4] = { .species = SPECIES_PORYGON2, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [725] = { + [FRONTIER_MON_GARDEVOIR_4] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [726] = { + [FRONTIER_MON_EXEGGUTOR_4] = { .species = SPECIES_EXEGGUTOR, .moves = {MOVE_PSYCHIC, MOVE_GIGA_DRAIN, MOVE_SLUDGE_BOMB, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [727] = { + [FRONTIER_MON_STARMIE_4] = { .species = SPECIES_STARMIE, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [728] = { + [FRONTIER_MON_FLYGON_4] = { .species = SPECIES_FLYGON, .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_CLAW, MOVE_DOUBLE_EDGE, MOVE_CRUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [729] = { + [FRONTIER_MON_VENUSAUR_4] = { .species = SPECIES_VENUSAUR, .moves = {MOVE_SOLAR_BEAM, MOVE_SLUDGE_BOMB, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [730] = { + [FRONTIER_MON_VAPOREON_4] = { .species = SPECIES_VAPOREON, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_ACID_ARMOR, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [731] = { + [FRONTIER_MON_JOLTEON_4] = { .species = SPECIES_JOLTEON, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_BITE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_TIMID }, - [732] = { + [FRONTIER_MON_FLAREON_4] = { .species = SPECIES_FLAREON, .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [733] = { + [FRONTIER_MON_MEGANIUM_4] = { .species = SPECIES_MEGANIUM, .moves = {MOVE_GIGA_DRAIN, MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [734] = { + [FRONTIER_MON_ESPEON_4] = { .species = SPECIES_ESPEON, .moves = {MOVE_PSYCHIC, MOVE_BITE, MOVE_ATTRACT, MOVE_CALM_MIND}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [735] = { + [FRONTIER_MON_UMBREON_4] = { .species = SPECIES_UMBREON, .moves = {MOVE_CONFUSE_RAY, MOVE_TOXIC, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [736] = { + [FRONTIER_MON_BLASTOISE_4] = { .species = SPECIES_BLASTOISE, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [737] = { + [FRONTIER_MON_FERALIGATR_4] = { .species = SPECIES_FERALIGATR, .moves = {MOVE_HYDRO_PUMP, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [738] = { + [FRONTIER_MON_AGGRON_4] = { .species = SPECIES_AGGRON, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [739] = { + [FRONTIER_MON_BLAZIKEN_4] = { .species = SPECIES_BLAZIKEN, .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_THUNDER_PUNCH, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [740] = { + [FRONTIER_MON_WALREIN_4] = { .species = SPECIES_WALREIN, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_EARTHQUAKE, MOVE_SHEER_COLD}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [741] = { + [FRONTIER_MON_SCEPTILE_4] = { .species = SPECIES_SCEPTILE, .moves = {MOVE_LEAF_BLADE, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_THUNDER_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [742] = { + [FRONTIER_MON_CHARIZARD_4] = { .species = SPECIES_CHARIZARD, .moves = {MOVE_OVERHEAT, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [743] = { + [FRONTIER_MON_TYPHLOSION_4] = { .species = SPECIES_TYPHLOSION, .moves = {MOVE_OVERHEAT, MOVE_THUNDER_PUNCH, MOVE_EARTHQUAKE, MOVE_CRUSH_CLAW}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [744] = { + [FRONTIER_MON_LAPRAS_4] = { .species = SPECIES_LAPRAS, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_PSYCHIC}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [745] = { + [FRONTIER_MON_CROBAT_4] = { .species = SPECIES_CROBAT, .moves = {MOVE_SLUDGE_BOMB, MOVE_AERIAL_ACE, MOVE_SHADOW_BALL, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [746] = { + [FRONTIER_MON_SWAMPERT_4] = { .species = SPECIES_SWAMPERT, .moves = {MOVE_SURF, MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [747] = { + [FRONTIER_MON_GYARADOS_4] = { .species = SPECIES_GYARADOS, .moves = {MOVE_RETURN, MOVE_EARTHQUAKE, MOVE_DRAGON_DANCE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [748] = { + [FRONTIER_MON_SNORLAX_4] = { .species = SPECIES_SNORLAX, .moves = {MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [749] = { + [FRONTIER_MON_KINGDRA_4] = { .species = SPECIES_KINGDRA, .moves = {MOVE_DOUBLE_EDGE, MOVE_ICE_BEAM, MOVE_DRAGON_DANCE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [750] = { + [FRONTIER_MON_BLISSEY_4] = { .species = SPECIES_BLISSEY, .moves = {MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_COUNTER, MOVE_SOFT_BOILED}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_BOLD }, - [751] = { + [FRONTIER_MON_MILOTIC_4] = { .species = SPECIES_MILOTIC, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RECOVER, MOVE_MIRROR_COAT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [752] = { + [FRONTIER_MON_ARCANINE_4] = { .species = SPECIES_ARCANINE, .moves = {MOVE_OVERHEAT, MOVE_EXTREME_SPEED, MOVE_CRUNCH, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [753] = { + [FRONTIER_MON_SALAMENCE_4] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [754] = { + [FRONTIER_MON_METAGROSS_4] = { .species = SPECIES_METAGROSS, .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_EARTHQUAKE, MOVE_SHADOW_BALL}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [755] = { + [FRONTIER_MON_SLAKING_4] = { .species = SPECIES_SLAKING, .moves = {MOVE_THUNDERBOLT, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_MODEST }, - [756] = { + [FRONTIER_MON_ARTICUNO_1] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_ICE_BEAM, MOVE_WATER_PULSE, MOVE_ICY_WIND, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [757] = { + [FRONTIER_MON_ZAPDOS_1] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [758] = { + [FRONTIER_MON_MOLTRES_1] = { .species = SPECIES_MOLTRES, .moves = {MOVE_FLAMETHROWER, MOVE_AERIAL_ACE, MOVE_MUD_SLAP, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [759] = { + [FRONTIER_MON_RAIKOU_1] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [760] = { + [FRONTIER_MON_ENTEI_1] = { .species = SPECIES_ENTEI, .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [761] = { + [FRONTIER_MON_SUICUNE_1] = { .species = SPECIES_SUICUNE, .moves = {MOVE_SURF, MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [762] = { + [FRONTIER_MON_REGIROCK_1] = { .species = SPECIES_REGIROCK, .moves = {MOVE_SUPERPOWER, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [763] = { + [FRONTIER_MON_REGICE_1] = { .species = SPECIES_REGICE, .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_AMNESIA, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [764] = { + [FRONTIER_MON_REGISTEEL_1] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_METAL_CLAW, MOVE_CURSE, MOVE_AMNESIA, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [765] = { + [FRONTIER_MON_LATIAS_1] = { .species = SPECIES_LATIAS, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [766] = { + [FRONTIER_MON_LATIOS_1] = { .species = SPECIES_LATIOS, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [767] = { + [FRONTIER_MON_ARTICUNO_2] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_BLIZZARD, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [768] = { + [FRONTIER_MON_ZAPDOS_2] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DRILL_PECK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [769] = { + [FRONTIER_MON_MOLTRES_2] = { .species = SPECIES_MOLTRES, .moves = {MOVE_OVERHEAT, MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [770] = { + [FRONTIER_MON_RAIKOU_2] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_DOUBLE_TEAM, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [771] = { + [FRONTIER_MON_ENTEI_2] = { .species = SPECIES_ENTEI, .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [772] = { + [FRONTIER_MON_SUICUNE_2] = { .species = SPECIES_SUICUNE, .moves = {MOVE_TOXIC, MOVE_DIVE, MOVE_DOUBLE_TEAM, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [773] = { + [FRONTIER_MON_REGIROCK_2] = { .species = SPECIES_REGIROCK, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [774] = { + [FRONTIER_MON_REGICE_2] = { .species = SPECIES_REGICE, .moves = {MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [775] = { + [FRONTIER_MON_REGISTEEL_2] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [776] = { + [FRONTIER_MON_LATIAS_2] = { .species = SPECIES_LATIAS, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [777] = { + [FRONTIER_MON_LATIOS_2] = { .species = SPECIES_LATIOS, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [778] = { + [FRONTIER_MON_ARTICUNO_3] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_ICE_BEAM, MOVE_FACADE, MOVE_AERIAL_ACE, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [779] = { + [FRONTIER_MON_ZAPDOS_3] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_SUBSTITUTE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [780] = { + [FRONTIER_MON_MOLTRES_3] = { .species = SPECIES_MOLTRES, .moves = {MOVE_FIRE_BLAST, MOVE_SUNNY_DAY, MOVE_DOUBLE_TEAM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [781] = { + [FRONTIER_MON_RAIKOU_3] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [782] = { + [FRONTIER_MON_ENTEI_3] = { .species = SPECIES_ENTEI, .moves = {MOVE_FLAMETHROWER, MOVE_DOUBLE_EDGE, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [783] = { + [FRONTIER_MON_SUICUNE_3] = { .species = SPECIES_SUICUNE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_RAIN_DANCE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [784] = { + [FRONTIER_MON_REGIROCK_3] = { .species = SPECIES_REGIROCK, .moves = {MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE, MOVE_CURSE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [785] = { + [FRONTIER_MON_REGICE_3] = { .species = SPECIES_REGICE, .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [786] = { + [FRONTIER_MON_REGISTEEL_3] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_ANCIENT_POWER, MOVE_AMNESIA, MOVE_COUNTER, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [787] = { + [FRONTIER_MON_LATIAS_3] = { .species = SPECIES_LATIAS, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [788] = { + [FRONTIER_MON_LATIOS_3] = { .species = SPECIES_LATIOS, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [789] = { + [FRONTIER_MON_ARTICUNO_4] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_REST, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [790] = { + [FRONTIER_MON_ZAPDOS_4] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [791] = { + [FRONTIER_MON_MOLTRES_4] = { .species = SPECIES_MOLTRES, .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_STEEL_WING, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [792] = { + [FRONTIER_MON_RAIKOU_4] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDERBOLT, MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [793] = { + [FRONTIER_MON_ENTEI_4] = { .species = SPECIES_ENTEI, .moves = {MOVE_FLAMETHROWER, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [794] = { + [FRONTIER_MON_SUICUNE_4] = { .species = SPECIES_SUICUNE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_BITE, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [795] = { + [FRONTIER_MON_REGIROCK_4] = { .species = SPECIES_REGIROCK, .moves = {MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [796] = { + [FRONTIER_MON_REGICE_4] = { .species = SPECIES_REGICE, .moves = {MOVE_ICE_BEAM, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [797] = { + [FRONTIER_MON_REGISTEEL_4] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [798] = { + [FRONTIER_MON_LATIAS_4] = { .species = SPECIES_LATIAS, .moves = {MOVE_MIST_BALL, MOVE_SHADOW_BALL, MOVE_CHARM, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [799] = { + [FRONTIER_MON_LATIOS_4] = { .species = SPECIES_LATIOS, .moves = {MOVE_LUSTER_PURGE, MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_DRAGON_CLAW}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [800] = { + [FRONTIER_MON_GENGAR_5] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [801] = { + [FRONTIER_MON_GENGAR_6] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [802] = { + [FRONTIER_MON_GENGAR_7] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FIRE_PUNCH, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [803] = { + [FRONTIER_MON_GENGAR_8] = { .species = SPECIES_GENGAR, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_ICE_PUNCH, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [804] = { + [FRONTIER_MON_URSARING_5] = { .species = SPECIES_URSARING, .moves = {MOVE_MEGA_KICK, MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [805] = { + [FRONTIER_MON_URSARING_6] = { .species = SPECIES_URSARING, .moves = {MOVE_HYPER_BEAM, MOVE_YAWN, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [806] = { + [FRONTIER_MON_URSARING_7] = { .species = SPECIES_URSARING, .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BULK_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [807] = { + [FRONTIER_MON_URSARING_8] = { .species = SPECIES_URSARING, .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_CRUNCH, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [808] = { + [FRONTIER_MON_MACHAMP_5] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [809] = { + [FRONTIER_MON_MACHAMP_6] = { .species = SPECIES_MACHAMP, .moves = {MOVE_CROSS_CHOP, MOVE_EARTHQUAKE, MOVE_COUNTER, MOVE_ROCK_TOMB}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [810] = { + [FRONTIER_MON_MACHAMP_7] = { .species = SPECIES_MACHAMP, .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [811] = { + [FRONTIER_MON_MACHAMP_8] = { .species = SPECIES_MACHAMP, .moves = {MOVE_REVENGE, MOVE_ROCK_SLIDE, MOVE_FACADE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [812] = { + [FRONTIER_MON_GARDEVOIR_5] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_ENDURE, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [813] = { + [FRONTIER_MON_GARDEVOIR_6] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [814] = { + [FRONTIER_MON_GARDEVOIR_7] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_WILL_O_WISP, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [815] = { + [FRONTIER_MON_GARDEVOIR_8] = { .species = SPECIES_GARDEVOIR, .moves = {MOVE_PSYCHIC, MOVE_MAGICAL_LEAF, MOVE_ATTRACT, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [816] = { + [FRONTIER_MON_STARMIE_5] = { .species = SPECIES_STARMIE, .moves = {MOVE_SURF, MOVE_PSYCHIC, MOVE_RECOVER, MOVE_LIGHT_SCREEN}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [817] = { + [FRONTIER_MON_STARMIE_6] = { .species = SPECIES_STARMIE, .moves = {MOVE_SURF, MOVE_CONFUSE_RAY, MOVE_THUNDER_WAVE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [818] = { + [FRONTIER_MON_STARMIE_7] = { .species = SPECIES_STARMIE, .moves = {MOVE_PSYCHIC, MOVE_ICE_BEAM, MOVE_COSMIC_POWER, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [819] = { + [FRONTIER_MON_STARMIE_8] = { .species = SPECIES_STARMIE, .moves = {MOVE_SURF, MOVE_THUNDERBOLT, MOVE_COSMIC_POWER, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [820] = { + [FRONTIER_MON_LAPRAS_5] = { .species = SPECIES_LAPRAS, .moves = {MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_IRON_TAIL, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [821] = { + [FRONTIER_MON_LAPRAS_6] = { .species = SPECIES_LAPRAS, .moves = {MOVE_HYDRO_PUMP, MOVE_THUNDER, MOVE_RAIN_DANCE, MOVE_BLIZZARD}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [822] = { + [FRONTIER_MON_LAPRAS_7] = { .species = SPECIES_LAPRAS, .moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_REST, MOVE_SLEEP_TALK}, .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [823] = { + [FRONTIER_MON_LAPRAS_8] = { .species = SPECIES_LAPRAS, .moves = {MOVE_SHEER_COLD, MOVE_HORN_DRILL, MOVE_SING, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [824] = { + [FRONTIER_MON_SNORLAX_5] = { .species = SPECIES_SNORLAX, .moves = {MOVE_MEGA_KICK, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [825] = { + [FRONTIER_MON_SNORLAX_6] = { .species = SPECIES_SNORLAX, .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_BRICK_BREAK, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [826] = { + [FRONTIER_MON_SNORLAX_7] = { .species = SPECIES_SNORLAX, .moves = {MOVE_HYPER_BEAM, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [827] = { + [FRONTIER_MON_SNORLAX_8] = { .species = SPECIES_SNORLAX, .moves = {MOVE_RETURN, MOVE_SHADOW_BALL, MOVE_BELLY_DRUM, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [828] = { + [FRONTIER_MON_SALAMENCE_5] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_FACADE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [829] = { + [FRONTIER_MON_SALAMENCE_6] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_HEADBUTT, MOVE_AERIAL_ACE, MOVE_CRUNCH, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [830] = { + [FRONTIER_MON_SALAMENCE_7] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [831] = { + [FRONTIER_MON_SALAMENCE_8] = { .species = SPECIES_SALAMENCE, .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_CRUNCH, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [832] = { + [FRONTIER_MON_METAGROSS_5] = { .species = SPECIES_METAGROSS, .moves = {MOVE_EXPLOSION, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [833] = { + [FRONTIER_MON_METAGROSS_6] = { .species = SPECIES_METAGROSS, .moves = {MOVE_METEOR_MASH, MOVE_PSYCHIC, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [834] = { + [FRONTIER_MON_METAGROSS_7] = { .species = SPECIES_METAGROSS, .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [835] = { + [FRONTIER_MON_METAGROSS_8] = { .species = SPECIES_METAGROSS, .moves = {MOVE_METEOR_MASH, MOVE_EARTHQUAKE, MOVE_BRICK_BREAK, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [836] = { + [FRONTIER_MON_REGIROCK_5] = { .species = SPECIES_REGIROCK, .moves = {MOVE_HYPER_BEAM, MOVE_FOCUS_PUNCH, MOVE_ROCK_SLIDE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [837] = { + [FRONTIER_MON_REGIROCK_6] = { .species = SPECIES_REGIROCK, .moves = {MOVE_SWAGGER, MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, MOVE_EXPLOSION}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [838] = { + [FRONTIER_MON_REGICE_5] = { .species = SPECIES_REGICE, .moves = {MOVE_EARTHQUAKE, MOVE_ICE_BEAM, MOVE_CURSE, MOVE_COUNTER}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [839] = { + [FRONTIER_MON_REGICE_6] = { .species = SPECIES_REGICE, .moves = {MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_SLEEP_TALK, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [840] = { + [FRONTIER_MON_REGISTEEL_5] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_FOCUS_PUNCH, MOVE_SUBSTITUTE, MOVE_TOXIC, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [841] = { + [FRONTIER_MON_REGISTEEL_6] = { .species = SPECIES_REGISTEEL, .moves = {MOVE_SUPERPOWER, MOVE_AERIAL_ACE, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [842] = { + [FRONTIER_MON_LATIAS_5] = { .species = SPECIES_LATIAS, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [843] = { + [FRONTIER_MON_LATIAS_6] = { .species = SPECIES_LATIAS, .moves = {MOVE_MIST_BALL, MOVE_DRAGON_CLAW, MOVE_ATTRACT, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [844] = { + [FRONTIER_MON_LATIAS_7] = { .species = SPECIES_LATIAS, .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_SWAGGER, MOVE_PSYCH_UP}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [845] = { + [FRONTIER_MON_LATIAS_8] = { .species = SPECIES_LATIAS, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [846] = { + [FRONTIER_MON_LATIOS_5] = { .species = SPECIES_LATIOS, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE, MOVE_CALM_MIND, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [847] = { + [FRONTIER_MON_LATIOS_6] = { .species = SPECIES_LATIOS, .moves = {MOVE_LUSTER_PURGE, MOVE_SHADOW_BALL, MOVE_DRAGON_CLAW, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [848] = { + [FRONTIER_MON_LATIOS_7] = { .species = SPECIES_LATIOS, .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_DRAGON_DANCE, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [849] = { + [FRONTIER_MON_LATIOS_8] = { .species = SPECIES_LATIOS, .moves = {MOVE_PSYCHIC, MOVE_SHADOW_BALL, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [850] = { + [FRONTIER_MON_DRAGONITE_1] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [851] = { + [FRONTIER_MON_DRAGONITE_2] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_EARTHQUAKE, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [852] = { + [FRONTIER_MON_DRAGONITE_3] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_HYPER_BEAM, MOVE_ATTRACT, MOVE_DOUBLE_TEAM, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [853] = { + [FRONTIER_MON_DRAGONITE_4] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_HYPER_BEAM, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [854] = { + [FRONTIER_MON_DRAGONITE_5] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_OUTRAGE, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [855] = { + [FRONTIER_MON_DRAGONITE_6] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_FLAMETHROWER}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [856] = { + [FRONTIER_MON_DRAGONITE_7] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_DRAGON_CLAW, MOVE_THUNDERBOLT, MOVE_SURF, MOVE_ICE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [857] = { + [FRONTIER_MON_DRAGONITE_8] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_DRAGON_CLAW, MOVE_FLAMETHROWER, MOVE_ICE_BEAM, MOVE_BRICK_BREAK}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [858] = { + [FRONTIER_MON_DRAGONITE_9] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_THUNDER, MOVE_SURF, MOVE_RAIN_DANCE, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [859] = { + [FRONTIER_MON_DRAGONITE_10] = { .species = SPECIES_DRAGONITE, .moves = {MOVE_FIRE_BLAST, MOVE_BLIZZARD, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [860] = { + [FRONTIER_MON_TYRANITAR_1] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_THUNDERBOLT, MOVE_SURF}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [861] = { + [FRONTIER_MON_TYRANITAR_2] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CRUNCH, MOVE_THUNDERBOLT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [862] = { + [FRONTIER_MON_TYRANITAR_3] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_COUNTER, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [863] = { + [FRONTIER_MON_TYRANITAR_4] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_CRUNCH, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [864] = { + [FRONTIER_MON_TYRANITAR_5] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [865] = { + [FRONTIER_MON_TYRANITAR_6] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_CURSE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [866] = { + [FRONTIER_MON_TYRANITAR_7] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_ROCK_SLIDE, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [867] = { + [FRONTIER_MON_TYRANITAR_8] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_ROCK_SLIDE, MOVE_THUNDER_WAVE, MOVE_DRAGON_DANCE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [868] = { + [FRONTIER_MON_TYRANITAR_9] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_CRUNCH, MOVE_EARTHQUAKE, MOVE_AERIAL_ACE, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [869] = { + [FRONTIER_MON_TYRANITAR_10] = { .species = SPECIES_TYRANITAR, .moves = {MOVE_DOUBLE_EDGE, MOVE_EARTHQUAKE, MOVE_ROCK_SLIDE, MOVE_DRAGON_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [870] = { + [FRONTIER_MON_ARTICUNO_5] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_BLIZZARD, MOVE_DOUBLE_EDGE, MOVE_AGILITY, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [871] = { + [FRONTIER_MON_ARTICUNO_6] = { .species = SPECIES_ARTICUNO, .moves = {MOVE_ICE_BEAM, MOVE_AERIAL_ACE, MOVE_REFLECT, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [872] = { + [FRONTIER_MON_ZAPDOS_5] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDERBOLT, MOVE_DRILL_PECK, MOVE_DOUBLE_EDGE, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [873] = { + [FRONTIER_MON_ZAPDOS_6] = { .species = SPECIES_ZAPDOS, .moves = {MOVE_THUNDER, MOVE_DRILL_PECK, MOVE_RAIN_DANCE, MOVE_DOUBLE_EDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [874] = { + [FRONTIER_MON_MOLTRES_5] = { .species = SPECIES_MOLTRES, .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_SWAGGER, MOVE_FACADE}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_DOCILE }, - [875] = { + [FRONTIER_MON_MOLTRES_6] = { .species = SPECIES_MOLTRES, .moves = {MOVE_OVERHEAT, MOVE_DOUBLE_EDGE, MOVE_AERIAL_ACE, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_DOCILE }, - [876] = { + [FRONTIER_MON_RAIKOU_5] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDERBOLT, MOVE_DOUBLE_EDGE, MOVE_ROAR, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [877] = { + [FRONTIER_MON_RAIKOU_6] = { .species = SPECIES_RAIKOU, .moves = {MOVE_THUNDERBOLT, MOVE_CALM_MIND, MOVE_SUBSTITUTE, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [878] = { + [FRONTIER_MON_ENTEI_5] = { .species = SPECIES_ENTEI, .moves = {MOVE_FIRE_BLAST, MOVE_DOUBLE_EDGE, MOVE_ENDURE, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [879] = { + [FRONTIER_MON_ENTEI_6] = { .species = SPECIES_ENTEI, .moves = {MOVE_FLAMETHROWER, MOVE_CALM_MIND, MOVE_ROAR, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [880] = { + [FRONTIER_MON_SUICUNE_5] = { .species = SPECIES_SUICUNE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [881] = { + [FRONTIER_MON_SUICUNE_6] = { .species = SPECIES_SUICUNE, .moves = {MOVE_SURF, MOVE_ICE_BEAM, MOVE_CALM_MIND, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, diff --git a/src/data/battle_frontier/battle_frontier_trainer_mons.h b/src/data/battle_frontier/battle_frontier_trainer_mons.h index d0e21172b7c7..183964f2d9ca 100644 --- a/src/data/battle_frontier/battle_frontier_trainer_mons.h +++ b/src/data/battle_frontier/battle_frontier_trainer_mons.h @@ -1,15229 +1,7369 @@ +// Also used by early Pkmn Breeder, Collector, and Beauty trainers +#define FRONTIER_MONS_YOUNGSTER_LASS_1 \ + FRONTIER_MON_SUNKERN, \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_CATERPIE, \ + FRONTIER_MON_WEEDLE, \ + FRONTIER_MON_WURMPLE, \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_MAGIKARP, \ + FRONTIER_MON_FEEBAS, \ + FRONTIER_MON_PICHU, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_WOOPER, \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_SEEDOT, \ + FRONTIER_MON_LOTAD, \ + FRONTIER_MON_POOCHYENA, \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_ZUBAT, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_MARILL, \ + FRONTIER_MON_HOPPIP, \ + FRONTIER_MON_SLUGMA, \ + FRONTIER_MON_SWINUB, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_PIDGEY, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_SPEAROW, \ + FRONTIER_MON_HOOTHOOT, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_LEDYBA, \ + FRONTIER_MON_NINCADA, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_TAILLOW, \ + FRONTIER_MON_WINGULL, \ + FRONTIER_MON_NIDORAN_M, \ + FRONTIER_MON_NIDORAN_F, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MAREEP, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_EKANS, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_BARBOACH, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_PINECO, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SPHEAL, \ + FRONTIER_MON_HORSEA, \ + FRONTIER_MON_SHROOMISH, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_ELECTRIKE, \ + FRONTIER_MON_VULPIX, \ + -1 + +// Also used by early Pkmn Breeder, Collector, and Beauty trainers +#define FRONTIER_MONS_SCHOOL_KID_1 \ + FRONTIER_MON_PIKACHU, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_BELLSPROUT, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_REMORAID, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_SNORUNT, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_GULPIN, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_CHARMANDER, \ + FRONTIER_MON_CYNDAQUIL, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_DODUO, \ + FRONTIER_MON_GASTLY, \ + FRONTIER_MON_SWABLU, \ + FRONTIER_MON_TREECKO, \ + FRONTIER_MON_TORCHIC, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_BULBASAUR, \ + FRONTIER_MON_CHIKORITA, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_CUBONE, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_MAGNEMITE, \ + FRONTIER_MON_SEEL, \ + -1 + +#define FRONTIER_MONS_RICH_BOY_LADY_1 \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_POOCHYENA, \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_ZUBAT, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_NIDORAN_M, \ + FRONTIER_MON_NIDORAN_F, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_EKANS, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_BELLSPROUT, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_GULPIN, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_GASTLY, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_BULBASAUR, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_GRIMER, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_HOUNDOUR, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_KOFFING, \ + FRONTIER_MON_NIDORINA, \ + FRONTIER_MON_NIDORINO, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_ARIADOS, \ + -1 + +// Also used by early Pkmn Breeder, Collector, and Beauty trainers +#define FRONTIER_MONS_CAMPER_PICNICKER_1 \ + FRONTIER_MON_GRIMER, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_VOLTORB, \ + FRONTIER_MON_CHINCHOU, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_DELIBIRD, \ + FRONTIER_MON_HOUNDOUR, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_CACNEA, \ + FRONTIER_MON_KOFFING, \ + FRONTIER_MON_STARYU, \ + FRONTIER_MON_SKIPLOOM, \ + FRONTIER_MON_NUZLEAF, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_PIDGEOTTO, \ + FRONTIER_MON_GROWLITHE, \ + FRONTIER_MON_FARFETCHD, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_LILEEP, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_ELEKID, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_NIDORINA, \ + FRONTIER_MON_NIDORINO, \ + FRONTIER_MON_FLAAFFY, \ + FRONTIER_MON_MAGBY, \ + FRONTIER_MON_NOSEPASS, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_MAWILE, \ + FRONTIER_MON_BUTTERFREE, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_POLIWHIRL, \ + FRONTIER_MON_ONIX, \ + FRONTIER_MON_BEAUTIFLY, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + -1 + +#define FRONTIER_MONS_TUBER_1 \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_MAGIKARP, \ + FRONTIER_MON_FEEBAS, \ + FRONTIER_MON_WOOPER, \ + FRONTIER_MON_LOTAD, \ + FRONTIER_MON_MARILL, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_WINGULL, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_BARBOACH, \ + FRONTIER_MON_SPHEAL, \ + FRONTIER_MON_HORSEA, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_REMORAID, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_SPOINK, \ + -1 + +#define FRONTIER_MONS_SWIMMER_M_1 \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_REMORAID, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_CHINCHOU, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_STARYU, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_MAWILE, \ + FRONTIER_MON_POLIWHIRL, \ + -1 + +#define FRONTIER_MONS_SWIMMER_F_1 \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_REMORAID, \ + FRONTIER_MON_SNORUNT, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_CHINCHOU, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_DELIBIRD, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_STARYU, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_POLIWHIRL, \ + -1 + +#define FRONTIER_MONS_POKEFAN_M_1 \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_CHARMANDER, \ + FRONTIER_MON_CYNDAQUIL, \ + FRONTIER_MON_SWABLU, \ + FRONTIER_MON_TREECKO, \ + FRONTIER_MON_TORCHIC, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_BULBASAUR, \ + FRONTIER_MON_CHIKORITA, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_SKIPLOOM, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_ELEKID, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_FLAAFFY, \ + FRONTIER_MON_MAGBY, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_MAWILE, \ + FRONTIER_MON_POLIWHIRL, \ + -1 + +#define FRONTIER_MONS_POKEFAN_F_1 \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_MAGIKARP, \ + FRONTIER_MON_PICHU, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_WOOPER, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_SEEDOT, \ + FRONTIER_MON_LOTAD, \ + FRONTIER_MON_POOCHYENA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_MARILL, \ + FRONTIER_MON_HOPPIP, \ + FRONTIER_MON_SWINUB, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_PIDGEY, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_TAILLOW, \ + FRONTIER_MON_WINGULL, \ + FRONTIER_MON_NIDORAN_M, \ + FRONTIER_MON_NIDORAN_F, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MAREEP, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_SPHEAL, \ + FRONTIER_MON_SHROOMISH, \ + FRONTIER_MON_VULPIX, \ + FRONTIER_MON_PIKACHU, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_GULPIN, \ + -1 + +#define FRONTIER_MONS_BUG_CATCHER_1 \ + FRONTIER_MON_CATERPIE, \ + FRONTIER_MON_WEEDLE, \ + FRONTIER_MON_WURMPLE, \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_LEDYBA, \ + FRONTIER_MON_NINCADA, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_PINECO, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_BUTTERFREE, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_BEAUTIFLY, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + -1 + +// Identical to above with 2 additions. Might be possible to merge the two +#define FRONTIER_MONS_BUG_CATCHER_1_EXTRA(species1, species2) \ + FRONTIER_MON_CATERPIE, \ + FRONTIER_MON_WEEDLE, \ + FRONTIER_MON_WURMPLE, \ + FRONTIER_MON_##species1, \ + FRONTIER_MON_##species2, \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_LEDYBA, \ + FRONTIER_MON_NINCADA, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_PINECO, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_BUTTERFREE, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_BEAUTIFLY, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + -1 + +#define FRONTIER_MONS_NINJA_BOY_1 \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_ZUBAT, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_LEDYBA, \ + FRONTIER_MON_NINCADA, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_NIDORAN_M, \ + FRONTIER_MON_NIDORAN_F, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_EKANS, \ + FRONTIER_MON_PINECO, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_BELLSPROUT, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_GULPIN, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_GASTLY, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_BULBASAUR, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_GRIMER, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_KOFFING, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_NIDORINA, \ + FRONTIER_MON_NIDORINO, \ + FRONTIER_MON_BUTTERFREE, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_BEAUTIFLY, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + -1 + +#define FRONTIER_MONS_BUG_MANIAC_1 \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_SPINARAK, \ + FRONTIER_MON_HOPPIP, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_LEDYBA, \ + FRONTIER_MON_NINCADA, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_PINECO, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SHROOMISH, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_BELLSPROUT, \ + FRONTIER_MON_VENONAT, \ + FRONTIER_MON_GASTLY, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_CACNEA, \ + FRONTIER_MON_SKIPLOOM, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_LILEEP, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_BUTTERFREE, \ + FRONTIER_MON_BEEDRILL, \ + FRONTIER_MON_BEAUTIFLY, \ + FRONTIER_MON_DUSTOX, \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + -1 + +#define FRONTIER_MONS_FISHERMAN_1 \ + FRONTIER_MON_MAGIKARP, \ + FRONTIER_MON_FEEBAS, \ + FRONTIER_MON_BARBOACH, \ + FRONTIER_MON_HORSEA, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_REMORAID, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_GOLDEEN, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_CHINCHOU, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_STARYU, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_CORSOLA, \ + -1 + +#define FRONTIER_MONS_RUIN_MANIAC_1 \ + FRONTIER_MON_SWINUB, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_CUBONE, \ + FRONTIER_MON_MAGNEMITE, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_LILEEP, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_NOSEPASS, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_MAWILE, \ + FRONTIER_MON_ONIX, \ + -1 + +#define FRONTIER_MONS_PARASOL_LADY_1 \ + FRONTIER_MON_SUNKERN, \ + FRONTIER_MON_WOOPER, \ + FRONTIER_MON_LOTAD, \ + FRONTIER_MON_MARILL, \ + FRONTIER_MON_SURSKIT, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SPHEAL, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_POLIWAG, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_DELIBIRD, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_LUVDISC, \ + FRONTIER_MON_POLIWHIRL, \ + FRONTIER_MON_ONIX, \ + FRONTIER_MON_SUDOWOODO_1, \ + -1 + +#define FRONTIER_MONS_AROMA_LADY_1 \ + FRONTIER_MON_SUNKERN, \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_SEEDOT, \ + FRONTIER_MON_LOTAD, \ + FRONTIER_MON_HOPPIP, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_PARAS, \ + FRONTIER_MON_SHROOMISH, \ + FRONTIER_MON_BELLSPROUT, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_TREECKO, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_BULBASAUR, \ + FRONTIER_MON_CHIKORITA, \ + FRONTIER_MON_ODDISH, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_CACNEA, \ + FRONTIER_MON_SKIPLOOM, \ + FRONTIER_MON_NUZLEAF, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_LILEEP, \ + -1 + +#define FRONTIER_MONS_GUITARIST_1 \ + FRONTIER_MON_RALTS, \ + FRONTIER_MON_PICHU, \ + FRONTIER_MON_POOCHYENA, \ + FRONTIER_MON_WYNAUT, \ + FRONTIER_MON_KIRLIA, \ + FRONTIER_MON_MAREEP, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_ELECTRIKE, \ + FRONTIER_MON_PIKACHU, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_ABRA, \ + FRONTIER_MON_GASTLY, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_MAGNEMITE, \ + FRONTIER_MON_EXEGGCUTE, \ + FRONTIER_MON_DROWZEE, \ + FRONTIER_MON_VOLTORB, \ + FRONTIER_MON_CHINCHOU, \ + FRONTIER_MON_HOUNDOUR, \ + FRONTIER_MON_SPOINK, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_ELEKID, \ + FRONTIER_MON_FLAAFFY, \ + FRONTIER_MON_MAWILE, \ + -1 + +#define FRONTIER_MONS_BIRD_KEEPER_1 \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_ZUBAT, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_PIDGEY, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_SPEAROW, \ + FRONTIER_MON_HOOTHOOT, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_TAILLOW, \ + FRONTIER_MON_WINGULL, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_DODUO, \ + FRONTIER_MON_SWABLU, \ + FRONTIER_MON_TORCHIC, \ + FRONTIER_MON_NATU, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_DELIBIRD, \ + FRONTIER_MON_PIDGEOTTO, \ + FRONTIER_MON_FARFETCHD, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + -1 + +#define FRONTIER_MONS_SAILOR_1 \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_CARVANHA, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_CUBONE, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_TENTACOOL, \ + FRONTIER_MON_STARYU, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_POLIWHIRL, \ + FRONTIER_MON_ONIX, \ + -1 + +#define FRONTIER_MONS_HIKER_1 \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_SWINUB, \ + FRONTIER_MON_DIGLETT, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_TRAPINCH, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_CUBONE, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_LILEEP, \ + FRONTIER_MON_ANORITH, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_NOSEPASS, \ + FRONTIER_MON_ONIX, \ + -1 + +#define FRONTIER_MONS_KINDLER_1 \ + FRONTIER_MON_SLUGMA, \ + FRONTIER_MON_SHUPPET, \ + FRONTIER_MON_DUSKULL, \ + FRONTIER_MON_VULPIX, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_CHARMANDER, \ + FRONTIER_MON_CYNDAQUIL, \ + FRONTIER_MON_TORCHIC, \ + FRONTIER_MON_MAGNEMITE, \ + FRONTIER_MON_HOUNDOUR, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_GROWLITHE, \ + FRONTIER_MON_MAGBY, \ + FRONTIER_MON_NOSEPASS, \ + FRONTIER_MON_MAWILE, \ + FRONTIER_MON_ONIX, \ + -1 + +#define FRONTIER_MONS_RUNNING_TRIATHLETE_1 \ + FRONTIER_MON_AZURILL, \ + FRONTIER_MON_IGGLYBUFF, \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_SENTRET, \ + FRONTIER_MON_CLEFFA, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_WHISMUR, \ + FRONTIER_MON_ZIGZAGOON, \ + FRONTIER_MON_TOGEPI, \ + FRONTIER_MON_SMEARGLE, \ + FRONTIER_MON_PIDGEY, \ + FRONTIER_MON_RATTATA, \ + FRONTIER_MON_SKITTY, \ + FRONTIER_MON_SPEAROW, \ + FRONTIER_MON_HOOTHOOT, \ + FRONTIER_MON_JIGGLYPUFF, \ + FRONTIER_MON_TAILLOW, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_SLAKOTH, \ + FRONTIER_MON_DITTO, \ + FRONTIER_MON_MEOWTH, \ + FRONTIER_MON_SANDSHREW, \ + FRONTIER_MON_GEODUDE, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_LARVITAR, \ + FRONTIER_MON_BALTOY, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_NUMEL, \ + FRONTIER_MON_DODUO, \ + FRONTIER_MON_SWABLU, \ + FRONTIER_MON_CUBONE, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_PHANPY, \ + FRONTIER_MON_VIBRAVA, \ + FRONTIER_MON_RHYHORN, \ + FRONTIER_MON_PIDGEOTTO, \ + FRONTIER_MON_FARFETCHD, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_ONIX, \ + -1 + +#define FRONTIER_MONS_SWIMMING_TRIATHLETE_1 \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_SNORUNT, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_SHELLDER, \ + FRONTIER_MON_SMOOCHUM, \ + FRONTIER_MON_CORPHISH, \ + FRONTIER_MON_MUDKIP, \ + FRONTIER_MON_SQUIRTLE, \ + FRONTIER_MON_TOTODILE, \ + FRONTIER_MON_SLOWPOKE, \ + FRONTIER_MON_PSYDUCK, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_SEEL, \ + FRONTIER_MON_KRABBY, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_DELIBIRD, \ + FRONTIER_MON_LOMBRE, \ + FRONTIER_MON_CLAMPERL, \ + FRONTIER_MON_OMANYTE, \ + FRONTIER_MON_KABUTO, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_CORSOLA, \ + FRONTIER_MON_POLIWHIRL, \ + -1 + +#define FRONTIER_MONS_CYCLING_TRIATHLETE_1 \ + FRONTIER_MON_PICHU, \ + FRONTIER_MON_TYROGUE, \ + FRONTIER_MON_MAKUHITA, \ + FRONTIER_MON_MAREEP, \ + FRONTIER_MON_MEDITITE, \ + FRONTIER_MON_ELECTRIKE, \ + FRONTIER_MON_PIKACHU, \ + FRONTIER_MON_DRATINI, \ + FRONTIER_MON_SNUBBULL, \ + FRONTIER_MON_BAGON, \ + FRONTIER_MON_BELDUM, \ + FRONTIER_MON_MANKEY, \ + FRONTIER_MON_MACHOP, \ + FRONTIER_MON_DODUO, \ + FRONTIER_MON_SWABLU, \ + FRONTIER_MON_CLEFAIRY, \ + FRONTIER_MON_MAGNEMITE, \ + FRONTIER_MON_EEVEE, \ + FRONTIER_MON_VOLTORB, \ + FRONTIER_MON_TEDDIURSA, \ + FRONTIER_MON_ARON, \ + FRONTIER_MON_PIDGEOTTO, \ + FRONTIER_MON_FARFETCHD, \ + FRONTIER_MON_AIPOM, \ + FRONTIER_MON_ELEKID, \ + FRONTIER_MON_LOUDRED, \ + FRONTIER_MON_SPINDA, \ + FRONTIER_MON_FLAAFFY, \ + FRONTIER_MON_MAWILE, \ + -1 + +#define FRONTIER_MONS_RUNNING_TRIATHLETE_2 \ + FRONTIER_MON_DELCATTY_1, \ + FRONTIER_MON_LICKITUNG_1, \ + FRONTIER_MON_PORYGON_1, \ + FRONTIER_MON_MACHOKE_1, \ + FRONTIER_MON_TOGETIC_1, \ + FRONTIER_MON_MURKROW_1, \ + FRONTIER_MON_COMBUSKEN_1, \ + FRONTIER_MON_RATICATE_1, \ + FRONTIER_MON_FURRET_1, \ + FRONTIER_MON_DUNSPARCE_1, \ + FRONTIER_MON_LINOONE_1, \ + FRONTIER_MON_CASTFORM_1, \ + FRONTIER_MON_WIGGLYTUFF_1, \ + FRONTIER_MON_GLIGAR_1, \ + FRONTIER_MON_PELIPPER_1, \ + FRONTIER_MON_SWELLOW_1, \ + FRONTIER_MON_PERSIAN_1, \ + FRONTIER_MON_KECLEON_1, \ + FRONTIER_MON_VIGOROTH_1, \ + FRONTIER_MON_NOCTOWL_1, \ + FRONTIER_MON_CHANSEY_1, \ + FRONTIER_MON_GOLBAT_1, \ + FRONTIER_MON_PRIMEAPE_1, \ + FRONTIER_MON_HITMONLEE_1, \ + FRONTIER_MON_HITMONCHAN_1, \ + FRONTIER_MON_GIRAFARIG_1, \ + FRONTIER_MON_HITMONTOP_1, \ + FRONTIER_MON_NINJASK_1, \ + FRONTIER_MON_ZANGOOSE_1, \ + FRONTIER_MON_TROPIUS_1, \ + FRONTIER_MON_MANTINE_1, \ + FRONTIER_MON_STANTLER_1, \ + FRONTIER_MON_PIDGEOT_1, \ + FRONTIER_MON_SCYTHER_1, \ + -1 + +#define FRONTIER_MONS_SWIMMING_TRIATHLETE_2 \ + FRONTIER_MON_WAILMER_1, \ + FRONTIER_MON_WARTORTLE_1, \ + FRONTIER_MON_MACHOKE_1, \ + FRONTIER_MON_CROCONAW_1, \ + FRONTIER_MON_COMBUSKEN_1, \ + FRONTIER_MON_MARSHTOMP_1, \ + FRONTIER_MON_AZUMARILL_1, \ + FRONTIER_MON_SEALEO_1, \ + FRONTIER_MON_QWILFISH_1, \ + FRONTIER_MON_SNEASEL_1, \ + FRONTIER_MON_PELIPPER_1, \ + FRONTIER_MON_SEADRA_1, \ + FRONTIER_MON_SEAKING_1, \ + FRONTIER_MON_PILOSWINE_1, \ + FRONTIER_MON_PRIMEAPE_1, \ + FRONTIER_MON_HITMONLEE_1, \ + FRONTIER_MON_HITMONCHAN_1, \ + FRONTIER_MON_HITMONTOP_1, \ + FRONTIER_MON_SHARPEDO_1, \ + FRONTIER_MON_MANTINE_1, \ + FRONTIER_MON_CRAWDAUNT_1, \ + FRONTIER_MON_KINGLER_1, \ + FRONTIER_MON_OCTILLERY_1, \ + FRONTIER_MON_HUNTAIL_1, \ + FRONTIER_MON_GOREBYSS_1, \ + FRONTIER_MON_RELICANTH_1, \ + FRONTIER_MON_OMASTAR_1, \ + FRONTIER_MON_KABUTOPS_1, \ + FRONTIER_MON_POLIWRATH_1, \ + FRONTIER_MON_POLITOED_1, \ + FRONTIER_MON_CLOYSTER_1, \ + -1 + +#define FRONTIER_MONS_CYCLING_TRIATHLETE_2 \ + FRONTIER_MON_DELCATTY_1, \ + FRONTIER_MON_LICKITUNG_1, \ + FRONTIER_MON_PORYGON_1, \ + FRONTIER_MON_MACHOKE_1, \ + FRONTIER_MON_TOGETIC_1, \ + FRONTIER_MON_PLUSLE_1, \ + FRONTIER_MON_MINUN_1, \ + FRONTIER_MON_COMBUSKEN_1, \ + FRONTIER_MON_RATICATE_1, \ + FRONTIER_MON_FURRET_1, \ + FRONTIER_MON_DUNSPARCE_1, \ + FRONTIER_MON_LINOONE_1, \ + FRONTIER_MON_CASTFORM_1, \ + FRONTIER_MON_METANG_1, \ + FRONTIER_MON_WIGGLYTUFF_1, \ + FRONTIER_MON_SWELLOW_1, \ + FRONTIER_MON_LAIRON_1, \ + FRONTIER_MON_PERSIAN_1, \ + FRONTIER_MON_KECLEON_1, \ + FRONTIER_MON_VIGOROTH_1, \ + FRONTIER_MON_NOCTOWL_1, \ + FRONTIER_MON_CHANSEY_1, \ + FRONTIER_MON_PRIMEAPE_1, \ + FRONTIER_MON_HITMONLEE_1, \ + FRONTIER_MON_HITMONCHAN_1, \ + FRONTIER_MON_GIRAFARIG_1, \ + FRONTIER_MON_HITMONTOP_1, \ + FRONTIER_MON_ZANGOOSE_1, \ + FRONTIER_MON_MAGNETON_1, \ + FRONTIER_MON_STANTLER_1, \ + FRONTIER_MON_PIDGEOT_1, \ + -1 + +#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 \ + FRONTIER_MON_LICKITUNG_1, \ + FRONTIER_MON_GRAVELER_1, \ + FRONTIER_MON_CHARMELEON_1, \ + FRONTIER_MON_MACHOKE_1, \ + FRONTIER_MON_QUILAVA_1, \ + FRONTIER_MON_COMBUSKEN_1, \ + FRONTIER_MON_PONYTA_1, \ + FRONTIER_MON_SUDOWOODO_1, \ + FRONTIER_MON_MAGCARGO_1, \ + FRONTIER_MON_PUPITAR_1, \ + FRONTIER_MON_RATICATE_1, \ + FRONTIER_MON_FURRET_1, \ + FRONTIER_MON_DUNSPARCE_1, \ + FRONTIER_MON_MIGHTYENA_1, \ + FRONTIER_MON_LINOONE_1, \ + FRONTIER_MON_SHELGON_1, \ + FRONTIER_MON_METANG_1, \ + FRONTIER_MON_WIGGLYTUFF_1, \ + FRONTIER_MON_GLIGAR_1, \ + FRONTIER_MON_LAIRON_1, \ + FRONTIER_MON_PERSIAN_1, \ + FRONTIER_MON_KECLEON_1, \ + FRONTIER_MON_VIGOROTH_1, \ + FRONTIER_MON_LUNATONE_1, \ + FRONTIER_MON_SOLROCK_1, \ + FRONTIER_MON_SANDSLASH_1, \ + FRONTIER_MON_CHANSEY_1, \ + FRONTIER_MON_PILOSWINE_1, \ + FRONTIER_MON_PRIMEAPE_1, \ + FRONTIER_MON_HITMONLEE_1, \ + FRONTIER_MON_HITMONCHAN_1, \ + FRONTIER_MON_GIRAFARIG_1, \ + FRONTIER_MON_HITMONTOP_1, \ + FRONTIER_MON_ZANGOOSE_1, \ + FRONTIER_MON_CAMERUPT_1, \ + FRONTIER_MON_STANTLER_1, \ + FRONTIER_MON_ABSOL_1, \ + FRONTIER_MON_TORKOAL_1, \ + FRONTIER_MON_CACTURNE_1, \ + FRONTIER_MON_POLIWRATH_1, \ + -1 + +#define FRONTIER_MONS_EXPERT_1A \ + FRONTIER_MON_DELCATTY_1, \ + FRONTIER_MON_SABLEYE_1, \ + FRONTIER_MON_LICKITUNG_1, \ + FRONTIER_MON_WEEPINBELL_1, \ + FRONTIER_MON_GRAVELER_1, \ + FRONTIER_MON_GLOOM_1, \ + FRONTIER_MON_PORYGON_1, \ + FRONTIER_MON_KADABRA_1, \ + FRONTIER_MON_WAILMER_1, \ + FRONTIER_MON_ROSELIA_1, \ + FRONTIER_MON_VOLBEAT_1, \ + FRONTIER_MON_ILLUMISE_1, \ + FRONTIER_MON_IVYSAUR_1, \ + FRONTIER_MON_CHARMELEON_1, \ + FRONTIER_MON_WARTORTLE_1, \ + FRONTIER_MON_PARASECT_1, \ + FRONTIER_MON_MACHOKE_1, \ + FRONTIER_MON_HAUNTER_1, \ + FRONTIER_MON_BAYLEEF_1, \ + FRONTIER_MON_QUILAVA_1, \ + FRONTIER_MON_CROCONAW_1, \ + FRONTIER_MON_TOGETIC_1, \ + FRONTIER_MON_MURKROW_1, \ + FRONTIER_MON_WOBBUFFET_1, \ + FRONTIER_MON_PLUSLE_1, \ + FRONTIER_MON_MINUN_1, \ + FRONTIER_MON_GROVYLE_1, \ + FRONTIER_MON_COMBUSKEN_1, \ + FRONTIER_MON_MARSHTOMP_1, \ + FRONTIER_MON_PONYTA_1, \ + FRONTIER_MON_AZUMARILL_1, \ + FRONTIER_MON_SUDOWOODO_1, \ + FRONTIER_MON_MAGCARGO_1, \ + FRONTIER_MON_PUPITAR_1, \ + FRONTIER_MON_SEALEO_1, \ + FRONTIER_MON_RATICATE_1, \ + FRONTIER_MON_MASQUERAIN_1, \ + FRONTIER_MON_FURRET_1, \ + -1 + +#define FRONTIER_MONS_EXPERT_1B \ + FRONTIER_MON_DUNSPARCE_1, \ + FRONTIER_MON_DRAGONAIR_1, \ + FRONTIER_MON_MIGHTYENA_1, \ + FRONTIER_MON_LINOONE_1, \ + FRONTIER_MON_CASTFORM_1, \ + FRONTIER_MON_SHELGON_1, \ + FRONTIER_MON_METANG_1, \ + FRONTIER_MON_WIGGLYTUFF_1, \ + FRONTIER_MON_SUNFLORA_1, \ + FRONTIER_MON_CHIMECHO_1, \ + FRONTIER_MON_GLIGAR_1, \ + FRONTIER_MON_QWILFISH_1, \ + FRONTIER_MON_SNEASEL_1, \ + FRONTIER_MON_PELIPPER_1, \ + FRONTIER_MON_SWELLOW_1, \ + FRONTIER_MON_LAIRON_1, \ + FRONTIER_MON_TANGELA_1, \ + FRONTIER_MON_ARBOK_1, \ + FRONTIER_MON_PERSIAN_1, \ + FRONTIER_MON_SEADRA_1, \ + FRONTIER_MON_KECLEON_1, \ + FRONTIER_MON_VIGOROTH_1, \ + FRONTIER_MON_LUNATONE_1, \ + FRONTIER_MON_SOLROCK_1, \ + FRONTIER_MON_NOCTOWL_1, \ + FRONTIER_MON_SANDSLASH_1, \ + FRONTIER_MON_VENOMOTH_1, \ + FRONTIER_MON_CHANSEY_1, \ + FRONTIER_MON_SEAKING_1, \ + FRONTIER_MON_JUMPLUFF_1, \ + FRONTIER_MON_PILOSWINE_1, \ + FRONTIER_MON_GOLBAT_1, \ + FRONTIER_MON_PRIMEAPE_1, \ + FRONTIER_MON_HITMONLEE_1, \ + FRONTIER_MON_HITMONCHAN_1, \ + FRONTIER_MON_GIRAFARIG_1, \ + FRONTIER_MON_HITMONTOP_1, \ + -1 + +#define FRONTIER_MONS_EXPERT_1C \ + FRONTIER_MON_BANETTE_1, \ + FRONTIER_MON_NINJASK_1, \ + FRONTIER_MON_SEVIPER_1, \ + FRONTIER_MON_ZANGOOSE_1, \ + FRONTIER_MON_CAMERUPT_1, \ + FRONTIER_MON_SHARPEDO_1, \ + FRONTIER_MON_TROPIUS_1, \ + FRONTIER_MON_MAGNETON_1, \ + FRONTIER_MON_MANTINE_1, \ + FRONTIER_MON_STANTLER_1, \ + FRONTIER_MON_ABSOL_1, \ + FRONTIER_MON_SWALOT_1, \ + FRONTIER_MON_CRAWDAUNT_1, \ + FRONTIER_MON_PIDGEOT_1, \ + FRONTIER_MON_GRUMPIG_1, \ + FRONTIER_MON_TORKOAL_1, \ + FRONTIER_MON_KINGLER_1, \ + FRONTIER_MON_CACTURNE_1, \ + FRONTIER_MON_BELLOSSOM_1, \ + FRONTIER_MON_OCTILLERY_1, \ + FRONTIER_MON_HUNTAIL_1, \ + FRONTIER_MON_GOREBYSS_1, \ + FRONTIER_MON_RELICANTH_1, \ + FRONTIER_MON_OMASTAR_1, \ + FRONTIER_MON_KABUTOPS_1, \ + FRONTIER_MON_POLIWRATH_1, \ + FRONTIER_MON_SCYTHER_1, \ + FRONTIER_MON_PINSIR_1, \ + FRONTIER_MON_POLITOED_1, \ + FRONTIER_MON_CLOYSTER_1, \ + -1 + +#define FRONTIER_MONS_PSYCHIC_1 \ + FRONTIER_MON_DELCATTY_2, \ + FRONTIER_MON_SABLEYE_2, \ + FRONTIER_MON_PORYGON_2, \ + FRONTIER_MON_KADABRA_2, \ + FRONTIER_MON_ROSELIA_2, \ + FRONTIER_MON_HAUNTER_2, \ + FRONTIER_MON_MURKROW_2, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_PLUSLE_2, \ + FRONTIER_MON_MINUN_2, \ + FRONTIER_MON_MIGHTYENA_2, \ + FRONTIER_MON_LINOONE_2, \ + FRONTIER_MON_METANG_2, \ + FRONTIER_MON_WIGGLYTUFF_2, \ + FRONTIER_MON_CHIMECHO_2, \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_KECLEON_2, \ + FRONTIER_MON_LUNATONE_2, \ + FRONTIER_MON_SOLROCK_2, \ + FRONTIER_MON_NOCTOWL_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_CHANSEY_2, \ + FRONTIER_MON_GIRAFARIG_2, \ + FRONTIER_MON_BANETTE_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_MAGNETON_2, \ + FRONTIER_MON_STANTLER_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_CRAWDAUNT_2, \ + FRONTIER_MON_GRUMPIG_2, \ + FRONTIER_MON_CACTURNE_2, \ + FRONTIER_MON_GOREBYSS_2, \ + FRONTIER_MON_POLITOED_2, \ + -1 + +#define FRONTIER_MONS_HEX_MANIAC_1 \ + FRONTIER_MON_SABLEYE_2, \ + FRONTIER_MON_WEEPINBELL_2, \ + FRONTIER_MON_GLOOM_2, \ + FRONTIER_MON_KADABRA_2, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_HAUNTER_2, \ + FRONTIER_MON_MURKROW_2, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_MASQUERAIN_2, \ + FRONTIER_MON_MIGHTYENA_2, \ + FRONTIER_MON_METANG_2, \ + FRONTIER_MON_CHIMECHO_2, \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_ARBOK_2, \ + FRONTIER_MON_LUNATONE_2, \ + FRONTIER_MON_SOLROCK_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_GOLBAT_2, \ + FRONTIER_MON_GIRAFARIG_2, \ + FRONTIER_MON_BANETTE_2, \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_SWALOT_2, \ + FRONTIER_MON_CRAWDAUNT_2, \ + FRONTIER_MON_GRUMPIG_2, \ + FRONTIER_MON_CACTURNE_2, \ + -1 + +#define FRONTIER_MONS_POKEMANIAC_1 \ + FRONTIER_MON_LICKITUNG_2, \ + FRONTIER_MON_GRAVELER_2, \ + FRONTIER_MON_WAILMER_2, \ + FRONTIER_MON_IVYSAUR_2, \ + FRONTIER_MON_CHARMELEON_2, \ + FRONTIER_MON_WARTORTLE_2, \ + FRONTIER_MON_MACHOKE_2, \ + FRONTIER_MON_BAYLEEF_2, \ + FRONTIER_MON_QUILAVA_2, \ + FRONTIER_MON_CROCONAW_2, \ + FRONTIER_MON_GROVYLE_2, \ + FRONTIER_MON_COMBUSKEN_2, \ + FRONTIER_MON_MARSHTOMP_2, \ + FRONTIER_MON_PUPITAR_2, \ + FRONTIER_MON_RATICATE_2, \ + FRONTIER_MON_MIGHTYENA_2, \ + FRONTIER_MON_SHELGON_2, \ + FRONTIER_MON_METANG_2, \ + FRONTIER_MON_LAIRON_2, \ + FRONTIER_MON_ARBOK_2, \ + FRONTIER_MON_VIGOROTH_2, \ + FRONTIER_MON_SANDSLASH_2, \ + FRONTIER_MON_CHANSEY_2, \ + FRONTIER_MON_PILOSWINE_2, \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_CAMERUPT_2, \ + FRONTIER_MON_TROPIUS_2, \ + FRONTIER_MON_MANTINE_2, \ + FRONTIER_MON_SWALOT_2, \ + FRONTIER_MON_TORKOAL_2, \ + -1 + +#define FRONTIER_MONS_GENTLEMAN_1A \ + FRONTIER_MON_DELCATTY_2, \ + FRONTIER_MON_SABLEYE_2, \ + FRONTIER_MON_LICKITUNG_2, \ + FRONTIER_MON_WEEPINBELL_2, \ + FRONTIER_MON_GRAVELER_2, \ + FRONTIER_MON_GLOOM_2, \ + FRONTIER_MON_PORYGON_2, \ + FRONTIER_MON_KADABRA_2, \ + FRONTIER_MON_WAILMER_2, \ + FRONTIER_MON_ROSELIA_2, \ + FRONTIER_MON_VOLBEAT_2, \ + FRONTIER_MON_ILLUMISE_2, \ + FRONTIER_MON_IVYSAUR_2, \ + FRONTIER_MON_CHARMELEON_2, \ + FRONTIER_MON_WARTORTLE_2, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_MACHOKE_2, \ + FRONTIER_MON_HAUNTER_2, \ + FRONTIER_MON_BAYLEEF_2, \ + FRONTIER_MON_QUILAVA_2, \ + FRONTIER_MON_CROCONAW_2, \ + FRONTIER_MON_TOGETIC_2, \ + FRONTIER_MON_MURKROW_2, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_PLUSLE_2, \ + FRONTIER_MON_MINUN_2, \ + FRONTIER_MON_GROVYLE_2, \ + FRONTIER_MON_COMBUSKEN_2, \ + FRONTIER_MON_MARSHTOMP_2, \ + FRONTIER_MON_PONYTA_2, \ + FRONTIER_MON_AZUMARILL_2, \ + FRONTIER_MON_SUDOWOODO_2, \ + FRONTIER_MON_MAGCARGO_2, \ + FRONTIER_MON_PUPITAR_2, \ + FRONTIER_MON_SEALEO_2, \ + FRONTIER_MON_RATICATE_2, \ + FRONTIER_MON_MASQUERAIN_2, \ + FRONTIER_MON_FURRET_2, \ + -1 + +#define FRONTIER_MONS_GENTLEMAN_1B \ + FRONTIER_MON_DUNSPARCE_2, \ + FRONTIER_MON_DRAGONAIR_2, \ + FRONTIER_MON_MIGHTYENA_2, \ + FRONTIER_MON_LINOONE_2, \ + FRONTIER_MON_CASTFORM_2, \ + FRONTIER_MON_SHELGON_2, \ + FRONTIER_MON_METANG_2, \ + FRONTIER_MON_WIGGLYTUFF_2, \ + FRONTIER_MON_SUNFLORA_2, \ + FRONTIER_MON_CHIMECHO_2, \ + FRONTIER_MON_GLIGAR_2, \ + FRONTIER_MON_QWILFISH_2, \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_PELIPPER_2, \ + FRONTIER_MON_SWELLOW_2, \ + FRONTIER_MON_LAIRON_2, \ + FRONTIER_MON_TANGELA_2, \ + FRONTIER_MON_ARBOK_2, \ + FRONTIER_MON_PERSIAN_2, \ + FRONTIER_MON_SEADRA_2, \ + FRONTIER_MON_KECLEON_2, \ + FRONTIER_MON_VIGOROTH_2, \ + FRONTIER_MON_LUNATONE_2, \ + FRONTIER_MON_SOLROCK_2, \ + FRONTIER_MON_NOCTOWL_2, \ + FRONTIER_MON_SANDSLASH_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_CHANSEY_2, \ + FRONTIER_MON_SEAKING_2, \ + FRONTIER_MON_JUMPLUFF_2, \ + FRONTIER_MON_PILOSWINE_2, \ + FRONTIER_MON_GOLBAT_2, \ + FRONTIER_MON_PRIMEAPE_2, \ + FRONTIER_MON_HITMONLEE_2, \ + FRONTIER_MON_HITMONCHAN_2, \ + FRONTIER_MON_GIRAFARIG_2, \ + FRONTIER_MON_HITMONTOP_2, \ + -1 + +#define FRONTIER_MONS_BUG_MANIAC_2 \ + FRONTIER_MON_LEDIAN, \ + FRONTIER_MON_ARIADOS, \ + FRONTIER_MON_YANMA, \ + FRONTIER_MON_VOLBEAT_1, \ + FRONTIER_MON_ILLUMISE_1, \ + FRONTIER_MON_PARASECT_1, \ + FRONTIER_MON_MASQUERAIN_1, \ + FRONTIER_MON_VENOMOTH_1, \ + FRONTIER_MON_NINJASK_1, \ + FRONTIER_MON_SCYTHER_1, \ + FRONTIER_MON_PINSIR_1, \ + FRONTIER_MON_VOLBEAT_2, \ + FRONTIER_MON_ILLUMISE_2, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_MASQUERAIN_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + -1 + +#define FRONTIER_MONS_RUIN_MANIAC_2 \ + FRONTIER_MON_GRAVELER_2, \ + FRONTIER_MON_MACHOKE_2, \ + FRONTIER_MON_COMBUSKEN_2, \ + FRONTIER_MON_MARSHTOMP_2, \ + FRONTIER_MON_SUDOWOODO_2, \ + FRONTIER_MON_MAGCARGO_2, \ + FRONTIER_MON_PUPITAR_2, \ + FRONTIER_MON_METANG_2, \ + FRONTIER_MON_GLIGAR_2, \ + FRONTIER_MON_LAIRON_2, \ + FRONTIER_MON_LUNATONE_2, \ + FRONTIER_MON_SOLROCK_2, \ + FRONTIER_MON_SANDSLASH_2, \ + FRONTIER_MON_PILOSWINE_2, \ + FRONTIER_MON_PRIMEAPE_2, \ + FRONTIER_MON_HITMONLEE_2, \ + FRONTIER_MON_HITMONCHAN_2, \ + FRONTIER_MON_HITMONTOP_2, \ + FRONTIER_MON_CAMERUPT_2, \ + FRONTIER_MON_RELICANTH_2, \ + FRONTIER_MON_OMASTAR_2, \ + FRONTIER_MON_KABUTOPS_2, \ + -1 + +#define FRONTIER_MONS_COLLECTOR_1 \ + FRONTIER_MON_BANETTE_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_CAMERUPT_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_TROPIUS_2, \ + FRONTIER_MON_MAGNETON_2, \ + FRONTIER_MON_MANTINE_2, \ + FRONTIER_MON_STANTLER_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_SWALOT_2, \ + FRONTIER_MON_CRAWDAUNT_2, \ + FRONTIER_MON_PIDGEOT_2, \ + FRONTIER_MON_GRUMPIG_2, \ + FRONTIER_MON_TORKOAL_2, \ + FRONTIER_MON_KINGLER_2, \ + FRONTIER_MON_CACTURNE_2, \ + FRONTIER_MON_BELLOSSOM_2, \ + FRONTIER_MON_OCTILLERY_2, \ + FRONTIER_MON_HUNTAIL_2, \ + FRONTIER_MON_GOREBYSS_2, \ + FRONTIER_MON_RELICANTH_2, \ + FRONTIER_MON_OMASTAR_2, \ + FRONTIER_MON_KABUTOPS_2, \ + FRONTIER_MON_POLIWRATH_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_POLITOED_2, \ + FRONTIER_MON_CLOYSTER_2, \ + -1 + +#define FRONTIER_MONS_PARASOL_LADY_2 \ + FRONTIER_MON_GLOOM_2, \ + FRONTIER_MON_SEALEO_2, \ + FRONTIER_MON_CASTFORM_2, \ + FRONTIER_MON_SANDSLASH_2, \ + FRONTIER_MON_TROPIUS_2, \ + FRONTIER_MON_MAGNETON_2, \ + FRONTIER_MON_MANTINE_2, \ + FRONTIER_MON_CACTURNE_2, \ + FRONTIER_MON_BELLOSSOM_2, \ + FRONTIER_MON_HUNTAIL_2, \ + FRONTIER_MON_GOREBYSS_2, \ + FRONTIER_MON_OMASTAR_2, \ + -1 + +#define FRONTIER_MONS_BEAUTY_1 \ + FRONTIER_MON_DELCATTY_2, \ + FRONTIER_MON_LICKITUNG_2, \ + FRONTIER_MON_WEEPINBELL_2, \ + FRONTIER_MON_GLOOM_2, \ + FRONTIER_MON_PORYGON_2, \ + FRONTIER_MON_ROSELIA_2, \ + FRONTIER_MON_IVYSAUR_2, \ + FRONTIER_MON_HAUNTER_2, \ + FRONTIER_MON_TOGETIC_2, \ + FRONTIER_MON_RATICATE_2, \ + FRONTIER_MON_FURRET_2, \ + FRONTIER_MON_DUNSPARCE_2, \ + FRONTIER_MON_LINOONE_2, \ + FRONTIER_MON_CASTFORM_2, \ + FRONTIER_MON_WIGGLYTUFF_2, \ + FRONTIER_MON_QWILFISH_2, \ + FRONTIER_MON_SWELLOW_2, \ + FRONTIER_MON_ARBOK_2, \ + FRONTIER_MON_PERSIAN_2, \ + FRONTIER_MON_KECLEON_2, \ + FRONTIER_MON_VIGOROTH_2, \ + FRONTIER_MON_NOCTOWL_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_CHANSEY_2, \ + FRONTIER_MON_GOLBAT_2, \ + FRONTIER_MON_GIRAFARIG_2, \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_STANTLER_2, \ + FRONTIER_MON_SWALOT_2, \ + FRONTIER_MON_PIDGEOT_2, \ + -1 + +#define FRONTIER_MONS_AROMA_LADY_2 \ + FRONTIER_MON_WEEPINBELL_2, \ + FRONTIER_MON_GLOOM_2, \ + FRONTIER_MON_KADABRA_2, \ + FRONTIER_MON_ROSELIA_2, \ + FRONTIER_MON_IVYSAUR_2, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_BAYLEEF_2, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_GROVYLE_2, \ + FRONTIER_MON_SUNFLORA_2, \ + FRONTIER_MON_CHIMECHO_2, \ + FRONTIER_MON_TANGELA_2, \ + FRONTIER_MON_JUMPLUFF_2, \ + FRONTIER_MON_GIRAFARIG_2, \ + FRONTIER_MON_TROPIUS_2, \ + FRONTIER_MON_GRUMPIG_2, \ + FRONTIER_MON_CACTURNE_2, \ + FRONTIER_MON_BELLOSSOM_2, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_1A \ + FRONTIER_MON_DUGTRIO_1, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_MANECTRIC_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_ELECTRODE_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_1B \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_1C \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_SLAKING_1, \ + -1 + +#define FRONTIER_MONS_PKMN_RANGER_1 \ + FRONTIER_MON_NINJASK_1, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_SLAKING_1, \ + -1 + +#define FRONTIER_MONS_DRAGON_TAMER_1 \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_SALAMENCE_1, \ + -1 + +#define FRONTIER_MONS_POKEFAN_2 \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_SLAKING_1, \ + -1 + +#define FRONTIER_MONS_PKMN_BREEDER_M_1 \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_SLAKING_1, \ + -1 + +#define FRONTIER_MONS_PKMN_BREEDER_F_1 \ + FRONTIER_MON_DUGTRIO_1, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_MANECTRIC_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_ELECTRODE_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_RAPIDASH_1, \ + -1 + +// Odd, all the other Youngster/Lass trainers of this group have Dugtrio, but one does not +#define FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_GRANBULL_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_DODRIO_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_CLEFABLE_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_RAICHU_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_MANECTRIC_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_ELECTRODE_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + -1 + +#define FRONTIER_MONS_YOUNGSTER_LASS_2 \ + FRONTIER_MON_DUGTRIO_2, \ + FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO + +#define FRONTIER_MONS_SCHOOL_KID_2 \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_TAUROS_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_MAGMAR_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + -1 + +#define FRONTIER_MONS_RICH_BOY_LADY_2 \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_JOLTEON_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_SLAKING_2, \ + -1 + +#define FRONTIER_MONS_BUG_CATCHER_2 \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_SCEPTILE_2, \ + -1 + +#define FRONTIER_MONS_NINJA_BOY_2 \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_CROBAT_2, \ + -1 + +#define FRONTIER_MONS_TUBER_2 \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_GRANBULL_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_CLEFABLE_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_TAUROS_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_SLAKING_2, \ + -1 + +#define FRONTIER_MONS_BUG_MANIAC_3 \ + FRONTIER_MON_VOLBEAT_2, \ + FRONTIER_MON_ILLUMISE_2, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_MASQUERAIN_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_SHUCKLE_3, \ + -1 + +#define FRONTIER_MONS_FISHERMAN_2 \ + FRONTIER_MON_QWILFISH_2, \ + FRONTIER_MON_SEAKING_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_MANTINE_2, \ + FRONTIER_MON_CRAWDAUNT_2, \ + FRONTIER_MON_KINGLER_2, \ + FRONTIER_MON_OCTILLERY_2, \ + FRONTIER_MON_HUNTAIL_2, \ + FRONTIER_MON_GOREBYSS_2, \ + FRONTIER_MON_RELICANTH_2, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_STARMIE_3, \ + -1 + +#define FRONTIER_MONS_RUIN_MANIAC_3 \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_METAGROSS_3, \ + -1 + +#define FRONTIER_MONS_COLLECTOR_2 \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_FEAROW_3, \ + FRONTIER_MON_GRANBULL_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_DODRIO_3, \ + FRONTIER_MON_MR_MIME_3, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_CLEFABLE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_EXPLOUD_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_HYPNO_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_WEEZING_3, \ + FRONTIER_MON_KANGASKHAN_3, \ + FRONTIER_MON_ELECTABUZZ_3, \ + FRONTIER_MON_TAUROS_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_ALTARIA_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_RAPIDASH_3, \ + -1 + +#define FRONTIER_MONS_GUITARIST_2 \ + FRONTIER_MON_SABLEYE_2, \ + FRONTIER_MON_MIGHTYENA_2, \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_MAGNETON_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_ELECTABUZZ_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_UMBREON_3, \ + -1 + +#define FRONTIER_MONS_BIRD_KEEPER_2 \ + FRONTIER_MON_MURKROW_2, \ + FRONTIER_MON_PELIPPER_2, \ + FRONTIER_MON_SWELLOW_2, \ + FRONTIER_MON_NOCTOWL_2, \ + FRONTIER_MON_PIDGEOT_2, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_DODRIO_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_FEAROW_3, \ + FRONTIER_MON_DODRIO_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_CROBAT_3, \ + -1 + +#define FRONTIER_MONS_SAILOR_2 \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_MILOTIC_3, \ + -1 + +#define FRONTIER_MONS_HIKER_2 \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + -1 + +#define FRONTIER_MONS_KINDLER_2 \ + FRONTIER_MON_GRANBULL_3, \ + FRONTIER_MON_CLEFABLE_3, \ + FRONTIER_MON_EXPLOUD_3, \ + FRONTIER_MON_KANGASKHAN_3, \ + FRONTIER_MON_TAUROS_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_SLAKING_3, \ + -1 + +#define FRONTIER_MONS_GENTLEMAN_2 \ + FRONTIER_MON_MUK_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_PORYGON2_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_SLAKING_3, \ + -1 + +#define FRONTIER_MONS_YOUNGSTER_LASS_3 \ + FRONTIER_MON_DUGTRIO_4, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_FEAROW_4, \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_DODRIO_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_MANECTRIC_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + FRONTIER_MON_ELECTRODE_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_HYPNO_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + -1 + +#define FRONTIER_MONS_CAMPER_PICNICKER_2 \ + FRONTIER_MON_WEEZING_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_ELECTABUZZ_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_MAGMAR_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_RAPIDASH_4, \ + FRONTIER_MON_MUK_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_CLAYDOL_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + -1 + +#define FRONTIER_MONS_SWIMMER_M_2 \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_SLAKING_4, \ + -1 + +#define FRONTIER_MONS_SWIMMER_F_2 \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_SLAKING_4, \ + -1 + +#define FRONTIER_MONS_POKEFAN_3 \ + FRONTIER_MON_DELCATTY_2, \ + FRONTIER_MON_PORYGON_2, \ + FRONTIER_MON_DUNSPARCE_2, \ + FRONTIER_MON_WIGGLYTUFF_2, \ + FRONTIER_MON_KECLEON_2, \ + FRONTIER_MON_CHANSEY_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_RAPIDASH_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + -1 + +#define FRONTIER_MONS_PKMN_BREEDER_2 \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_ARCANINE_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_SLAKING_4, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_M_2A \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_JOLTEON_2, \ + FRONTIER_MON_MUK_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_PORYGON2_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_MUK_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_CLAYDOL_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_JOLTEON_4, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_M_2B \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_SLAKING_1, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_SLAKING_2, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_SLAKING_3, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_ARCANINE_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_SLAKING_4, \ + -1 + +// Cooltrainer M uses Latios, Cooltrainer F uses Latias +#define FRONTIER_MONS_COOLTRAINER_2C(lati) \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_##lati##_1, \ + FRONTIER_MON_##lati##_2, \ + FRONTIER_MON_##lati##_3, \ + FRONTIER_MON_##lati##_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + FRONTIER_MON_URSARING_5, \ + FRONTIER_MON_URSARING_6, \ + FRONTIER_MON_URSARING_7, \ + FRONTIER_MON_URSARING_8, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_GARDEVOIR_5, \ + FRONTIER_MON_GARDEVOIR_6, \ + FRONTIER_MON_GARDEVOIR_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + FRONTIER_MON_SNORLAX_5, \ + FRONTIER_MON_SNORLAX_6, \ + FRONTIER_MON_SNORLAX_7, \ + FRONTIER_MON_SNORLAX_8, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +// Also used by Pkmn Ranger M/F +// For both classes, M uses Latios and F uses Latias +#define FRONTIER_MONS_COOLTRAINER_2D(lati) \ + FRONTIER_MON_ARTICUNO_1, \ + FRONTIER_MON_ZAPDOS_1, \ + FRONTIER_MON_MOLTRES_1, \ + FRONTIER_MON_RAIKOU_1, \ + FRONTIER_MON_ENTEI_1, \ + FRONTIER_MON_SUICUNE_1, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_##lati##_1, \ + FRONTIER_MON_ARTICUNO_2, \ + FRONTIER_MON_ZAPDOS_2, \ + FRONTIER_MON_MOLTRES_2, \ + FRONTIER_MON_RAIKOU_2, \ + FRONTIER_MON_ENTEI_2, \ + FRONTIER_MON_SUICUNE_2, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_##lati##_2, \ + FRONTIER_MON_ARTICUNO_3, \ + FRONTIER_MON_ZAPDOS_3, \ + FRONTIER_MON_MOLTRES_3, \ + FRONTIER_MON_RAIKOU_3, \ + FRONTIER_MON_ENTEI_3, \ + FRONTIER_MON_SUICUNE_3, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_##lati##_3, \ + FRONTIER_MON_ARTICUNO_4, \ + FRONTIER_MON_ZAPDOS_4, \ + FRONTIER_MON_MOLTRES_4, \ + FRONTIER_MON_RAIKOU_4, \ + FRONTIER_MON_ENTEI_4, \ + FRONTIER_MON_SUICUNE_4, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_##lati##_4, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + FRONTIER_MON_ARTICUNO_5, \ + FRONTIER_MON_ARTICUNO_6, \ + FRONTIER_MON_ZAPDOS_5, \ + FRONTIER_MON_ZAPDOS_6, \ + FRONTIER_MON_MOLTRES_5, \ + FRONTIER_MON_MOLTRES_6, \ + FRONTIER_MON_RAIKOU_5, \ + FRONTIER_MON_RAIKOU_6, \ + FRONTIER_MON_ENTEI_5, \ + FRONTIER_MON_ENTEI_6, \ + FRONTIER_MON_SUICUNE_5, \ + FRONTIER_MON_SUICUNE_6, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_F_2A \ + FRONTIER_MON_DUGTRIO_1, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_MANECTRIC_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_DUGTRIO_2, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_GRANBULL_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_DODRIO_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_CLEFABLE_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_RAICHU_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_MANECTRIC_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_FEAROW_3, \ + FRONTIER_MON_GRANBULL_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_DODRIO_3, \ + FRONTIER_MON_MR_MIME_3, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_CLEFABLE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_DUGTRIO_4, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_FEAROW_4, \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_DODRIO_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_MANECTRIC_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + -1 + +#define FRONTIER_MONS_COOLTRAINER_F_2B \ + FRONTIER_MON_ELECTRODE_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_ELECTRODE_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_TAUROS_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_MAGMAR_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_EXPLOUD_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_HYPNO_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_WEEZING_3, \ + FRONTIER_MON_KANGASKHAN_3, \ + FRONTIER_MON_ELECTABUZZ_3, \ + FRONTIER_MON_TAUROS_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_ALTARIA_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_ELECTRODE_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_HYPNO_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + FRONTIER_MON_WEEZING_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_ELECTABUZZ_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_MAGMAR_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_RAPIDASH_4, \ + -1 + +// Used by Pkmn Ranger M, Gentleman, Running Triathlete, and Cycling Triathlete +#define FRONTIER_MONS_GENERAL_A \ + FRONTIER_MON_DUGTRIO_4, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_FEAROW_4, \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_DODRIO_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_CLEFABLE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_MANECTRIC_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + FRONTIER_MON_ELECTRODE_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_HYPNO_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + FRONTIER_MON_WEEZING_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_ELECTABUZZ_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_MAGMAR_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_RAPIDASH_4, \ + FRONTIER_MON_MUK_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_CLAYDOL_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_PORYGON2_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_ARCANINE_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_SLAKING_4, \ + -1 + +// Identical to FRONTIER_MONS_GENERAL_A but _3 +// Used by Pkmn Ranger, Running Triathlete, and Cycling Triathlete +#define FRONTIER_MONS_GENERAL_B \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_FEAROW_3, \ + FRONTIER_MON_GRANBULL_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_DODRIO_3, \ + FRONTIER_MON_MR_MIME_3, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_CLEFABLE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_EXPLOUD_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_HYPNO_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_WEEZING_3, \ + FRONTIER_MON_KANGASKHAN_3, \ + FRONTIER_MON_ELECTABUZZ_3, \ + FRONTIER_MON_TAUROS_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_ALTARIA_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_MUK_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_PORYGON2_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_SLAKING_3, \ + -1 + +// Similar to FRONTIER_MONS_GENERAL_A/B but _2 +// Used by Pkmn Ranger, Running Triathlete, and Cycling Triathlete +#define FRONTIER_MONS_GENERAL_C \ + FRONTIER_MON_DUGTRIO_2, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_GRANBULL_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_DODRIO_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_CLEFABLE_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_RAICHU_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_MANECTRIC_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_ELECTRODE_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_TAUROS_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_MAGMAR_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_JOLTEON_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_SLAKING_2, \ + -1 + +// Similar to FRONTIER_MONS_GENERAL_C but _1 (would be identical if not for re-ordering) +// Used by Pkmn Ranger, Running Triathlete, Cycling Triathlete +#define FRONTIER_MONS_GENERAL_D \ + FRONTIER_MON_DUGTRIO_1, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_CLEFABLE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_MANECTRIC_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_ELECTRODE_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_PORYGON2_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_SLAKING_1, \ + -1 + +#define FRONTIER_MONS_DRAGON_TAMER_2 \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_ALTARIA_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_LATIAS_1, \ + FRONTIER_MON_LATIOS_1, \ + FRONTIER_MON_LATIAS_2, \ + FRONTIER_MON_LATIOS_2, \ + FRONTIER_MON_LATIAS_3, \ + FRONTIER_MON_LATIOS_3, \ + FRONTIER_MON_LATIAS_4, \ + FRONTIER_MON_LATIOS_4, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_LATIAS_5, \ + FRONTIER_MON_LATIAS_6, \ + FRONTIER_MON_LATIAS_7, \ + FRONTIER_MON_LATIAS_8, \ + FRONTIER_MON_LATIOS_5, \ + FRONTIER_MON_LATIOS_6, \ + FRONTIER_MON_LATIOS_7, \ + FRONTIER_MON_LATIOS_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +#define FRONTIER_MONS_BLACK_BELT_2A \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + -1 + +#define FRONTIER_MONS_BATTLE_GIRL_2A \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + -1 + +#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_MAGMAR_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_MAGMAR_4, \ + FRONTIER_MON_RAPIDASH_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_ARCANINE_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + -1 + +#define FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + -1 + +// For this group, Expert M uses Tyranitar, Expert F uses Dragonite +#define FRONTIER_MONS_EXPERT_2A(lastmon) \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_URSARING_5, \ + FRONTIER_MON_URSARING_6, \ + FRONTIER_MON_URSARING_7, \ + FRONTIER_MON_URSARING_8, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_##lastmon##_1, \ + FRONTIER_MON_##lastmon##_2, \ + FRONTIER_MON_##lastmon##_3, \ + FRONTIER_MON_##lastmon##_4, \ + FRONTIER_MON_##lastmon##_5, \ + FRONTIER_MON_##lastmon##_6, \ + FRONTIER_MON_##lastmon##_7, \ + FRONTIER_MON_##lastmon##_8, \ + FRONTIER_MON_##lastmon##_9, \ + FRONTIER_MON_##lastmon##_10,\ + -1 + +// For this group, Expert M uses Latios, Expert F uses Latias +#define FRONTIER_MONS_EXPERT_2B(lati) \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_##lati##_1, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_##lati##_2, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_##lati##_3, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_##lati##_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + FRONTIER_MON_GARDEVOIR_5, \ + FRONTIER_MON_GARDEVOIR_6, \ + FRONTIER_MON_GARDEVOIR_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +// For this group, Expert M uses Tyranitar, Expert F uses Dragonite +#define FRONTIER_MONS_EXPERT_2C(lastmon) \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + FRONTIER_MON_SNORLAX_5, \ + FRONTIER_MON_SNORLAX_6, \ + FRONTIER_MON_SNORLAX_7, \ + FRONTIER_MON_SNORLAX_8, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_##lastmon##_1, \ + FRONTIER_MON_##lastmon##_2, \ + FRONTIER_MON_##lastmon##_3, \ + FRONTIER_MON_##lastmon##_4, \ + FRONTIER_MON_##lastmon##_5, \ + FRONTIER_MON_##lastmon##_6, \ + FRONTIER_MON_##lastmon##_7, \ + FRONTIER_MON_##lastmon##_8, \ + FRONTIER_MON_##lastmon##_9, \ + FRONTIER_MON_##lastmon##_10,\ + -1 + +// The strong Psychic M/F trainers all use the below pokemon +// Additionally they use 1 of 3 legendary trios, and Latios or Latias depending on gender +#define FRONTIER_MONS_PSYCHIC_2(lati, legend1, legend2, legend3) \ + FRONTIER_MON_WOBBUFFET_1, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_MR_MIME_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_HYPNO_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_HYPNO_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_CLAYDOL_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_##legend1##_1, \ + FRONTIER_MON_##legend2##_1, \ + FRONTIER_MON_##legend3##_1, \ + FRONTIER_MON_##lati##_1, \ + FRONTIER_MON_##legend1##_2, \ + FRONTIER_MON_##legend2##_2, \ + FRONTIER_MON_##legend3##_2, \ + FRONTIER_MON_##lati##_2, \ + FRONTIER_MON_##legend1##_3, \ + FRONTIER_MON_##legend2##_3, \ + FRONTIER_MON_##legend3##_3, \ + FRONTIER_MON_##lati##_3, \ + FRONTIER_MON_##legend1##_4, \ + FRONTIER_MON_##legend2##_4, \ + FRONTIER_MON_##legend3##_4, \ + FRONTIER_MON_##lati##_4, \ + FRONTIER_MON_GARDEVOIR_5, \ + FRONTIER_MON_GARDEVOIR_6, \ + FRONTIER_MON_GARDEVOIR_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, + +#define FRONTIER_MONS_PSYCHIC_2A(lati) \ + FRONTIER_MONS_PSYCHIC_2(lati, ARTICUNO, ZAPDOS, MOLTRES) \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + FRONTIER_MON_ARTICUNO_5, \ + FRONTIER_MON_ARTICUNO_6, \ + FRONTIER_MON_ZAPDOS_5, \ + FRONTIER_MON_ZAPDOS_6, \ + FRONTIER_MON_MOLTRES_5, \ + FRONTIER_MON_MOLTRES_6, \ + -1 + +#define FRONTIER_MONS_PSYCHIC_2B(lati) \ + FRONTIER_MONS_PSYCHIC_2(lati, RAIKOU, ENTEI, SUICUNE) \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + FRONTIER_MON_RAIKOU_5, \ + FRONTIER_MON_RAIKOU_6, \ + FRONTIER_MON_ENTEI_5, \ + FRONTIER_MON_ENTEI_6, \ + FRONTIER_MON_SUICUNE_5, \ + FRONTIER_MON_SUICUNE_6, \ + -1 + +// Because the regis/latis are swapped here they cant all be merged into the same macro and match +#define FRONTIER_MONS_PSYCHIC_2C(lati) \ + FRONTIER_MONS_PSYCHIC_2(lati, REGIROCK, REGICE, REGISTEEL) \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_##lati##_5, \ + FRONTIER_MON_##lati##_6, \ + FRONTIER_MON_##lati##_7, \ + FRONTIER_MON_##lati##_8, \ + -1 + +#define FRONTIER_MONS_HEX_MANIAC_2A \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + -1 + +#define FRONTIER_MONS_HEX_MANIAC_2B \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_WEEZING_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_MUK_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + FRONTIER_MON_WEEZING_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_MUK_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + -1 + +#define FRONTIER_MONS_HEX_MANIAC_2C \ + FRONTIER_MON_SEVIPER_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_WEEZING_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_MUK_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_WEEZING_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_MUK_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_WEEZING_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_MUK_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_WEEZING_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_MUK_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + -1 + +// For whatever reason FRONTIER_MON_MAROWAK_2 is in a different order than _1 _3 and _4 +// This order change is the only difference btween FRONITER_MONS_POKEMANIAC_2A and FRONTIER_MONS_POKEMANIAC_2B other than the numbered suffixes +#define FRONTIER_MONS_POKEMANIAC_2A \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_EXPLOUD_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_KANGASKHAN_1, \ + FRONTIER_MON_TAUROS_1, \ + FRONTIER_MON_MILTANK_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_BLISSEY_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_SLAKING_1, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_GRANBULL_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_TAUROS_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_BLISSEY_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_SLAKING_2, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +#define FRONTIER_MONS_POKEMANIAC_2B \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_GRANBULL_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_EXPLOUD_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_KANGASKHAN_3, \ + FRONTIER_MON_TAUROS_3, \ + FRONTIER_MON_MILTANK_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_BLISSEY_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_SLAKING_3, \ + FRONTIER_MON_GRANBULL_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_EXPLOUD_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_KANGASKHAN_4, \ + FRONTIER_MON_TAUROS_4, \ + FRONTIER_MON_MILTANK_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_BLISSEY_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_SLAKING_4, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +#define FRONTIER_MONS_POKEMANIAC_2C \ + FRONTIER_MON_ZANGOOSE_2, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_URSARING_5, \ + FRONTIER_MON_URSARING_6, \ + FRONTIER_MON_URSARING_7, \ + FRONTIER_MON_URSARING_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + FRONTIER_MON_SNORLAX_5, \ + FRONTIER_MON_SNORLAX_6, \ + FRONTIER_MON_SNORLAX_7, \ + FRONTIER_MON_SNORLAX_8, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +// Identical to FRONTIER_MONS_COOLTRAINER_2C but with both latias and latios +#define FRONTIER_MONS_GENTLEMAN_3A \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_URSARING_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_URSARING_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SNORLAX_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_URSARING_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SNORLAX_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_URSARING_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SNORLAX_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_LATIAS_1, \ + FRONTIER_MON_LATIOS_1, \ + FRONTIER_MON_LATIAS_2, \ + FRONTIER_MON_LATIOS_2, \ + FRONTIER_MON_LATIAS_3, \ + FRONTIER_MON_LATIOS_3, \ + FRONTIER_MON_LATIAS_4, \ + FRONTIER_MON_LATIOS_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + FRONTIER_MON_URSARING_5, \ + FRONTIER_MON_URSARING_6, \ + FRONTIER_MON_URSARING_7, \ + FRONTIER_MON_URSARING_8, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_GARDEVOIR_5, \ + FRONTIER_MON_GARDEVOIR_6, \ + FRONTIER_MON_GARDEVOIR_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + FRONTIER_MON_SNORLAX_5, \ + FRONTIER_MON_SNORLAX_6, \ + FRONTIER_MON_SNORLAX_7, \ + FRONTIER_MON_SNORLAX_8, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +// Identical to FRONTIER_MONS_COOLTRAINER_2D but with both latias and latios +#define FRONTIER_MONS_GENTLEMAN_3B \ + FRONTIER_MON_ARTICUNO_1, \ + FRONTIER_MON_ZAPDOS_1, \ + FRONTIER_MON_MOLTRES_1, \ + FRONTIER_MON_RAIKOU_1, \ + FRONTIER_MON_ENTEI_1, \ + FRONTIER_MON_SUICUNE_1, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_LATIAS_1, \ + FRONTIER_MON_LATIOS_1, \ + FRONTIER_MON_ARTICUNO_2, \ + FRONTIER_MON_ZAPDOS_2, \ + FRONTIER_MON_MOLTRES_2, \ + FRONTIER_MON_RAIKOU_2, \ + FRONTIER_MON_ENTEI_2, \ + FRONTIER_MON_SUICUNE_2, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_LATIAS_2, \ + FRONTIER_MON_LATIOS_2, \ + FRONTIER_MON_ARTICUNO_3, \ + FRONTIER_MON_ZAPDOS_3, \ + FRONTIER_MON_MOLTRES_3, \ + FRONTIER_MON_RAIKOU_3, \ + FRONTIER_MON_ENTEI_3, \ + FRONTIER_MON_SUICUNE_3, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_LATIAS_3, \ + FRONTIER_MON_LATIOS_3, \ + FRONTIER_MON_ARTICUNO_4, \ + FRONTIER_MON_ZAPDOS_4, \ + FRONTIER_MON_MOLTRES_4, \ + FRONTIER_MON_RAIKOU_4, \ + FRONTIER_MON_ENTEI_4, \ + FRONTIER_MON_SUICUNE_4, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_LATIAS_4, \ + FRONTIER_MON_LATIOS_4, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + FRONTIER_MON_LATIAS_5, \ + FRONTIER_MON_LATIAS_6, \ + FRONTIER_MON_LATIAS_7, \ + FRONTIER_MON_LATIAS_8, \ + FRONTIER_MON_LATIOS_5, \ + FRONTIER_MON_LATIOS_6, \ + FRONTIER_MON_LATIOS_7, \ + FRONTIER_MON_LATIOS_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + FRONTIER_MON_ARTICUNO_5, \ + FRONTIER_MON_ARTICUNO_6, \ + FRONTIER_MON_ZAPDOS_5, \ + FRONTIER_MON_ZAPDOS_6, \ + FRONTIER_MON_MOLTRES_5, \ + FRONTIER_MON_MOLTRES_6, \ + FRONTIER_MON_RAIKOU_5, \ + FRONTIER_MON_RAIKOU_6, \ + FRONTIER_MON_ENTEI_5, \ + FRONTIER_MON_ENTEI_6, \ + FRONTIER_MON_SUICUNE_5, \ + FRONTIER_MON_SUICUNE_6, \ + -1 + +#define FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3 \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_CLOYSTER_2, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + -1 + +#define FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3 \ + FRONTIER_MON_SNEASEL_2, \ + FRONTIER_MON_CLOYSTER_2, \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_GLALIE_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_GLALIE_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_GLALIE_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + -1 + +#define FRONTIER_MONS_BUG_MANIAC_4 \ + FRONTIER_MON_SHEDINJA, \ + FRONTIER_MON_NINJASK_1, \ + FRONTIER_MON_PARASECT_2, \ + FRONTIER_MON_MASQUERAIN_2, \ + FRONTIER_MON_VENOMOTH_2, \ + FRONTIER_MON_NINJASK_2, \ + FRONTIER_MON_SCYTHER_2, \ + FRONTIER_MON_PINSIR_2, \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_HERACROSS_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_HERACROSS_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_HERACROSS_4, \ + FRONTIER_MON_SHUCKLE_4, \ + -1 + +#define FRONTIER_MONS_FISHERMAN_3 \ + FRONTIER_MON_SEAKING_2, \ + FRONTIER_MON_SHARPEDO_2, \ + FRONTIER_MON_MANTINE_2, \ + FRONTIER_MON_CRAWDAUNT_2, \ + FRONTIER_MON_KINGLER_2, \ + FRONTIER_MON_OCTILLERY_2, \ + FRONTIER_MON_HUNTAIL_2, \ + FRONTIER_MON_GOREBYSS_2, \ + FRONTIER_MON_RELICANTH_2, \ + FRONTIER_MON_CLOYSTER_2, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_WHISCASH_1, \ + FRONTIER_MON_WAILORD_1, \ + FRONTIER_MON_TENTACRUEL_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_WHISCASH_2, \ + FRONTIER_MON_WAILORD_2, \ + FRONTIER_MON_TENTACRUEL_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_WHISCASH_3, \ + FRONTIER_MON_WAILORD_3, \ + FRONTIER_MON_TENTACRUEL_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_WHISCASH_4, \ + FRONTIER_MON_WAILORD_4, \ + FRONTIER_MON_TENTACRUEL_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + -1 + +#define FRONTIER_MONS_RUIN_MANIAC_4 \ + FRONTIER_MON_FORRETRESS_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_SCIZOR_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_FORRETRESS_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_SCIZOR_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_FORRETRESS_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_SCIZOR_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_FORRETRESS_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_SCIZOR_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_REGIROCK_1, \ + FRONTIER_MON_REGICE_1, \ + FRONTIER_MON_REGISTEEL_1, \ + FRONTIER_MON_REGIROCK_2, \ + FRONTIER_MON_REGICE_2, \ + FRONTIER_MON_REGISTEEL_2, \ + FRONTIER_MON_REGIROCK_3, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGISTEEL_3, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_REGIROCK_5, \ + FRONTIER_MON_REGIROCK_6, \ + FRONTIER_MON_REGICE_5, \ + FRONTIER_MON_REGICE_6, \ + FRONTIER_MON_REGISTEEL_5, \ + FRONTIER_MON_REGISTEEL_6, \ + -1 + +#define FRONTIER_MONS_COLLECTOR_3 \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_SWAMPERT_4, \ + -1 + +#define FRONTIER_MONS_GUITARIST_3A \ + FRONTIER_MON_ABSOL_2, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_RAICHU_1, \ + FRONTIER_MON_MANECTRIC_1, \ + FRONTIER_MON_ELECTRODE_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_LANTURN_2, \ + FRONTIER_MON_RAICHU_2, \ + FRONTIER_MON_MANECTRIC_2, \ + FRONTIER_MON_ELECTRODE_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_JOLTEON_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_ELECTABUZZ_3, \ + FRONTIER_MON_AMPHAROS_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_LANTURN_4, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_MANECTRIC_4, \ + FRONTIER_MON_ELECTRODE_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_ELECTABUZZ_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_UMBREON_4, \ + FRONTIER_MON_ARTICUNO_1, \ + FRONTIER_MON_ZAPDOS_1, \ + FRONTIER_MON_MOLTRES_1, \ + FRONTIER_MON_ARTICUNO_2, \ + FRONTIER_MON_ZAPDOS_2, \ + FRONTIER_MON_MOLTRES_2, \ + FRONTIER_MON_ARTICUNO_3, \ + FRONTIER_MON_ZAPDOS_3, \ + FRONTIER_MON_MOLTRES_3, \ + FRONTIER_MON_ARTICUNO_4, \ + FRONTIER_MON_ZAPDOS_4, \ + FRONTIER_MON_MOLTRES_4, \ + FRONTIER_MON_ARTICUNO_5, \ + FRONTIER_MON_ARTICUNO_6, \ + FRONTIER_MON_ZAPDOS_5, \ + FRONTIER_MON_ZAPDOS_6, \ + FRONTIER_MON_MOLTRES_5, \ + FRONTIER_MON_MOLTRES_6, \ + -1 + +#define FRONTIER_MONS_GUITARIST_3B \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_GRANBULL_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_ELECTABUZZ_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_AMPHAROS_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_MANECTRIC_3, \ + FRONTIER_MON_ELECTRODE_3, \ + FRONTIER_MON_PORYGON2_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_RAICHU_4, \ + FRONTIER_MON_MANECTRIC_4, \ + FRONTIER_MON_ELECTRODE_4, \ + FRONTIER_MON_AMPHAROS_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_REGICE_3, \ + FRONTIER_MON_REGIROCK_4, \ + FRONTIER_MON_REGICE_4, \ + FRONTIER_MON_REGISTEEL_4, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_LATIAS_5, \ + FRONTIER_MON_LATIAS_6, \ + FRONTIER_MON_LATIOS_5, \ + FRONTIER_MON_LATIOS_6, \ + -1 + +#define FRONTIER_MONS_BIRD_KEEPER_3 \ + FRONTIER_MON_PIDGEOT_2, \ + FRONTIER_MON_FEAROW_1, \ + FRONTIER_MON_DODRIO_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_SKARMORY_1, \ + FRONTIER_MON_ALTARIA_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_CROBAT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_SALAMENCE_1, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_DODRIO_2, \ + FRONTIER_MON_SKARMORY_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_CROBAT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_SALAMENCE_2, \ + FRONTIER_MON_FEAROW_3, \ + FRONTIER_MON_DODRIO_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_SKARMORY_3, \ + FRONTIER_MON_ALTARIA_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_CROBAT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_SALAMENCE_3, \ + FRONTIER_MON_FEAROW_4, \ + FRONTIER_MON_DODRIO_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_SKARMORY_4, \ + FRONTIER_MON_ALTARIA_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_CROBAT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_SALAMENCE_4, \ + FRONTIER_MON_ARTICUNO_1, \ + FRONTIER_MON_ZAPDOS_1, \ + FRONTIER_MON_MOLTRES_1, \ + FRONTIER_MON_ARTICUNO_2, \ + FRONTIER_MON_ZAPDOS_2, \ + FRONTIER_MON_MOLTRES_2, \ + FRONTIER_MON_ARTICUNO_3, \ + FRONTIER_MON_ZAPDOS_3, \ + FRONTIER_MON_MOLTRES_3, \ + FRONTIER_MON_ARTICUNO_4, \ + FRONTIER_MON_ZAPDOS_4, \ + FRONTIER_MON_MOLTRES_4, \ + FRONTIER_MON_SALAMENCE_5, \ + FRONTIER_MON_SALAMENCE_6, \ + FRONTIER_MON_SALAMENCE_7, \ + FRONTIER_MON_SALAMENCE_8, \ + -1 + +#define FRONTIER_MONS_SAILOR_3 \ + FRONTIER_MON_MEDICHAM_1, \ + FRONTIER_MON_QUAGSIRE_1, \ + FRONTIER_MON_HARIYAMA_1, \ + FRONTIER_MON_DEWGONG_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_GOLDUCK_1, \ + FRONTIER_MON_MACHAMP_1, \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SWAMPERT_1, \ + FRONTIER_MON_GYARADOS_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_MILOTIC_1, \ + FRONTIER_MON_MEDICHAM_2, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_HARIYAMA_2, \ + FRONTIER_MON_DEWGONG_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_GOLDUCK_2, \ + FRONTIER_MON_MACHAMP_2, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_BLASTOISE_2, \ + FRONTIER_MON_FERALIGATR_2, \ + FRONTIER_MON_WALREIN_2, \ + FRONTIER_MON_LAPRAS_2, \ + FRONTIER_MON_SWAMPERT_2, \ + FRONTIER_MON_GYARADOS_2, \ + FRONTIER_MON_KINGDRA_2, \ + FRONTIER_MON_MILOTIC_2, \ + FRONTIER_MON_MEDICHAM_3, \ + FRONTIER_MON_QUAGSIRE_3, \ + FRONTIER_MON_HARIYAMA_3, \ + FRONTIER_MON_DEWGONG_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_GOLDUCK_3, \ + FRONTIER_MON_MACHAMP_3, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_BLASTOISE_3, \ + FRONTIER_MON_FERALIGATR_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_LAPRAS_3, \ + FRONTIER_MON_SWAMPERT_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_KINGDRA_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_MEDICHAM_4, \ + FRONTIER_MON_QUAGSIRE_4, \ + FRONTIER_MON_HARIYAMA_4, \ + FRONTIER_MON_DEWGONG_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_GOLDUCK_4, \ + FRONTIER_MON_MACHAMP_4, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_BLASTOISE_4, \ + FRONTIER_MON_FERALIGATR_4, \ + FRONTIER_MON_WALREIN_4, \ + FRONTIER_MON_LAPRAS_4, \ + FRONTIER_MON_SWAMPERT_4, \ + FRONTIER_MON_GYARADOS_4, \ + FRONTIER_MON_KINGDRA_4, \ + FRONTIER_MON_MILOTIC_4, \ + FRONTIER_MON_MACHAMP_5, \ + FRONTIER_MON_MACHAMP_6, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_MACHAMP_8, \ + FRONTIER_MON_LAPRAS_5, \ + FRONTIER_MON_LAPRAS_6, \ + FRONTIER_MON_LAPRAS_7, \ + FRONTIER_MON_LAPRAS_8, \ + -1 + +#define FRONTIER_MONS_HIKER_3 \ + FRONTIER_MON_DUGTRIO_1, \ + FRONTIER_MON_MAROWAK_1, \ + FRONTIER_MON_GOLEM_1, \ + FRONTIER_MON_RHYDON_1, \ + FRONTIER_MON_NIDOQUEEN_1, \ + FRONTIER_MON_NIDOKING_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_ARMALDO_1, \ + FRONTIER_MON_DONPHAN_1, \ + FRONTIER_MON_CLAYDOL_1, \ + FRONTIER_MON_SHUCKLE_1, \ + FRONTIER_MON_STEELIX_1, \ + FRONTIER_MON_AERODACTYL_1, \ + FRONTIER_MON_FLYGON_1, \ + FRONTIER_MON_AGGRON_1, \ + FRONTIER_MON_METAGROSS_1, \ + FRONTIER_MON_DUGTRIO_2, \ + FRONTIER_MON_MAROWAK_2, \ + FRONTIER_MON_GOLEM_2, \ + FRONTIER_MON_RHYDON_2, \ + FRONTIER_MON_NIDOQUEEN_2, \ + FRONTIER_MON_NIDOKING_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_ARMALDO_2, \ + FRONTIER_MON_DONPHAN_2, \ + FRONTIER_MON_CLAYDOL_2, \ + FRONTIER_MON_SHUCKLE_2, \ + FRONTIER_MON_STEELIX_2, \ + FRONTIER_MON_AERODACTYL_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_AGGRON_2, \ + FRONTIER_MON_METAGROSS_2, \ + FRONTIER_MON_DUGTRIO_3, \ + FRONTIER_MON_MAROWAK_3, \ + FRONTIER_MON_GOLEM_3, \ + FRONTIER_MON_RHYDON_3, \ + FRONTIER_MON_NIDOQUEEN_3, \ + FRONTIER_MON_NIDOKING_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_ARMALDO_3, \ + FRONTIER_MON_DONPHAN_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_STEELIX_3, \ + FRONTIER_MON_AERODACTYL_3, \ + FRONTIER_MON_FLYGON_3, \ + FRONTIER_MON_AGGRON_3, \ + FRONTIER_MON_METAGROSS_3, \ + FRONTIER_MON_DUGTRIO_4, \ + FRONTIER_MON_MAROWAK_4, \ + FRONTIER_MON_GOLEM_4, \ + FRONTIER_MON_RHYDON_4, \ + FRONTIER_MON_NIDOQUEEN_4, \ + FRONTIER_MON_NIDOKING_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_ARMALDO_4, \ + FRONTIER_MON_DONPHAN_4, \ + FRONTIER_MON_CLAYDOL_4, \ + FRONTIER_MON_SHUCKLE_4, \ + FRONTIER_MON_STEELIX_4, \ + FRONTIER_MON_AERODACTYL_4, \ + FRONTIER_MON_FLYGON_4, \ + FRONTIER_MON_AGGRON_4, \ + FRONTIER_MON_METAGROSS_4, \ + FRONTIER_MON_METAGROSS_5, \ + FRONTIER_MON_METAGROSS_6, \ + FRONTIER_MON_METAGROSS_7, \ + FRONTIER_MON_METAGROSS_8, \ + FRONTIER_MON_TYRANITAR_1, \ + FRONTIER_MON_TYRANITAR_2, \ + FRONTIER_MON_TYRANITAR_3, \ + FRONTIER_MON_TYRANITAR_4, \ + FRONTIER_MON_TYRANITAR_5, \ + FRONTIER_MON_TYRANITAR_6, \ + FRONTIER_MON_TYRANITAR_7, \ + FRONTIER_MON_TYRANITAR_8, \ + FRONTIER_MON_TYRANITAR_9, \ + FRONTIER_MON_TYRANITAR_10, \ + -1 + +#define FRONTIER_MONS_KINDLER_3 \ + FRONTIER_MON_MISDREAVUS_1, \ + FRONTIER_MON_DUSCLOPS_1, \ + FRONTIER_MON_MAGMAR_1, \ + FRONTIER_MON_RAPIDASH_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_HOUNDOOM_1, \ + FRONTIER_MON_NINETALES_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_ARCANINE_1, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_DUSCLOPS_2, \ + FRONTIER_MON_MAGMAR_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_GENGAR_2, \ + FRONTIER_MON_HOUNDOOM_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_BLAZIKEN_2, \ + FRONTIER_MON_CHARIZARD_2, \ + FRONTIER_MON_TYPHLOSION_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_MISDREAVUS_3, \ + FRONTIER_MON_DUSCLOPS_3, \ + FRONTIER_MON_MAGMAR_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_GENGAR_3, \ + FRONTIER_MON_HOUNDOOM_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_BLAZIKEN_3, \ + FRONTIER_MON_CHARIZARD_3, \ + FRONTIER_MON_TYPHLOSION_3, \ + FRONTIER_MON_ARCANINE_3, \ + FRONTIER_MON_MISDREAVUS_4, \ + FRONTIER_MON_DUSCLOPS_4, \ + FRONTIER_MON_MAGMAR_4, \ + FRONTIER_MON_RAPIDASH_4, \ + FRONTIER_MON_GENGAR_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_NINETALES_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_BLAZIKEN_4, \ + FRONTIER_MON_CHARIZARD_4, \ + FRONTIER_MON_TYPHLOSION_4, \ + FRONTIER_MON_ARCANINE_4, \ + FRONTIER_MON_GENGAR_5, \ + FRONTIER_MON_GENGAR_6, \ + FRONTIER_MON_GENGAR_7, \ + FRONTIER_MON_GENGAR_8, \ + FRONTIER_MON_DRAGONITE_1, \ + FRONTIER_MON_DRAGONITE_2, \ + FRONTIER_MON_DRAGONITE_3, \ + FRONTIER_MON_DRAGONITE_4, \ + FRONTIER_MON_DRAGONITE_5, \ + FRONTIER_MON_DRAGONITE_6, \ + FRONTIER_MON_DRAGONITE_7, \ + FRONTIER_MON_DRAGONITE_8, \ + FRONTIER_MON_DRAGONITE_9, \ + FRONTIER_MON_DRAGONITE_10, \ + -1 + +#define FRONTIER_MONS_PARASOL_LADY_3 \ + FRONTIER_MON_GLALIE_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_BLASTOISE_1, \ + FRONTIER_MON_FERALIGATR_1, \ + FRONTIER_MON_BLAZIKEN_1, \ + FRONTIER_MON_WALREIN_1, \ + FRONTIER_MON_CHARIZARD_1, \ + FRONTIER_MON_TYPHLOSION_1, \ + FRONTIER_MON_MANECTRIC_2, \ + FRONTIER_MON_ELECTRODE_2, \ + FRONTIER_MON_EXPLOUD_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_NINETALES_2, \ + FRONTIER_MON_PORYGON2_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_FLYGON_2, \ + FRONTIER_MON_ARCANINE_2, \ + FRONTIER_MON_LANTURN_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_RAPIDASH_3, \ + FRONTIER_MON_CLAYDOL_3, \ + FRONTIER_MON_GYARADOS_3, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_HOUNDOOM_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_FLAREON_4, \ + -1 + +// Only used by one Beauty +#define FRONTIER_MONS_EEVEELUTIONS \ + FRONTIER_MON_VAPOREON_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_FLAREON_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_UMBREON_1, \ + FRONTIER_MON_VAPOREON_2, \ + FRONTIER_MON_JOLTEON_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_UMBREON_2, \ + FRONTIER_MON_VAPOREON_3, \ + FRONTIER_MON_JOLTEON_3, \ + FRONTIER_MON_FLAREON_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_VAPOREON_4, \ + FRONTIER_MON_JOLTEON_4, \ + FRONTIER_MON_FLAREON_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_UMBREON_4, \ + -1 + +#define FRONTIER_MONS_BEAUTY_2 \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_LANTURN_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_GENGAR_1, \ + FRONTIER_MON_AMPHAROS_1, \ + FRONTIER_MON_JOLTEON_1, \ + FRONTIER_MON_LAPRAS_1, \ + FRONTIER_MON_SNORLAX_1, \ + FRONTIER_MON_KINGDRA_1, \ + FRONTIER_MON_QUAGSIRE_2, \ + FRONTIER_MON_MISDREAVUS_2, \ + FRONTIER_MON_FEAROW_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_KANGASKHAN_2, \ + FRONTIER_MON_ELECTABUZZ_2, \ + FRONTIER_MON_MILTANK_2, \ + FRONTIER_MON_ALTARIA_2, \ + FRONTIER_MON_RAPIDASH_2, \ + FRONTIER_MON_HERACROSS_2, \ + FRONTIER_MON_FLAREON_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_RAICHU_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_NINETALES_3, \ + FRONTIER_MON_SHUCKLE_3, \ + FRONTIER_MON_UMBREON_3, \ + FRONTIER_MON_WALREIN_3, \ + FRONTIER_MON_MILOTIC_3, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_URSARING_5, \ + FRONTIER_MON_MACHAMP_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_LAPRAS_8, \ + FRONTIER_MON_SALAMENCE_8, \ + FRONTIER_MON_LATIAS_6, \ + -1 + +#define FRONTIER_MONS_AROMA_LADY_3 \ + FRONTIER_MON_WOBBUFFET_1, \ + FRONTIER_MON_WOBBUFFET_2, \ + FRONTIER_MON_SUNFLORA_2, \ + FRONTIER_MON_JUMPLUFF_2, \ + FRONTIER_MON_TROPIUS_2, \ + FRONTIER_MON_CACTURNE_2, \ + FRONTIER_MON_BELLOSSOM_2, \ + FRONTIER_MON_JYNX_1, \ + FRONTIER_MON_MR_MIME_1, \ + FRONTIER_MON_BRELOOM_1, \ + FRONTIER_MON_XATU_1, \ + FRONTIER_MON_VILEPLUME_1, \ + FRONTIER_MON_VICTREEBEL_1, \ + FRONTIER_MON_SHIFTRY_1, \ + FRONTIER_MON_LUDICOLO_1, \ + FRONTIER_MON_HYPNO_1, \ + FRONTIER_MON_ALAKAZAM_1, \ + FRONTIER_MON_SLOWBRO_1, \ + FRONTIER_MON_SLOWKING_1, \ + FRONTIER_MON_CRADILY_1, \ + FRONTIER_MON_GARDEVOIR_1, \ + FRONTIER_MON_EXEGGUTOR_1, \ + FRONTIER_MON_STARMIE_1, \ + FRONTIER_MON_VENUSAUR_1, \ + FRONTIER_MON_MEGANIUM_1, \ + FRONTIER_MON_ESPEON_1, \ + FRONTIER_MON_SCEPTILE_1, \ + FRONTIER_MON_JYNX_2, \ + FRONTIER_MON_MR_MIME_2, \ + FRONTIER_MON_BRELOOM_2, \ + FRONTIER_MON_XATU_2, \ + FRONTIER_MON_VILEPLUME_2, \ + FRONTIER_MON_VICTREEBEL_2, \ + FRONTIER_MON_SHIFTRY_2, \ + FRONTIER_MON_LUDICOLO_2, \ + FRONTIER_MON_HYPNO_2, \ + FRONTIER_MON_ALAKAZAM_2, \ + FRONTIER_MON_SLOWBRO_2, \ + FRONTIER_MON_SLOWKING_2, \ + FRONTIER_MON_CRADILY_2, \ + FRONTIER_MON_GARDEVOIR_2, \ + FRONTIER_MON_EXEGGUTOR_2, \ + FRONTIER_MON_STARMIE_2, \ + FRONTIER_MON_VENUSAUR_2, \ + FRONTIER_MON_MEGANIUM_2, \ + FRONTIER_MON_ESPEON_2, \ + FRONTIER_MON_SCEPTILE_2, \ + FRONTIER_MON_JYNX_3, \ + FRONTIER_MON_MR_MIME_3, \ + FRONTIER_MON_BRELOOM_3, \ + FRONTIER_MON_XATU_3, \ + FRONTIER_MON_VILEPLUME_3, \ + FRONTIER_MON_VICTREEBEL_3, \ + FRONTIER_MON_SHIFTRY_3, \ + FRONTIER_MON_LUDICOLO_3, \ + FRONTIER_MON_HYPNO_3, \ + FRONTIER_MON_ALAKAZAM_3, \ + FRONTIER_MON_SLOWBRO_3, \ + FRONTIER_MON_SLOWKING_3, \ + FRONTIER_MON_CRADILY_3, \ + FRONTIER_MON_GARDEVOIR_3, \ + FRONTIER_MON_EXEGGUTOR_3, \ + FRONTIER_MON_STARMIE_3, \ + FRONTIER_MON_VENUSAUR_3, \ + FRONTIER_MON_MEGANIUM_3, \ + FRONTIER_MON_ESPEON_3, \ + FRONTIER_MON_SCEPTILE_3, \ + FRONTIER_MON_JYNX_4, \ + FRONTIER_MON_MR_MIME_4, \ + FRONTIER_MON_BRELOOM_4, \ + FRONTIER_MON_XATU_4, \ + FRONTIER_MON_VILEPLUME_4, \ + FRONTIER_MON_VICTREEBEL_4, \ + FRONTIER_MON_SHIFTRY_4, \ + FRONTIER_MON_LUDICOLO_4, \ + FRONTIER_MON_HYPNO_4, \ + FRONTIER_MON_ALAKAZAM_4, \ + FRONTIER_MON_SLOWBRO_4, \ + FRONTIER_MON_SLOWKING_4, \ + FRONTIER_MON_CRADILY_4, \ + FRONTIER_MON_GARDEVOIR_4, \ + FRONTIER_MON_EXEGGUTOR_4, \ + FRONTIER_MON_STARMIE_4, \ + FRONTIER_MON_VENUSAUR_4, \ + FRONTIER_MON_MEGANIUM_4, \ + FRONTIER_MON_ESPEON_4, \ + FRONTIER_MON_SCEPTILE_4, \ + FRONTIER_MON_GARDEVOIR_5, \ + FRONTIER_MON_GARDEVOIR_6, \ + FRONTIER_MON_GARDEVOIR_7, \ + FRONTIER_MON_GARDEVOIR_8, \ + FRONTIER_MON_STARMIE_5, \ + FRONTIER_MON_STARMIE_6, \ + FRONTIER_MON_STARMIE_7, \ + FRONTIER_MON_STARMIE_8, \ + -1 + const u16 gBattleFrontierTrainerMons_Brady[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Conner[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Bradley[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Cybil[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Rodette[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Peggy[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Keith[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Grayson[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Glenn[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Liliana[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Elise[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Zoey[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Manuel[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Russ[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Dustin[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Tina[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Gillian[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Zoe[] = { - 5, - 20, - 21, - 25, - 27, - 35, - 46, - 47, - 48, - 50, - 53, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 119, - 121, - 124, - 127, - 146, - 147, - 154, - 158, - 160, - -1 + FRONTIER_MONS_RICH_BOY_LADY_1 }; const u16 gBattleFrontierTrainerMons_Chen[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Al[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Mitch[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Anne[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Alize[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Lauren[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Kipp[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_Jason[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_John[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_Ann[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_Eileen[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_Carlie[] = { - 5, - 6, - 7, - 14, - 19, - 28, - 35, - 42, - 45, - 48, - 50, - 55, - 59, - 60, - 68, - 73, - 83, - 84, - 86, - 87, - 90, - 96, - 97, - 98, - 99, - 103, - 105, - 106, - 109, - 112, - 114, - 121, - -1 + FRONTIER_MONS_TUBER_1 }; const u16 gBattleFrontierTrainerMons_Gordon[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 50, - 51, - 54, - 56, - 68, - 72, - 73, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 152, - 155, - -1 + FRONTIER_MONS_SWIMMER_M_1 }; const u16 gBattleFrontierTrainerMons_Ayden[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 50, - 51, - 54, - 56, - 68, - 72, - 73, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 152, - 155, - -1 + FRONTIER_MONS_SWIMMER_M_1 }; const u16 gBattleFrontierTrainerMons_Marco[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 50, - 51, - 54, - 56, - 68, - 72, - 73, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 152, - 155, - -1 + FRONTIER_MONS_SWIMMER_M_1 }; const u16 gBattleFrontierTrainerMons_Cierra[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 51, - 54, - 56, - 68, - 72, - 73, - 76, - 83, - 84, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 118, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMER_F_1 }; const u16 gBattleFrontierTrainerMons_Marcy[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 51, - 54, - 56, - 68, - 72, - 73, - 76, - 83, - 84, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 118, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMER_F_1 }; const u16 gBattleFrontierTrainerMons_Kathy[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 26, - 32, - 34, - 36, - 43, - 51, - 54, - 56, - 68, - 72, - 73, - 76, - 83, - 84, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 105, - 107, - 109, - 111, - 113, - 116, - 117, - 118, - 123, - 124, - 128, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMER_F_1 }; const u16 gBattleFrontierTrainerMons_Peyton[] = { - 84, - 85, - 87, - 88, - 89, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 105, - 106, - 107, - 109, - 112, - 113, - 117, - 120, - 121, - 123, - 129, - 134, - 142, - 143, - 145, - 148, - 149, - 151, - 152, - 155, - -1 + FRONTIER_MONS_POKEFAN_M_1 }; const u16 gBattleFrontierTrainerMons_Julian[] = { - 84, - 85, - 87, - 88, - 89, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 105, - 106, - 107, - 109, - 112, - 113, - 117, - 120, - 121, - 123, - 129, - 134, - 142, - 143, - 145, - 148, - 149, - 151, - 152, - 155, - -1 + FRONTIER_MONS_POKEFAN_M_1 }; const u16 gBattleFrontierTrainerMons_Quinn[] = { - 84, - 85, - 87, - 88, - 89, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 105, - 106, - 107, - 109, - 112, - 113, - 117, - 120, - 121, - 123, - 129, - 134, - 142, - 143, - 145, - 148, - 149, - 151, - 152, - 155, - -1 + FRONTIER_MONS_POKEFAN_M_1 }; const u16 gBattleFrontierTrainerMons_Haylee[] = { - 1, - 5, - 6, - 10, - 13, - 14, - 16, - 17, - 18, - 19, - 20, - 23, - 24, - 26, - 28, - 29, - 31, - 32, - 33, - 34, - 35, - 36, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 54, - 56, - 59, - 61, - 65, - 66, - 67, - 68, - 71, - 72, - 79, - -1 + FRONTIER_MONS_POKEFAN_F_1 }; const u16 gBattleFrontierTrainerMons_Amanda[] = { - 1, - 5, - 6, - 10, - 13, - 14, - 16, - 17, - 18, - 19, - 20, - 23, - 24, - 26, - 28, - 29, - 31, - 32, - 33, - 34, - 35, - 36, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 54, - 56, - 59, - 61, - 65, - 66, - 67, - 68, - 71, - 72, - 79, - -1 + FRONTIER_MONS_POKEFAN_F_1 }; const u16 gBattleFrontierTrainerMons_Stacy[] = { - 1, - 5, - 6, - 10, - 13, - 14, - 16, - 17, - 18, - 19, - 20, - 23, - 24, - 26, - 28, - 29, - 31, - 32, - 33, - 34, - 35, - 36, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 54, - 56, - 59, - 61, - 65, - 66, - 67, - 68, - 71, - 72, - 79, - -1 + FRONTIER_MONS_POKEFAN_F_1 }; +// The below 6 are the early Pkmn Breeder class trainers, which use groups from other general classes const u16 gBattleFrontierTrainerMons_Rafael[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Oliver[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Payton[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Pamela[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Eliza[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Marisa[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Lewis[] = { - 2, - 3, - 4, - 8, - 9, - 21, - 27, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 80, - 112, - 132, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_CATCHER_1_EXTRA(METAPOD, KAKUNA) }; const u16 gBattleFrontierTrainerMons_Yoshi[] = { - 2, - 3, - 4, - 11, - 12, - 21, - 27, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 80, - 112, - 132, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_CATCHER_1_EXTRA(SILCOON, CASCOON) }; const u16 gBattleFrontierTrainerMons_Destin[] = { - 2, - 3, - 4, - 21, - 27, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 80, - 112, - 132, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_CATCHER_1 }; const u16 gBattleFrontierTrainerMons_Keon[] = { - 5, - 21, - 25, - 27, - 35, - 39, - 40, - 41, - 42, - 46, - 47, - 48, - 50, - 52, - 53, - 57, - 58, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 121, - 124, - 127, - 132, - 141, - 146, - 147, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_NINJA_BOY_1 }; const u16 gBattleFrontierTrainerMons_Stuart[] = { - 5, - 21, - 25, - 27, - 35, - 39, - 40, - 41, - 42, - 46, - 47, - 48, - 50, - 52, - 53, - 57, - 58, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 121, - 124, - 127, - 132, - 141, - 146, - 147, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_NINJA_BOY_1 }; const u16 gBattleFrontierTrainerMons_Nestor[] = { - 5, - 21, - 25, - 27, - 35, - 39, - 40, - 41, - 42, - 46, - 47, - 48, - 50, - 52, - 53, - 57, - 58, - 62, - 63, - 69, - 75, - 78, - 79, - 80, - 84, - 90, - 92, - 99, - 100, - 102, - 106, - 110, - 112, - 114, - 121, - 124, - 127, - 132, - 141, - 146, - 147, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_NINJA_BOY_1 }; const u16 gBattleFrontierTrainerMons_Derrick[] = { - 21, - 27, - 29, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 61, - 62, - 63, - 69, - 80, - 92, - 102, - 112, - 125, - 129, - 132, - 140, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Bryson[] = { - 21, - 27, - 29, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 61, - 62, - 63, - 69, - 80, - 92, - 102, - 112, - 125, - 129, - 132, - 140, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Clayton[] = { - 21, - 27, - 29, - 39, - 40, - 41, - 42, - 52, - 57, - 58, - 61, - 62, - 63, - 69, - 80, - 92, - 102, - 112, - 125, - 129, - 132, - 140, - 141, - 153, - 154, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_BUG_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Trenton[] = { - 6, - 7, - 55, - 60, - 68, - 73, - 83, - 86, - 87, - 105, - 111, - 116, - 123, - 124, - 128, - 134, - 138, - 139, - 151, - -1 + FRONTIER_MONS_FISHERMAN_1 }; const u16 gBattleFrontierTrainerMons_Jenson[] = { - 6, - 7, - 55, - 60, - 68, - 73, - 83, - 86, - 87, - 105, - 111, - 116, - 123, - 124, - 128, - 134, - 138, - 139, - 151, - -1 + FRONTIER_MONS_FISHERMAN_1 }; const u16 gBattleFrontierTrainerMons_Wesley[] = { - 6, - 7, - 55, - 60, - 68, - 73, - 83, - 86, - 87, - 105, - 111, - 116, - 123, - 124, - 128, - 134, - 138, - 139, - 151, - -1 + FRONTIER_MONS_FISHERMAN_1 }; const u16 gBattleFrontierTrainerMons_Anton[] = { - 31, - 39, - 58, - 67, - 70, - 74, - 75, - 78, - 85, - 104, - 108, - 120, - 122, - 133, - 138, - 139, - 140, - 141, - 150, - 151, - 152, - 156, - -1 + FRONTIER_MONS_RUIN_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Lawson[] = { - 31, - 39, - 58, - 67, - 70, - 74, - 75, - 78, - 85, - 104, - 108, - 120, - 122, - 133, - 138, - 139, - 140, - 141, - 150, - 151, - 152, - 156, - -1 + FRONTIER_MONS_RUIN_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Sammy[] = { - 31, - 39, - 58, - 67, - 70, - 74, - 75, - 78, - 85, - 104, - 108, - 120, - 122, - 133, - 138, - 139, - 140, - 141, - 150, - 151, - 152, - 156, - -1 + FRONTIER_MONS_RUIN_MANIAC_1 }; +// The below 3 are the early Collector class trainers, which use groups from other general classes const u16 gBattleFrontierTrainerMons_Arnie[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Adrian[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Tristan[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Juliana[] = { - 0, - 14, - 19, - 28, - 42, - 58, - 59, - 67, - 68, - 85, - 118, - 120, - 123, - 155, - 156, - 193, - -1 + FRONTIER_MONS_PARASOL_LADY_1 }; const u16 gBattleFrontierTrainerMons_Rylee[] = { - 0, - 14, - 19, - 28, - 42, - 58, - 59, - 67, - 68, - 85, - 118, - 120, - 123, - 155, - 156, - 193, - -1 + FRONTIER_MONS_PARASOL_LADY_1 }; const u16 gBattleFrontierTrainerMons_Chelsea[] = { - 0, - 14, - 19, - 28, - 42, - 58, - 59, - 67, - 68, - 85, - 118, - 120, - 123, - 155, - 156, - 193, - -1 + FRONTIER_MONS_PARASOL_LADY_1 }; +// The below 3 are the early Beauty class trainers, which use groups from other general classes const u16 gBattleFrontierTrainerMons_Danela[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 10, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_1 }; const u16 gBattleFrontierTrainerMons_Lizbeth[] = { - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - -1 + FRONTIER_MONS_SCHOOL_KID_1 }; const u16 gBattleFrontierTrainerMons_Amelia[] = { - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_1 }; const u16 gBattleFrontierTrainerMons_Jillian[] = { - 0, - 5, - 18, - 19, - 29, - 35, - 48, - 50, - 52, - 61, - 69, - 75, - 78, - 84, - 90, - 94, - 99, - 100, - 101, - 102, - 106, - 112, - 114, - 121, - 125, - 129, - 130, - 131, - 140, - -1 + FRONTIER_MONS_AROMA_LADY_1 }; const u16 gBattleFrontierTrainerMons_Abbie[] = { - 0, - 5, - 18, - 19, - 29, - 35, - 48, - 50, - 52, - 61, - 69, - 75, - 78, - 84, - 90, - 94, - 99, - 100, - 101, - 102, - 106, - 112, - 114, - 121, - 125, - 129, - 130, - 131, - 140, - -1 + FRONTIER_MONS_AROMA_LADY_1 }; const u16 gBattleFrontierTrainerMons_Briana[] = { - 0, - 5, - 18, - 19, - 29, - 35, - 48, - 50, - 52, - 61, - 69, - 75, - 78, - 84, - 90, - 94, - 99, - 100, - 101, - 102, - 106, - 112, - 114, - 121, - 125, - 129, - 130, - 131, - 140, - -1 + FRONTIER_MONS_AROMA_LADY_1 }; const u16 gBattleFrontierTrainerMons_Antonio[] = { - 5, - 10, - 20, - 35, - 48, - 49, - 50, - 62, - 63, - 64, - 66, - 71, - 75, - 77, - 78, - 84, - 90, - 92, - 99, - 106, - 108, - 112, - 114, - 115, - 116, - 119, - 121, - 122, - 143, - 148, - 152, - -1 + FRONTIER_MONS_GUITARIST_1 }; const u16 gBattleFrontierTrainerMons_Jaden[] = { - 5, - 10, - 20, - 35, - 48, - 49, - 50, - 62, - 63, - 64, - 66, - 71, - 75, - 77, - 78, - 84, - 90, - 92, - 99, - 106, - 108, - 112, - 114, - 115, - 116, - 119, - 121, - 122, - 143, - 148, - 152, - -1 + FRONTIER_MONS_GUITARIST_1 }; const u16 gBattleFrontierTrainerMons_Dakota[] = { - 5, - 10, - 20, - 35, - 48, - 49, - 50, - 62, - 63, - 64, - 66, - 71, - 75, - 77, - 78, - 84, - 90, - 92, - 99, - 106, - 108, - 112, - 114, - 115, - 116, - 119, - 121, - 122, - 143, - 148, - 152, - -1 + FRONTIER_MONS_GUITARIST_1 }; const u16 gBattleFrontierTrainerMons_Brayden[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 25, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 45, - 51, - 54, - 56, - 72, - 91, - 93, - 95, - 106, - 107, - 113, - 117, - 118, - 135, - 137, - 142, - 144, - 145, - -1 + FRONTIER_MONS_BIRD_KEEPER_1 }; const u16 gBattleFrontierTrainerMons_Corson[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 25, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 45, - 51, - 54, - 56, - 72, - 91, - 93, - 95, - 106, - 107, - 113, - 117, - 118, - 135, - 137, - 142, - 144, - 145, - -1 + FRONTIER_MONS_BIRD_KEEPER_1 }; const u16 gBattleFrontierTrainerMons_Trevin[] = { - 1, - 13, - 16, - 17, - 23, - 24, - 25, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 45, - 51, - 54, - 56, - 72, - 91, - 93, - 95, - 106, - 107, - 113, - 117, - 118, - 135, - 137, - 142, - 144, - 145, - -1 + FRONTIER_MONS_BIRD_KEEPER_1 }; const u16 gBattleFrontierTrainerMons_Patrick[] = { - 15, - 22, - 50, - 67, - 70, - 71, - 74, - 77, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 104, - 109, - 111, - 120, - 124, - 128, - 131, - 133, - 134, - 138, - 139, - 151, - 155, - 156, - -1 + FRONTIER_MONS_SAILOR_1 }; const u16 gBattleFrontierTrainerMons_Kaden[] = { - 15, - 22, - 50, - 67, - 70, - 71, - 74, - 77, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 104, - 109, - 111, - 120, - 124, - 128, - 131, - 133, - 134, - 138, - 139, - 151, - 155, - 156, - -1 + FRONTIER_MONS_SAILOR_1 }; const u16 gBattleFrontierTrainerMons_Maxwell[] = { - 15, - 22, - 50, - 67, - 70, - 71, - 74, - 77, - 81, - 82, - 83, - 86, - 87, - 96, - 97, - 98, - 99, - 103, - 104, - 109, - 111, - 120, - 124, - 128, - 131, - 133, - 134, - 138, - 139, - 151, - 155, - 156, - -1 + FRONTIER_MONS_SAILOR_1 }; const u16 gBattleFrontierTrainerMons_Daryl[] = { - 15, - 22, - 31, - 39, - 50, - 51, - 58, - 67, - 70, - 74, - 75, - 81, - 82, - 85, - 104, - 120, - 122, - 132, - 133, - 138, - 139, - 140, - 141, - 142, - 144, - 150, - 156, - -1 + FRONTIER_MONS_HIKER_1 }; const u16 gBattleFrontierTrainerMons_Kenneth[] = { - 15, - 22, - 31, - 39, - 50, - 51, - 58, - 67, - 70, - 74, - 75, - 81, - 82, - 85, - 104, - 120, - 122, - 132, - 133, - 138, - 139, - 140, - 141, - 142, - 144, - 150, - 156, - -1 + FRONTIER_MONS_HIKER_1 }; const u16 gBattleFrontierTrainerMons_Rich[] = { - 15, - 22, - 31, - 39, - 50, - 51, - 58, - 67, - 70, - 74, - 75, - 81, - 82, - 85, - 104, - 120, - 122, - 132, - 133, - 138, - 139, - 140, - 141, - 142, - 144, - 150, - 156, - -1 + FRONTIER_MONS_HIKER_1 }; const u16 gBattleFrontierTrainerMons_Caden[] = { - 30, - 62, - 63, - 65, - 70, - 74, - 77, - 78, - 85, - 88, - 89, - 95, - 108, - 119, - 122, - 133, - 136, - 149, - 150, - 152, - 156, - -1 + FRONTIER_MONS_KINDLER_1 }; const u16 gBattleFrontierTrainerMons_Marlon[] = { - 30, - 62, - 63, - 65, - 70, - 74, - 77, - 78, - 85, - 88, - 89, - 95, - 108, - 119, - 122, - 133, - 136, - 149, - 150, - 152, - 156, - -1 + FRONTIER_MONS_KINDLER_1 }; const u16 gBattleFrontierTrainerMons_Nash[] = { - 30, - 62, - 63, - 65, - 70, - 74, - 77, - 78, - 85, - 88, - 89, - 95, - 108, - 119, - 122, - 133, - 136, - 149, - 150, - 152, - 156, - -1 + FRONTIER_MONS_KINDLER_1 }; const u16 gBattleFrontierTrainerMons_Robby[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 50, - 51, - 54, - 56, - 67, - 70, - 72, - 74, - 75, - 81, - 82, - 85, - 91, - 93, - 104, - 107, - 113, - 117, - 120, - 132, - 133, - 135, - 137, - 142, - 144, - 145, - 156, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Reece[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 50, - 51, - 54, - 56, - 67, - 70, - 72, - 74, - 75, - 81, - 82, - 85, - 91, - 93, - 104, - 107, - 113, - 117, - 120, - 132, - 133, - 135, - 137, - 142, - 144, - 145, - 156, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Kathryn[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 50, - 51, - 54, - 56, - 67, - 70, - 72, - 74, - 75, - 81, - 82, - 85, - 91, - 93, - 104, - 107, - 113, - 117, - 120, - 132, - 133, - 135, - 137, - 142, - 144, - 145, - 156, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Ellen[] = { - 1, - 13, - 15, - 16, - 17, - 22, - 23, - 24, - 26, - 32, - 33, - 34, - 36, - 37, - 38, - 43, - 44, - 50, - 51, - 54, - 56, - 67, - 70, - 72, - 74, - 75, - 81, - 82, - 85, - 91, - 93, - 104, - 107, - 113, - 117, - 120, - 132, - 133, - 135, - 137, - 142, - 144, - 145, - 156, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Ramon[] = { - 15, - 22, - 50, - 71, - 72, - 76, - 77, - 81, - 82, - 83, - 84, - 87, - 96, - 97, - 98, - 99, - 103, - 107, - 109, - 111, - 113, - 117, - 118, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Arthur[] = { - 15, - 22, - 50, - 71, - 72, - 76, - 77, - 81, - 82, - 83, - 84, - 87, - 96, - 97, - 98, - 99, - 103, - 107, - 109, - 111, - 113, - 117, - 118, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Alondra[] = { - 15, - 22, - 50, - 71, - 72, - 76, - 77, - 81, - 82, - 83, - 84, - 87, - 96, - 97, - 98, - 99, - 103, - 107, - 109, - 111, - 113, - 117, - 118, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Adriana[] = { - 15, - 22, - 50, - 71, - 72, - 76, - 77, - 81, - 82, - 83, - 84, - 87, - 96, - 97, - 98, - 99, - 103, - 107, - 109, - 111, - 113, - 117, - 118, - 131, - 134, - 138, - 139, - 142, - 144, - 145, - 151, - 155, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Malik[] = { - 10, - 15, - 22, - 49, - 50, - 64, - 66, - 71, - 72, - 77, - 78, - 81, - 82, - 91, - 93, - 107, - 108, - 113, - 115, - 117, - 122, - 135, - 137, - 142, - 143, - 144, - 145, - 148, - 152, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Jill[] = { - 10, - 15, - 22, - 49, - 50, - 64, - 66, - 71, - 72, - 77, - 78, - 81, - 82, - 91, - 93, - 107, - 108, - 113, - 115, - 117, - 122, - 135, - 137, - 142, - 143, - 144, - 145, - 148, - 152, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_1 }; const u16 gBattleFrontierTrainerMons_Erik[] = { - 162, - 164, - 168, - 178, - 183, - 184, - 189, - 197, - 199, - 200, - 203, - 204, - 207, - 210, - 213, - 214, - 218, - 220, - 221, - 224, - 227, - 231, - 232, - 233, - 234, - 235, - 236, - 238, - 240, - 243, - 245, - 246, - 250, - 263, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Yazmin[] = { - 162, - 164, - 168, - 178, - 183, - 184, - 189, - 197, - 199, - 200, - 203, - 204, - 207, - 210, - 213, - 214, - 218, - 220, - 221, - 224, - 227, - 231, - 232, - 233, - 234, - 235, - 236, - 238, - 240, - 243, - 245, - 246, - 250, - 263, - -1 + FRONTIER_MONS_RUNNING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Jamal[] = { - 170, - 176, - 178, - 182, - 189, - 190, - 192, - 196, - 211, - 212, - 213, - 219, - 228, - 230, - 232, - 233, - 234, - 236, - 242, - 245, - 249, - 253, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 265, - 266, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Leslie[] = { - 170, - 176, - 178, - 182, - 189, - 190, - 192, - 196, - 211, - 212, - 213, - 219, - 228, - 230, - 232, - 233, - 234, - 236, - 242, - 245, - 249, - 253, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 265, - 266, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Dave[] = { - 162, - 164, - 168, - 178, - 183, - 186, - 187, - 189, - 197, - 199, - 200, - 203, - 204, - 206, - 207, - 214, - 215, - 218, - 220, - 221, - 224, - 227, - 232, - 233, - 234, - 235, - 236, - 240, - 244, - 246, - 250, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Carlo[] = { - 162, - 164, - 168, - 178, - 183, - 186, - 187, - 189, - 197, - 199, - 200, - 203, - 204, - 206, - 207, - 214, - 215, - 218, - 220, - 221, - 224, - 227, - 232, - 233, - 234, - 235, - 236, - 240, - 244, - 246, - 250, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Emilia[] = { - 162, - 164, - 168, - 178, - 183, - 186, - 187, - 189, - 197, - 199, - 200, - 203, - 204, - 206, - 207, - 214, - 215, - 218, - 220, - 221, - 224, - 227, - 232, - 233, - 234, - 235, - 236, - 240, - 244, - 246, - 250, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Dalia[] = { - 162, - 164, - 168, - 178, - 183, - 186, - 187, - 189, - 197, - 199, - 200, - 203, - 204, - 206, - 207, - 214, - 215, - 218, - 220, - 221, - 224, - 227, - 232, - 233, - 234, - 235, - 236, - 240, - 244, - 246, - 250, - -1 + FRONTIER_MONS_CYCLING_TRIATHLETE_2 }; const u16 gBattleFrontierTrainerMons_Hitomi[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Ricardo[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Shizuka[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Joana[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Kelly[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Rayna[] = { - 164, - 166, - 175, - 178, - 181, - 189, - 191, - 193, - 194, - 195, - 197, - 199, - 200, - 202, - 203, - 205, - 206, - 207, - 210, - 215, - 218, - 220, - 221, - 222, - 223, - 225, - 227, - 230, - 232, - 233, - 234, - 235, - 236, - 240, - 241, - 246, - 247, - 252, - 254, - 262, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_1 }; const u16 gBattleFrontierTrainerMons_Evan[] = { - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - -1 + FRONTIER_MONS_EXPERT_1A }; const u16 gBattleFrontierTrainerMons_Jordan[] = { - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - -1 + FRONTIER_MONS_EXPERT_1B }; const u16 gBattleFrontierTrainerMons_Joel[] = { - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - -1 + FRONTIER_MONS_EXPERT_1C }; const u16 gBattleFrontierTrainerMons_Kristen[] = { - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - -1 + FRONTIER_MONS_EXPERT_1A }; const u16 gBattleFrontierTrainerMons_Selphy[] = { - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - -1 + FRONTIER_MONS_EXPERT_1B }; const u16 gBattleFrontierTrainerMons_Chloe[] = { - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - -1 + FRONTIER_MONS_EXPERT_1C }; const u16 gBattleFrontierTrainerMons_Norton[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Lukas[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Zach[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Kaitlyn[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Breanna[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Kendra[] = { - 267, - 268, - 273, - 274, - 276, - 284, - 289, - 290, - 291, - 292, - 307, - 308, - 311, - 312, - 314, - 317, - 325, - 327, - 328, - 329, - 331, - 332, - 340, - 342, - 347, - 349, - 351, - 352, - 354, - 356, - 359, - 363, - 370, - -1 + FRONTIER_MONS_PSYCHIC_1 }; const u16 gBattleFrontierTrainerMons_Molly[] = { - 268, - 270, - 272, - 274, - 282, - 284, - 289, - 290, - 303, - 307, - 311, - 314, - 317, - 322, - 327, - 328, - 331, - 336, - 340, - 342, - 344, - 347, - 352, - 353, - 354, - 356, - 359, - -1 + FRONTIER_MONS_HEX_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Jazmin[] = { - 268, - 270, - 272, - 274, - 282, - 284, - 289, - 290, - 303, - 307, - 311, - 314, - 317, - 322, - 327, - 328, - 331, - 336, - 340, - 342, - 344, - 347, - 352, - 353, - 354, - 356, - 359, - -1 + FRONTIER_MONS_HEX_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Kelsey[] = { - 268, - 270, - 272, - 274, - 282, - 284, - 289, - 290, - 303, - 307, - 311, - 314, - 317, - 322, - 327, - 328, - 331, - 336, - 340, - 342, - 344, - 347, - 352, - 353, - 354, - 356, - 359, - -1 + FRONTIER_MONS_HEX_MANIAC_1 }; const u16 gBattleFrontierTrainerMons_Jalen[] = { - 269, - 271, - 275, - 279, - 280, - 281, - 283, - 285, - 286, - 287, - 293, - 294, - 295, - 300, - 302, - 307, - 310, - 311, - 320, - 322, - 326, - 330, - 332, - 335, - 344, - 345, - 346, - 348, - 350, - 353, - 357, - -1 + FRONTIER_MONS_POKEMANIAC_1 }; const u16 gBattleFrontierTrainerMons_Griffen[] = { - 269, - 271, - 275, - 279, - 280, - 281, - 283, - 285, - 286, - 287, - 293, - 294, - 295, - 300, - 302, - 307, - 310, - 311, - 320, - 322, - 326, - 330, - 332, - 335, - 344, - 345, - 346, - 348, - 350, - 353, - 357, - -1 + FRONTIER_MONS_POKEMANIAC_1 }; const u16 gBattleFrontierTrainerMons_Xander[] = { - 269, - 271, - 275, - 279, - 280, - 281, - 283, - 285, - 286, - 287, - 293, - 294, - 295, - 300, - 302, - 307, - 310, - 311, - 320, - 322, - 326, - 330, - 332, - 335, - 344, - 345, - 346, - 348, - 350, - 353, - 357, - -1 + FRONTIER_MONS_POKEMANIAC_1 }; const u16 gBattleFrontierTrainerMons_Marvin[] = { - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - -1 + FRONTIER_MONS_GENTLEMAN_1A }; const u16 gBattleFrontierTrainerMons_Brennan[] = { - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - -1 + FRONTIER_MONS_GENTLEMAN_1B }; const u16 gBattleFrontierTrainerMons_Baley[] = { - 159, - 160, - 161, - 172, - 173, - 177, - 198, - 226, - 238, - 263, - 264, - 277, - 278, - 282, - 303, - 331, - 343, - 368, - 369, - -1 + FRONTIER_MONS_BUG_MANIAC_2 }; const u16 gBattleFrontierTrainerMons_Zackary[] = { - 271, - 283, - 294, - 295, - 298, - 299, - 300, - 311, - 315, - 320, - 327, - 328, - 330, - 335, - 337, - 338, - 339, - 341, - 346, - 364, - 365, - 366, - -1 + FRONTIER_MONS_RUIN_MANIAC_2 }; const u16 gBattleFrontierTrainerMons_Gabriel[] = { - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - -1 + FRONTIER_MONS_COLLECTOR_1 }; const u16 gBattleFrontierTrainerMons_Emily[] = { - 272, - 301, - 309, - 330, - 348, - 349, - 350, - 359, - 360, - 362, - 363, - 365, - -1 + FRONTIER_MONS_PARASOL_LADY_2 }; const u16 gBattleFrontierTrainerMons_Jordyn[] = { - 267, - 269, - 270, - 272, - 273, - 276, - 279, - 284, - 288, - 302, - 304, - 305, - 308, - 309, - 312, - 316, - 319, - 322, - 323, - 325, - 326, - 329, - 331, - 332, - 336, - 340, - 344, - 345, - 351, - 353, - 355, - -1 + FRONTIER_MONS_BEAUTY_1 }; const u16 gBattleFrontierTrainerMons_Sofia[] = { - 270, - 272, - 274, - 276, - 279, - 282, - 285, - 290, - 293, - 313, - 314, - 321, - 334, - 340, - 348, - 356, - 359, - 360, - -1 + FRONTIER_MONS_AROMA_LADY_2 }; const u16 gBattleFrontierTrainerMons_Braden[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - -1 + FRONTIER_MONS_COOLTRAINER_1A }; const u16 gBattleFrontierTrainerMons_Kayden[] = { - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - -1 + FRONTIER_MONS_COOLTRAINER_1B }; const u16 gBattleFrontierTrainerMons_Cooper[] = { - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_COOLTRAINER_1C }; const u16 gBattleFrontierTrainerMons_Julia[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - -1 + FRONTIER_MONS_COOLTRAINER_1A }; const u16 gBattleFrontierTrainerMons_Amara[] = { - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - -1 + FRONTIER_MONS_COOLTRAINER_1B }; const u16 gBattleFrontierTrainerMons_Lynn[] = { - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_COOLTRAINER_1C }; const u16 gBattleFrontierTrainerMons_Jovan[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Dominic[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Nikolas[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Valeria[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Delaney[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Meghan[] = { - 238, - 331, - 343, - 368, - 369, - 375, - 376, - 379, - 382, - 383, - 389, - 394, - 395, - 397, - 398, - 400, - 406, - 408, - 411, - 416, - 417, - 423, - 424, - 425, - 432, - 436, - 438, - 441, - 445, - 453, - 460, - 462, - 467, - -1 + FRONTIER_MONS_PKMN_RANGER_1 }; const u16 gBattleFrontierTrainerMons_Roberto[] = { - 386, - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 453, - 454, - 456, - 459, - 461, - 463, - 464, - 465, - -1 + FRONTIER_MONS_DRAGON_TAMER_1 }; const u16 gBattleFrontierTrainerMons_Damian[] = { - 386, - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 453, - 454, - 456, - 459, - 461, - 463, - 464, - 465, - -1 + FRONTIER_MONS_DRAGON_TAMER_1 }; const u16 gBattleFrontierTrainerMons_Brody[] = { - 386, - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 453, - 454, - 456, - 459, - 461, - 463, - 464, - 465, - -1 + FRONTIER_MONS_DRAGON_TAMER_1 }; const u16 gBattleFrontierTrainerMons_Graham[] = { - 386, - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 453, - 454, - 456, - 459, - 461, - 463, - 464, - 465, - -1 + FRONTIER_MONS_DRAGON_TAMER_1 }; const u16 gBattleFrontierTrainerMons_Tylor[] = { - 374, - 381, - 382, - 385, - 388, - 389, - 391, - 392, - 394, - 409, - 411, - 412, - 419, - 430, - 432, - 436, - 440, - 456, - 460, - 462, - 463, - 467, - -1 + FRONTIER_MONS_POKEFAN_2 }; const u16 gBattleFrontierTrainerMons_Jaren[] = { - 374, - 381, - 382, - 385, - 388, - 389, - 391, - 392, - 394, - 409, - 411, - 412, - 419, - 430, - 432, - 436, - 440, - 456, - 460, - 462, - 463, - 467, - -1 + FRONTIER_MONS_POKEFAN_2 }; const u16 gBattleFrontierTrainerMons_Cordell[] = { - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_PKMN_BREEDER_M_1 }; const u16 gBattleFrontierTrainerMons_Jazlyn[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - -1 + FRONTIER_MONS_PKMN_BREEDER_F_1 }; const u16 gBattleFrontierTrainerMons_Zachery[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_2 }; const u16 gBattleFrontierTrainerMons_Johan[] = { - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_2_NO_DUGTRIO }; const u16 gBattleFrontierTrainerMons_Shea[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_2 }; const u16 gBattleFrontierTrainerMons_Kaila[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_2 }; const u16 gBattleFrontierTrainerMons_Isiah[] = { - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - -1 + FRONTIER_MONS_SCHOOL_KID_2 }; const u16 gBattleFrontierTrainerMons_Garrett[] = { - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - -1 + FRONTIER_MONS_SCHOOL_KID_2 }; const u16 gBattleFrontierTrainerMons_Haylie[] = { - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - -1 + FRONTIER_MONS_SCHOOL_KID_2 }; const u16 gBattleFrontierTrainerMons_Megan[] = { - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - -1 + FRONTIER_MONS_SCHOOL_KID_2 }; const u16 gBattleFrontierTrainerMons_Issac[] = { - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_RICH_BOY_LADY_2 }; const u16 gBattleFrontierTrainerMons_Quinton[] = { - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_RICH_BOY_LADY_2 }; const u16 gBattleFrontierTrainerMons_Salma[] = { - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_RICH_BOY_LADY_2 }; const u16 gBattleFrontierTrainerMons_Ansley[] = { - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_RICH_BOY_LADY_2 }; const u16 gBattleFrontierTrainerMons_Holden[] = { - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 480, - 481, - 490, - 491, - 494, - 496, - 512, - 513, - 519, - 520, - 528, - 534, - 537, - 541, - 549, - -1 + FRONTIER_MONS_BUG_CATCHER_2 }; const u16 gBattleFrontierTrainerMons_Luca[] = { - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 480, - 481, - 490, - 491, - 494, - 496, - 512, - 513, - 519, - 520, - 528, - 534, - 537, - 541, - 549, - -1 + FRONTIER_MONS_BUG_CATCHER_2 }; const u16 gBattleFrontierTrainerMons_Jamison[] = { - 282, - 331, - 343, - 368, - 369, - 469, - 472, - 475, - 476, - 478, - 481, - 484, - 490, - 491, - 497, - 500, - 501, - 509, - 510, - 513, - 516, - 517, - 519, - 520, - 524, - 528, - 530, - 533, - 534, - 537, - 542, - 553, - -1 + FRONTIER_MONS_NINJA_BOY_2 }; const u16 gBattleFrontierTrainerMons_Gunnar[] = { - 282, - 331, - 343, - 368, - 369, - 469, - 472, - 475, - 476, - 478, - 481, - 484, - 490, - 491, - 497, - 500, - 501, - 509, - 510, - 513, - 516, - 517, - 519, - 520, - 524, - 528, - 530, - 533, - 534, - 537, - 542, - 553, - -1 + FRONTIER_MONS_NINJA_BOY_2 }; const u16 gBattleFrontierTrainerMons_Craig[] = { - 471, - 474, - 475, - 479, - 483, - 485, - 488, - 493, - 495, - 496, - 502, - 504, - 505, - 506, - 507, - 514, - 521, - 525, - 530, - 532, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 556, - 557, - 558, - 559, - 563, - -1 + FRONTIER_MONS_TUBER_2 }; const u16 gBattleFrontierTrainerMons_Pierce[] = { - 471, - 474, - 475, - 479, - 483, - 485, - 488, - 493, - 495, - 496, - 502, - 504, - 505, - 506, - 507, - 514, - 521, - 525, - 530, - 532, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 556, - 557, - 558, - 559, - 563, - -1 + FRONTIER_MONS_TUBER_2 }; const u16 gBattleFrontierTrainerMons_Regina[] = { - 471, - 474, - 475, - 479, - 483, - 485, - 488, - 493, - 495, - 496, - 502, - 504, - 505, - 506, - 507, - 514, - 521, - 525, - 530, - 532, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 556, - 557, - 558, - 559, - 563, - -1 + FRONTIER_MONS_TUBER_2 }; const u16 gBattleFrontierTrainerMons_Alison[] = { - 471, - 474, - 475, - 479, - 483, - 485, - 488, - 493, - 495, - 496, - 502, - 504, - 505, - 506, - 507, - 514, - 521, - 525, - 530, - 532, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 556, - 557, - 558, - 559, - 563, - -1 + FRONTIER_MONS_TUBER_2 }; const u16 gBattleFrontierTrainerMons_Hank[] = { - 277, - 278, - 282, - 303, - 331, - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 481, - 513, - 519, - 520, - 528, - 575, - 609, - 615, - 616, - 624, - -1 + FRONTIER_MONS_BUG_MANIAC_3 }; const u16 gBattleFrontierTrainerMons_Earl[] = { - 277, - 278, - 282, - 303, - 331, - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 481, - 513, - 519, - 520, - 528, - 575, - 609, - 615, - 616, - 624, - -1 + FRONTIER_MONS_BUG_MANIAC_3 }; const u16 gBattleFrontierTrainerMons_Ramiro[] = { - 316, - 333, - 347, - 350, - 354, - 358, - 361, - 362, - 363, - 364, - 573, - 576, - 621, - 626, - 631, - -1 + FRONTIER_MONS_FISHERMAN_2 }; const u16 gBattleFrontierTrainerMons_Hunter[] = { - 316, - 333, - 347, - 350, - 354, - 358, - 361, - 362, - 363, - 364, - 573, - 576, - 621, - 626, - 631, - -1 + FRONTIER_MONS_FISHERMAN_2 }; const u16 gBattleFrontierTrainerMons_Aiden[] = { - 564, - 575, - 576, - 578, - 579, - 580, - 594, - 595, - 605, - 606, - 608, - 609, - 615, - 619, - 620, - 624, - 625, - 627, - 632, - 642, - 650, - 658, - -1 + FRONTIER_MONS_RUIN_MANIAC_3 }; const u16 gBattleFrontierTrainerMons_Xavier[] = { - 564, - 575, - 576, - 578, - 579, - 580, - 594, - 595, - 605, - 606, - 608, - 609, - 615, - 619, - 620, - 624, - 625, - 627, - 632, - 642, - 650, - 658, - -1 + FRONTIER_MONS_RUIN_MANIAC_3 }; const u16 gBattleFrontierTrainerMons_Clinton[] = { - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - -1 + FRONTIER_MONS_COLLECTOR_2 }; const u16 gBattleFrontierTrainerMons_Jesse[] = { - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - -1 + FRONTIER_MONS_COLLECTOR_2 }; const u16 gBattleFrontierTrainerMons_Eduardo[] = { - 268, - 307, - 317, - 349, - 352, - 573, - 583, - 585, - 588, - 590, - 599, - 614, - 618, - 635, - 639, - -1 + FRONTIER_MONS_GUITARIST_2 }; const u16 gBattleFrontierTrainerMons_Hal[] = { - 268, - 307, - 317, - 349, - 352, - 573, - 583, - 585, - 588, - 590, - 599, - 614, - 618, - 635, - 639, - -1 + FRONTIER_MONS_GUITARIST_2 }; const u16 gBattleFrontierTrainerMons_Gage[] = { - 289, - 318, - 319, - 329, - 355, - 375, - 379, - 385, - 386, - 457, - 473, - 477, - 482, - 484, - 553, - 567, - 571, - 577, - 578, - 649, - -1 + FRONTIER_MONS_BIRD_KEEPER_2 }; const u16 gBattleFrontierTrainerMons_Arnold[] = { - 289, - 318, - 319, - 329, - 355, - 375, - 379, - 385, - 386, - 457, - 473, - 477, - 482, - 484, - 553, - 567, - 571, - 577, - 578, - 649, - -1 + FRONTIER_MONS_BIRD_KEEPER_2 }; const u16 gBattleFrontierTrainerMons_Jarrett[] = { - 565, - 573, - 576, - 580, - 582, - 584, - 592, - 601, - 602, - 610, - 621, - 623, - 626, - 631, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - -1 + FRONTIER_MONS_SAILOR_2 }; const u16 gBattleFrontierTrainerMons_Garett[] = { - 565, - 573, - 576, - 580, - 582, - 584, - 592, - 601, - 602, - 610, - 621, - 623, - 626, - 631, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - -1 + FRONTIER_MONS_SAILOR_2 }; const u16 gBattleFrontierTrainerMons_Emanuel[] = { - 564, - 565, - 574, - 579, - 582, - 594, - 595, - 605, - 606, - 608, - 609, - 616, - 619, - 620, - 623, - 624, - 625, - 627, - 642, - 643, - -1 + FRONTIER_MONS_HIKER_2 }; const u16 gBattleFrontierTrainerMons_Gustavo[] = { - 564, - 565, - 574, - 579, - 582, - 594, - 595, - 605, - 606, - 608, - 609, - 616, - 619, - 620, - 623, - 624, - 625, - 627, - 642, - 643, - -1 + FRONTIER_MONS_HIKER_2 }; const u16 gBattleFrontierTrainerMons_Kameron[] = { - 568, - 581, - 589, - 598, - 600, - 603, - 607, - 611, - 617, - 618, - 622, - 636, - 643, - 646, - 647, - 652, - 654, - 656, - 659, - -1 + FRONTIER_MONS_KINDLER_2 }; const u16 gBattleFrontierTrainerMons_Alfredo[] = { - 568, - 581, - 589, - 598, - 600, - 603, - 607, - 611, - 617, - 618, - 622, - 636, - 643, - 646, - 647, - 652, - 654, - 656, - 659, - -1 + FRONTIER_MONS_KINDLER_2 }; const u16 gBattleFrontierTrainerMons_Ruben[] = { - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - -1 + FRONTIER_MONS_GENTLEMAN_2 }; const u16 gBattleFrontierTrainerMons_Lamar[] = { - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - -1 + FRONTIER_MONS_GENTLEMAN_2 }; const u16 gBattleFrontierTrainerMons_Jaxon[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_3 }; const u16 gBattleFrontierTrainerMons_Logan[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_3 }; const u16 gBattleFrontierTrainerMons_Emilee[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_3 }; const u16 gBattleFrontierTrainerMons_Josie[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - -1 + FRONTIER_MONS_YOUNGSTER_LASS_3 }; const u16 gBattleFrontierTrainerMons_Armando[] = { - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_2 }; const u16 gBattleFrontierTrainerMons_Skyler[] = { - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_2 }; const u16 gBattleFrontierTrainerMons_Ruth[] = { - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_2 }; const u16 gBattleFrontierTrainerMons_Melody[] = { - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - -1 + FRONTIER_MONS_CAMPER_PICNICKER_2 }; const u16 gBattleFrontierTrainerMons_Pedro[] = { - 347, - 661, - 664, - 669, - 672, - 676, - 677, - 678, - 680, - 685, - 688, - 694, - 696, - 697, - 698, - 699, - 706, - 713, - 717, - 719, - 722, - 724, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 748, - 749, - 750, - 751, - 755, - -1 + FRONTIER_MONS_SWIMMER_M_2 }; const u16 gBattleFrontierTrainerMons_Erick[] = { - 347, - 661, - 664, - 669, - 672, - 676, - 677, - 678, - 680, - 685, - 688, - 694, - 696, - 697, - 698, - 699, - 706, - 713, - 717, - 719, - 722, - 724, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 748, - 749, - 750, - 751, - 755, - -1 + FRONTIER_MONS_SWIMMER_M_2 }; const u16 gBattleFrontierTrainerMons_Elaine[] = { - 664, - 665, - 669, - 672, - 676, - 677, - 680, - 685, - 687, - 688, - 694, - 696, - 697, - 698, - 699, - 706, - 713, - 717, - 722, - 724, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 748, - 749, - 750, - 751, - 755, - -1 + FRONTIER_MONS_SWIMMER_F_2 }; const u16 gBattleFrontierTrainerMons_Joyce[] = { - 664, - 665, - 669, - 672, - 676, - 677, - 680, - 685, - 687, - 688, - 694, - 696, - 697, - 698, - 699, - 706, - 713, - 717, - 722, - 724, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 748, - 749, - 750, - 751, - 755, - -1 + FRONTIER_MONS_SWIMMER_F_2 }; const u16 gBattleFrontierTrainerMons_Todd[] = { - 267, - 273, - 305, - 312, - 325, - 332, - 352, - 662, - 665, - 668, - 669, - 670, - 672, - 673, - 676, - 677, - 679, - 680, - 682, - 688, - 697, - 698, - 699, - 700, - 707, - 710, - 718, - 720, - 724, - 725, - 728, - 730, - 731, - 732, - 734, - 735, - 744, - 748, - 750, - 751, - -1 + FRONTIER_MONS_POKEFAN_3 }; const u16 gBattleFrontierTrainerMons_Gavin[] = { - 267, - 273, - 305, - 312, - 325, - 332, - 352, - 662, - 665, - 668, - 669, - 670, - 672, - 673, - 676, - 677, - 679, - 680, - 682, - 688, - 697, - 698, - 699, - 700, - 707, - 710, - 718, - 720, - 724, - 725, - 728, - 730, - 731, - 732, - 734, - 735, - 744, - 748, - 750, - 751, - -1 + FRONTIER_MONS_POKEFAN_3 }; const u16 gBattleFrontierTrainerMons_Malory[] = { - 267, - 273, - 305, - 312, - 325, - 332, - 352, - 662, - 665, - 668, - 669, - 670, - 672, - 673, - 676, - 677, - 679, - 680, - 682, - 688, - 697, - 698, - 699, - 700, - 707, - 710, - 718, - 720, - 724, - 725, - 728, - 730, - 731, - 732, - 734, - 735, - 744, - 748, - 750, - 751, - -1 + FRONTIER_MONS_POKEFAN_3 }; const u16 gBattleFrontierTrainerMons_Esther[] = { - 267, - 273, - 305, - 312, - 325, - 332, - 352, - 662, - 665, - 668, - 669, - 670, - 672, - 673, - 676, - 677, - 679, - 680, - 682, - 688, - 697, - 698, - 699, - 700, - 707, - 710, - 718, - 720, - 724, - 725, - 728, - 730, - 731, - 732, - 734, - 735, - 744, - 748, - 750, - 751, - -1 + FRONTIER_MONS_POKEFAN_3 }; const u16 gBattleFrontierTrainerMons_Oscar[] = { - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_PKMN_BREEDER_2 }; const u16 gBattleFrontierTrainerMons_Wilson[] = { - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_PKMN_BREEDER_2 }; const u16 gBattleFrontierTrainerMons_Clare[] = { - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_PKMN_BREEDER_2 }; const u16 gBattleFrontierTrainerMons_Tess[] = { - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_PKMN_BREEDER_2 }; const u16 gBattleFrontierTrainerMons_Leon[] = { - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - -1 + FRONTIER_MONS_COOLTRAINER_M_2A }; const u16 gBattleFrontierTrainerMons_Alonzo[] = { - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_COOLTRAINER_M_2B }; const u16 gBattleFrontierTrainerMons_Vince[] = { - 421, - 425, - 431, - 437, - 439, - 456, - 460, - 465, - 466, - 517, - 521, - 527, - 533, - 535, - 552, - 556, - 561, - 562, - 613, - 617, - 623, - 629, - 631, - 648, - 652, - 657, - 658, - 709, - 713, - 719, - 725, - 727, - 744, - 748, - 753, - 754, - 766, - 777, - 788, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_COOLTRAINER_2C(LATIOS) }; const u16 gBattleFrontierTrainerMons_Bryon[] = { - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 799, - 836, - 837, - 838, - 839, - 840, - 841, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_COOLTRAINER_2D(LATIOS) }; const u16 gBattleFrontierTrainerMons_Ava[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - -1 + FRONTIER_MONS_COOLTRAINER_F_2A }; const u16 gBattleFrontierTrainerMons_Miriam[] = { - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - -1 + FRONTIER_MONS_COOLTRAINER_F_2B }; const u16 gBattleFrontierTrainerMons_Carrie[] = { - 421, - 425, - 431, - 437, - 439, - 456, - 460, - 465, - 466, - 517, - 521, - 527, - 533, - 535, - 552, - 556, - 561, - 562, - 613, - 617, - 623, - 629, - 631, - 648, - 652, - 657, - 658, - 709, - 713, - 719, - 725, - 727, - 744, - 748, - 753, - 754, - 765, - 776, - 787, - 798, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 842, - 843, - 844, - 845, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_COOLTRAINER_2C(LATIAS) }; const u16 gBattleFrontierTrainerMons_Gillian2[] = { - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_COOLTRAINER_2D(LATIAS) }; const u16 gBattleFrontierTrainerMons_Tyler[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_GENERAL_A }; const u16 gBattleFrontierTrainerMons_Chaz[] = { - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - -1 + FRONTIER_MONS_GENERAL_B }; const u16 gBattleFrontierTrainerMons_Nelson[] = { - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 799, - 836, - 837, - 838, - 839, - 840, - 841, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_COOLTRAINER_2D(LATIOS) }; const u16 gBattleFrontierTrainerMons_Shania[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_GENERAL_C }; const u16 gBattleFrontierTrainerMons_Stella[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_GENERAL_D }; const u16 gBattleFrontierTrainerMons_Dorine[] = { - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_COOLTRAINER_2D(LATIAS) }; const u16 gBattleFrontierTrainerMons_Maddox[] = { - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 454, - 456, - 459, - 461, - 463, - 465, - 499, - 508, - 509, - 510, - 529, - 531, - 536, - 546, - 550, - 552, - 555, - 557, - 559, - 561, - 595, - 604, - 605, - 606, - 625, - 627, - 632, - 642, - 646, - 648, - 651, - 653, - 655, - 657, - 691, - 700, - 701, - 702, - 721, - 723, - 728, - 738, - 742, - 744, - 747, - 749, - 751, - 753, - 765, - 766, - 776, - 777, - 787, - 788, - 798, - 799, - 828, - 829, - 830, - 831, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_DRAGON_TAMER_2 }; const u16 gBattleFrontierTrainerMons_Davin[] = { - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 454, - 456, - 459, - 461, - 463, - 465, - 499, - 508, - 509, - 510, - 529, - 531, - 536, - 546, - 550, - 552, - 555, - 557, - 559, - 561, - 595, - 604, - 605, - 606, - 625, - 627, - 632, - 642, - 646, - 648, - 651, - 653, - 655, - 657, - 691, - 700, - 701, - 702, - 721, - 723, - 728, - 738, - 742, - 744, - 747, - 749, - 751, - 753, - 765, - 766, - 776, - 777, - 787, - 788, - 798, - 799, - 828, - 829, - 830, - 831, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_DRAGON_TAMER_2 }; const u16 gBattleFrontierTrainerMons_Trevon[] = { - 403, - 412, - 413, - 414, - 433, - 435, - 440, - 450, - 454, - 456, - 459, - 461, - 463, - 465, - 499, - 508, - 509, - 510, - 529, - 531, - 536, - 546, - 550, - 552, - 555, - 557, - 559, - 561, - 595, - 604, - 605, - 606, - 625, - 627, - 632, - 642, - 646, - 648, - 651, - 653, - 655, - 657, - 691, - 700, - 701, - 702, - 721, - 723, - 728, - 738, - 742, - 744, - 747, - 749, - 751, - 753, - 765, - 766, - 776, - 777, - 787, - 788, - 798, - 799, - 828, - 829, - 830, - 831, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_DRAGON_TAMER_2 }; const u16 gBattleFrontierTrainerMons_Mateo[] = { - 373, - 382, - 390, - 402, - 403, - 416, - 417, - 424, - 431, - 432, - 435, - 450, - 451, - 469, - 480, - 486, - 498, - 499, - 512, - 513, - 520, - 527, - 528, - 531, - 546, - 547, - 565, - 574, - 582, - 594, - 595, - 608, - 609, - 616, - 623, - 624, - 627, - 642, - 643, - 661, - 670, - 678, - 690, - 691, - 704, - 705, - 712, - 719, - 720, - 723, - 738, - 739, - 808, - 809, - 810, - 811, - -1 + FRONTIER_MONS_BLACK_BELT_2A }; const u16 gBattleFrontierTrainerMons_Bret[] = { - 373, - 382, - 390, - 415, - 419, - 424, - 426, - 430, - 431, - 444, - 451, - 454, - 455, - 464, - 469, - 480, - 486, - 511, - 515, - 520, - 522, - 526, - 527, - 540, - 547, - 550, - 551, - 560, - 565, - 574, - 582, - 607, - 611, - 616, - 618, - 622, - 623, - 636, - 643, - 646, - 647, - 656, - 661, - 670, - 678, - 703, - 707, - 712, - 714, - 718, - 719, - 732, - 739, - 742, - 743, - 752, - 808, - 809, - 810, - 811, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B }; const u16 gBattleFrontierTrainerMons_Raul[] = { - 373, - 382, - 383, - 386, - 390, - 423, - 424, - 431, - 433, - 450, - 451, - 466, - 469, - 480, - 481, - 482, - 486, - 519, - 520, - 527, - 529, - 546, - 547, - 562, - 565, - 574, - 575, - 578, - 582, - 615, - 616, - 623, - 625, - 642, - 643, - 658, - 661, - 670, - 671, - 674, - 678, - 711, - 712, - 719, - 721, - 738, - 739, - 754, - 808, - 809, - 810, - 811, - 832, - 833, - 834, - 835, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C }; const u16 gBattleFrontierTrainerMons_Kay[] = { - 373, - 382, - 387, - 390, - 402, - 403, - 413, - 414, - 424, - 427, - 431, - 433, - 451, - 469, - 470, - 480, - 486, - 498, - 499, - 509, - 510, - 520, - 523, - 527, - 529, - 547, - 565, - 574, - 579, - 582, - 594, - 595, - 605, - 606, - 616, - 619, - 623, - 625, - 643, - 661, - 670, - 675, - 678, - 690, - 691, - 701, - 702, - 712, - 715, - 719, - 721, - 739, - 808, - 809, - 810, - 811, - -1 + FRONTIER_MONS_BATTLE_GIRL_2A }; const u16 gBattleFrontierTrainerMons_Elena[] = { - 373, - 382, - 390, - 415, - 419, - 424, - 426, - 430, - 431, - 444, - 451, - 454, - 455, - 464, - 469, - 480, - 486, - 511, - 515, - 520, - 522, - 526, - 527, - 540, - 547, - 550, - 551, - 560, - 565, - 574, - 582, - 607, - 611, - 616, - 618, - 622, - 623, - 636, - 643, - 646, - 647, - 656, - 661, - 670, - 678, - 703, - 707, - 712, - 714, - 718, - 719, - 732, - 739, - 742, - 743, - 752, - 808, - 809, - 810, - 811, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2B }; const u16 gBattleFrontierTrainerMons_Alana[] = { - 373, - 382, - 383, - 386, - 390, - 423, - 424, - 431, - 433, - 450, - 451, - 466, - 469, - 480, - 481, - 482, - 486, - 519, - 520, - 527, - 529, - 546, - 547, - 562, - 565, - 574, - 575, - 578, - 582, - 615, - 616, - 623, - 625, - 642, - 643, - 658, - 661, - 670, - 671, - 674, - 678, - 711, - 712, - 719, - 721, - 738, - 739, - 754, - 808, - 809, - 810, - 811, - 832, - 833, - 834, - 835, - -1 + FRONTIER_MONS_BLACK_BELT_BATTLE_GIRL_2C }; const u16 gBattleFrontierTrainerMons_Alexas[] = { - 382, - 387, - 403, - 423, - 424, - 425, - 431, - 433, - 435, - 450, - 459, - 461, - 465, - 466, - 470, - 480, - 499, - 519, - 520, - 521, - 527, - 529, - 531, - 546, - 555, - 557, - 561, - 562, - 574, - 579, - 595, - 615, - 616, - 617, - 623, - 625, - 627, - 642, - 651, - 653, - 657, - 658, - 670, - 675, - 691, - 711, - 712, - 713, - 719, - 721, - 723, - 738, - 747, - 749, - 753, - 754, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_EXPERT_2A(TYRANITAR) }; const u16 gBattleFrontierTrainerMons_Weston[] = { - 374, - 377, - 404, - 421, - 422, - 426, - 437, - 439, - 446, - 451, - 453, - 457, - 458, - 472, - 475, - 500, - 517, - 518, - 522, - 533, - 535, - 542, - 547, - 549, - 553, - 554, - 566, - 569, - 596, - 613, - 614, - 618, - 629, - 631, - 638, - 643, - 645, - 649, - 650, - 662, - 665, - 692, - 709, - 710, - 714, - 725, - 727, - 734, - 739, - 741, - 745, - 746, - 762, - 763, - 764, - 766, - 773, - 774, - 775, - 777, - 784, - 785, - 786, - 788, - 795, - 796, - 797, - 799, - 800, - 801, - 802, - 803, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 836, - 837, - 838, - 839, - 840, - 841, - 846, - 847, - 848, - 849, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_EXPERT_2B(LATIOS) }; const u16 gBattleFrontierTrainerMons_Jasper[] = { - 378, - 388, - 400, - 409, - 410, - 411, - 416, - 429, - 432, - 438, - 447, - 452, - 456, - 460, - 462, - 463, - 471, - 476, - 496, - 505, - 506, - 507, - 512, - 525, - 528, - 534, - 543, - 548, - 552, - 556, - 558, - 559, - 570, - 580, - 592, - 601, - 602, - 603, - 608, - 621, - 624, - 630, - 639, - 644, - 648, - 652, - 654, - 655, - 666, - 676, - 688, - 697, - 698, - 699, - 704, - 717, - 720, - 726, - 735, - 740, - 744, - 748, - 750, - 751, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 836, - 837, - 838, - 839, - 840, - 841, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_EXPERT_2C(TYRANITAR) }; const u16 gBattleFrontierTrainerMons_Nadia[] = { - 382, - 387, - 403, - 423, - 424, - 425, - 431, - 433, - 435, - 450, - 459, - 461, - 465, - 466, - 470, - 480, - 499, - 519, - 520, - 521, - 527, - 529, - 531, - 546, - 555, - 557, - 561, - 562, - 574, - 579, - 595, - 615, - 616, - 617, - 623, - 625, - 627, - 642, - 651, - 653, - 657, - 658, - 670, - 675, - 691, - 711, - 712, - 713, - 719, - 721, - 723, - 738, - 747, - 749, - 753, - 754, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - -1 + FRONTIER_MONS_EXPERT_2A(DRAGONITE) }; const u16 gBattleFrontierTrainerMons_Miranda[] = { - 374, - 377, - 404, - 421, - 422, - 426, - 437, - 439, - 446, - 451, - 453, - 457, - 458, - 472, - 475, - 500, - 517, - 518, - 522, - 533, - 535, - 542, - 547, - 549, - 553, - 554, - 566, - 569, - 596, - 613, - 614, - 618, - 629, - 631, - 638, - 643, - 645, - 649, - 650, - 662, - 665, - 692, - 709, - 710, - 714, - 725, - 727, - 734, - 739, - 741, - 745, - 746, - 762, - 763, - 764, - 765, - 773, - 774, - 775, - 776, - 784, - 785, - 786, - 787, - 795, - 796, - 797, - 798, - 800, - 801, - 802, - 803, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_EXPERT_2B(LATIAS) }; const u16 gBattleFrontierTrainerMons_Emma[] = { - 378, - 388, - 400, - 409, - 410, - 411, - 416, - 429, - 432, - 438, - 447, - 452, - 456, - 460, - 462, - 463, - 471, - 476, - 496, - 505, - 506, - 507, - 512, - 525, - 528, - 534, - 543, - 548, - 552, - 556, - 558, - 559, - 570, - 580, - 592, - 601, - 602, - 603, - 608, - 621, - 624, - 630, - 639, - 644, - 648, - 652, - 654, - 655, - 666, - 676, - 688, - 697, - 698, - 699, - 704, - 717, - 720, - 726, - 735, - 740, - 744, - 748, - 750, - 751, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 836, - 837, - 838, - 839, - 840, - 841, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - -1 + FRONTIER_MONS_EXPERT_2C(DRAGONITE) }; const u16 gBattleFrontierTrainerMons_Rolando[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 756, - 757, - 758, - 766, - 767, - 768, - 769, - 777, - 778, - 779, - 780, - 788, - 789, - 790, - 791, - 799, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 846, - 847, - 848, - 849, - 870, - 871, - 872, - 873, - 874, - 875, - -1 + FRONTIER_MONS_PSYCHIC_2A(LATIOS) }; const u16 gBattleFrontierTrainerMons_Stanly[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 759, - 760, - 761, - 766, - 770, - 771, - 772, - 777, - 781, - 782, - 783, - 788, - 792, - 793, - 794, - 799, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 846, - 847, - 848, - 849, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_PSYCHIC_2B(LATIOS) }; const u16 gBattleFrontierTrainerMons_Dario[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 762, - 763, - 764, - 766, - 773, - 774, - 775, - 777, - 784, - 785, - 786, - 788, - 795, - 796, - 797, - 799, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 846, - 847, - 848, - 849, - -1 + FRONTIER_MONS_PSYCHIC_2C(LATIOS) }; const u16 gBattleFrontierTrainerMons_Karlee[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 756, - 757, - 758, - 765, - 767, - 768, - 769, - 776, - 778, - 779, - 780, - 787, - 789, - 790, - 791, - 798, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 842, - 843, - 844, - 845, - 870, - 871, - 872, - 873, - 874, - 875, - -1 + FRONTIER_MONS_PSYCHIC_2A(LATIAS) }; const u16 gBattleFrontierTrainerMons_Jaylin[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 759, - 760, - 761, - 765, - 770, - 771, - 772, - 776, - 781, - 782, - 783, - 787, - 792, - 793, - 794, - 798, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 842, - 843, - 844, - 845, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_PSYCHIC_2B(LATIAS) }; const u16 gBattleFrontierTrainerMons_Ingrid[] = { - 185, - 290, - 377, - 380, - 385, - 401, - 404, - 409, - 410, - 428, - 437, - 438, - 439, - 446, - 466, - 475, - 478, - 484, - 497, - 500, - 505, - 506, - 524, - 533, - 534, - 535, - 542, - 562, - 569, - 572, - 577, - 593, - 596, - 601, - 602, - 620, - 629, - 630, - 631, - 638, - 658, - 665, - 668, - 673, - 689, - 692, - 697, - 698, - 716, - 725, - 726, - 727, - 734, - 754, - 762, - 763, - 764, - 765, - 773, - 774, - 775, - 776, - 784, - 785, - 786, - 787, - 795, - 796, - 797, - 798, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - -1 + FRONTIER_MONS_PSYCHIC_2C(LATIAS) }; const u16 gBattleFrontierTrainerMons_Delilah[] = { - 347, - 352, - 374, - 378, - 398, - 421, - 426, - 447, - 472, - 476, - 494, - 517, - 522, - 543, - 566, - 570, - 590, - 613, - 618, - 639, - 662, - 666, - 686, - 709, - 714, - 735, - 800, - 801, - 802, - 803, - -1 + FRONTIER_MONS_HEX_MANIAC_2A }; const u16 gBattleFrontierTrainerMons_Carly[] = { - 344, - 374, - 378, - 394, - 395, - 405, - 413, - 414, - 420, - 421, - 434, - 441, - 457, - 472, - 476, - 490, - 491, - 501, - 509, - 510, - 516, - 517, - 530, - 537, - 553, - 566, - 570, - 586, - 587, - 597, - 605, - 606, - 612, - 613, - 626, - 633, - 649, - 662, - 666, - 682, - 683, - 693, - 701, - 702, - 708, - 709, - 722, - 729, - 745, - 800, - 801, - 802, - 803, - -1 + FRONTIER_MONS_HEX_MANIAC_2B }; const u16 gBattleFrontierTrainerMons_Lexie[] = { - 344, - 347, - 352, - 394, - 395, - 398, - 405, - 413, - 414, - 420, - 421, - 426, - 434, - 441, - 447, - 457, - 490, - 491, - 494, - 501, - 509, - 510, - 516, - 517, - 522, - 530, - 537, - 543, - 553, - 586, - 587, - 590, - 597, - 605, - 606, - 612, - 613, - 618, - 626, - 633, - 639, - 649, - 682, - 683, - 686, - 693, - 701, - 702, - 708, - 709, - 714, - 722, - 729, - 735, - 745, - 800, - 801, - 802, - 803, - -1 + FRONTIER_MONS_HEX_MANIAC_2C }; const u16 gBattleFrontierTrainerMons_Miller[] = { - 345, - 376, - 386, - 387, - 397, - 399, - 402, - 403, - 406, - 408, - 411, - 413, - 414, - 425, - 427, - 429, - 433, - 435, - 440, - 441, - 445, - 448, - 449, - 450, - 452, - 454, - 456, - 458, - 459, - 460, - 462, - 465, - 466, - 467, - 470, - 474, - 482, - 493, - 495, - 498, - 499, - 502, - 504, - 507, - 509, - 510, - 521, - 523, - 525, - 529, - 531, - 536, - 537, - 541, - 544, - 545, - 546, - 548, - 550, - 552, - 554, - 555, - 556, - 558, - 561, - 562, - 563, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_POKEMANIAC_2A }; const u16 gBattleFrontierTrainerMons_Marv[] = { - 345, - 568, - 578, - 579, - 589, - 591, - 594, - 595, - 598, - 600, - 603, - 605, - 606, - 617, - 619, - 621, - 625, - 627, - 632, - 633, - 637, - 640, - 641, - 642, - 644, - 646, - 648, - 650, - 651, - 652, - 654, - 657, - 658, - 659, - 664, - 674, - 675, - 685, - 687, - 690, - 691, - 694, - 696, - 699, - 701, - 702, - 713, - 715, - 717, - 721, - 723, - 728, - 729, - 733, - 736, - 737, - 738, - 740, - 742, - 744, - 746, - 747, - 748, - 750, - 753, - 754, - 755, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_POKEMANIAC_2B }; const u16 gBattleFrontierTrainerMons_Layton[] = { - 345, - 425, - 433, - 435, - 445, - 450, - 454, - 456, - 458, - 459, - 460, - 465, - 466, - 521, - 529, - 531, - 541, - 546, - 550, - 552, - 554, - 555, - 556, - 561, - 562, - 617, - 625, - 627, - 637, - 642, - 646, - 648, - 650, - 651, - 652, - 657, - 658, - 713, - 721, - 723, - 733, - 738, - 742, - 744, - 746, - 747, - 748, - 753, - 754, - 804, - 805, - 806, - 807, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_POKEMANIAC_2C }; const u16 gBattleFrontierTrainerMons_Brooks[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_GENERAL_A }; const u16 gBattleFrontierTrainerMons_Gregory[] = { - 421, - 425, - 431, - 437, - 439, - 456, - 460, - 465, - 466, - 517, - 521, - 527, - 533, - 535, - 552, - 556, - 561, - 562, - 613, - 617, - 623, - 629, - 631, - 648, - 652, - 657, - 658, - 709, - 713, - 719, - 725, - 727, - 744, - 748, - 753, - 754, - 765, - 766, - 776, - 777, - 787, - 788, - 798, - 799, - 800, - 801, - 802, - 803, - 804, - 805, - 806, - 807, - 808, - 809, - 810, - 811, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_GENTLEMAN_3A }; const u16 gBattleFrontierTrainerMons_Reese[] = { - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769, - 770, - 771, - 772, - 773, - 774, - 775, - 776, - 777, - 778, - 779, - 780, - 781, - 782, - 783, - 784, - 785, - 786, - 787, - 788, - 789, - 790, - 791, - 792, - 793, - 794, - 795, - 796, - 797, - 798, - 799, - 836, - 837, - 838, - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847, - 848, - 849, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - 870, - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879, - 880, - 881, - -1 + FRONTIER_MONS_GENTLEMAN_3B }; const u16 gBattleFrontierTrainerMons_Mason[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_GENERAL_A }; const u16 gBattleFrontierTrainerMons_Toby[] = { - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - -1 + FRONTIER_MONS_GENERAL_B }; const u16 gBattleFrontierTrainerMons_Dorothy[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_GENERAL_C }; const u16 gBattleFrontierTrainerMons_Piper[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_GENERAL_D }; const u16 gBattleFrontierTrainerMons_Finn[] = { - 317, - 371, - 373, - 377, - 390, - 392, - 399, - 431, - 452, - 456, - 469, - 475, - 486, - 488, - 495, - 527, - 548, - 552, - 565, - 569, - 573, - 576, - 580, - 582, - 584, - 591, - 592, - 601, - 602, - 610, - 621, - 623, - 626, - 631, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - 661, - 665, - 669, - 672, - 676, - 678, - 680, - 687, - 688, - 697, - 698, - 706, - 717, - 719, - 722, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 749, - 751, - 808, - 809, - 810, - 811, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3 }; const u16 gBattleFrontierTrainerMons_Samir[] = { - 317, - 371, - 373, - 377, - 390, - 392, - 399, - 431, - 452, - 456, - 469, - 475, - 486, - 488, - 495, - 527, - 548, - 552, - 565, - 569, - 573, - 576, - 580, - 582, - 584, - 591, - 592, - 601, - 602, - 610, - 621, - 623, - 626, - 631, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - 661, - 665, - 669, - 672, - 676, - 678, - 680, - 687, - 688, - 697, - 698, - 706, - 717, - 719, - 722, - 727, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 749, - 751, - 808, - 809, - 810, - 811, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_M_3 }; const u16 gBattleFrontierTrainerMons_Fiona[] = { - 317, - 371, - 373, - 377, - 381, - 384, - 388, - 390, - 392, - 399, - 400, - 409, - 410, - 418, - 429, - 431, - 434, - 439, - 442, - 448, - 449, - 452, - 456, - 458, - 459, - 461, - 463, - 469, - 471, - 475, - 479, - 483, - 486, - 488, - 495, - 496, - 505, - 506, - 514, - 525, - 527, - 530, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 557, - 559, - 565, - 569, - 582, - 584, - 591, - 623, - 644, - 648, - 661, - 665, - 678, - 680, - 687, - 719, - 740, - 744, - 808, - 809, - 810, - 811, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3 }; const u16 gBattleFrontierTrainerMons_Gloria[] = { - 317, - 371, - 373, - 377, - 381, - 384, - 388, - 390, - 392, - 399, - 400, - 409, - 410, - 418, - 429, - 431, - 434, - 439, - 442, - 448, - 449, - 452, - 456, - 458, - 459, - 461, - 463, - 469, - 471, - 475, - 479, - 483, - 486, - 488, - 495, - 496, - 505, - 506, - 514, - 525, - 527, - 530, - 535, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 557, - 559, - 565, - 569, - 582, - 584, - 591, - 623, - 644, - 648, - 661, - 665, - 678, - 680, - 687, - 719, - 740, - 744, - 808, - 809, - 810, - 811, - 816, - 817, - 818, - 819, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SWIMMING_TRIATHLETE_F_3 }; const u16 gBattleFrontierTrainerMons_Nico[] = { - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684, - 685, - 686, - 687, - 688, - 689, - 690, - 691, - 692, - 693, - 694, - 695, - 696, - 697, - 698, - 699, - 700, - 701, - 702, - 703, - 704, - 705, - 706, - 707, - 708, - 709, - 710, - 711, - 712, - 713, - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - -1 + FRONTIER_MONS_GENERAL_A }; const u16 gBattleFrontierTrainerMons_Jeremy[] = { - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - -1 + FRONTIER_MONS_GENERAL_B }; const u16 gBattleFrontierTrainerMons_Caitlin[] = { - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - -1 + FRONTIER_MONS_GENERAL_C }; const u16 gBattleFrontierTrainerMons_Reena[] = { - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - -1 + FRONTIER_MONS_GENERAL_D }; const u16 gBattleFrontierTrainerMons_Avery[] = { - 21, - 238, - 282, - 303, - 331, - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 481, - 513, - 519, - 520, - 528, - 575, - 609, - 615, - 616, - 624, - 671, - 705, - 711, - 712, - 720, - -1 + FRONTIER_MONS_BUG_MANIAC_4 }; const u16 gBattleFrontierTrainerMons_Liam[] = { - 21, - 238, - 282, - 303, - 331, - 343, - 368, - 369, - 383, - 417, - 423, - 424, - 432, - 481, - 513, - 519, - 520, - 528, - 575, - 609, - 615, - 616, - 624, - 671, - 705, - 711, - 712, - 720, - -1 + FRONTIER_MONS_BUG_MANIAC_4 }; const u16 gBattleFrontierTrainerMons_Theo[] = { - 333, - 347, - 350, - 354, - 358, - 361, - 362, - 363, - 364, - 371, - 381, - 384, - 429, - 434, - 439, - 479, - 483, - 525, - 530, - 535, - 573, - 576, - 621, - 626, - 631, - 669, - 672, - 717, - 722, - 727, - 816, - 817, - 818, - 819, - -1 + FRONTIER_MONS_FISHERMAN_3 }; const u16 gBattleFrontierTrainerMons_Bailey[] = { - 333, - 347, - 350, - 354, - 358, - 361, - 362, - 363, - 364, - 371, - 381, - 384, - 429, - 434, - 439, - 479, - 483, - 525, - 530, - 535, - 573, - 576, - 621, - 626, - 631, - 669, - 672, - 717, - 722, - 727, - 816, - 817, - 818, - 819, - -1 + FRONTIER_MONS_FISHERMAN_3 }; const u16 gBattleFrontierTrainerMons_Hugo[] = { - 383, - 386, - 402, - 403, - 416, - 417, - 423, - 432, - 433, - 435, - 450, - 466, - 481, - 482, - 498, - 499, - 512, - 513, - 519, - 528, - 529, - 531, - 546, - 562, - 575, - 578, - 594, - 595, - 608, - 609, - 615, - 624, - 625, - 627, - 642, - 658, - 671, - 674, - 690, - 691, - 704, - 705, - 711, - 720, - 721, - 723, - 738, - 754, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - -1 + FRONTIER_MONS_RUIN_MANIAC_4 }; const u16 gBattleFrontierTrainerMons_Bryce[] = { - 383, - 386, - 402, - 403, - 416, - 417, - 423, - 432, - 433, - 435, - 450, - 466, - 481, - 482, - 498, - 499, - 512, - 513, - 519, - 528, - 529, - 531, - 546, - 562, - 575, - 578, - 594, - 595, - 608, - 609, - 615, - 624, - 625, - 627, - 642, - 658, - 671, - 674, - 690, - 691, - 704, - 705, - 711, - 720, - 721, - 723, - 738, - 754, - 762, - 763, - 764, - 773, - 774, - 775, - 784, - 785, - 786, - 795, - 796, - 797, - 832, - 833, - 834, - 835, - 836, - 837, - 838, - 839, - 840, - 841, - -1 + FRONTIER_MONS_RUIN_MANIAC_4 }; const u16 gBattleFrontierTrainerMons_Gideon[] = { - 441, - 445, - 448, - 449, - 451, - 453, - 454, - 455, - 458, - 537, - 541, - 544, - 545, - 547, - 549, - 550, - 551, - 554, - 633, - 637, - 640, - 641, - 643, - 645, - 646, - 647, - 650, - 729, - 733, - 736, - 737, - 739, - 741, - 742, - 743, - 746, - -1 + FRONTIER_MONS_COLLECTOR_3 }; const u16 gBattleFrontierTrainerMons_Triston[] = { - 441, - 445, - 448, - 449, - 451, - 453, - 454, - 455, - 458, - 537, - 541, - 544, - 545, - 547, - 549, - 550, - 551, - 554, - 633, - 637, - 640, - 641, - 643, - 645, - 646, - 647, - 650, - 729, - 733, - 736, - 737, - 739, - 741, - 742, - 743, - 746, - -1 + FRONTIER_MONS_COLLECTOR_3 }; const u16 gBattleFrontierTrainerMons_Charles[] = { - 352, - 381, - 391, - 393, - 396, - 398, - 407, - 422, - 426, - 443, - 447, - 479, - 487, - 489, - 492, - 494, - 503, - 518, - 522, - 539, - 543, - 573, - 583, - 585, - 588, - 590, - 599, - 614, - 618, - 635, - 639, - 669, - 679, - 681, - 684, - 686, - 695, - 710, - 714, - 731, - 735, - 756, - 757, - 758, - 767, - 768, - 769, - 778, - 779, - 780, - 789, - 790, - 791, - 870, - 871, - 872, - 873, - 874, - 875, - -1 + FRONTIER_MONS_GUITARIST_3A }; const u16 gBattleFrontierTrainerMons_Raymond[] = { - 374, - 376, - 381, - 404, - 407, - 422, - 439, - 443, - 459, - 472, - 500, - 506, - 507, - 518, - 532, - 546, - 566, - 585, - 588, - 628, - 635, - 679, - 681, - 684, - 710, - 731, - 785, - 795, - 796, - 797, - 817, - 842, - 843, - 846, - 847, - -1 + FRONTIER_MONS_GUITARIST_3B }; const u16 gBattleFrontierTrainerMons_Dirk[] = { - 355, - 375, - 379, - 385, - 386, - 412, - 435, - 440, - 454, - 457, - 459, - 465, - 473, - 477, - 482, - 484, - 508, - 531, - 536, - 550, - 553, - 555, - 561, - 567, - 571, - 577, - 578, - 604, - 627, - 632, - 646, - 649, - 651, - 657, - 663, - 667, - 673, - 674, - 700, - 723, - 728, - 742, - 745, - 747, - 753, - 756, - 757, - 758, - 767, - 768, - 769, - 778, - 779, - 780, - 789, - 790, - 791, - 828, - 829, - 830, - 831, - -1 + FRONTIER_MONS_BIRD_KEEPER_3 }; const u16 gBattleFrontierTrainerMons_Harold[] = { - 355, - 375, - 379, - 385, - 386, - 412, - 435, - 440, - 454, - 457, - 459, - 465, - 473, - 477, - 482, - 484, - 508, - 531, - 536, - 550, - 553, - 555, - 561, - 567, - 571, - 577, - 578, - 604, - 627, - 632, - 646, - 649, - 651, - 657, - 663, - 667, - 673, - 674, - 700, - 723, - 728, - 742, - 745, - 747, - 753, - 756, - 757, - 758, - 767, - 768, - 769, - 778, - 779, - 780, - 789, - 790, - 791, - 828, - 829, - 830, - 831, - -1 + FRONTIER_MONS_BIRD_KEEPER_3 }; const u16 gBattleFrontierTrainerMons_Omar[] = { - 373, - 388, - 390, - 392, - 400, - 409, - 410, - 418, - 431, - 442, - 448, - 449, - 452, - 456, - 458, - 459, - 461, - 463, - 469, - 471, - 486, - 488, - 496, - 505, - 506, - 514, - 527, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 557, - 559, - 565, - 580, - 582, - 584, - 592, - 601, - 602, - 610, - 623, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - 661, - 676, - 678, - 680, - 688, - 697, - 698, - 706, - 719, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 749, - 751, - 808, - 809, - 810, - 811, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SAILOR_3 }; const u16 gBattleFrontierTrainerMons_Peter[] = { - 373, - 388, - 390, - 392, - 400, - 409, - 410, - 418, - 431, - 442, - 448, - 449, - 452, - 456, - 458, - 459, - 461, - 463, - 469, - 471, - 486, - 488, - 496, - 505, - 506, - 514, - 527, - 538, - 544, - 545, - 548, - 552, - 554, - 555, - 557, - 559, - 565, - 580, - 582, - 584, - 592, - 601, - 602, - 610, - 623, - 634, - 640, - 641, - 644, - 648, - 650, - 651, - 653, - 655, - 661, - 676, - 678, - 680, - 688, - 697, - 698, - 706, - 719, - 730, - 736, - 737, - 740, - 744, - 746, - 747, - 749, - 751, - 808, - 809, - 810, - 811, - 820, - 821, - 822, - 823, - -1 + FRONTIER_MONS_SAILOR_3 }; const u16 gBattleFrontierTrainerMons_Dev[] = { - 372, - 387, - 402, - 403, - 413, - 414, - 416, - 417, - 427, - 428, - 432, - 433, - 435, - 440, - 450, - 466, - 468, - 470, - 498, - 499, - 509, - 510, - 512, - 513, - 523, - 524, - 528, - 529, - 531, - 536, - 546, - 562, - 564, - 579, - 594, - 595, - 605, - 606, - 608, - 609, - 619, - 620, - 624, - 625, - 627, - 632, - 642, - 658, - 660, - 675, - 690, - 691, - 701, - 702, - 704, - 705, - 715, - 716, - 720, - 721, - 723, - 728, - 738, - 754, - 832, - 833, - 834, - 835, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_HIKER_3 }; const u16 gBattleFrontierTrainerMons_Corey[] = { - 372, - 387, - 402, - 403, - 413, - 414, - 416, - 417, - 427, - 428, - 432, - 433, - 435, - 440, - 450, - 466, - 468, - 470, - 498, - 499, - 509, - 510, - 512, - 513, - 523, - 524, - 528, - 529, - 531, - 536, - 546, - 562, - 564, - 579, - 594, - 595, - 605, - 606, - 608, - 609, - 619, - 620, - 624, - 625, - 627, - 632, - 642, - 658, - 660, - 675, - 690, - 691, - 701, - 702, - 704, - 705, - 715, - 716, - 720, - 721, - 723, - 728, - 738, - 754, - 832, - 833, - 834, - 835, - 860, - 861, - 862, - 863, - 864, - 865, - 866, - 867, - 868, - 869, - -1 + FRONTIER_MONS_HIKER_3 }; const u16 gBattleFrontierTrainerMons_Andre[] = { - 374, - 378, - 415, - 419, - 421, - 426, - 430, - 444, - 451, - 454, - 455, - 464, - 472, - 476, - 511, - 515, - 517, - 522, - 526, - 540, - 547, - 550, - 551, - 560, - 566, - 570, - 607, - 611, - 613, - 618, - 622, - 636, - 643, - 646, - 647, - 656, - 662, - 666, - 703, - 707, - 709, - 714, - 718, - 732, - 739, - 742, - 743, - 752, - 800, - 801, - 802, - 803, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - -1 + FRONTIER_MONS_KINDLER_3 }; const u16 gBattleFrontierTrainerMons_Ferris[] = { - 374, - 378, - 415, - 419, - 421, - 426, - 430, - 444, - 451, - 454, - 455, - 464, - 472, - 476, - 511, - 515, - 517, - 522, - 526, - 540, - 547, - 550, - 551, - 560, - 566, - 570, - 607, - 611, - 613, - 618, - 622, - 636, - 643, - 646, - 647, - 656, - 662, - 666, - 703, - 707, - 709, - 714, - 718, - 732, - 739, - 742, - 743, - 752, - 800, - 801, - 802, - 803, - 850, - 851, - 852, - 853, - 854, - 855, - 856, - 857, - 858, - 859, - -1 + FRONTIER_MONS_KINDLER_3 }; const u16 gBattleFrontierTrainerMons_Alivia[] = { - 399, - 400, - 409, - 422, - 438, - 441, - 445, - 448, - 449, - 451, - 452, - 454, - 455, - 489, - 492, - 493, - 503, - 526, - 532, - 535, - 536, - 560, - 573, - 583, - 590, - 592, - 608, - 611, - 620, - 651, - 682, - 688, - 714, - 729, - 732, - -1 + FRONTIER_MONS_PARASOL_LADY_3 }; const u16 gBattleFrontierTrainerMons_Paige[] = { - 399, - 400, - 409, - 422, - 438, - 441, - 445, - 448, - 449, - 451, - 452, - 454, - 455, - 489, - 492, - 493, - 503, - 526, - 532, - 535, - 536, - 560, - 573, - 583, - 590, - 592, - 608, - 611, - 620, - 651, - 682, - 688, - 714, - 729, - 732, - -1 + FRONTIER_MONS_PARASOL_LADY_3 }; const u16 gBattleFrontierTrainerMons_Anya[] = { - 442, - 443, - 444, - 446, - 447, - 538, - 539, - 540, - 542, - 543, - 634, - 635, - 636, - 638, - 639, - 730, - 731, - 732, - 734, - 735, - -1 + FRONTIER_MONS_EEVEELUTIONS }; const u16 gBattleFrontierTrainerMons_Dawn[] = { - 377, - 381, - 410, - 421, - 422, - 443, - 456, - 460, - 461, - 471, - 472, - 473, - 484, - 491, - 502, - 503, - 507, - 508, - 515, - 520, - 540, - 549, - 569, - 574, - 583, - 586, - 601, - 622, - 624, - 639, - 644, - 655, - 734, - 804, - 810, - 815, - 823, - 831, - 843, - -1 + FRONTIER_MONS_BEAUTY_2 }; const u16 gBattleFrontierTrainerMons_Abby[] = { - 185, - 290, - 313, - 334, - 348, - 359, - 360, - 377, - 380, - 382, - 385, - 394, - 395, - 398, - 400, - 401, - 404, - 409, - 410, - 416, - 437, - 438, - 439, - 441, - 445, - 446, - 453, - 475, - 478, - 480, - 484, - 490, - 491, - 494, - 496, - 497, - 500, - 505, - 506, - 512, - 533, - 534, - 535, - 537, - 541, - 542, - 549, - 569, - 572, - 574, - 577, - 586, - 587, - 590, - 592, - 593, - 596, - 601, - 602, - 608, - 629, - 630, - 631, - 633, - 637, - 638, - 645, - 665, - 668, - 670, - 673, - 682, - 683, - 686, - 688, - 689, - 692, - 697, - 698, - 704, - 725, - 726, - 727, - 729, - 733, - 734, - 741, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - -1 + FRONTIER_MONS_AROMA_LADY_3 }; const u16 gBattleFrontierTrainerMons_Gretel[] = { - 185, - 290, - 313, - 334, - 348, - 359, - 360, - 377, - 380, - 382, - 385, - 394, - 395, - 398, - 400, - 401, - 404, - 409, - 410, - 416, - 437, - 438, - 439, - 441, - 445, - 446, - 453, - 475, - 478, - 480, - 484, - 490, - 491, - 494, - 496, - 497, - 500, - 505, - 506, - 512, - 533, - 534, - 535, - 537, - 541, - 542, - 549, - 569, - 572, - 574, - 577, - 586, - 587, - 590, - 592, - 593, - 596, - 601, - 602, - 608, - 629, - 630, - 631, - 633, - 637, - 638, - 645, - 665, - 668, - 670, - 673, - 682, - 683, - 686, - 688, - 689, - 692, - 697, - 698, - 704, - 725, - 726, - 727, - 729, - 733, - 734, - 741, - 812, - 813, - 814, - 815, - 816, - 817, - 818, - 819, - -1 + FRONTIER_MONS_AROMA_LADY_3 }; diff --git a/src/data/battle_frontier/battle_frontier_trainers.h b/src/data/battle_frontier/battle_frontier_trainers.h index 7977852b2f14..bbd88d76f0d3 100644 --- a/src/data/battle_frontier/battle_frontier_trainers.h +++ b/src/data/battle_frontier/battle_frontier_trainers.h @@ -1,2403 +1,2403 @@ -const struct BattleFrontierTrainer gBattleFrontierTrainers[] = +const struct BattleFrontierTrainer gBattleFrontierTrainers[FRONTIER_TRAINERS_COUNT] = { - [0] = { + [FRONTIER_TRAINER_BRADY] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("BRADY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_EXCL}, .speechWin = {EC_WORD_I_AM, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_WHAT, EC_WORD_QUES, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Brady + .monSet = gBattleFrontierTrainerMons_Brady }, - [1] = { + [FRONTIER_TRAINER_CONNER] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("CONNER"), .speechBefore = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_IS, EC_WORD_JUST, EC_WORD_AWESOME, 0xFFFF}, .speechLose = {EC_WORD_DARN, EC_WORD_ELLIPSIS, EC_WORD_LOSING, EC_WORD_DOES, EC_WORD_BUG, EC_WORD_ME}, - .monSets = gBattleFrontierTrainerMons_Conner + .monSet = gBattleFrontierTrainerMons_Conner }, - [2] = { + [FRONTIER_TRAINER_BRADLEY] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("BRADLEY"), .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_TODAY}, .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_SEE_YA, EC_WORD_LATER, EC_WORD_EXCL}, .speechLose = {EC_WORD_TOMORROW, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_WE, EC_WORD_REALLY, EC_WORD_BATTLE}, - .monSets = gBattleFrontierTrainerMons_Bradley + .monSet = gBattleFrontierTrainerMons_Bradley }, - [3] = { + [FRONTIER_TRAINER_CYBIL] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("CYBIL"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_NOT_VERY, EC_WORD_SCARY, EC_WORD_AT, EC_WORD_ALL}, .speechWin = {EC_WORD_IT_S, EC_WORD_SAD, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(STRUGGLE)}, .speechLose = {EC_WORD_THIS, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_TO_ME, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Cybil + .monSet = gBattleFrontierTrainerMons_Cybil }, - [4] = { + [FRONTIER_TRAINER_RODETTE] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("RODETTE"), .speechBefore = {EC_WORD_OH, EC_WORD_THIS, EC_WORD_IS, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_HOW, EC_WORD_STRONG, EC_WORD_I_AM, EC_WORD_EXCL}, .speechLose = {EC_WORD_OH_DEAR, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_NO, EC_WORD_GOOD}, - .monSets = gBattleFrontierTrainerMons_Rodette + .monSet = gBattleFrontierTrainerMons_Rodette }, - [5] = { + [FRONTIER_TRAINER_PEGGY] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("PEGGY"), .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_TO, EC_WORD_BE, EC_WORD_DESTROYED, EC_WORD_EXCL}, .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_LOLLING, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_THANKS, EC_WORD_TO, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Peggy + .monSet = gBattleFrontierTrainerMons_Peggy }, - [6] = { + [FRONTIER_TRAINER_KEITH] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("KEITH"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_JUST, EC_WORD_STUDY, EC_WORD_YOU, EC_WORD_KNOW}, .speechWin = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_STUDY, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Keith + .monSet = gBattleFrontierTrainerMons_Keith }, - [7] = { + [FRONTIER_TRAINER_GRAYSON] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("GRAYSON"), .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_BATTLE, EC_WORD_ISN_T, EC_WORD_CHILD_S_PLAY, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_DONE, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_LIKE, EC_WORD_TOYS, EC_WORD_TO, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Grayson + .monSet = gBattleFrontierTrainerMons_Grayson }, - [8] = { + [FRONTIER_TRAINER_GLENN] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("GLENN"), .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_COOL, EC_WORD_IF_I_WIN, 0xFFFF}, .speechWin = {EC_WORD_COOL, EC_WORD_EXCL, 0xFFFF, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_COOL}, - .monSets = gBattleFrontierTrainerMons_Glenn + .monSet = gBattleFrontierTrainerMons_Glenn }, - [9] = { + [FRONTIER_TRAINER_LILIANA] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("LILIANA"), .speechBefore = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN}, .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_SURRENDER, EC_WORD_IN, EC_WORD_ME}, .speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Liliana + .monSet = gBattleFrontierTrainerMons_Liliana }, - [10] = { + [FRONTIER_TRAINER_ELISE] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("ELISE"), .speechBefore = {EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_FROM, EC_WORD_MY, EC_WORD_FATHER}, .speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_EXCL, EC_WORD_FATHER, EC_WORD_I_VE, EC_WORD_WON}, .speechLose = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FATHER, EC_WORD_FOR, EC_WORD_I_VE, EC_WORD_LOST}, - .monSets = gBattleFrontierTrainerMons_Elise + .monSet = gBattleFrontierTrainerMons_Elise }, - [11] = { + [FRONTIER_TRAINER_ZOEY] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("ZOEY"), .speechBefore = {EC_WORD_PLEASE, EC_WORD_BATTLE, EC_WORD_LIKE, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, .speechLose = {EC_WORD_WERE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_BEING, EC_WORD_SERIOUS, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Zoey + .monSet = gBattleFrontierTrainerMons_Zoey }, - [12] = { + [FRONTIER_TRAINER_MANUEL] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("MANUEL"), .speechBefore = {EC_WORD_ME, EC_WORD_LOSE, EC_WORD_QUES, EC_WORD_THAT_S, EC_WORD_PREPOSTEROUS, EC_WORD_EXCL}, .speechWin = {EC_WORD_NATURALLY, EC_WORD_I, EC_WORD_WIN, 0xFFFF, 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_MOTHER}, - .monSets = gBattleFrontierTrainerMons_Manuel + .monSet = gBattleFrontierTrainerMons_Manuel }, - [13] = { + [FRONTIER_TRAINER_RUSS] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("RUSS"), .speechBefore = {EC_WORD_THEY, EC_WORD_ALL, EC_WORD_WANT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_POKEMON}, .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PARTY}, .speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_DO, EC_WORD_THAT, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Russ + .monSet = gBattleFrontierTrainerMons_Russ }, - [14] = { + [FRONTIER_TRAINER_DUSTIN] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("DUSTIN"), .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_COOL, EC_WORD_POKEMON, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_WHEN_I_WIN, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_MYSELF, EC_WORD_IF_I_LOSE, EC_WORD_TOO, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Dustin + .monSet = gBattleFrontierTrainerMons_Dustin }, - [15] = { + [FRONTIER_TRAINER_TINA] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("TINA"), .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(SWEET_KISS)}, .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_YOUR, EC_MOVE2(SWEET_KISS), EC_WORD_FROM, EC_WORD_MY, EC_POKEMON2(JYNX)}, .speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_A, EC_MOVE(SWIFT), EC_MOVE2(MEGA_KICK), EC_WORD_INSTEAD}, - .monSets = gBattleFrontierTrainerMons_Tina + .monSet = gBattleFrontierTrainerMons_Tina }, - [16] = { + [FRONTIER_TRAINER_GILLIAN1] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("GILLIAN"), .speechBefore = {EC_WORD_THE, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_IS, EC_WORD_SO, EC_WORD_YESTERDAY}, .speechWin = {EC_WORD_POKEMON, EC_WORD_NEVER, EC_WORD_GO, EC_WORD_OUT, EC_WORD_OF, EC_WORD_FASHION}, .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_DISAPPOINT, EC_WORD_ME, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Gillian + .monSet = gBattleFrontierTrainerMons_Gillian }, - [17] = { + [FRONTIER_TRAINER_ZOE] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("ZOE"), .speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_A, EC_WORD_WORRY, EC_WORD_AT, EC_WORD_ALL}, .speechWin = {EC_WORD_LIFE, EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_GOOD, EC_WORD_TO_ME, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SKILL}, - .monSets = gBattleFrontierTrainerMons_Zoe + .monSet = gBattleFrontierTrainerMons_Zoe }, - [18] = { + [FRONTIER_TRAINER_CHEN] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("CHEN"), .speechBefore = {EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK, EC_WORD_TODAY}, .speechWin = {EC_WORD_I_AM, EC_WORD_READY, EC_WORD_TO, EC_WORD_GO, EC_WORD_ON, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_MOVE(FOCUS_ENERGY), EC_WORD_AND, EC_WORD_TOUGHNESS}, - .monSets = gBattleFrontierTrainerMons_Chen + .monSet = gBattleFrontierTrainerMons_Chen }, - [19] = { + [FRONTIER_TRAINER_AL] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("AL"), .speechBefore = {EC_WORD_YOUR, EC_WORD_LOOK, EC_WORD_SAYS, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, .speechWin = {EC_WORD_IT_S, EC_WORD_ME, EC_WORD_WHO_IS, EC_WORD_REALLY, EC_WORD_TOUGH, 0xFFFF}, .speechLose = {EC_WORD_I_AM, EC_WORD_RIGHT, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_REALLY, EC_WORD_TOUGH}, - .monSets = gBattleFrontierTrainerMons_Al + .monSet = gBattleFrontierTrainerMons_Al }, - [20] = { + [FRONTIER_TRAINER_MITCH] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("MITCH"), .speechBefore = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_IS, EC_WORD_MY, EC_WORD_ALLY, EC_WORD_EXCL}, .speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES}, .speechLose = {EC_WORD_MOTHER, EC_WORD_NATURE, EC_WORD_DIDN_T, EC_WORD_LET_ME_WIN, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Mitch + .monSet = gBattleFrontierTrainerMons_Mitch }, - [21] = { + [FRONTIER_TRAINER_ANNE] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("ANNE"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_LET_S, EC_WORD_BATTLE, EC_WORD_NOW}, .speechWin = {EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Anne + .monSet = gBattleFrontierTrainerMons_Anne }, - [22] = { + [FRONTIER_TRAINER_ALIZE] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("ALIZE"), .speechBefore = {EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG, EC_WORD_THAT_S, EC_WORD_ME}, .speechWin = {EC_WORD_YUP, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_AND, EC_WORD_AWFULLY, EC_WORD_STRONG}, .speechLose = {EC_WORD_I_AM, EC_WORD_WEAK, EC_WORD_ELLIPSIS, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_CUTE}, - .monSets = gBattleFrontierTrainerMons_Alize + .monSet = gBattleFrontierTrainerMons_Alize }, - [23] = { + [FRONTIER_TRAINER_LAUREN] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("LAUREN"), .speechBefore = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_ALSO, EC_WORD_GOOD}, .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_I_WAS, EC_WORD_OLD, EC_WORD_BUT, EC_WORD_GOOD}, .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_WEIRD, EC_WORD_DREAM, EC_WORD_THAT_WAS, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Lauren + .monSet = gBattleFrontierTrainerMons_Lauren }, - [24] = { + [FRONTIER_TRAINER_KIPP] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("KIPP"), .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GO, EC_MOVE2(SURF)}, .speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_OFF, EC_WORD_TO, EC_MOVE2(SURF)}, .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Kipp + .monSet = gBattleFrontierTrainerMons_Kipp }, - [25] = { + [FRONTIER_TRAINER_JASON] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("JASON"), .speechBefore = {EC_WORD_TEACH, EC_WORD_ME, EC_WORD_A, EC_WORD_GOOD, EC_WORD_STRATEGY, 0xFFFF}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_YOUR, EC_WORD_GOOD, EC_WORD_STRATEGY, EC_WORD_QUES_EXCL, 0xFFFF}, .speechLose = {EC_WORD_WOW, EC_WORD_THAT, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWESOME, EC_WORD_STRATEGY}, - .monSets = gBattleFrontierTrainerMons_Jason + .monSet = gBattleFrontierTrainerMons_Jason }, - [26] = { + [FRONTIER_TRAINER_JOHN] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("JOHN"), .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_PRETTY, EC_WORD_NEW, EC_WORD_TRAINER, 0xFFFF}, .speechWin = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_NEW, EC_WORD_SO, EC_WORD_WHAT, EC_WORD_IF_I_LOSE, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_John + .monSet = gBattleFrontierTrainerMons_John }, - [27] = { + [FRONTIER_TRAINER_ANN] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("ANN"), .speechBefore = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_EXCITING, EC_WORD_IT, EC_WORD_REALLY, EC_WORD_IS}, .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_I, EC_WORD_CAN, EC_WORD_CRY}, .speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SAD, EC_WORD_I, EC_WORD_WILL, EC_WORD_CRY}, - .monSets = gBattleFrontierTrainerMons_Ann + .monSet = gBattleFrontierTrainerMons_Ann }, - [28] = { + [FRONTIER_TRAINER_EILEEN] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("EILEEN"), .speechBefore = {EC_WORD_LET_S, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_OK_QUES}, .speechWin = {EC_WORD_SO, EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_FEELING}, .speechLose = {EC_WORD_AN, EC_WORD_ADULT, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Eileen + .monSet = gBattleFrontierTrainerMons_Eileen }, - [29] = { + [FRONTIER_TRAINER_CARLIE] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("CARLIE"), .speechBefore = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_IS, EC_WORD_FOR, EC_WORD_POKEMON}, .speechWin = {EC_WORD_MY, EC_WORD_SUMMER, EC_WORD_VACATION, EC_WORD_WILL, EC_WORD_BE, EC_WORD_AWESOME}, .speechLose = {EC_WORD_I, EC_WORD_CAN_T_WIN, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Carlie + .monSet = gBattleFrontierTrainerMons_Carlie }, - [30] = { + [FRONTIER_TRAINER_GORDON] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("GORDON"), .speechBefore = {EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_COME, EC_WORD_TO_ME, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_OH_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_REALLY, EC_WORD_WON}, .speechLose = {EC_WORD_NOTHING, EC_WORD_IS, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_FOR, EC_WORD_ME}, - .monSets = gBattleFrontierTrainerMons_Gordon + .monSet = gBattleFrontierTrainerMons_Gordon }, - [31] = { + [FRONTIER_TRAINER_AYDEN] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("AYDEN"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE}, .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_WATER, EC_WORD_TO, EC_WORD_COOL, EC_WORD_DOWN}, .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_ICE, EC_WORD_COLD}, - .monSets = gBattleFrontierTrainerMons_Ayden + .monSet = gBattleFrontierTrainerMons_Ayden }, - [32] = { + [FRONTIER_TRAINER_MARCO] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("MARCO"), .speechBefore = {EC_WORD_I, EC_MOVE2(SURF), EC_WORD_IN, EC_WORD_THE, EC_WORD_WINTER, EC_WORD_TOO}, .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_MOVE2(SURF), EC_WORD_RIGHT, EC_WORD_NOW}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(BEAT_UP), EC_WORD_MY, EC_MOVE2(SURF), EC_WORD_BOARD}, - .monSets = gBattleFrontierTrainerMons_Marco + .monSet = gBattleFrontierTrainerMons_Marco }, - [33] = { + [FRONTIER_TRAINER_CIERRA] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("CIERRA"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_MY, EC_WORD_SWIFT_SWIM}, .speechWin = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_SYNCHRONIZE, EC_WORD_WITH, EC_WORD_ME, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SYNCHRONIZE, EC_WORD_BETTER, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Cierra + .monSet = gBattleFrontierTrainerMons_Cierra }, - [34] = { + [FRONTIER_TRAINER_MARCY] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("MARCY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL}, .speechWin = {EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_I_AM, EC_WORD_A, EC_WORD_KNOCKOUT, EC_WORD_EXCL}, .speechLose = {EC_WORD_THAT_S, EC_WORD_NOT, EC_WORD_THE, EC_WORD_KNOCKOUT, EC_WORD_I, EC_WORD_MEAN}, - .monSets = gBattleFrontierTrainerMons_Marcy + .monSet = gBattleFrontierTrainerMons_Marcy }, - [35] = { + [FRONTIER_TRAINER_KATHY] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("KATHY"), .speechBefore = {EC_WORD_I_VE, EC_WORD_WON, EC_WORD_EVERY, EC_WORD_MATCH, EC_WORD_TODAY, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_SO, EC_WORD_GREAT, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL}, .speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_HAVE, EC_WORD_LOST}, - .monSets = gBattleFrontierTrainerMons_Kathy + .monSet = gBattleFrontierTrainerMons_Kathy }, - [36] = { + [FRONTIER_TRAINER_PEYTON] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("PEYTON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NEVER, EC_WORD_DISAPPOINTED, EC_WORD_WITH, EC_WORD_MY, EC_WORD_POKEMON}, .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_IF, EC_WORD_WE, EC_WORD_WIN, EC_WORD_TOGETHER}, .speechLose = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_MORE, EC_WORD_IF_I_LOSE}, - .monSets = gBattleFrontierTrainerMons_Peyton + .monSet = gBattleFrontierTrainerMons_Peyton }, - [37] = { + [FRONTIER_TRAINER_JULIAN] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("JULIAN"), .speechBefore = {EC_WORD_YOU, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_RIGHT, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_OUT, EC_WORD_OF, EC_WORD_THE, EC_WORD_QUESTION}, .speechLose = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Julian + .monSet = gBattleFrontierTrainerMons_Julian }, - [38] = { + [FRONTIER_TRAINER_QUINN] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("QUINN"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_BUT, EC_WORD_A, EC_WORD_DREAM}, .speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_BEAUTIFUL, EC_WORD_DREAM, EC_WORD_EXCL}, .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_AN, EC_WORD_AWFUL, EC_MOVE(NIGHTMARE), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Quinn + .monSet = gBattleFrontierTrainerMons_Quinn }, - [39] = { + [FRONTIER_TRAINER_HAYLEE] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("HAYLEE"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_I_AM, EC_WORD_FEELING}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_OVERWHELMING, EC_WORD_JOY, EC_WORD_OVER, EC_WORD_THIS}, .speechLose = {EC_WORD_DESTROYED, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_FEELING}, - .monSets = gBattleFrontierTrainerMons_Haylee + .monSet = gBattleFrontierTrainerMons_Haylee }, - [40] = { + [FRONTIER_TRAINER_AMANDA] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("AMANDA"), .speechBefore = {EC_WORD_I, EC_WORD_COME, EC_WORD_FROM, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_FAMILY}, .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_TREASURE, EC_WORD_THIS, EC_WORD_WIN, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO_HOME, EC_WORD_RIGHT, EC_WORD_NOW}, - .monSets = gBattleFrontierTrainerMons_Amanda + .monSet = gBattleFrontierTrainerMons_Amanda }, - [41] = { + [FRONTIER_TRAINER_STACY] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("STACY"), .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_THEIR, EC_WORD_OWN, EC_WORD_CUTE_CHARM}, .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES}, .speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_NOT, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Stacy + .monSet = gBattleFrontierTrainerMons_Stacy }, - [42] = { + [FRONTIER_TRAINER_RAFAEL] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("RAFAEL"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_SOME, EC_WORD_SPIRIT}, .speechWin = {EC_WORD_THAT_S_IT_EXCL, EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_SPIRIT, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_WELL, EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_OUR, EC_WORD_SPIRIT}, - .monSets = gBattleFrontierTrainerMons_Rafael + .monSet = gBattleFrontierTrainerMons_Rafael }, - [43] = { + [FRONTIER_TRAINER_OLIVER] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("OLIVER"), .speechBefore = {EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL}, .speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_WORKS, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_THAN, EC_WORD_I_AM}, - .monSets = gBattleFrontierTrainerMons_Oliver + .monSet = gBattleFrontierTrainerMons_Oliver }, - [44] = { + [FRONTIER_TRAINER_PAYTON] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("PAYTON"), .speechBefore = {EC_WORD_I, EC_WORD_TRAIN, EC_WORD_FROM, EC_WORD_THE, EC_WORD_EGG, EC_WORD_UP}, .speechWin = {EC_WORD_WELL, EC_WORD_DONE, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A, EC_MOVE2(SOFT_BOILED), EC_WORD_LOSS, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Payton + .monSet = gBattleFrontierTrainerMons_Payton }, - [45] = { + [FRONTIER_TRAINER_PAMELA] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("PAMELA"), .speechBefore = {EC_WORD_ALL, EC_WORD_POKEMON, EC_WORD_ADORE, EC_WORD_A, EC_WORD_KIND, EC_WORD_TRAINER}, .speechWin = {EC_WORD_IT_S, EC_WORD_TOO, EC_WORD_BAD, EC_WORD_YOU, EC_WORD_LOST, 0xFFFF}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_AND, EC_WORD_YOU_RE, EC_WORD_ALSO, EC_WORD_STRONG}, - .monSets = gBattleFrontierTrainerMons_Pamela + .monSet = gBattleFrontierTrainerMons_Pamela }, - [46] = { + [FRONTIER_TRAINER_ELIZA] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("ELIZA"), .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_POKEMON, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_CHILDREN}, .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POKEMON}, .speechLose = {EC_WORD_OH_DEAR, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THIS}, - .monSets = gBattleFrontierTrainerMons_Eliza + .monSet = gBattleFrontierTrainerMons_Eliza }, - [47] = { + [FRONTIER_TRAINER_MARISA] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("MARISA"), .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, 0xFFFF}, .speechWin = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BETTER}, .speechLose = {EC_WORD_PROMISE, EC_WORD_ME, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Marisa + .monSet = gBattleFrontierTrainerMons_Marisa }, - [48] = { + [FRONTIER_TRAINER_LEWIS] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("LEWIS"), .speechBefore = {EC_WORD_A_LITTLE, EC_WORD_BUG, EC_WORD_IS, EC_WORD_SCARY, EC_WORD_QUES, EC_WORD_HAHAHA}, .speechWin = {EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL, EC_WORD_A, EC_WORD_SCARY, EC_WORD_BUG}, .speechLose = {EC_WORD_OH, EC_WORD_A, EC_WORD_BUG, EC_WORD_ISN_T, EC_WORD_SCARY, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Lewis + .monSet = gBattleFrontierTrainerMons_Lewis }, - [49] = { + [FRONTIER_TRAINER_YOSHI] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("YOSHI"), .speechBefore = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_LOVEY_DOVEY}, .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_IGNORANT, EC_WORD_ABOUT, EC_WORD_BUG, EC_WORD_POKEMON, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Yoshi + .monSet = gBattleFrontierTrainerMons_Yoshi }, - [50] = { + [FRONTIER_TRAINER_DESTIN] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("DESTIN"), .speechBefore = {EC_WORD_IT_S, EC_WORD_WAY, EC_WORD_TOO, EC_WORD_HOT, EC_WORD_HERE, 0xFFFF}, .speechWin = {EC_WORD_I_AM, EC_WORD_ABOUT, EC_WORD_TO, EC_MOVE(OVERHEAT), 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_WATER, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Destin + .monSet = gBattleFrontierTrainerMons_Destin }, - [51] = { + [FRONTIER_TRAINER_KEON] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("KEON"), .speechBefore = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_BUT, EC_WORD_HERE_I_COME, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_FOR, EC_WORD_MY, EC_WORD_OVERWHELMING, EC_WORD_POWER}, .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Keon + .monSet = gBattleFrontierTrainerMons_Keon }, - [52] = { + [FRONTIER_TRAINER_STUART] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("STUART"), .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_YOU, EC_WORD_A, EC_WORD_HOT, EC_WORD_BATTLE}, .speechWin = {EC_WORD_THE, EC_WORD_MASTER, EC_WORD_OF, EC_WORD_COOL, EC_WORD_THAT_S, EC_WORD_ME}, .speechLose = {EC_WORD_I, EC_WORD_SEE, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_SO, EC_WORD_COOL}, - .monSets = gBattleFrontierTrainerMons_Stuart + .monSet = gBattleFrontierTrainerMons_Stuart }, - [53] = { + [FRONTIER_TRAINER_NESTOR] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("NESTOR"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_REALLY, EC_WORD_SMOOTH, EC_WORD_MOVE}, .speechWin = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_NOTHING, EC_WORD_SMOOTH, EC_WORD_ABOUT, EC_WORD_THAT}, .speechLose = {EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SMOOTH, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Nestor + .monSet = gBattleFrontierTrainerMons_Nestor }, - [54] = { + [FRONTIER_TRAINER_DERRICK] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("DERRICK"), .speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOU, EC_MOVE2(MEDITATE), EC_WORD_LIKE, EC_WORD_ME}, .speechWin = {EC_WORD_HOW, EC_WORD_I, EC_MOVE2(MEDITATE), EC_WORD_IS, EC_WORD_JUST, EC_WORD_BEAUTIFUL}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(MEDITATE), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(CALM_MIND)}, - .monSets = gBattleFrontierTrainerMons_Derrick + .monSet = gBattleFrontierTrainerMons_Derrick }, - [55] = { + [FRONTIER_TRAINER_BRYSON] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("BRYSON"), .speechBefore = {EC_MOVE2(POISON_POWDER), EC_WORD_IS, EC_WORD_IN, EC_WORD_OUR, EC_MOVE2(COTTON_SPORE), EC_WORD_MOVE}, .speechWin = {EC_WORD_HOW_DO, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_OUR, EC_MOVE2(POISON_POWDER), EC_WORD_QUES}, .speechLose = {EC_WORD_MY, EC_MOVE2(COTTON_SPORE), EC_WORD_WAS, EC_WORD_USELESS, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Bryson + .monSet = gBattleFrontierTrainerMons_Bryson }, - [56] = { + [FRONTIER_TRAINER_CLAYTON] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("CLAYTON"), .speechBefore = {EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF, EC_WORD_WHERE, EC_WORD_IS_IT_QUES, 0xFFFF}, .speechWin = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_POKENAV}, .speechLose = {EC_WORD_WHERE, EC_WORD_IS_IT_QUES, EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SENSE}, - .monSets = gBattleFrontierTrainerMons_Clayton + .monSet = gBattleFrontierTrainerMons_Clayton }, - [57] = { + [FRONTIER_TRAINER_TRENTON] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("TRENTON"), .speechBefore = {EC_WORD_COME_OVER, EC_WORD_FOR, EC_WORD_SOME, EC_WORD_TASTY, EC_WORD_WATER, 0xFFFF}, .speechWin = {EC_WORD_MMM, EC_WORD_DO, EC_WORD_YOU, EC_WORD_WANT, EC_WORD_SOME, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_GOT, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_WATER, EC_WORD_SHOPPING}, - .monSets = gBattleFrontierTrainerMons_Trenton + .monSet = gBattleFrontierTrainerMons_Trenton }, - [58] = { + [FRONTIER_TRAINER_JENSON] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("JENSON"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_DOWNCAST}, .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THE, EC_MOVE(CUT)}, .speechLose = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_TRAINER, EC_WORD_WHO_IS, EC_WORD_FEELING, EC_WORD_DOWNCAST}, - .monSets = gBattleFrontierTrainerMons_Jenson + .monSet = gBattleFrontierTrainerMons_Jenson }, - [59] = { + [FRONTIER_TRAINER_WESLEY] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("WESLEY"), .speechBefore = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_IS, EC_WORD_HOW, EC_WORD_I, EC_WORD_CRY}, .speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_EXCL}, .speechLose = {EC_POKEMON2(MEW), EC_POKEMON2(MEW), EC_WORD_EXCL, EC_POKEMON2(MEW), EC_WORD_EXCL_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Wesley + .monSet = gBattleFrontierTrainerMons_Wesley }, - [60] = { + [FRONTIER_TRAINER_ANTON] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("ANTON"), .speechBefore = {EC_WORD_GET, EC_WORD_READY, EC_WORD_FOR, EC_WORD_ME, EC_WORD_TO, EC_MOVE(THRASH)}, .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_SORRY, EC_WORD_ABOUT, EC_WORD_THAT, EC_WORD_EXCL}, .speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_LOSS, EC_WORD_TO, EC_MOVE2(SWALLOW)}, - .monSets = gBattleFrontierTrainerMons_Anton + .monSet = gBattleFrontierTrainerMons_Anton }, - [61] = { + [FRONTIER_TRAINER_LAWSON] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("LAWSON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AT, EC_WORD_HEART, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_NOT, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NOT, EC_WORD_AT, EC_WORD_ALL}, .speechLose = {EC_WORD_I_AM, EC_WORD_OLD, EC_WORD_AND, EC_WORD_FEELING, EC_WORD_SHAKY, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Lawson + .monSet = gBattleFrontierTrainerMons_Lawson }, - [62] = { + [FRONTIER_TRAINER_SAMMY] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("SAMMY"), .speechBefore = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_READY, EC_WORD_TO, EC_WORD_ROCK}, .speechWin = {EC_WORD_MY, EC_WORD_PARTY, EC_WORD_IS, EC_WORD_JUST, EC_WORD_INCREDIBLE, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_CRY, EC_WORD_FOR, EC_WORD_MY, EC_WORD_PARTY, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Sammy + .monSet = gBattleFrontierTrainerMons_Sammy }, - [63] = { + [FRONTIER_TRAINER_ARNIE] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("ARNIE"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_RIVAL}, .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE}, .speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON_T, EC_WORD_ACCEPT, EC_WORD_THIS}, - .monSets = gBattleFrontierTrainerMons_Arnie + .monSet = gBattleFrontierTrainerMons_Arnie }, - [64] = { + [FRONTIER_TRAINER_ADRIAN] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("ADRIAN"), .speechBefore = {EC_WORD_YAHOO, EC_WORD_EXCL, 0xFFFF, EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_EXCL, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_EXCL_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Adrian + .monSet = gBattleFrontierTrainerMons_Adrian }, - [65] = { + [FRONTIER_TRAINER_TRISTAN] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("TRISTAN"), .speechBefore = {EC_WORD_CONFUSED, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, .speechWin = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_IN, EC_WORD_BATTLE}, - .monSets = gBattleFrontierTrainerMons_Tristan + .monSet = gBattleFrontierTrainerMons_Tristan }, - [66] = { + [FRONTIER_TRAINER_JULIANA] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("JULIANA"), .speechBefore = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SHOPPING, EC_WORD_TOO, EC_WORD_MUCH}, .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL}, .speechLose = {EC_WORD_I, EC_WORD_SO, EC_WORD_WANT, EC_WORD_ANOTHER, EC_WORD_POKEMON, EC_WORD_PLUSH_DOLL}, - .monSets = gBattleFrontierTrainerMons_Juliana + .monSet = gBattleFrontierTrainerMons_Juliana }, - [67] = { + [FRONTIER_TRAINER_RYLEE] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("RYLEE"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS}, .speechWin = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_NO, EC_WORD_GUTS}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_GUTSY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SUPER}, - .monSets = gBattleFrontierTrainerMons_Rylee + .monSet = gBattleFrontierTrainerMons_Rylee }, - [68] = { + [FRONTIER_TRAINER_CHELSEA] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("CHELSEA"), .speechBefore = {EC_WORD_I, EC_WORD_SERIOUSLY, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_WIN, EC_WORD_EXCL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MY, EC_WORD_WILL, EC_WORD_TO, EC_WORD_WIN, 0xFFFF}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Chelsea + .monSet = gBattleFrontierTrainerMons_Chelsea }, - [69] = { + [FRONTIER_TRAINER_DANELA] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("DANELA"), .speechBefore = {EC_WORD_YOU, EC_WORD_MUST_BE, EC_WORD_MY, EC_WORD_OPPONENT, EC_WORD_NOW, EC_WORD_EXCL}, .speechWin = {EC_WORD_OH_DEAR, EC_WORD_TOO_WEAK, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_GIVE_UP, EC_WORD_EXCL}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_GOOD, EC_WORD_AND, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, - .monSets = gBattleFrontierTrainerMons_Danela + .monSet = gBattleFrontierTrainerMons_Danela }, - [70] = { + [FRONTIER_TRAINER_LIZBETH] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("LIZBETH"), .speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_YOU, EC_WORD_CAN, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(PRESENT)}, .speechWin = {EC_WORD_HERE_IT_IS, EC_WORD_A_LITTLE, EC_WORD_PRAISE, EC_WORD_AS, EC_WORD_YOUR, EC_MOVE2(PRESENT)}, .speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES_EXCL, EC_WORD_HERE_IT_IS, EC_WORD_A, EC_MOVE(DOUBLE_SLAP)}, - .monSets = gBattleFrontierTrainerMons_Lizbeth + .monSet = gBattleFrontierTrainerMons_Lizbeth }, - [71] = { + [FRONTIER_TRAINER_AMELIA] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("AMELIA"), .speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_CUTE, EC_WORD_FASHION, EC_WORD_APPEAL}, .speechWin = {EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_A, EC_WORD_DISASTER}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_AWFUL, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_HOME}, - .monSets = gBattleFrontierTrainerMons_Amelia + .monSet = gBattleFrontierTrainerMons_Amelia }, - [72] = { + [FRONTIER_TRAINER_JILLIAN] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("JILLIAN"), .speechBefore = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_THAT, EC_WORD_I, EC_WORD_SMELL, EC_WORD_QUES}, .speechWin = {EC_WORD_IT_S, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_TASTY, EC_WORD_WATER}, .speechLose = {EC_WORD_IT_S, EC_WORD_YOUR, EC_WORD_OFFENSIVE, EC_WORD_STENCH, EC_WORD_THAT_S, EC_WORD_WHAT}, - .monSets = gBattleFrontierTrainerMons_Jillian + .monSet = gBattleFrontierTrainerMons_Jillian }, - [73] = { + [FRONTIER_TRAINER_ABBIE] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("ABBIE"), .speechBefore = {EC_WORD_YOU, EC_WORD_TRY, EC_WORD_MY, EC_WORD_SECRET, EC_MOVE(AROMATHERAPY), EC_WORD_OK_QUES}, .speechWin = {EC_WORD_MY, EC_MOVE(AROMATHERAPY), EC_WORD_IS, EC_WORD_TERRIBLE, EC_WORD_FOR, EC_WORD_YOU}, .speechLose = {EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_SMELL, EC_WORD_A, EC_WORD_THING, EC_WORD_QUES_EXCL}, - .monSets = gBattleFrontierTrainerMons_Abbie + .monSet = gBattleFrontierTrainerMons_Abbie }, - [74] = { + [FRONTIER_TRAINER_BRIANA] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("BRIANA"), .speechBefore = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_WORKS, EC_WORD_TOO, EC_WORD_MUCH}, .speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_MISS, EC_WORD_HIM, EC_WORD_MORE, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_LONESOME, EC_WORD_WITHOUT, EC_WORD_HIM, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Briana + .monSet = gBattleFrontierTrainerMons_Briana }, - [75] = { + [FRONTIER_TRAINER_ANTONIO] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("ANTONIO"), .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_WORD_GO, EC_WORD_GO}, .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_DANCE}, .speechLose = {EC_WORD_GO, EC_WORD_GO, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_MOVE(FLAIL), EC_WORD_ABOUT}, - .monSets = gBattleFrontierTrainerMons_Antonio + .monSet = gBattleFrontierTrainerMons_Antonio }, - [76] = { + [FRONTIER_TRAINER_JADEN] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("JADEN"), .speechBefore = {EC_WORD_HELLO, EC_WORD_I, EC_WORD_THINK, EC_WORD_I, EC_WORD_ADORE, EC_WORD_YOU}, .speechWin = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_MOVE(THRASH), EC_WORD_IN, EC_MOVE2(FRUSTRATION)}, .speechLose = {EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_GOOD_BYE, EC_WORD_FOREVER, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Jaden + .monSet = gBattleFrontierTrainerMons_Jaden }, - [77] = { + [FRONTIER_TRAINER_DAKOTA] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("DAKOTA"), .speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, .speechWin = {EC_WORD_GOT, EC_WORD_IT, EC_WORD_QUES, EC_WORD_DANCE, EC_WORD_WITH, EC_WORD_POWER}, .speechLose = {EC_WORD_OKAY, EC_WORD_YOU, EC_WORD_UNDERSTAND, EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Dakota + .monSet = gBattleFrontierTrainerMons_Dakota }, - [78] = { + [FRONTIER_TRAINER_BRAYDEN] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("BRAYDEN"), .speechBefore = {EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ARE, EC_WORD_USELESS, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_COLLECT, EC_WORD_NORMAL, EC_WORD_VERSION, EC_WORD_TOYS}, .speechLose = {EC_WORD_I, EC_MOVE2(ATTRACT), EC_WORD_COLOR_CHANGE, EC_WORD_VERSION, EC_WORD_TOYS, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Brayden + .monSet = gBattleFrontierTrainerMons_Brayden }, - [79] = { + [FRONTIER_TRAINER_CORSON] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("CORSON"), .speechBefore = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(BEAT_UP), EC_WORD_ON, EC_WORD_YOU}, .speechWin = {EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_COOL}, .speechLose = {EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_MOVE2(CURSE), EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Corson + .monSet = gBattleFrontierTrainerMons_Corson }, - [80] = { + [FRONTIER_TRAINER_TREVIN] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("TREVIN"), .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NONE, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ME}, .speechWin = {EC_WORD_YES_SIR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST}, .speechLose = {EC_WORD_SERIOUS, EC_WORD_QUES_EXCL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Trevin + .monSet = gBattleFrontierTrainerMons_Trevin }, - [81] = { + [FRONTIER_TRAINER_PATRICK] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("PATRICK"), .speechBefore = {EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_EXCL, EC_WORD_GIVE_UP, EC_WORD_NOW, 0xFFFF}, .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_DISAPPOINTED, EC_WORD_I_AM, EC_WORD_PERFECT, 0xFFFF}, .speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_PERFECT, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Patrick + .monSet = gBattleFrontierTrainerMons_Patrick }, - [82] = { + [FRONTIER_TRAINER_KADEN] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("KADEN"), .speechBefore = {EC_WORD_WHAT, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_UP, EC_WORD_TO, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_WERE, EC_WORD_A, EC_WORD_SURPRISE, EC_WORD_TO_ME, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_WHO, EC_WORD_I_AM, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Kaden + .monSet = gBattleFrontierTrainerMons_Kaden }, - [83] = { + [FRONTIER_TRAINER_MAXWELL] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("MAXWELL"), .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_WHO_IS, EC_WORD_YOUR, EC_WORD_RIVAL, EC_WORD_QUES, 0xFFFF}, .speechWin = {EC_WORD_MY, EC_WORD_RIVAL, EC_WORD_IS, EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND}, .speechLose = {EC_WORD_I_AM, EC_WORD_MAKING, EC_WORD_YOU, EC_WORD_MY, EC_WORD_RIVAL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Maxwell + .monSet = gBattleFrontierTrainerMons_Maxwell }, - [84] = { + [FRONTIER_TRAINER_DARYL] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("DARYL"), .speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_TO, EC_MOVE(CHARGE)}, .speechWin = {EC_WORD_AM, EC_WORD_I, EC_WORD_OVERWHELMING, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_A, EC_WORD_LEGEND, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Daryl + .monSet = gBattleFrontierTrainerMons_Daryl }, - [85] = { + [FRONTIER_TRAINER_KENNETH] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("KENNETH"), .speechBefore = {EC_WORD_YOU, EC_WORD_BETTER, EC_WORD_NOT, EC_MOVE2(SLACK_OFF), EC_WORD_WITH, EC_WORD_ME}, .speechWin = {EC_WORD_DID, EC_WORD_MY, EC_MOVE2(TAUNT), EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES}, .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Kenneth + .monSet = gBattleFrontierTrainerMons_Kenneth }, - [86] = { + [FRONTIER_TRAINER_RICH] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("RICH"), .speechBefore = {EC_WORD_YOUR, EC_MOVE(FACADE), EC_WORD_DOESN_T, EC_MOVE2(TRICK), EC_WORD_ME, 0xFFFF}, .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_OK_QUES, 0xFFFF}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_REALLY, EC_WORD_TOUGH, EC_WORD_ON, EC_WORD_ME, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Rich + .monSet = gBattleFrontierTrainerMons_Rich }, - [87] = { + [FRONTIER_TRAINER_CADEN] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("CADEN"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_DEFEATED, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF, EC_WORD_FIRE, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechLose = {EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_SO, EC_WORD_HOT}, - .monSets = gBattleFrontierTrainerMons_Caden + .monSet = gBattleFrontierTrainerMons_Caden }, - [88] = { + [FRONTIER_TRAINER_MARLON] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("MARLON"), .speechBefore = {EC_WORD_A, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_QUES}, .speechWin = {EC_WORD_A_LITTLE, EC_WORD_RADIO, EC_WORD_HUH_QUES, EC_WORD_THAT_S, EC_WORD_TOTALLY, EC_WORD_COOL}, .speechLose = {EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_QUES, EC_WORD_IS, EC_WORD_POKENAV, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Marlon + .monSet = gBattleFrontierTrainerMons_Marlon }, - [89] = { + [FRONTIER_TRAINER_NASH] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("NASH"), .speechBefore = {EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_LEFT, EC_WORD_YOU, EC_WORD_JUST, EC_WORD_AN, EC_MOVE2(EMBER)}, .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_WATER, EC_WORD_PLEASE}, - .monSets = gBattleFrontierTrainerMons_Nash + .monSet = gBattleFrontierTrainerMons_Nash }, - [90] = { + [FRONTIER_TRAINER_ROBBY] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("ROBBY"), .speechBefore = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_LEADER, EC_WORD_WITH, EC_WORD_REFRESHING, EC_WORD_SERENE_GRACE}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(THRASH), EC_WORD_MY, EC_WORD_TOYS, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Robby + .monSet = gBattleFrontierTrainerMons_Robby }, - [91] = { + [FRONTIER_TRAINER_REECE] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("REECE"), .speechBefore = {EC_WORD_MY, EC_MOVE2(QUICK_ATTACK), EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_A, EC_MOVE2(TELEPORT)}, .speechWin = {EC_WORD_LIKE, EC_WORD_I, EC_WORD_SAID, EC_WORD_I_AM, EC_WORD_DARN, EC_WORD_FAST}, .speechLose = {EC_WORD_I_WAS, EC_WORD_KIDDING, EC_WORD_ABOUT, EC_WORD_THAT, EC_MOVE2(TELEPORT), EC_WORD_THING}, - .monSets = gBattleFrontierTrainerMons_Reece + .monSet = gBattleFrontierTrainerMons_Reece }, - [92] = { + [FRONTIER_TRAINER_KATHRYN] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .trainerName = _("KATHRYN"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_TRAIN, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_QUES}, .speechWin = {EC_WORD_DON_T, EC_MOVE2(TAUNT), EC_WORD_ME, EC_WORD_LIKE, EC_WORD_THAT, EC_WORD_OK_QUES}, .speechLose = {EC_WORD_WHY, EC_WORD_COULDN_T, EC_WORD_I, EC_WORD_WIN, EC_WORD_THIS, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Kathryn + .monSet = gBattleFrontierTrainerMons_Kathryn }, - [93] = { + [FRONTIER_TRAINER_ELLEN] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .trainerName = _("ELLEN"), .speechBefore = {EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_AN, EC_WORD_EGG, EC_WORD_EXCL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_VICTORY, EC_WORD_FOR, EC_WORD_ME}, .speechLose = {EC_WORD_TOO, EC_WORD_TOUGH, EC_WORD_TO, EC_WORD_CRUSH, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Ellen + .monSet = gBattleFrontierTrainerMons_Ellen }, - [94] = { + [FRONTIER_TRAINER_RAMON] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("RAMON"), .speechBefore = {EC_WORD_OKAY, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PERFECTION}, .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_THAT, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, .speechLose = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_SECRET, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_HAPPY}, - .monSets = gBattleFrontierTrainerMons_Ramon + .monSet = gBattleFrontierTrainerMons_Ramon }, - [95] = { + [FRONTIER_TRAINER_ARTHUR] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("ARTHUR"), .speechBefore = {EC_WORD_HERE_I_COME, EC_WORD_FEELING, EC_WORD_READY, EC_WORD_FOR, EC_WORD_IT, EC_WORD_ALL}, .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THAT_WAS, EC_WORD_FABULOUS, EC_WORD_EXCL}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Arthur + .monSet = gBattleFrontierTrainerMons_Arthur }, - [96] = { + [FRONTIER_TRAINER_ALONDRA] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .trainerName = _("ALONDRA"), .speechBefore = {EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_IS, EC_WORD_A, EC_WORD_GREAT, EC_WORD_DAY}, .speechWin = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_WILL, EC_WORD_BE, EC_WORD_A, EC_WORD_LEGEND}, .speechLose = {EC_WORD_MY, EC_MOVE2(DIVE), EC_WORD_LEFT, EC_WORD_ME, EC_WORD_COLD, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Alondra + .monSet = gBattleFrontierTrainerMons_Alondra }, - [97] = { + [FRONTIER_TRAINER_ADRIANA] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .trainerName = _("ADRIANA"), .speechBefore = {EC_WORD_COME, EC_WORD_SEE, EC_WORD_AN, EC_WORD_INCREDIBLE, EC_WORD_SWIFT_SWIM, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_MAKE, EC_WORD_IT, EC_WORD_LOOK, EC_WORD_SO, EC_WORD_EASY}, .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_TIRED, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Adriana + .monSet = gBattleFrontierTrainerMons_Adriana }, - [98] = { + [FRONTIER_TRAINER_MALIK] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("MALIK"), .speechBefore = {EC_WORD_OH, EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_PLEASE, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_WON, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED}, .speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_I_AM, EC_WORD_TIRED}, - .monSets = gBattleFrontierTrainerMons_Malik + .monSet = gBattleFrontierTrainerMons_Malik }, - [99] = { + [FRONTIER_TRAINER_JILL] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("JILL"), .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_WINS, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_THE, EC_MOVE2(QUICK_ATTACK), EC_WORD_TRAINER, EC_WORD_GIVES, EC_WORD_UP, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Jill + .monSet = gBattleFrontierTrainerMons_Jill }, - [100] = { + [FRONTIER_TRAINER_ERIK] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("ERIK"), .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_FROM, EC_WORD_THE, EC_WORD_SPEED_BOOST, EC_WORD_HERO, EC_WORD_EXCL}, .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, - .monSets = gBattleFrontierTrainerMons_Erik + .monSet = gBattleFrontierTrainerMons_Erik }, - [101] = { + [FRONTIER_TRAINER_YAZMIN] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .trainerName = _("YAZMIN"), .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_RUN, EC_WORD_THAN, EC_WORD_BIKE}, .speechWin = {EC_WORD_YES, EC_WORD_I, EC_WORD_WOULD, EC_WORD_MUCH, EC_WORD_RATHER, EC_WORD_RUN}, .speechLose = {EC_WORD_BYE_BYE, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN_AWAY}, - .monSets = gBattleFrontierTrainerMons_Yazmin + .monSet = gBattleFrontierTrainerMons_Yazmin }, - [102] = { + [FRONTIER_TRAINER_JAMAL] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("JAMAL"), .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_FATHER}, .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_BABY}, .speechLose = {EC_WORD_MY, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_TOTALLY, EC_WORD_AWESOME}, - .monSets = gBattleFrontierTrainerMons_Jamal + .monSet = gBattleFrontierTrainerMons_Jamal }, - [103] = { + [FRONTIER_TRAINER_LESLIE] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .trainerName = _("LESLIE"), .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_MOTHER}, .speechWin = {EC_WORD_A, EC_WORD_BABY, EC_WORD_WILL, EC_WORD_BE, EC_WORD_A_LITTLE, EC_WORD_CHALLENGE}, .speechLose = {EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_HAPPY, EC_WORD_TO, EC_WORD_BE, EC_WORD_ANGRY}, - .monSets = gBattleFrontierTrainerMons_Leslie + .monSet = gBattleFrontierTrainerMons_Leslie }, - [104] = { + [FRONTIER_TRAINER_DAVE] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("DAVE"), .speechBefore = {EC_WORD_WHAT, EC_WORD_SHOULD, EC_WORD_I, EC_WORD_DO, EC_WORD_TODAY, EC_WORD_QUES}, .speechWin = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_ENJOY, EC_WORD_SOME, EC_WORD_SPORTS, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_PLAY, EC_WORD_A, EC_WORD_GAME}, - .monSets = gBattleFrontierTrainerMons_Dave + .monSet = gBattleFrontierTrainerMons_Dave }, - [105] = { + [FRONTIER_TRAINER_CARLO] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("CARLO"), .speechBefore = {EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_AT, EC_MOVE(EXTREME_SPEED), EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Carlo + .monSet = gBattleFrontierTrainerMons_Carlo }, - [106] = { + [FRONTIER_TRAINER_EMILIA] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("EMILIA"), .speechBefore = {EC_WORD_ME, EC_WORD_WORRY, EC_WORD_QUES, EC_WORD_I, EC_WORD_HAVE, EC_WORD_NONE}, .speechWin = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_FANTASTIC, EC_WORD_EXCL}, .speechLose = {EC_WORD_AHAHA, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THAT_WAS, EC_WORD_ENTERTAINING, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Emilia + .monSet = gBattleFrontierTrainerMons_Emilia }, - [107] = { + [FRONTIER_TRAINER_DALIA] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("DALIA"), .speechBefore = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_VERY, EC_WORD_EXPENSIVE, 0xFFFF}, .speechWin = {EC_WORD_DON_T, EC_WORD_COME, EC_WORD_NEAR, EC_WORD_MY, EC_WORD_BIKE, EC_WORD_EXCL}, .speechLose = {EC_WORD_MY, EC_WORD_BIKE, EC_WORD_IS, EC_WORD_MY, EC_WORD_BEST, EC_WORD_FRIEND}, - .monSets = gBattleFrontierTrainerMons_Dalia + .monSet = gBattleFrontierTrainerMons_Dalia }, - [108] = { + [FRONTIER_TRAINER_HITOMI] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("HITOMI"), .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_HAH, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL_EXCL, 0xFFFF, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL_EXCL}, - .monSets = gBattleFrontierTrainerMons_Hitomi + .monSet = gBattleFrontierTrainerMons_Hitomi }, - [109] = { + [FRONTIER_TRAINER_RICARDO] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("RICARDO"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_EXCL, EC_WORD_PLAY, EC_WORD_TIME, EC_WORD_IS, EC_WORD_OVER}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_OUT, EC_WORD_OF, EC_WORD_HERE, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_HIT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Ricardo + .monSet = gBattleFrontierTrainerMons_Ricardo }, - [110] = { + [FRONTIER_TRAINER_SHIZUKA] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("SHIZUKA"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_SERIOUS, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGET, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_PERFECT, EC_WORD_IN, EC_WORD_EVERY, EC_WORD_WAY, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Shizuka + .monSet = gBattleFrontierTrainerMons_Shizuka }, - [111] = { + [FRONTIER_TRAINER_JOANA] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("JOANA"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_LOSE, EC_WORD_RIGHT, EC_WORD_AWAY}, .speechWin = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_WINNER, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)}, .speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_ACCEPT, EC_WORD_THAT, EC_MOVE(OUTRAGE)}, - .monSets = gBattleFrontierTrainerMons_Joana + .monSet = gBattleFrontierTrainerMons_Joana }, - [112] = { + [FRONTIER_TRAINER_KELLY] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("KELLY"), .speechBefore = {EC_WORD_MY, EC_WORD_NIGHT, EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_SCARY}, .speechWin = {EC_WORD_A, EC_WORD_LADY, EC_WORD_GHOST, EC_WORD_APPEARS, EC_WORD_THERE, 0xFFFF}, .speechLose = {EC_WORD_THE, EC_WORD_HOME, EC_WORD_WORK, EC_WORD_IS, EC_WORD_AWFULLY, EC_WORD_SCARY}, - .monSets = gBattleFrontierTrainerMons_Kelly + .monSet = gBattleFrontierTrainerMons_Kelly }, - [113] = { + [FRONTIER_TRAINER_RAYNA] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("RAYNA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_WHEN, EC_WORD_IT_S, EC_WORD_ABOUT, EC_WORD_POWER}, .speechWin = {EC_WORD_UNDERSTAND, EC_WORD_MY, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Rayna + .monSet = gBattleFrontierTrainerMons_Rayna }, - [114] = { + [FRONTIER_TRAINER_EVAN] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("EVAN"), .speechBefore = {EC_WORD_EVERY, EC_WORD_BATTLE, EC_WORD_HAS, EC_WORD_A, EC_WORD_SMELL, 0xFFFF}, .speechWin = {EC_WORD_OH, EC_WORD_EXCL, EC_WORD_THE, EC_MOVE(SWEET_SCENT), EC_WORD_OF, EC_WORD_VICTORY}, .speechLose = {EC_WORD_THE, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_OF, EC_WORD_A, EC_WORD_LOSS}, - .monSets = gBattleFrontierTrainerMons_Evan + .monSet = gBattleFrontierTrainerMons_Evan }, - [115] = { + [FRONTIER_TRAINER_JORDAN] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JORDAN"), .speechBefore = {EC_WORD_GOOD, EC_WORD_EXCL, 0xFFFF, EC_WORD_COME_ON, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_WHAT, EC_WORD_QUES_EXCL, 0xFFFF, EC_WORD_BUT, EC_WORD_HOW, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Jordan + .monSet = gBattleFrontierTrainerMons_Jordan }, - [116] = { + [FRONTIER_TRAINER_JOEL] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JOEL"), .speechBefore = {EC_WORD_FUFUFU, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Joel + .monSet = gBattleFrontierTrainerMons_Joel }, - [117] = { + [FRONTIER_TRAINER_KRISTEN] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("KRISTEN"), .speechBefore = {EC_WORD_HAHAHA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_A, EC_WORD_KID, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_JUST, EC_WORD_A_LITTLE, EC_WORD_KID, EC_WORD_AFTER, EC_WORD_ALL, EC_WORD_EXCL}, .speechLose = {EC_WORD_A, EC_WORD_TOUGH, EC_WORD_KID, EC_WORD_HUH_QUES, EC_WORD_HUMPH, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Kristen + .monSet = gBattleFrontierTrainerMons_Kristen }, - [118] = { + [FRONTIER_TRAINER_SELPHY] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("SELPHY"), .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_WHAT, EC_WORD_IS_IT_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_OH, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_EXCL, EC_WORD_WHY, EC_WORD_NOT, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Selphy + .monSet = gBattleFrontierTrainerMons_Selphy }, - [119] = { + [FRONTIER_TRAINER_CHLOE] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("CHLOE"), .speechBefore = {EC_WORD_COME, EC_WORD_WE, EC_WORD_WILL, EC_WORD_DO, EC_WORD_BATTLE, EC_WORD_NOW}, .speechWin = {EC_WORD_MORE, EC_WORD_EXCL, 0xFFFF, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_EXCL}, .speechLose = {EC_WORD_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_STRONG, EC_WORD_YOU, EC_WORD_ARE}, - .monSets = gBattleFrontierTrainerMons_Chloe + .monSet = gBattleFrontierTrainerMons_Chloe }, - [120] = { + [FRONTIER_TRAINER_NORTON] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("NORTON"), .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_ONLY, EC_WORD_YOU, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_EXCUSE_ME, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_PUSHOVER, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Norton + .monSet = gBattleFrontierTrainerMons_Norton }, - [121] = { + [FRONTIER_TRAINER_LUKAS] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("LUKAS"), .speechBefore = {EC_WORD_MY, EC_WORD_JOKING, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TERRIBLE, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_EXISTS, EC_WORD_TO, EC_WORD_SHINE, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOUR, EC_WORD_ROCK_HEAD, EC_WORD_COME, EC_WORD_TO, EC_WORD_SHINE, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Lukas + .monSet = gBattleFrontierTrainerMons_Lukas }, - [122] = { + [FRONTIER_TRAINER_ZACH] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("ZACH"), .speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_EXCELLENT, EC_MOVE2(MIMIC), EC_WORD_OF, EC_WORD_POKEMON}, .speechWin = {EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_LIKE, EC_WORD_A_LITTLE, EC_POKEMON2(TOGEPI), EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_LIKE, EC_WORD_A, EC_POKEMON2(MANKEY), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Zach + .monSet = gBattleFrontierTrainerMons_Zach }, - [123] = { + [FRONTIER_TRAINER_KAITLYN] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("KAITLYN"), .speechBefore = {EC_WORD_I, EC_WORD_CRUSH, EC_WORD_THINGS, EC_WORD_WITH, EC_WORD_PSYCHIC, EC_WORD_POWER}, .speechWin = {EC_WORD_MY, EC_WORD_VICTORY, EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_THE, EC_WORD_NEWS}, .speechLose = {EC_WORD_NO, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_DO}, - .monSets = gBattleFrontierTrainerMons_Kaitlyn + .monSet = gBattleFrontierTrainerMons_Kaitlyn }, - [124] = { + [FRONTIER_TRAINER_BREANNA] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("BREANNA"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_WILL, EC_WORD_CRUSH, EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_HAVE, EC_WORD_SOME, EC_WORD_MORE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GUTS, EC_WORD_AND, EC_WORD_SKILL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Breanna + .monSet = gBattleFrontierTrainerMons_Breanna }, - [125] = { + [FRONTIER_TRAINER_KENDRA] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("KENDRA"), .speechBefore = {EC_WORD_IF, EC_WORD_YOU_RE, EC_WORD_SMART, EC_WORD_STOP, EC_WORD_RIGHT, EC_WORD_NOW}, .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_STOP}, .speechLose = {EC_WORD_WHY, EC_WORD_DIDN_T, EC_WORD_YOU, EC_WORD_STOP, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Kendra + .monSet = gBattleFrontierTrainerMons_Kendra }, - [126] = { + [FRONTIER_TRAINER_MOLLY] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("MOLLY"), .speechBefore = {EC_WORD_WILL, EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES}, .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_TOYS, EC_WORD_NOW}, .speechLose = {EC_WORD_OH, EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Molly + .monSet = gBattleFrontierTrainerMons_Molly }, - [127] = { + [FRONTIER_TRAINER_JAZMIN] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("JAZMIN"), .speechBefore = {EC_WORD_I, EC_WORD_FORECAST, EC_WORD_TERRIBLE, EC_WORD_THINGS, EC_WORD_FOR, EC_WORD_YOU}, .speechWin = {EC_WORD_THERE, EC_WORD_WASN_T, EC_WORD_MY, EC_WORD_FORECAST, EC_WORD_RIGHT, EC_WORD_QUES}, .speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_DIDN_T, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THIS}, - .monSets = gBattleFrontierTrainerMons_Jazmin + .monSet = gBattleFrontierTrainerMons_Jazmin }, - [128] = { + [FRONTIER_TRAINER_KELSEY] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("KELSEY"), .speechBefore = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_SLEPT, EC_WORD_IN, EC_WORD_DAYS, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_WILL, EC_WORD_BE, EC_WORD_EXCELLENT, EC_WORD_NOW}, .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_DESTROYED, EC_WORD_MY, EC_WORD_SLEEP, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Kelsey + .monSet = gBattleFrontierTrainerMons_Kelsey }, - [129] = { + [FRONTIER_TRAINER_JALEN] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("JALEN"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_ALLOW, EC_WORD_POKEMON, EC_WORD_TO, EC_MOVE(THRASH)}, .speechWin = {EC_WORD_HAHAHA, EC_WORD_EXCL, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_ANGRY, EC_WORD_QUES}, .speechLose = {EC_WORD_WHY, EC_WORD_IS, EC_WORD_THIS, EC_WORD_SO, EC_WORD_HARD, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Jalen + .monSet = gBattleFrontierTrainerMons_Jalen }, - [130] = { + [FRONTIER_TRAINER_GRIFFEN] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("GRIFFEN"), .speechBefore = {EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(SLUDGE), EC_WORD_TO, EC_MOVE2(TRANSFORM), EC_WORD_MYSELF}, .speechWin = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_MOVE2(ACID_ARMOR)}, .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GROWTH), EC_WORD_OF, EC_WORD_SUCTION_CUPS}, - .monSets = gBattleFrontierTrainerMons_Griffen + .monSet = gBattleFrontierTrainerMons_Griffen }, - [131] = { + [FRONTIER_TRAINER_XANDER] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("XANDER"), .speechBefore = {EC_WORD_I, EC_WORD_GOT, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ON, EC_WORD_RENTAL}, .speechWin = {EC_WORD_IT_S, EC_WORD_INCREDIBLE, EC_WORD_MY, EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_WON}, .speechLose = {EC_WORD_RENTAL, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_UP, EC_WORD_TO, EC_MOVE2(SCRATCH)}, - .monSets = gBattleFrontierTrainerMons_Xander + .monSet = gBattleFrontierTrainerMons_Xander }, - [132] = { + [FRONTIER_TRAINER_MARVIN] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("MARVIN"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_UP, EC_WORD_TO, EC_WORD_THE, EC_WORD_CHALLENGE, EC_WORD_QUES}, .speechWin = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_GOOD, EC_WORD_ENOUGH}, .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PERFECT, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, - .monSets = gBattleFrontierTrainerMons_Marvin + .monSet = gBattleFrontierTrainerMons_Marvin }, - [133] = { + [FRONTIER_TRAINER_BRENNAN] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("BRENNAN"), .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_TO, EC_WORD_SEE, EC_WORD_THE, EC_WORD_NEWS}, .speechWin = {EC_WORD_COMICS, EC_WORD_GET, EC_WORD_DAMP, EC_WORD_FROM, EC_WORD_DRIZZLE, EC_WORD_QUES}, .speechLose = {EC_WORD_THE, EC_WORD_TIGHT, EC_WORD_MONEY, EC_WORD_LIVING, EC_WORD_CHANNEL, EC_WORD_QUES_EXCL}, - .monSets = gBattleFrontierTrainerMons_Brennan + .monSet = gBattleFrontierTrainerMons_Brennan }, - [134] = { + [FRONTIER_TRAINER_BALEY] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("BALEY"), .speechBefore = {EC_MOVE(SCREECH), EC_WORD_IS, EC_WORD_LIKE, EC_WORD_MUSIC, EC_WORD_TO_ME, EC_WORD_EXCL}, .speechWin = {EC_WORD_MY, EC_MOVE(SCREECH), EC_WORD_STRATEGY, EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_SOUNDPROOF, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Baley + .monSet = gBattleFrontierTrainerMons_Baley }, - [135] = { + [FRONTIER_TRAINER_ZACKARY] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("ZACKARY"), .speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_MOVE(DIG), EC_WORD_IT, EC_WORD_YO, EC_WORD_QUES}, .speechWin = {EC_MOVE2(TAKE_DOWN), EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YO, EC_WORD_YO}, .speechLose = {EC_WORD_BREAK, EC_WORD_DOWN, EC_MOVE2(DIVE), EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME}, - .monSets = gBattleFrontierTrainerMons_Zackary + .monSet = gBattleFrontierTrainerMons_Zackary }, - [136] = { + [FRONTIER_TRAINER_GABRIEL] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("GABRIEL"), .speechBefore = {EC_MOVE2(POUND), EC_WORD_THE, EC_WORD_THICK_FAT, EC_WORD_ON, EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, .speechWin = {EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_MOVE2(POUND), EC_WORD_MY, EC_MOVE2(BELLY_DRUM)}, .speechLose = {EC_WORD_MY, EC_MOVE2(BELLY_DRUM), EC_WORD_WAS, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Gabriel + .monSet = gBattleFrontierTrainerMons_Gabriel }, - [137] = { + [FRONTIER_TRAINER_EMILY] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("EMILY"), .speechBefore = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A_TINY_BIT, EC_WORD_OF, EC_MOVE(HYPNOSIS), EC_WORD_QUES}, .speechWin = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WORKS, EC_WORD_TO, EC_WORD_PERFECTION}, .speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_STRATEGY, EC_WORD_WENT, EC_WORD_BADLY, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Emily + .monSet = gBattleFrontierTrainerMons_Emily }, - [138] = { + [FRONTIER_TRAINER_JORDYN] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("JORDYN"), .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_MY, EC_WORD_SECRET, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_AS, EC_WORD_I, EC_WORD_APPEAR, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_BUT, EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Jordyn + .monSet = gBattleFrontierTrainerMons_Jordyn }, - [139] = { + [FRONTIER_TRAINER_SOFIA] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("SOFIA"), .speechBefore = {EC_POKEMON(LOUDRED), EC_WORD_PROBABLY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), 0xFFFF}, .speechWin = {EC_WORD_THAT_S, EC_WORD_THE, EC_WORD_FEELING, EC_WORD_THAT, EC_WORD_I, EC_WORD_GET}, .speechLose = {EC_WORD_I, EC_WORD_WORK, EC_WORD_AT, EC_WORD_THE, EC_WORD_DEPT_STORE, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Sofia + .monSet = gBattleFrontierTrainerMons_Sofia }, - [140] = { + [FRONTIER_TRAINER_BRADEN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("BRADEN"), .speechBefore = {EC_WORD_I_CHOOSE_YOU, EC_WORD_EXCL, 0xFFFF, EC_WORD_THIS_IS_IT_EXCL, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_PRETTY, EC_WORD_AWESOME, EC_WORD_ABOUT, EC_WORD_MYSELF}, .speechLose = {EC_WORD_ALL_RIGHT, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Braden + .monSet = gBattleFrontierTrainerMons_Braden }, - [141] = { + [FRONTIER_TRAINER_KAYDEN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("KAYDEN"), .speechBefore = {EC_WORD_THEY, EC_WORD_OVERDO, EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_THAT, EC_WORD_GOURMET, EC_WORD_THING, EC_WORD_ISN_T, EC_WORD_FOR, EC_WORD_ME}, .speechLose = {EC_WORD_HEY, EC_WORD_THIS, EC_WORD_IS, EC_WORD_PRETTY, EC_WORD_TASTY, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Kayden + .monSet = gBattleFrontierTrainerMons_Kayden }, - [142] = { + [FRONTIER_TRAINER_COOPER] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("COOPER"), .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_ABSOLUTELY, EC_WORD_BE, EC_WORD_A, EC_WORD_PUSHOVER}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_TOO, EC_WORD_EXCITING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_PLEASE, EC_WORD_EXCL, 0xFFFF, EC_WORD_SORRY, EC_WORD_I_AM, EC_WORD_SORRY}, - .monSets = gBattleFrontierTrainerMons_Cooper + .monSet = gBattleFrontierTrainerMons_Cooper }, - [143] = { + [FRONTIER_TRAINER_JULIA] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("JULIA"), .speechBefore = {EC_WORD_SPIRIT, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN}, .speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_THIS, EC_WORD_WITH, EC_WORD_SERENE_GRACE}, .speechLose = {EC_WORD_FOR_NOW, EC_WORD_GOOD_BYE, EC_WORD_BUT, EC_WORD_IT_S, EC_WORD_NOT, EC_WORD_OVER}, - .monSets = gBattleFrontierTrainerMons_Julia + .monSet = gBattleFrontierTrainerMons_Julia }, - [144] = { + [FRONTIER_TRAINER_AMARA] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("AMARA"), .speechBefore = {EC_WORD_WROOOAAR_EXCL, EC_WORD_EXCL_EXCL, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_READY, EC_WORD_EXCL_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_LOSE, EC_WORD_MYSELF, EC_WORD_IF, EC_WORD_IT_S, EC_WORD_EXCITING}, .speechLose = {EC_WORD_THAT_S, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_MOVE2(TACKLE), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Amara + .monSet = gBattleFrontierTrainerMons_Amara }, - [145] = { + [FRONTIER_TRAINER_LYNN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("LYNN"), .speechBefore = {EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_CAN_T, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_FOREVER}, .speechWin = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_YOUR, EC_WORD_SECRET, EC_WORD_NOW, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_MOVE(SAFEGUARD), EC_WORD_YOUR, EC_WORD_OWN, EC_WORD_SECRET}, - .monSets = gBattleFrontierTrainerMons_Lynn + .monSet = gBattleFrontierTrainerMons_Lynn }, - [146] = { + [FRONTIER_TRAINER_JOVAN] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("JOVAN"), .speechBefore = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_SADLY, EC_WORD_LACKING}, .speechWin = {EC_WORD_MY, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_COOL, EC_WORD_ISN_T_IT_QUES}, .speechLose = {EC_WORD_I_WAS, EC_WORD_MINUS, EC_WORD_MY, EC_WORD_NORMAL, EC_WORD_POWER, EC_WORD_TODAY}, - .monSets = gBattleFrontierTrainerMons_Jovan + .monSet = gBattleFrontierTrainerMons_Jovan }, - [147] = { + [FRONTIER_TRAINER_DOMINIC] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("DOMINIC"), .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_THIS, EC_WORD_EXCELLENT, EC_WORD_CAMERA, 0xFFFF}, .speechWin = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_WAS, EC_WORD_AWFULLY, EC_WORD_EXPENSIVE, 0xFFFF}, .speechLose = {EC_WORD_MY, EC_WORD_CAMERA, EC_WORD_DOESN_T, EC_WORD_MISS, EC_WORD_A, EC_WORD_THING}, - .monSets = gBattleFrontierTrainerMons_Dominic + .monSet = gBattleFrontierTrainerMons_Dominic }, - [148] = { + [FRONTIER_TRAINER_NIKOLAS] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("NIKOLAS"), .speechBefore = {EC_WORD_I, EC_MOVE2(MIMIC), EC_WORD_POKEMON, EC_WORD_AFTER, EC_WORD_EVERY, EC_WORD_BATTLE}, .speechWin = {EC_WORD_IF_I_WIN, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(TAUROS)}, .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_PRETEND, EC_WORD_I_AM, EC_WORD_A, EC_POKEMON2(MILTANK)}, - .monSets = gBattleFrontierTrainerMons_Nikolas + .monSet = gBattleFrontierTrainerMons_Nikolas }, - [149] = { + [FRONTIER_TRAINER_VALERIA] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("VALERIA"), .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_NOT, EC_MOVE2(GLARE)}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL, EC_WORD_I, EC_WORD_MEAN, EC_WORD_REALLY}, .speechLose = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_A, EC_WORD_REALLY, EC_MOVE(SCARY_FACE), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Valeria + .monSet = gBattleFrontierTrainerMons_Valeria }, - [150] = { + [FRONTIER_TRAINER_DELANEY] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("DELANEY"), .speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OVER, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY}, .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_FROM, EC_WORD_SCHOOL}, .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_WORK, EC_WORD_NEXT, EC_WORD_WEEK}, - .monSets = gBattleFrontierTrainerMons_Delaney + .monSet = gBattleFrontierTrainerMons_Delaney }, - [151] = { + [FRONTIER_TRAINER_MEGHAN] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("MEGHAN"), .speechBefore = {EC_WORD_SCHOOL, EC_WORD_IS, EC_WORD_OUT, EC_WORD_TIME, EC_WORD_TO, EC_WORD_PLAY}, .speechWin = {EC_WORD_MY, EC_WORD_BOY, EC_WORD_FRIEND, EC_WORD_LIKES, EC_WORD_COMICS, 0xFFFF}, .speechLose = {EC_WORD_IT_S, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_SOON, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Meghan + .monSet = gBattleFrontierTrainerMons_Meghan }, - [152] = { + [FRONTIER_TRAINER_ROBERTO] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("ROBERTO"), .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_INVINCIBLE, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BAD, EC_WORD_I_WAS, EC_WORD_JUST, EC_WORD_BETTER}, .speechLose = {EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_SATISFIED, EC_WORD_YET, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Roberto + .monSet = gBattleFrontierTrainerMons_Roberto }, - [153] = { + [FRONTIER_TRAINER_DAMIAN] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("DAMIAN"), .speechBefore = {EC_WORD_MY, EC_WORD_PURE_POWER, EC_WORD_IS, EC_WORD_MACHINE, EC_WORD_LIKE, EC_WORD_EXCL}, .speechWin = {EC_WORD_MY, EC_MOVE2(MACH_PUNCH), EC_WORD_WILL, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)}, .speechLose = {EC_WORD_ARRGH, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_EXCL_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Damian + .monSet = gBattleFrontierTrainerMons_Damian }, - [154] = { + [FRONTIER_TRAINER_BRODY] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("BRODY"), .speechBefore = {EC_WORD_MY, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SEEMS, EC_POKEMON(ODDISH), EC_WORD_QUES}, .speechWin = {EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FAMILY, EC_WORD_STAY_AT_HOME, EC_WORD_LOOK, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_QUESTION, EC_WORD_YOUR, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_SERIOUSLY}, - .monSets = gBattleFrontierTrainerMons_Brody + .monSet = gBattleFrontierTrainerMons_Brody }, - [155] = { + [FRONTIER_TRAINER_GRAHAM] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("GRAHAM"), .speechBefore = {EC_WORD_YEAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL, EC_WORD_WAHAHAHA, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_BAD}, - .monSets = gBattleFrontierTrainerMons_Graham + .monSet = gBattleFrontierTrainerMons_Graham }, - [156] = { + [FRONTIER_TRAINER_TYLOR] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("TYLOR"), .speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_FEELING, EC_WORD_MY, EC_MOVE2(HEAT_WAVE), EC_WORD_QUES}, .speechWin = {EC_WORD_YES, EC_WORD_I_AM, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_BUT, EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_FIRE, EC_WORD_FOR, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Tylor + .monSet = gBattleFrontierTrainerMons_Tylor }, - [157] = { + [FRONTIER_TRAINER_JAREN] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("JAREN"), .speechBefore = {EC_WORD_FIGHTING, EC_WORD_SPIRIT, EC_WORD_QUES, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MORE, EC_WORD_CUTE, EC_WORD_POKEMON, 0xFFFF}, .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_LOOK, EC_WORD_QUITE, EC_WORD_CUTE, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Jaren + .monSet = gBattleFrontierTrainerMons_Jaren }, - [158] = { + [FRONTIER_TRAINER_CORDELL] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("CORDELL"), .speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_DECIDED, EC_WORD_ON, EC_WORD_SPIRIT}, .speechWin = {EC_WORD_CAN_T, EC_WORD_YOU, EC_WORD_ACCEPT, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_BE, EC_WORD_ON, EC_WORD_MY, EC_WORD_WAY}, - .monSets = gBattleFrontierTrainerMons_Cordell + .monSet = gBattleFrontierTrainerMons_Cordell }, - [159] = { + [FRONTIER_TRAINER_JAZLYN] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("JAZLYN"), .speechBefore = {EC_WORD_IS, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_REALLY, EC_WORD_AWESOME, EC_WORD_QUES}, .speechWin = {EC_WORD_OH_YEAH, EC_WORD_WOW, EC_WORD_YOUR, EC_WORD_POKEDEX, EC_WORD_IS, EC_WORD_SUPER}, .speechLose = {EC_WORD_AN, EC_WORD_AVANT_GARDE, EC_WORD_POKEDEX, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_AWESOME}, - .monSets = gBattleFrontierTrainerMons_Jazlyn + .monSet = gBattleFrontierTrainerMons_Jazlyn }, - [160] = { + [FRONTIER_TRAINER_ZACHERY] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("ZACHERY"), .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_MY, EC_WORD_OWN, EC_WORD_PLACE, EC_WORD_YEEHAW_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_TIME, EC_WORD_FOR, EC_WORD_ME}, .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_FLATTEN, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Zachery + .monSet = gBattleFrontierTrainerMons_Zachery }, - [161] = { + [FRONTIER_TRAINER_JOHAN] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("JOHAN"), .speechBefore = {EC_WORD_WINTER, EC_WORD_WILL, EC_WORD_SOON, EC_WORD_BE, EC_WORD_HERE, 0xFFFF}, .speechWin = {EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_MOVE2(HELPING_HAND)}, .speechLose = {EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_USE, EC_WORD_MY, EC_WORD_ALLOWANCE, EC_WORD_UP}, - .monSets = gBattleFrontierTrainerMons_Johan + .monSet = gBattleFrontierTrainerMons_Johan }, - [162] = { + [FRONTIER_TRAINER_SHEA] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("SHEA"), .speechBefore = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_WITH, EC_WORD_BEAUTY, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_BATTLE, EC_WORD_IN, EC_WORD_AN, EC_WORD_UGLY, EC_WORD_WAY}, .speechLose = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_BEAUTY, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Shea + .monSet = gBattleFrontierTrainerMons_Shea }, - [163] = { + [FRONTIER_TRAINER_KAILA] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("KAILA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_THIRSTY, EC_WORD_RIGHT, EC_WORD_NOW, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_I, EC_WORD_COULD, EC_WORD_USE, EC_WORD_A, EC_WORD_COLD, EC_WORD_DRINK}, .speechLose = {EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_HARD, EC_WORD_TO, EC_MOVE2(SWALLOW)}, - .monSets = gBattleFrontierTrainerMons_Kaila + .monSet = gBattleFrontierTrainerMons_Kaila }, - [164] = { + [FRONTIER_TRAINER_ISIAH] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("ISIAH"), .speechBefore = {EC_WORD_I, EC_WORD_PRETEND, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_A_LOT, 0xFFFF}, .speechWin = {EC_WORD_I, EC_MOVE2(TRICK), EC_WORD_MOTHER, EC_WORD_FOR, EC_WORD_MY, EC_WORD_ALLOWANCE}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_WANT, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE}, - .monSets = gBattleFrontierTrainerMons_Isiah + .monSet = gBattleFrontierTrainerMons_Isiah }, - [165] = { + [FRONTIER_TRAINER_GARRETT] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_M, .trainerName = _("GARRETT"), .speechBefore = {EC_WORD_I, EC_WORD_ENJOY, EC_WORD_COMICS, EC_WORD_AND, EC_WORD_THIS, EC_WORD_GAME}, .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_THIS, EC_WORD_MUSIC, EC_WORD_IDOL, EC_WORD_TOO}, .speechLose = {EC_WORD_BUT, EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MORE}, - .monSets = gBattleFrontierTrainerMons_Garrett + .monSet = gBattleFrontierTrainerMons_Garrett }, - [166] = { + [FRONTIER_TRAINER_HAYLIE] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("HAYLIE"), .speechBefore = {EC_WORD_I, EC_WORD_WORRY, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_SLEEP}, .speechWin = {EC_WORD_A, EC_WORD_WIN, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A, EC_MOVE2(CALM_MIND)}, .speechLose = {EC_WORD_MY, EC_WORD_INSOMNIA, EC_WORD_WILL, EC_WORD_GET, EC_WORD_BAD, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Haylie + .monSet = gBattleFrontierTrainerMons_Haylie }, - [167] = { + [FRONTIER_TRAINER_MEGAN] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("MEGAN"), .speechBefore = {EC_WORD_I, EC_WORD_BELIEVE, EC_WORD_IN, EC_WORD_AN, EC_MOVE(AROMATHERAPY), EC_WORD_BATH}, .speechWin = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_HEALTHY, EC_WORD_CLEAR_BODY, 0xFFFF}, .speechLose = {EC_WORD_IF, EC_WORD_ONLY, EC_MOVE(AROMATHERAPY), EC_WORD_WERE, EC_WORD_LESS, EC_WORD_EXPENSIVE}, - .monSets = gBattleFrontierTrainerMons_Megan + .monSet = gBattleFrontierTrainerMons_Megan }, - [168] = { + [FRONTIER_TRAINER_ISSAC] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("ISSAC"), .speechBefore = {EC_WORD_MY, EC_WORD_HOBBY, EC_WORD_QUES, 0xFFFF, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(WATER_SPORT)}, .speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_ANY, EC_WORD_KIND, EC_WORD_OF, EC_MOVE2(MUD_SPORT)}, - .monSets = gBattleFrontierTrainerMons_Issac + .monSet = gBattleFrontierTrainerMons_Issac }, - [169] = { + [FRONTIER_TRAINER_QUINTON] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("QUINTON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_SAD, EC_WORD_CAUSE, EC_WORD_I_AM, EC_WORD_TOO_WEAK, 0xFFFF}, .speechWin = {EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_TOO_STRONG, EC_WORD_FOR, EC_WORD_ME, 0xFFFF}, .speechLose = {EC_WORD_HEY, EC_WORD_WHAT, EC_WORD_DID, EC_WORD_I, EC_WORD_DO, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Quinton + .monSet = gBattleFrontierTrainerMons_Quinton }, - [170] = { + [FRONTIER_TRAINER_SALMA] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("SALMA"), .speechBefore = {EC_WORD_YOU_VE, EC_WORD_GOT, EC_WORD_YOUR, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_WIN, EC_WORD_YOU, EC_WORD_HUSTLE, EC_WORD_ON, EC_WORD_OUT}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_I, EC_WORD_LOST}, - .monSets = gBattleFrontierTrainerMons_Salma + .monSet = gBattleFrontierTrainerMons_Salma }, - [171] = { + [FRONTIER_TRAINER_ANSLEY] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("ANSLEY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_ELLIPSIS, EC_WORD_DANCE, EC_WORD_FOR, EC_WORD_ME}, .speechWin = {EC_WORD_YOU_VE, EC_WORD_BORED, EC_WORD_ME, EC_WORD_SOME, EC_WORD_MORE, 0xFFFF}, .speechLose = {EC_WORD_TAKE, EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SOME, EC_WORD_OTHER, EC_WORD_PLACE}, - .monSets = gBattleFrontierTrainerMons_Ansley + .monSet = gBattleFrontierTrainerMons_Ansley }, - [172] = { + [FRONTIER_TRAINER_HOLDEN] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("HOLDEN"), .speechBefore = {EC_WORD_LET_S, EC_WORD_COMMEMORATE, EC_WORD_MY, EC_WORD_COOLNESS, EC_WORD_IN, EC_WORD_BATTLE}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_ANY, EC_WORD_PRAISE, 0xFFFF}, .speechLose = {EC_WORD_YOUR, EC_WORD_BATTLE, EC_WORD_SENSE, EC_WORD_IS, EC_WORD_AMUSING, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Holden + .monSet = gBattleFrontierTrainerMons_Holden }, - [173] = { + [FRONTIER_TRAINER_LUCA] = { .facilityClass = FACILITY_CLASS_BUG_CATCHER, .trainerName = _("LUCA"), .speechBefore = {EC_WORD_WE, EC_WORD_WILL, EC_WORD_HAVE, EC_WORD_A, EC_WORD_COOL, EC_WORD_BATTLE}, .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_IN, EC_WORD_A, EC_WORD_COOL, EC_WORD_WAY}, .speechLose = {EC_WORD_HELLO, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_JUST, EC_WORD_A, EC_WORD_KID}, - .monSets = gBattleFrontierTrainerMons_Luca + .monSet = gBattleFrontierTrainerMons_Luca }, - [174] = { + [FRONTIER_TRAINER_JAMISON] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("JAMISON"), .speechBefore = {EC_WORD_MY, EC_MOVE2(SECRET_POWER), EC_WORD_IS, EC_WORD_OVERWHELMING, EC_WORD_TO, EC_WORD_POKEMON}, .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_USE, EC_MOVE(SMOKESCREEN), EC_WORD_TO, EC_WORD_ESCAPE}, - .monSets = gBattleFrontierTrainerMons_Jamison + .monSet = gBattleFrontierTrainerMons_Jamison }, - [175] = { + [FRONTIER_TRAINER_GUNNAR] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("GUNNAR"), .speechBefore = {EC_WORD_I, EC_MOVE(CUT), EC_WORD_DOWN, EC_WORD_EVERY, EC_WORD_OPPONENT, 0xFFFF}, .speechWin = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_FOR, EC_WORD_YOUR, EC_WORD_LOSS}, .speechLose = {EC_WORD_PLEASE, EC_WORD_LOSE, EC_WORD_THAT, EC_MOVE(SCARY_FACE), EC_WORD_OF, EC_WORD_YOURS}, - .monSets = gBattleFrontierTrainerMons_Gunnar + .monSet = gBattleFrontierTrainerMons_Gunnar }, - [176] = { + [FRONTIER_TRAINER_CRAIG] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("CRAIG"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_FOR, EC_WORD_MY, EC_WORD_TRAIN}, .speechWin = {EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_ISN_T, EC_WORD_HERE, EC_WORD_YET, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_HERE_IT_IS, EC_WORD_MY, EC_WORD_TRAIN, EC_WORD_SEE_YA, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Craig + .monSet = gBattleFrontierTrainerMons_Craig }, - [177] = { + [FRONTIER_TRAINER_PIERCE] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("PIERCE"), .speechBefore = {EC_WORD_THERE, EC_WORD_WAS, EC_WORD_A, EC_MOVE2(HEAT_WAVE), EC_WORD_LAST, EC_WORD_WEEK}, .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(HEAT_WAVE), 0xFFFF}, .speechLose = {EC_WORD_DIDN_T, EC_WORD_IT, EC_MOVE(HAIL), EC_WORD_TOO, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Pierce + .monSet = gBattleFrontierTrainerMons_Pierce }, - [178] = { + [FRONTIER_TRAINER_REGINA] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("REGINA"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PLAY, EC_WORD_IN, EC_WORD_WATER}, .speechWin = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_COME, EC_WORD_OUT, 0xFFFF}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_MUCH, EC_WORD_GOOD, EC_WORD_IN, EC_WORD_WATER}, - .monSets = gBattleFrontierTrainerMons_Regina + .monSet = gBattleFrontierTrainerMons_Regina }, - [179] = { + [FRONTIER_TRAINER_ALISON] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("ALISON"), .speechBefore = {EC_WORD_THIS, EC_WORD_KINDERGARTEN, EC_WORD_MAGAZINE, EC_WORD_IS, EC_WORD_TOO, EC_WORD_MUCH}, .speechWin = {EC_WORD_HOW, EC_WORD_TO, EC_WORD_BUG, EC_WORD_YOUR, EC_WORD_TEACHER, EC_WORD_QUES}, .speechLose = {EC_WORD_ENJOY, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SCHOOL, EC_WORD_DIET, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Alison + .monSet = gBattleFrontierTrainerMons_Alison }, - [180] = { + [FRONTIER_TRAINER_HANK] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("HANK"), .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_A, EC_WORD_BUG, EC_WORD_EVENT, EC_WORD_SOON}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_BUG, EC_WORD_FASHION, EC_WORD_SHOW, EC_WORD_EXCL}, .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Hank + .monSet = gBattleFrontierTrainerMons_Hank }, - [181] = { + [FRONTIER_TRAINER_EARL] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("EARL"), .speechBefore = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_IS, EC_WORD_HERE}, .speechWin = {EC_WORD_THE, EC_WORD_INVINCIBLE, EC_WORD_BUG, EC_WORD_TRAINER, EC_WORD_AM, EC_WORD_I}, .speechLose = {EC_WORD_SEE, EC_WORD_HOW, EC_WORD_FAST, EC_WORD_I, EC_WORD_RUN_AWAY, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Earl + .monSet = gBattleFrontierTrainerMons_Earl }, - [182] = { + [FRONTIER_TRAINER_RAMIRO] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("RAMIRO"), .speechBefore = {EC_WORD_I, EC_WORD_WENT, EC_WORD_TO, EC_WORD_A, EC_WORD_FISHING, EC_WORD_SCHOOL}, .speechWin = {EC_WORD_SERIOUSLY, EC_WORD_I_AM, EC_WORD_IN, EC_WORD_THE, EC_WORD_FISHING, EC_WORD_HALL_OF_FAME}, .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_BACK, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Ramiro + .monSet = gBattleFrontierTrainerMons_Ramiro }, - [183] = { + [FRONTIER_TRAINER_HUNTER] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("HUNTER"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_A, EC_WORD_TOTALLY, EC_WORD_COOL, EC_MOVE(CROSS_CHOP)}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE(CROSS_CHOP)}, .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_A, EC_WORD_MISTAKE, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Hunter + .monSet = gBattleFrontierTrainerMons_Hunter }, - [184] = { + [FRONTIER_TRAINER_AIDEN] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("AIDEN"), .speechBefore = {EC_WORD_MY, EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_HEALTHY}, .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_HEALTHY, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_HEALTHY, EC_WORD_THAN, EC_WORD_I_AM, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Aiden + .monSet = gBattleFrontierTrainerMons_Aiden }, - [185] = { + [FRONTIER_TRAINER_XAVIER] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("XAVIER"), .speechBefore = {EC_WORD_HEY_THERE, EC_WORD_EXCL, 0xFFFF, EC_WORD_LOOK, EC_WORD_LOOK, EC_WORD_EXCL_EXCL}, .speechWin = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, EC_WORD_THAT_WAS, EC_WORD_FUNNY, 0xFFFF}, .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL, 0xFFFF, EC_WORD_NO, EC_WORD_NO, EC_WORD_EXCL_EXCL}, - .monSets = gBattleFrontierTrainerMons_Xavier + .monSet = gBattleFrontierTrainerMons_Xavier }, - [186] = { + [FRONTIER_TRAINER_CLINTON] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("CLINTON"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_QUES}, .speechWin = {EC_WORD_YOUR, EC_MOVE2(FURY_SWIPES), EC_WORD_YOUR, EC_MOVE(STRENGTH), EC_WORD_YOUNG, EC_WORD_TRAINER}, .speechLose = {EC_WORD_TCH, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Clinton + .monSet = gBattleFrontierTrainerMons_Clinton }, - [187] = { + [FRONTIER_TRAINER_JESSE] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("JESSE"), .speechBefore = {EC_WORD_THIS, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_FOR, EC_WORD_MY, EC_WORD_MOTHER}, .speechWin = {EC_WORD_MOTHER, EC_WORD_WILL, EC_WORD_BE, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_ME}, .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_MY, EC_WORD_MOTHER, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Jesse + .monSet = gBattleFrontierTrainerMons_Jesse }, - [188] = { + [FRONTIER_TRAINER_EDUARDO] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("EDUARDO"), .speechBefore = {EC_WORD_OUR, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ALL, EC_WORD_NIGHT}, .speechWin = {EC_WORD_NIGHTTIME, EC_WORD_IS, EC_WORD_WHEN, EC_WORD_I, EC_WORD_PLAY, EC_WORD_BEST}, .speechLose = {EC_WORD_LET_S, EC_WORD_PARTY, EC_WORD_UNTIL, EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Eduardo + .monSet = gBattleFrontierTrainerMons_Eduardo }, - [189] = { + [FRONTIER_TRAINER_HAL] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("HAL"), .speechBefore = {EC_WORD_I_AM, EC_WORD_TRENDY, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_QUES, 0xFFFF}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_HIP_AND, EC_WORD_HAPPENING, EC_WORD_OH_YEAH, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_TRENDY, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, - .monSets = gBattleFrontierTrainerMons_Hal + .monSet = gBattleFrontierTrainerMons_Hal }, - [190] = { + [FRONTIER_TRAINER_GAGE] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("GAGE"), .speechBefore = {EC_WORD_HERE_IT_IS, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_HIDDEN, EC_WORD_MOVE}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_FLYING, EC_WORD_TYPE, EC_WORD_VICTORY, EC_WORD_EXCL}, .speechLose = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_JUST, EC_MOVE(FLY), EC_WORD_AWAY, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Gage + .monSet = gBattleFrontierTrainerMons_Gage }, - [191] = { + [FRONTIER_TRAINER_ARNOLD] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("ARNOLD"), .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_WEIRD, EC_WORD_FROM, EC_WORD_A, EC_WORD_DREAM}, .speechWin = {EC_WORD_YOUR, EC_MOVE(SCARY_FACE), EC_WORD_WAS, EC_WORD_IN, EC_WORD_MY, EC_WORD_DREAM}, .speechLose = {EC_WORD_MY, EC_WORD_INCREDIBLE, EC_WORD_DREAM, EC_WORD_WAS, EC_WORD_SO, EC_WORD_WEIRD}, - .monSets = gBattleFrontierTrainerMons_Arnold + .monSet = gBattleFrontierTrainerMons_Arnold }, - [192] = { + [FRONTIER_TRAINER_JARRETT] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("JARRETT"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_YESTERDAY}, .speechWin = {EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_APPRECIATE, EC_WORD_HOW, EC_WORD_I, EC_WORD_DANCE}, - .monSets = gBattleFrontierTrainerMons_Jarrett + .monSet = gBattleFrontierTrainerMons_Jarrett }, - [193] = { + [FRONTIER_TRAINER_GARETT] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("GARETT"), .speechBefore = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_GIVES, EC_WORD_ME, EC_WORD_A_LITTLE, EC_MOVE2(SWEET_KISS)}, .speechWin = {EC_WORD_MY, EC_WORD_GIRL, EC_WORD_FRIEND, EC_WORD_IS, EC_WORD_MY, EC_WORD_TREASURE}, .speechLose = {EC_WORD_A, EC_WORD_TREASURE, EC_WORD_ISN_T, EC_WORD_ALWAYS, EC_WORD_ABOUT, EC_WORD_MONEY}, - .monSets = gBattleFrontierTrainerMons_Garett + .monSet = gBattleFrontierTrainerMons_Garett }, - [194] = { + [FRONTIER_TRAINER_EMANUEL] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("EMANUEL"), .speechBefore = {EC_WORD_SMARTNESS, EC_WORD_ALONE, EC_WORD_WON_T, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_WIN}, .speechWin = {EC_WORD_I_AM, EC_WORD_NOT_VERY, EC_WORD_SMART, EC_WORD_BUT, EC_WORD_I, EC_WORD_WON}, .speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_YOU, EC_MOVE2(FAKE_OUT), EC_WORD_ME, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Emanuel + .monSet = gBattleFrontierTrainerMons_Emanuel }, - [195] = { + [FRONTIER_TRAINER_GUSTAVO] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("GUSTAVO"), .speechBefore = {EC_MOVE(CHARGE), EC_WORD_EXCL, 0xFFFF, EC_MOVE(CHARGE), EC_WORD_EXCL_EXCL, 0xFFFF}, .speechWin = {EC_WORD_SURRENDER, EC_WORD_QUES, 0xFFFF, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_SURRENDER, EC_WORD_YET}, - .monSets = gBattleFrontierTrainerMons_Gustavo + .monSet = gBattleFrontierTrainerMons_Gustavo }, - [196] = { + [FRONTIER_TRAINER_KAMERON] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("KAMERON"), .speechBefore = {EC_WORD_TAKE_THAT, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK)}, .speechWin = {EC_WORD_DID, EC_WORD_MY, EC_WORD_FIERY, EC_MOVE2(TRICK), EC_MOVE(ASTONISH), EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_FALL, EC_WORD_FOR, EC_WORD_MY, EC_MOVE2(TRICK)}, - .monSets = gBattleFrontierTrainerMons_Kameron + .monSet = gBattleFrontierTrainerMons_Kameron }, - [197] = { + [FRONTIER_TRAINER_ALFREDO] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("ALFREDO"), .speechBefore = {EC_WORD_A, EC_WORD_FIERY, EC_WORD_GOURMET, EC_WORD_AM, EC_WORD_I, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_TASTY, EC_WORD_GOURMET, EC_WORD_VICTORY, EC_WORD_EXCL}, .speechLose = {EC_WORD_WHAT, EC_WORD_A, EC_WORD_DISASTER, EC_WORD_THAT_WAS, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Alfredo + .monSet = gBattleFrontierTrainerMons_Alfredo }, - [198] = { + [FRONTIER_TRAINER_RUBEN] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("RUBEN"), .speechBefore = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_WAIT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING}, .speechWin = {EC_WORD_GET, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, .speechLose = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_GET, EC_WORD_GOING, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Ruben + .monSet = gBattleFrontierTrainerMons_Ruben }, - [199] = { + [FRONTIER_TRAINER_LAMAR] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("LAMAR"), .speechBefore = {EC_WORD_A, EC_MOVE2(PRESENT), EC_WORD_FOR, EC_WORD_ME, EC_WORD_QUES, 0xFFFF}, .speechWin = {EC_WORD_MMM, EC_WORD_THIS, EC_WORD_IS, EC_WORD_QUITE, EC_WORD_TASTY, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_OH, EC_WORD_IT_S, EC_WORD_A, EC_WORD_GAME, EC_WORD_IS_IT_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Lamar + .monSet = gBattleFrontierTrainerMons_Lamar }, - [200] = { + [FRONTIER_TRAINER_JAXON] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("JAXON"), .speechBefore = {EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_WANT}, .speechWin = {EC_WORD_MY, EC_WORD_FATHER, EC_WORD_AND, EC_WORD_MOTHER, EC_WORD_WON_T, EC_WORD_ACCEPT}, .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_SHELL_ARMOR, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Jaxon + .monSet = gBattleFrontierTrainerMons_Jaxon }, - [201] = { + [FRONTIER_TRAINER_LOGAN] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("LOGAN"), .speechBefore = {EC_WORD_IF_I_LOSE, EC_WORD_I, EC_WORD_WILL, EC_WORD_STUDY, EC_WORD_FOR, EC_WORD_SCHOOL}, .speechWin = {EC_WORD_ME, EC_WORD_STUDY, EC_WORD_QUES, EC_WORD_NOT_VERY, EC_WORD_LIKELY_TO, EC_WORD_SEE}, .speechLose = {EC_WORD_NO, EC_WORD_THANKS, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SLEEP}, - .monSets = gBattleFrontierTrainerMons_Logan + .monSet = gBattleFrontierTrainerMons_Logan }, - [202] = { + [FRONTIER_TRAINER_EMILEE] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("EMILEE"), .speechBefore = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_KIND, EC_WORD_OF, EC_WORD_BATTLE, EC_WORD_OK_QUES}, .speechWin = {EC_WORD_LET_S, EC_WORD_GO, EC_WORD_FOR, EC_WORD_AN, EC_MOVE(ICY_WIND), EC_MOVE2(SURF)}, .speechLose = {EC_WORD_HOW, EC_WORD_ABOUT, EC_WORD_A, EC_MOVE(ROCK_SLIDE), EC_WORD_SHOW, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Emilee + .monSet = gBattleFrontierTrainerMons_Emilee }, - [203] = { + [FRONTIER_TRAINER_JOSIE] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("JOSIE"), .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FASHION, EC_WORD_CONTEST, EC_WORD_IS, EC_WORD_PRETTY}, .speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_LIKE, EC_WORD_MODE, EC_WORD_FASHION, EC_WORD_THINGS}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOTALLY, EC_WORD_LACKING, EC_WORD_IN, EC_WORD_FASHION, EC_WORD_SENSE}, - .monSets = gBattleFrontierTrainerMons_Josie + .monSet = gBattleFrontierTrainerMons_Josie }, - [204] = { + [FRONTIER_TRAINER_ARMANDO] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("ARMANDO"), .speechBefore = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON}, .speechWin = {EC_WORD_TRADE, EC_WORD_ME, EC_WORD_A, EC_WORD_GRASS, EC_WORD_POKEMON, EC_WORD_PLEASE}, .speechLose = {EC_WORD_THERE, EC_WORD_AREN_T, EC_WORD_ENOUGH, EC_WORD_GRASS, EC_WORD_TYPE, EC_WORD_POKEMON}, - .monSets = gBattleFrontierTrainerMons_Armando + .monSet = gBattleFrontierTrainerMons_Armando }, - [205] = { + [FRONTIER_TRAINER_SKYLER] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("SKYLER"), .speechBefore = {EC_MOVE2(INGRAIN), EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_BATTLE, EC_WORD_MOVE}, .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MOVE, EC_WORD_ME, EC_WORD_NOW, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DOWN, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Skyler + .monSet = gBattleFrontierTrainerMons_Skyler }, - [206] = { + [FRONTIER_TRAINER_RUTH] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("RUTH"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_BATTLE}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_PLEASE, EC_WORD_STOP, EC_WORD_I, EC_WORD_DON_T, EC_WORD_ENJOY, EC_WORD_THIS}, - .monSets = gBattleFrontierTrainerMons_Ruth + .monSet = gBattleFrontierTrainerMons_Ruth }, - [207] = { + [FRONTIER_TRAINER_MELODY] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("MELODY"), .speechBefore = {EC_WORD_I, EC_MOVE2(WISH), EC_WORD_SUNDAY, EC_WORD_IS, EC_WORD_A, EC_MOVE2(SUNNY_DAY)}, .speechWin = {EC_WORD_SUNDAY, EC_WORD_SEEMS, EC_WORD_FOREVER, EC_WORD_TO, EC_WORD_COME, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_THE, EC_WORD_FORECAST, EC_WORD_SAYS, EC_WORD_IT, EC_WORD_WILL, EC_MOVE(HAIL)}, - .monSets = gBattleFrontierTrainerMons_Melody + .monSet = gBattleFrontierTrainerMons_Melody }, - [208] = { + [FRONTIER_TRAINER_PEDRO] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("PEDRO"), .speechBefore = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WILL, EC_WORD_DO, EC_WORD_YOU, EC_WORD_GOOD}, .speechWin = {EC_WORD_THAT_S, EC_WORD_HOW, EC_WORD_I, EC_WORD_SINK, EC_WORD_AN, EC_WORD_OPPONENT}, .speechLose = {EC_WORD_UH_OH, EC_WORD_EXCL, 0xFFFF, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Pedro + .monSet = gBattleFrontierTrainerMons_Pedro }, - [209] = { + [FRONTIER_TRAINER_ERICK] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("ERICK"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE2(TACKLE), EC_WORD_YOU, EC_WORD_DOWN, EC_WORD_EXCL}, .speechWin = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_RUN_AWAY, EC_WORD_YOU, EC_WORD_LOSER, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_THINK, EC_WORD_YOU, EC_WORD_WOULD, EC_MOVE(COUNTER)}, - .monSets = gBattleFrontierTrainerMons_Erick + .monSet = gBattleFrontierTrainerMons_Erick }, - [210] = { + [FRONTIER_TRAINER_ELAINE] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("ELAINE"), .speechBefore = {EC_WORD_MY, EC_WORD_HEROINE, EC_WORD_ADVENTURE, EC_WORD_ISN_T, EC_WORD_GOING, EC_WORD_WELL}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I, EC_WORD_NEED}, .speechLose = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_HEROINE}, - .monSets = gBattleFrontierTrainerMons_Elaine + .monSet = gBattleFrontierTrainerMons_Elaine }, - [211] = { + [FRONTIER_TRAINER_JOYCE] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("JOYCE"), .speechBefore = {EC_WORD_YOU, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_GO, EC_WORD_AHAHA, EC_WORD_EXCL}, .speechWin = {EC_WORD_LALALA, EC_WORD_NO, EC_WORD_LOSING, EC_WORD_FOR, EC_WORD_ME, EC_WORD_EXCL}, .speechLose = {EC_WORD_LALALA, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_HUH_QUES, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Joyce + .monSet = gBattleFrontierTrainerMons_Joyce }, - [212] = { + [FRONTIER_TRAINER_TODD] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("TODD"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LIGHTNINGROD, EC_WORD_FOR, EC_WORD_MY, EC_WORD_POWER}, .speechWin = {EC_WORD_THAT_S, EC_WORD_ALL, EC_WORD_YOU, EC_WORD_COULD, EC_MOVE(ABSORB), EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_MOVE2(REFLECT), EC_WORD_MY, EC_WORD_POWER, EC_WORD_BACK, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Todd + .monSet = gBattleFrontierTrainerMons_Todd }, - [213] = { + [FRONTIER_TRAINER_GAVIN] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("GAVIN"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(BIDE), EC_WORD_MY, EC_WORD_TIME, 0xFFFF}, .speechWin = {EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_MY, EC_WORD_MISTAKE, EC_WORD_WAS, EC_WORD_TOO, EC_WORD_EXPENSIVE, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Gavin + .monSet = gBattleFrontierTrainerMons_Gavin }, - [214] = { + [FRONTIER_TRAINER_MALORY] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("MALORY"), .speechBefore = {EC_WORD_PROMISE, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_ME, EC_WORD_CUTE, EC_WORD_POKEMON}, .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_SO, EC_WORD_MUCH}, .speechLose = {EC_WORD_TCH, EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_NICE}, - .monSets = gBattleFrontierTrainerMons_Malory + .monSet = gBattleFrontierTrainerMons_Malory }, - [215] = { + [FRONTIER_TRAINER_ESTHER] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("ESTHER"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_A, EC_WORD_NICE, EC_MOVE2(PRESENT), EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_PLEASE, EC_WORD_GET, EC_WORD_ME, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_GAME}, .speechLose = {EC_WORD_MESSAGE, EC_WORD_CARDS, EC_WORD_MAKE, EC_WORD_A, EC_WORD_WEAK, EC_MOVE2(PRESENT)}, - .monSets = gBattleFrontierTrainerMons_Esther + .monSet = gBattleFrontierTrainerMons_Esther }, - [216] = { + [FRONTIER_TRAINER_OSCAR] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("OSCAR"), .speechBefore = {EC_WORD_LET_S, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POWER, EC_WORD_IN, EC_WORD_FULL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_NOT, EC_WORD_YOUR, EC_WORD_FULL, EC_WORD_POWER, EC_WORD_EXCL}, .speechLose = {EC_WORD_NOT, EC_WORD_FUNNY, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_TOO_STRONG, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Oscar + .monSet = gBattleFrontierTrainerMons_Oscar }, - [217] = { + [FRONTIER_TRAINER_WILSON] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_M, .trainerName = _("WILSON"), .speechBefore = {EC_WORD_WORK, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_AN, EC_WORD_EARLY_BIRD}, .speechWin = {EC_WORD_ALL, EC_WORD_WORK, EC_WORD_AND, EC_WORD_NO, EC_WORD_PLAY, EC_WORD_ELLIPSIS}, .speechLose = {EC_MOVE(ENDURE), EC_WORD_IS, EC_WORD_ALL, EC_WORD_I, EC_WORD_CAN, EC_WORD_DO}, - .monSets = gBattleFrontierTrainerMons_Wilson + .monSet = gBattleFrontierTrainerMons_Wilson }, - [218] = { + [FRONTIER_TRAINER_CLARE] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("CLARE"), .speechBefore = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_A, EC_WORD_TOUGH, EC_WORD_TRAINER, EC_WORD_EXCL}, .speechWin = {EC_WORD_AWW, EC_WORD_EXCL, EC_WORD_A, EC_WORD_WIMPY, EC_WORD_TRAINER, EC_WORD_EXCL}, .speechLose = {EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_TRAINER, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Clare + .monSet = gBattleFrontierTrainerMons_Clare }, - [219] = { + [FRONTIER_TRAINER_TESS] = { .facilityClass = FACILITY_CLASS_PKMN_BREEDER_F, .trainerName = _("TESS"), .speechBefore = {EC_WORD_WANT, EC_WORD_SOME, EC_POKEMON(GULPIN), EC_WORD_DESIGN, EC_WORD_SWEETS, EC_WORD_QUES}, .speechWin = {EC_WORD_THEY_RE, EC_WORD_A, EC_WORD_SECRET, EC_WORD_POKEMON, EC_WORD_GOURMET, EC_WORD_ITEM}, .speechLose = {EC_WORD_THEY_RE, EC_WORD_TASTY, EC_WORD_EXCL, EC_WORD_REFRESHING, EC_WORD_TOO, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Tess + .monSet = gBattleFrontierTrainerMons_Tess }, - [220] = { + [FRONTIER_TRAINER_LEON] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("LEON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_BETTER, EC_WORD_THAN, EC_WORD_ANY, EC_WORD_OTHER, EC_WORD_TRAINER}, .speechWin = {EC_WORD_I, EC_WORD_DID, EC_WORD_IT, EC_MOVE2(JUMP_KICK), EC_WORD_FOR, EC_WORD_JOY}, .speechLose = {EC_WORD_BACK, EC_WORD_HOME, EC_WORD_I, EC_WORD_WILL, EC_WORD_GO, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Leon + .monSet = gBattleFrontierTrainerMons_Leon }, - [221] = { + [FRONTIER_TRAINER_ALONZO] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("ALONZO"), .speechBefore = {EC_WORD_I_VE, EC_WORD_NOT, EC_WORD_LOST, EC_WORD_ONCE, EC_WORD_YET, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOUR, EC_WORD_SAD, EC_WORD_LOOK, EC_WORD_BECOMES, EC_WORD_YOU, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Alonzo + .monSet = gBattleFrontierTrainerMons_Alonzo }, - [222] = { + [FRONTIER_TRAINER_VINCE] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("VINCE"), .speechBefore = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL}, .speechWin = {EC_WORD_THE, EC_WORD_TOP, EC_WORD_RANK, EC_WORD_BELONGS_TO, EC_WORD_ME, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_APPEAL, EC_WORD_THIS, EC_MOVE(OUTRAGE), EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Vince + .monSet = gBattleFrontierTrainerMons_Vince }, - [223] = { + [FRONTIER_TRAINER_BRYON] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("BRYON"), .speechBefore = {EC_WORD_MY, EC_MOVE2(BARRAGE), EC_WORD_WILL, EC_MOVE2(SLAM), EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOU, EC_WORD_DIDN_T, EC_WORD_COUNT_ON, EC_WORD_ANY, EC_WORD_LESS, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_IT, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Bryon + .monSet = gBattleFrontierTrainerMons_Bryon }, - [224] = { + [FRONTIER_TRAINER_AVA] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("AVA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_TREASURE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_WORLD}, .speechWin = {EC_WORD_MY, EC_WORD_WORLD, EC_WORD_IS, EC_WORD_FULL, EC_WORD_OF, EC_WORD_WONDER}, .speechLose = {EC_WORD_WHY, EC_WORD_ARE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_TERRIBLE, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Ava + .monSet = gBattleFrontierTrainerMons_Ava }, - [225] = { + [FRONTIER_TRAINER_MIRIAM] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("MIRIAM"), .speechBefore = {EC_WORD_OH, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_WITH, EC_WORD_A, EC_MOVE(SCARY_FACE)}, .speechWin = {EC_WORD_AHAHA, EC_WORD_YOU, EC_WORD_ONLY, EC_WORD_LOOK, EC_WORD_SCARY, EC_WORD_EXCL}, .speechLose = {EC_WORD_AIYEEH, EC_WORD_EXCL, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_ARE, EC_WORD_SCARY}, - .monSets = gBattleFrontierTrainerMons_Miriam + .monSet = gBattleFrontierTrainerMons_Miriam }, - [226] = { + [FRONTIER_TRAINER_CARRIE] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("CARRIE"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SHOW, EC_WORD_YOU, EC_WORD_GUTSY, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_ABOUT, EC_WORD_GUTS, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_OH, EC_WORD_NO, EC_WORD_ELLIPSIS, EC_MOVE(SELF_DESTRUCT), EC_WORD_MODE, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Carrie + .monSet = gBattleFrontierTrainerMons_Carrie }, - [227] = { + [FRONTIER_TRAINER_GILLIAN2] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("GILLIAN"), .speechBefore = {EC_WORD_I, EC_WORD_SEEK, EC_WORD_A, EC_WORD_TRULY, EC_WORD_GREAT, EC_WORD_BATTLE}, .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_A_LOT, EC_WORD_BETTER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_A_LITTLE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE}, - .monSets = gBattleFrontierTrainerMons_Gillian2 + .monSet = gBattleFrontierTrainerMons_Gillian2 }, - [228] = { + [FRONTIER_TRAINER_TYLER] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("TYLER"), .speechBefore = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_LET_S, EC_WORD_GO, EC_WORD_EXCL_EXCL}, .speechWin = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_WON, EC_WORD_YO}, .speechLose = {EC_WORD_YO, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_LOST, EC_WORD_YO}, - .monSets = gBattleFrontierTrainerMons_Tyler + .monSet = gBattleFrontierTrainerMons_Tyler }, - [229] = { + [FRONTIER_TRAINER_CHAZ] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("CHAZ"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_HAVE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_POWER}, .speechWin = {EC_WORD_THEY, EC_WORD_HAVE, EC_WORD_MORE, EC_WORD_POWER, EC_WORD_NOW, EC_WORD_EXCL}, .speechLose = {EC_WORD_YEAH, EC_MOVE2(TAKE_DOWN), EC_WORD_THEIR, EC_WORD_POWER, EC_WORD_A_TINY_BIT, EC_WORD_PLEASE}, - .monSets = gBattleFrontierTrainerMons_Chaz + .monSet = gBattleFrontierTrainerMons_Chaz }, - [230] = { + [FRONTIER_TRAINER_NELSON] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_M, .trainerName = _("NELSON"), .speechBefore = {EC_WORD_WELL_THEN, EC_WORD_WILL, EC_WORD_THIS, EC_WORD_POKEMON, EC_WORD_WORK, EC_WORD_QUES}, .speechWin = {EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_IT, EC_WORD_WAS, EC_WORD_TOO_STRONG}, .speechLose = {EC_WORD_IT, EC_WORD_DIDN_T, EC_WORD_MATCH_UP, EC_WORD_WELL, EC_WORD_I, EC_WORD_THINK}, - .monSets = gBattleFrontierTrainerMons_Nelson + .monSet = gBattleFrontierTrainerMons_Nelson }, - [231] = { + [FRONTIER_TRAINER_SHANIA] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("SHANIA"), .speechBefore = {EC_WORD_ALL, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ABSOLUTELY, EC_WORD_ADORE, EC_WORD_ME}, .speechWin = {EC_WORD_HAPPINESS, EC_WORD_IS, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_WITH, EC_WORD_CUTE_CHARM}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_MEAN, EC_WORD_TO, EC_WORD_CUTE, EC_WORD_POKEMON}, - .monSets = gBattleFrontierTrainerMons_Shania + .monSet = gBattleFrontierTrainerMons_Shania }, - [232] = { + [FRONTIER_TRAINER_STELLA] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("STELLA"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOUR, EC_WORD_POKEMON}, .speechWin = {EC_WORD_WELL, EC_WORD_AREN_T, EC_WORD_THEY, EC_WORD_BORING, EC_WORD_QUES, EC_WORD_AHAHA}, .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ALL_RIGHT}, - .monSets = gBattleFrontierTrainerMons_Stella + .monSet = gBattleFrontierTrainerMons_Stella }, - [233] = { + [FRONTIER_TRAINER_DORINE] = { .facilityClass = FACILITY_CLASS_PKMN_RANGER_F, .trainerName = _("DORINE"), .speechBefore = {EC_WORD_I_AM, EC_WORD_YOUNG, EC_WORD_AND, EC_WORD_STRONG, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_AREN_T, EC_WORD_I, EC_WORD_GOOD, EC_WORD_QUES}, .speechLose = {EC_WORD_THIS, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_OUT, EC_WORD_AT, EC_WORD_ALL}, - .monSets = gBattleFrontierTrainerMons_Dorine + .monSet = gBattleFrontierTrainerMons_Dorine }, - [234] = { + [FRONTIER_TRAINER_MADDOX] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("MADDOX"), .speechBefore = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_MY, EC_WORD_NO_1, EC_WORD_CHOICE}, .speechWin = {EC_WORD_IT_S, EC_WORD_NO, EC_WORD_SECRET, EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_WIN}, .speechLose = {EC_WORD_DRAGON, EC_WORD_POKEMON, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_LOSE, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Maddox + .monSet = gBattleFrontierTrainerMons_Maddox }, - [235] = { + [FRONTIER_TRAINER_DAVIN] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("DAVIN"), .speechBefore = {EC_WORD_LET_S, EC_WORD_HEAR, EC_WORD_YOU, EC_MOVE2(ROAR), EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_VICTORY, EC_WORD_EXCL_EXCL, 0xFFFF}, .speechLose = {EC_WORD_WROOOAAR_EXCL, 0xFFFF, 0xFFFF, EC_WORD_WHY, EC_WORD_QUES_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Davin + .monSet = gBattleFrontierTrainerMons_Davin }, - [236] = { + [FRONTIER_TRAINER_TREVON] = { .facilityClass = FACILITY_CLASS_DRAGON_TAMER, .trainerName = _("TREVON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_ONLY, EC_WORD_WITH, EC_WORD_DRAGON, EC_WORD_POKEMON}, .speechWin = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING, EC_WORD_IS, EC_WORD_PERFECT}, .speechLose = {EC_WORD_YOU_VE, EC_WORD_DESTROYED, EC_WORD_THE, EC_WORD_WAY, EC_WORD_I_AM, EC_WORD_LIVING}, - .monSets = gBattleFrontierTrainerMons_Trevon + .monSet = gBattleFrontierTrainerMons_Trevon }, - [237] = { + [FRONTIER_TRAINER_MATEO] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("MATEO"), .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_OVER, EC_WORD_SOON, EC_WORD_ENOUGH}, .speechWin = {EC_WORD_WELL, EC_WORD_THAT, EC_WORD_DIDN_T, EC_WORD_TAKE, EC_WORD_VERY, EC_WORD_MUCH}, .speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_LOSE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Mateo + .monSet = gBattleFrontierTrainerMons_Mateo }, - [238] = { + [FRONTIER_TRAINER_BRET] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("BRET"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_ROCK_SOLID, EC_WORD_POKEMON, EC_WORD_THE, EC_WORD_BEST}, .speechWin = {EC_WORD_TOUGHNESS, EC_WORD_IS, EC_WORD_THE, EC_WORD_WAY, EC_WORD_TO, EC_WORD_GO}, .speechLose = {EC_WORD_I, EC_WORD_ALSO, EC_WORD_HAVE, EC_WORD_A, EC_WORD_PLUSH_DOLL, EC_WORD_COLLECTION}, - .monSets = gBattleFrontierTrainerMons_Bret + .monSet = gBattleFrontierTrainerMons_Bret }, - [239] = { + [FRONTIER_TRAINER_RAUL] = { .facilityClass = FACILITY_CLASS_BLACK_BELT, .trainerName = _("RAUL"), .speechBefore = {EC_WORD_I, EC_WORD_REJECT, EC_WORD_EVERY, EC_WORD_WEAK, EC_WORD_TRAINER, 0xFFFF}, .speechWin = {EC_WORD_HUMPH, EC_WORD_EXCL, EC_WORD_ANOTHER, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NOTHING, EC_WORD_WEAK, EC_WORD_ABOUT, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Raul + .monSet = gBattleFrontierTrainerMons_Raul }, - [240] = { + [FRONTIER_TRAINER_KAY] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("KAY"), .speechBefore = {EC_WORD_AND, EC_WORD_YET, EC_WORD_ANOTHER, EC_WORD_BATTLE, EC_WORD_QUES, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I_AM, EC_WORD_TIRED, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_GOOD, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_AT, EC_WORD_LAST, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Kay + .monSet = gBattleFrontierTrainerMons_Kay }, - [241] = { + [FRONTIER_TRAINER_ELENA] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("ELENA"), .speechBefore = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_THAT_S, EC_WORD_ME, EC_WORD_EXCL}, .speechWin = {EC_WORD_ISN_T, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_AWESOME, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_GIRL, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Elena + .monSet = gBattleFrontierTrainerMons_Elena }, - [242] = { + [FRONTIER_TRAINER_ALANA] = { .facilityClass = FACILITY_CLASS_BATTLE_GIRL, .trainerName = _("ALANA"), .speechBefore = {EC_WORD_EAT, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK, EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_LEARN, 0xFFFF}, .speechLose = {EC_WORD_SO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_INVINCIBLE, EC_WORD_ATTACK}, - .monSets = gBattleFrontierTrainerMons_Alana + .monSet = gBattleFrontierTrainerMons_Alana }, - [243] = { + [FRONTIER_TRAINER_ALEXAS] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("ALEXAS"), .speechBefore = {EC_WORD_GOOD, EC_WORD_TO, EC_WORD_MEET_YOU, EC_WORD_YOUNG, EC_WORD_TRAINER, EC_WORD_EXCL}, .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, 0xFFFF, EC_WORD_GIVE, EC_WORD_IT, EC_WORD_UP}, .speechLose = {EC_WORD_YOU, EC_WORD_ARE, EC_WORD_A, EC_WORD_STRONG, EC_WORD_TRAINER, EC_WORD_KID}, - .monSets = gBattleFrontierTrainerMons_Alexas + .monSet = gBattleFrontierTrainerMons_Alexas }, - [244] = { + [FRONTIER_TRAINER_WESTON] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("WESTON"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_PLAY, EC_WORD_DOWN, EC_WORD_ALL_RIGHT, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_FAR, EC_WORD_TOO, EC_WORD_EASY, EC_WORD_TO, EC_WORD_ATTACK}, .speechLose = {EC_WORD_WELL, EC_WORD_WELL, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Weston + .monSet = gBattleFrontierTrainerMons_Weston }, - [245] = { + [FRONTIER_TRAINER_JASPER] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("JASPER"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OLD, EC_WORD_I_AM, EC_WORD_SKILLED, EC_WORD_EXCL}, .speechWin = {EC_WORD_SKILLED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_I_AM, EC_WORD_SHOCKED, EC_WORD_EXCL, EC_WORD_DOWN, EC_WORD_I, EC_WORD_GO}, - .monSets = gBattleFrontierTrainerMons_Jasper + .monSet = gBattleFrontierTrainerMons_Jasper }, - [246] = { + [FRONTIER_TRAINER_NADIA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("NADIA"), .speechBefore = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, EC_WORD_DOWN, EC_WORD_EXCL}, .speechWin = {EC_WORD_HAH, EC_WORD_EXCL, 0xFFFF, EC_WORD_I, EC_WORD_BEAT, EC_WORD_YOU}, .speechLose = {EC_WORD_I_AM, EC_MOVE2(BEAT_UP), EC_WORD_AND, EC_WORD_DOWNCAST, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Nadia + .monSet = gBattleFrontierTrainerMons_Nadia }, - [247] = { + [FRONTIER_TRAINER_MIRANDA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("MIRANDA"), .speechBefore = {EC_WORD_WELL, EC_WORD_WELL, 0xFFFF, EC_WORD_LET_S, EC_WORD_START, 0xFFFF}, .speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_DONE, EC_WORD_SO, EC_WORD_SOON, EC_WORD_QUES}, .speechLose = {EC_WORD_WELL, EC_WORD_I, EC_WORD_SEE, EC_WORD_THAT, EC_WORD_I_AM, EC_WORD_TOO_WEAK}, - .monSets = gBattleFrontierTrainerMons_Miranda + .monSet = gBattleFrontierTrainerMons_Miranda }, - [248] = { + [FRONTIER_TRAINER_EMMA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("EMMA"), .speechBefore = {EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_ABOUT, EC_WORD_YOU, 0xFFFF}, .speechWin = {EC_WORD_I, EC_WORD_THINK, EC_WORD_I_VE, EC_WORD_MISHEARD, EC_WORD_THINGS, 0xFFFF}, .speechLose = {EC_WORD_WHAT, EC_WORD_I_VE, EC_WORD_BEEN, EC_WORD_HEARING, EC_WORD_IS, EC_WORD_RIGHT}, - .monSets = gBattleFrontierTrainerMons_Emma + .monSet = gBattleFrontierTrainerMons_Emma }, - [249] = { + [FRONTIER_TRAINER_ROLANDO] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("ROLANDO"), .speechBefore = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_SUPER, EC_WORD_POKEMON, EC_WORD_HERO, EC_WORD_EXCL}, .speechWin = {EC_WORD_WAS, EC_WORD_THAT, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_YOU, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BEAT, EC_WORD_A, EC_WORD_HERO}, - .monSets = gBattleFrontierTrainerMons_Rolando + .monSet = gBattleFrontierTrainerMons_Rolando }, - [250] = { + [FRONTIER_TRAINER_STANLY] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("STANLY"), .speechBefore = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH}, .speechWin = {EC_WORD_IT, EC_WORD_REALLY, EC_WORD_WAS, EC_WORD_EASY, 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_HAPPY, EC_WORD_NOW, EC_WORD_QUES, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Stanly + .monSet = gBattleFrontierTrainerMons_Stanly }, - [251] = { + [FRONTIER_TRAINER_DARIO] = { .facilityClass = FACILITY_CLASS_PSYCHIC_M, .trainerName = _("DARIO"), .speechBefore = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_SAYS, EC_WORD_I, EC_WORD_WILL, EC_WORD_WIN}, .speechWin = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_PERFECT, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_SEE, EC_WORD_THIS, EC_MOVE(REVERSAL), EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Dario + .monSet = gBattleFrontierTrainerMons_Dario }, - [252] = { + [FRONTIER_TRAINER_KARLEE] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("KARLEE"), .speechBefore = {EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WILL, EC_WORD_COME, EC_WORD_OF, EC_WORD_THIS}, .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_FANTASTIC, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_THAT, EC_WORD_SOMETHING, EC_WORD_GOOD, EC_WORD_WENT, EC_WORD_TO, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Karlee + .monSet = gBattleFrontierTrainerMons_Karlee }, - [253] = { + [FRONTIER_TRAINER_JAYLIN] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("JAYLIN"), .speechBefore = {EC_WORD_EVERY, EC_WORD_TRAINER, EC_WORD_HAS, EC_WORD_BEEN, EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_IT_S, EC_WORD_MAKING, EC_WORD_ME, EC_MOVE(YAWN), EC_WORD_THAT, EC_WORD_BATTLE}, .speechLose = {EC_WORD_I, EC_WORD_SLEPT, EC_WORD_AND, EC_WORD_SO, EC_WORD_I, EC_WORD_LOST}, - .monSets = gBattleFrontierTrainerMons_Jaylin + .monSet = gBattleFrontierTrainerMons_Jaylin }, - [254] = { + [FRONTIER_TRAINER_INGRID] = { .facilityClass = FACILITY_CLASS_PSYCHIC_F, .trainerName = _("INGRID"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_A, EC_WORD_VERY, EC_WORD_MEAN, EC_WORD_TRAINER}, .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_A, EC_WORD_GOOD, EC_WORD_MATCH, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_LOST, EC_WORD_CAUSE, EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Ingrid + .monSet = gBattleFrontierTrainerMons_Ingrid }, - [255] = { + [FRONTIER_TRAINER_DELILAH] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("DELILAH"), .speechBefore = {EC_WORD_DON_T, EC_MOVE(GRUDGE), EC_WORD_ME, EC_WORD_IF_I_WIN, EC_WORD_OK_QUES, 0xFFFF}, .speechWin = {EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_TO, EC_WORD_SEE, EC_WORD_YOU, EC_WORD_ANGRY}, .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_A, EC_MOVE(GRUDGE), EC_WORD_WITH, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Delilah + .monSet = gBattleFrontierTrainerMons_Delilah }, - [256] = { + [FRONTIER_TRAINER_CARLY] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("CARLY"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_SCATTER, EC_WORD_SOME, EC_MOVE2(POISON_POWDER), EC_WORD_ABOUT}, .speechWin = {EC_WORD_IT_S, EC_WORD_SCARY, EC_WORD_HOW, EC_WORD_MY, EC_WORD_STRATEGY, EC_WORD_WORKS}, .speechLose = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_YOU, EC_WORD_AND, EC_WORD_YOUR, EC_WORD_POKEMON}, - .monSets = gBattleFrontierTrainerMons_Carly + .monSet = gBattleFrontierTrainerMons_Carly }, - [257] = { + [FRONTIER_TRAINER_LEXIE] = { .facilityClass = FACILITY_CLASS_HEX_MANIAC, .trainerName = _("LEXIE"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_SEE, EC_WORD_SCARY, EC_WORD_POKEMON, EC_WORD_QUES}, .speechWin = {EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_SCARY, EC_WORD_EH_QUES, 0xFFFF, 0xFFFF}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MORE, EC_WORD_SCARY, EC_WORD_THAN, EC_WORD_MY, EC_WORD_POKEMON}, - .monSets = gBattleFrontierTrainerMons_Lexie + .monSet = gBattleFrontierTrainerMons_Lexie }, - [258] = { + [FRONTIER_TRAINER_MILLER] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("MILLER"), .speechBefore = {EC_WORD_HELLO, EC_WORD_QUES, 0xFFFF, EC_WORD_HELLO, EC_WORD_QUES_EXCL, 0xFFFF}, .speechWin = {EC_WORD_HELLO, EC_WORD_MOTHER, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WON, EC_WORD_EXCL}, .speechLose = {EC_WORD_MY, EC_WORD_PHONE, EC_WORD_ISN_T, EC_WORD_WORKING, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Miller + .monSet = gBattleFrontierTrainerMons_Miller }, - [259] = { + [FRONTIER_TRAINER_MARV] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("MARV"), .speechBefore = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOSE, EC_WORD_YOUR, EC_MOVE(SWAGGER), EC_WORD_NOW}, .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_MOVE(SWAGGER), EC_WORD_LEFT, EC_WORD_EH_QUES}, .speechLose = {EC_WORD_GO, EC_WORD_ON, EC_MOVE(SWAGGER), EC_WORD_ALL, EC_WORD_YOU, EC_WORD_WANT}, - .monSets = gBattleFrontierTrainerMons_Marv + .monSet = gBattleFrontierTrainerMons_Marv }, - [260] = { + [FRONTIER_TRAINER_LAYTON] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("LAYTON"), .speechBefore = {EC_WORD_I, EC_WORD_KNOW, EC_WORD_I_AM, EC_WORD_TOTALLY, EC_WORD_COOL, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOU, EC_WORD_CAN, EC_WORD_LOOK, EC_WORD_UP, EC_WORD_TO, EC_WORD_ME}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_COOL, EC_WORD_EXCL, EC_WORD_NO, EC_WORD_REALLY, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Layton + .monSet = gBattleFrontierTrainerMons_Layton }, - [261] = { + [FRONTIER_TRAINER_BROOKS] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("BROOKS"), .speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_BATTLE}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_HIGH, EC_WORD_LEVEL, EC_WORD_AND, EC_WORD_EXCITING, EC_WORD_TOO}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_HIGH, EC_WORD_IN, EC_WORD_LEVEL, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Brooks + .monSet = gBattleFrontierTrainerMons_Brooks }, - [262] = { + [FRONTIER_TRAINER_GREGORY] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("GREGORY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD, EC_WORD_YET, 0xFFFF}, .speechWin = {EC_WORD_WHO, EC_WORD_SAYS, EC_WORD_I_AM, EC_WORD_TOO, EC_WORD_OLD, EC_WORD_QUES}, .speechLose = {EC_WORD_PLEASE, EC_WORD_I_AM, EC_WORD_REALLY, EC_WORD_NOT, EC_WORD_THAT, EC_WORD_OLD}, - .monSets = gBattleFrontierTrainerMons_Gregory + .monSet = gBattleFrontierTrainerMons_Gregory }, - [263] = { + [FRONTIER_TRAINER_REESE] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("REESE"), .speechBefore = {EC_WORD_I_VE, EC_WORD_A, EC_WORD_COUPLE, EC_WORD_THINGS, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_DON_T, EC_WORD_DIET, EC_WORD_PLAY, EC_WORD_SPORTS, EC_WORD_INSTEAD, 0xFFFF}, .speechLose = {EC_WORD_INSTEAD, EC_WORD_OF, EC_WORD_TELEVISION, EC_WORD_GET, EC_WORD_A, EC_WORD_BOOK}, - .monSets = gBattleFrontierTrainerMons_Reese + .monSet = gBattleFrontierTrainerMons_Reese }, - [264] = { + [FRONTIER_TRAINER_MASON] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("MASON"), .speechBefore = {EC_WORD_PLEASE, EC_WORD_DON_T, EC_WORD_MAKE, EC_WORD_THIS, EC_WORD_SCARY, 0xFFFF}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_ELLIPSIS, 0xFFFF, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_NOW}, .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_ELLIPSIS, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Mason + .monSet = gBattleFrontierTrainerMons_Mason }, - [265] = { + [FRONTIER_TRAINER_TOBY] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .trainerName = _("TOBY"), .speechBefore = {EC_WORD_LISTEN, EC_WORD_UP, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_WIN}, .speechWin = {EC_WORD_I_AM, EC_WORD_A, EC_WORD_GENIUS, EC_WORD_OR, EC_WORD_WHAT, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_CAN, EC_WORD_BEAT, EC_WORD_YOU, EC_WORD_AT, EC_WORD_SMARTNESS}, - .monSets = gBattleFrontierTrainerMons_Toby + .monSet = gBattleFrontierTrainerMons_Toby }, - [266] = { + [FRONTIER_TRAINER_DOROTHY] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .trainerName = _("DOROTHY"), .speechBefore = {EC_WORD_THE, EC_WORD_SPORTS, EC_WORD_WORLD, EC_WORD_SHOULD, EC_WORD_ACCEPT, EC_WORD_POKEMON}, .speechWin = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_WIN, EC_WORD_WAS, EC_WORD_REFRESHING}, .speechLose = {EC_WORD_THANK_YOU, EC_WORD_EXCL, EC_WORD_THAT, EC_WORD_LOSS, EC_WORD_WAS, EC_WORD_REFRESHING}, - .monSets = gBattleFrontierTrainerMons_Dorothy + .monSet = gBattleFrontierTrainerMons_Dorothy }, - [267] = { + [FRONTIER_TRAINER_PIPER] = { .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .trainerName = _("PIPER"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_YOU, EC_WORD_NEED, EC_WORD_A, EC_WORD_SPEED_BOOST, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_SHOW, EC_WORD_MORE, EC_WORD_GUTS}, .speechLose = {EC_WORD_OH, EC_WORD_YOU, EC_WORD_EXCL, 0xFFFF, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Piper + .monSet = gBattleFrontierTrainerMons_Piper }, - [268] = { + [FRONTIER_TRAINER_FINN] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("FINN"), .speechBefore = {EC_WORD_NOT, EC_WORD_ANOTHER, EC_WORD_TRAINER, EC_WORD_BATTLE, EC_WORD_ELLIPSIS, 0xFFFF}, .speechWin = {EC_WORD_WON_T, EC_WORD_THIS, EC_WORD_EVER, EC_WORD_END, EC_WORD_QUES, 0xFFFF}, .speechLose = {EC_WORD_I, EC_WORD_FINALLY, EC_WORD_GET, EC_WORD_TO, EC_MOVE2(REST), EC_WORD_A_LITTLE}, - .monSets = gBattleFrontierTrainerMons_Finn + .monSet = gBattleFrontierTrainerMons_Finn }, - [269] = { + [FRONTIER_TRAINER_SAMIR] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .trainerName = _("SAMIR"), .speechBefore = {EC_WORD_I, EC_MOVE2(DIVE), EC_WORD_BELOW, EC_WORD_THE, EC_MOVE2(SURF), EC_WORD_EXCL}, .speechWin = {EC_WORD_YAHOO, EC_WORD_TAKE, EC_WORD_A, EC_MOVE2(DIVE), EC_WORD_YOU, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_SINK, EC_WORD_ELLIPSIS, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Samir + .monSet = gBattleFrontierTrainerMons_Samir }, - [270] = { + [FRONTIER_TRAINER_FIONA] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .trainerName = _("FIONA"), .speechBefore = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_LIMBER, EC_WORD_UP, EC_WORD_BEFORE, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_BE, EC_WORD_MORE, EC_WORD_READY}, .speechLose = {EC_WORD_BEING, EC_WORD_LIMBER, EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_ME}, - .monSets = gBattleFrontierTrainerMons_Fiona + .monSet = gBattleFrontierTrainerMons_Fiona }, - [271] = { + [FRONTIER_TRAINER_GLORIA] = { .facilityClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .trainerName = _("GLORIA"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_ATTACK, EC_WORD_WITH, EC_WORD_SUCTION_CUPS}, .speechWin = {EC_WORD_GIGGLE, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_OVER, EC_WORD_FOR, EC_WORD_YOU}, .speechLose = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_GET, EC_WORD_HOW, EC_WORD_SUCTION_CUPS, EC_WORD_WORK}, - .monSets = gBattleFrontierTrainerMons_Gloria + .monSet = gBattleFrontierTrainerMons_Gloria }, - [272] = { + [FRONTIER_TRAINER_NICO] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("NICO"), .speechBefore = {EC_WORD_LIKE, EC_WORD_A, EC_MOVE(SONIC_BOOM), EC_WORD_I_VE_ARRIVED, 0xFFFF, 0xFFFF}, .speechWin = {EC_WORD_SORRY, EC_WORD_TO, EC_WORD_MAKE, EC_WORD_YOU, EC_WORD_SO, EC_WORD_DOWNCAST}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_WITH, EC_WORD_A, EC_MOVE2(SUPERSONIC), EC_WORD_SPEED_BOOST}, - .monSets = gBattleFrontierTrainerMons_Nico + .monSet = gBattleFrontierTrainerMons_Nico }, - [273] = { + [FRONTIER_TRAINER_JEREMY] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .trainerName = _("JEREMY"), .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_MASTER, EC_WORD_THAT_S, EC_WORD_MY, EC_WORD_DREAM}, .speechWin = {EC_WORD_MY, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_FAR, EC_WORD_OFF, EC_WORD_EXCL}, .speechLose = {EC_WORD_WHAT, EC_WORD_I, EC_WORD_DREAM, EC_WORD_ISN_T, EC_WORD_HAPPENING, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Jeremy + .monSet = gBattleFrontierTrainerMons_Jeremy }, - [274] = { + [FRONTIER_TRAINER_CAITLIN] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("CAITLIN"), .speechBefore = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_CUTE, EC_WORD_QUES}, .speechWin = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_MORE, EC_WORD_TO_ME, EC_WORD_THAN, EC_WORD_CUTENESS}, .speechLose = {EC_WORD_MY, EC_WORD_CUTE_CHARM, EC_WORD_DOESN_T, EC_MOVE2(ATTRACT), EC_WORD_YOU, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Caitlin + .monSet = gBattleFrontierTrainerMons_Caitlin }, - [275] = { + [FRONTIER_TRAINER_REENA] = { .facilityClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .trainerName = _("REENA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_ALWAYS, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_HAPPY, EC_WORD_EXCL}, .speechWin = {EC_WORD_OH, EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_YAHOO, EC_WORD_FOR, EC_WORD_ME}, .speechLose = {EC_WORD_YAHOO, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_HAPPY, EC_WORD_FOR, EC_WORD_YOU}, - .monSets = gBattleFrontierTrainerMons_Reena + .monSet = gBattleFrontierTrainerMons_Reena }, - [276] = { + [FRONTIER_TRAINER_AVERY] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("AVERY"), .speechBefore = {EC_WORD_I_VE, EC_WORD_GOT, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_BUG, EC_WORD_POKEMON}, .speechWin = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UNBELIEVABLE}, .speechLose = {EC_WORD_MY, EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ALL, EC_WORD_UPSIDE_DOWN}, - .monSets = gBattleFrontierTrainerMons_Avery + .monSet = gBattleFrontierTrainerMons_Avery }, - [277] = { + [FRONTIER_TRAINER_LIAM] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("LIAM"), .speechBefore = {EC_WORD_WE, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_FIRE, EC_WORD_AND, EC_WORD_FLYING}, .speechWin = {EC_WORD_BUG, EC_WORD_POKEMON, EC_WORD_AREN_T, EC_WORD_BAD, EC_WORD_HEY_QUES, 0xFFFF}, .speechLose = {EC_WORD_YOU, EC_WORD_KNOW, EC_WORD_WHAT, EC_WORD_WE, EC_WORD_DISLIKE, EC_WORD_HEY_QUES}, - .monSets = gBattleFrontierTrainerMons_Liam + .monSet = gBattleFrontierTrainerMons_Liam }, - [278] = { + [FRONTIER_TRAINER_THEO] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("THEO"), .speechBefore = {EC_WORD_FISHING, EC_WORD_IS, EC_WORD_MY, EC_WORD_CHOICE, EC_WORD_IN, EC_WORD_LIFE}, .speechWin = {EC_WORD_WATER, EC_WORD_POKEMON, EC_MOVE2(ATTRACT), EC_WORD_ME, EC_WORD_WITHOUT, EC_WORD_END}, .speechLose = {EC_WORD_DON_T, EC_WORD_COUNT_ON, EC_WORD_THAT, EC_WORD_HAPPENING, EC_WORD_ANOTHER, EC_WORD_TIME}, - .monSets = gBattleFrontierTrainerMons_Theo + .monSet = gBattleFrontierTrainerMons_Theo }, - [279] = { + [FRONTIER_TRAINER_BAILEY] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("BAILEY"), .speechBefore = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_EASY}, .speechWin = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_WORD_JOY}, .speechLose = {EC_WORD_I_AM, EC_WORD_AN, EC_WORD_ADULT, EC_WORD_I, EC_MOVE2(SWALLOW), EC_MOVE2(FRUSTRATION)}, - .monSets = gBattleFrontierTrainerMons_Bailey + .monSet = gBattleFrontierTrainerMons_Bailey }, - [280] = { + [FRONTIER_TRAINER_HUGO] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("HUGO"), .speechBefore = {EC_WORD_I, EC_WORD_TRY, EC_WORD_THE, EC_WORD_BEST, EC_WORD_I, EC_WORD_CAN}, .speechWin = {EC_WORD_I, EC_WORD_CAN_WIN, EC_WORD_IF, EC_WORD_I, EC_WORD_TRY, EC_WORD_ENOUGH}, .speechLose = {EC_WORD_I, EC_WORD_DID, EC_WORD_TRY, EC_WORD_DIDN_T, EC_WORD_I, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Hugo + .monSet = gBattleFrontierTrainerMons_Hugo }, - [281] = { + [FRONTIER_TRAINER_BRYCE] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("BRYCE"), .speechBefore = {EC_WORD_I_WAS, EC_WORD_ON, EC_WORD_VACATION, EC_WORD_UNTIL, EC_WORD_ONLY, EC_WORD_YESTERDAY}, .speechWin = {EC_WORD_I, EC_WORD_HAVEN_T, EC_WORD_LOST, EC_WORD_MY, EC_WORD_SKILL, EC_WORD_YET}, .speechLose = {EC_WORD_THAT_S, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_SLEEP}, - .monSets = gBattleFrontierTrainerMons_Bryce + .monSet = gBattleFrontierTrainerMons_Bryce }, - [282] = { + [FRONTIER_TRAINER_GIDEON] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("GIDEON"), .speechBefore = {EC_WORD_WHAT_S_UP_QUES, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_I_AM, EC_WORD_SCARY, EC_WORD_QUES}, .speechWin = {EC_WORD_I_AM, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_SCARY, EC_WORD_EXCL}, .speechLose = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_FASHION, EC_WORD_SENSE}, - .monSets = gBattleFrontierTrainerMons_Gideon + .monSet = gBattleFrontierTrainerMons_Gideon }, - [283] = { + [FRONTIER_TRAINER_TRISTON] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("TRISTON"), .speechBefore = {EC_WORD_I, EC_WORD_WOULD, EC_WORD_RATHER, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_POKEMON}, .speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES_EXCL}, .speechLose = {EC_WORD_SEE, EC_WORD_QUES, 0xFFFF, EC_WORD_I, EC_WORD_ALWAYS, EC_WORD_LOSE}, - .monSets = gBattleFrontierTrainerMons_Triston + .monSet = gBattleFrontierTrainerMons_Triston }, - [284] = { + [FRONTIER_TRAINER_CHARLES] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("CHARLES"), .speechBefore = {EC_WORD_IT_S, EC_WORD_HOPELESS, EC_WORD_TO, EC_MOVE2(STRUGGLE), EC_WORD_WITH, EC_WORD_ME}, .speechWin = {EC_MOVE(SUBMISSION), EC_WORD_WAS, EC_WORD_YOUR, EC_WORD_ONLY, EC_WORD_CHOICE, 0xFFFF}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_DOWN, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Charles + .monSet = gBattleFrontierTrainerMons_Charles }, - [285] = { + [FRONTIER_TRAINER_RAYMOND] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("RAYMOND"), .speechBefore = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_HEAR, EC_WORD_MY, EC_WORD_SONG, EC_WORD_QUES}, .speechWin = {EC_WORD_SATISFIED, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_SATISFIED, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_I, EC_WORD_CAN_T, EC_WORD_BE}, - .monSets = gBattleFrontierTrainerMons_Raymond + .monSet = gBattleFrontierTrainerMons_Raymond }, - [286] = { + [FRONTIER_TRAINER_DIRK] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("DIRK"), .speechBefore = {EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_ABOVE, EC_WORD_THE, EC_MOVE2(REST)}, .speechWin = {EC_WORD_YOU, EC_WORD_CAN_T_WIN, EC_WORD_EXCL, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_RULE}, .speechLose = {EC_WORD_AREN_T, EC_WORD_THERE, EC_WORD_MORE, EC_WORD_FLYING, EC_WORD_POKEMON, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Dirk + .monSet = gBattleFrontierTrainerMons_Dirk }, - [287] = { + [FRONTIER_TRAINER_HAROLD] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("HAROLD"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_APPEAL, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_DO, EC_WORD_LIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES}, .speechLose = {EC_WORD_SO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Harold + .monSet = gBattleFrontierTrainerMons_Harold }, - [288] = { + [FRONTIER_TRAINER_OMAR] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("OMAR"), .speechBefore = {EC_WORD_LET_ME_WIN, EC_WORD_IN, EC_MOVE(RETURN), EC_WORD_FOR, EC_WORD_A, EC_MOVE2(PRESENT)}, .speechWin = {EC_WORD_HERE, EC_WORD_YOU, EC_WORD_ARE, EC_WORD_SOME, EC_MOVE2(TOXIC), EC_WORD_SWEETS}, .speechLose = {EC_WORD_YOUR, EC_MOVE2(PRESENT), EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_FOR, EC_WORD_QUES_EXCL}, - .monSets = gBattleFrontierTrainerMons_Omar + .monSet = gBattleFrontierTrainerMons_Omar }, - [289] = { + [FRONTIER_TRAINER_PETER] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("PETER"), .speechBefore = {EC_WORD_I, EC_WORD_BRAG, EC_WORD_ABOUT, EC_WORD_MY, EC_WORD_HAPPINESS, EC_WORD_OK_QUES}, .speechWin = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_LISTEN, EC_WORD_TO_ME, EC_WORD_BRAG}, .speechLose = {EC_WORD_I_AM, EC_WORD_DISAPPOINTED, EC_WORD_YOU, EC_WORD_WON_T, EC_WORD_LISTEN, EC_WORD_TO_ME}, - .monSets = gBattleFrontierTrainerMons_Peter + .monSet = gBattleFrontierTrainerMons_Peter }, - [290] = { + [FRONTIER_TRAINER_DEV] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("DEV"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_LET_S, EC_WORD_GET, EC_WORD_A, EC_WORD_MOVE, EC_WORD_ON}, .speechWin = {EC_WORD_I, EC_WORD_GET, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_NAP, EC_WORD_AFTER, EC_WORD_THAT}, - .monSets = gBattleFrontierTrainerMons_Dev + .monSet = gBattleFrontierTrainerMons_Dev }, - [291] = { + [FRONTIER_TRAINER_COREY] = { .facilityClass = FACILITY_CLASS_HIKER, .trainerName = _("COREY"), .speechBefore = {EC_WORD_LET_S, EC_WORD_TEACH, EC_WORD_YOU, EC_WORD_HOW, EC_WORD_TOUGH, EC_WORD_I_AM}, .speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_ME, EC_WORD_MAKE, EC_WORD_A, EC_MOVE(BRICK_BREAK)}, .speechLose = {EC_WORD_MY, EC_MOVE2(FRUSTRATION), EC_WORD_IS, EC_WORD_CLOSE, EC_WORD_TO, EC_MOVE2(ERUPTION)}, - .monSets = gBattleFrontierTrainerMons_Corey + .monSet = gBattleFrontierTrainerMons_Corey }, - [292] = { + [FRONTIER_TRAINER_ANDRE] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("ANDRE"), .speechBefore = {EC_WORD_NOW, EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_WORD_PERFECT, EC_WORD_FLAME_BODY}, .speechWin = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_FIERY, EC_WORD_DANCE, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU, EC_WORD_WANT, EC_WORD_AN, EC_MOVE2(EXPLOSION), EC_WORD_HERE, EC_WORD_QUES}, - .monSets = gBattleFrontierTrainerMons_Andre + .monSet = gBattleFrontierTrainerMons_Andre }, - [293] = { + [FRONTIER_TRAINER_FERRIS] = { .facilityClass = FACILITY_CLASS_KINDLER, .trainerName = _("FERRIS"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THE, EC_WORD_OLD, EC_WORD_CLASS}, .speechWin = {EC_WORD_NO_1, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_NO_1, EC_WORD_ANY, EC_WORD_MORE, EC_WORD_ELLIPSIS}, - .monSets = gBattleFrontierTrainerMons_Ferris + .monSet = gBattleFrontierTrainerMons_Ferris }, - [294] = { + [FRONTIER_TRAINER_ALIVIA] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("ALIVIA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_GIDDY, EC_WORD_SO, EC_WORD_SHOULD, EC_WORD_YOU}, .speechWin = {EC_WORD_IT, EC_WORD_WAS, EC_WORD_ALL, EC_WORD_TOGETHER, EC_WORD_TOO, EC_WORD_EASY}, .speechLose = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GIDDY, EC_WORD_UP, EC_WORD_AND, EC_WORD_AWAY}, - .monSets = gBattleFrontierTrainerMons_Alivia + .monSet = gBattleFrontierTrainerMons_Alivia }, - [295] = { + [FRONTIER_TRAINER_PAIGE] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("PAIGE"), .speechBefore = {EC_WORD_LET_S, EC_WORD_ENJOY, EC_WORD_OUR, EC_WORD_BATTLE, EC_WORD_TOGETHER, 0xFFFF}, .speechWin = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_THANK_YOU, EC_WORD_VERY, EC_WORD_MUCH}, .speechLose = {EC_WORD_THAT_S_IT_EXCL, 0xFFFF, 0xFFFF, EC_WORD_DO, EC_WORD_GO, EC_WORD_ON}, - .monSets = gBattleFrontierTrainerMons_Paige + .monSet = gBattleFrontierTrainerMons_Paige }, - [296] = { + [FRONTIER_TRAINER_ANYA] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("ANYA"), .speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_OH, EC_WORD_SO, EC_WORD_PRETTY, EC_WORD_FASHION}, .speechWin = {EC_WORD_FASHION, EC_WORD_SHOULD, EC_WORD_MATCH, EC_WORD_THE, EC_WORD_PERSON, 0xFFFF}, .speechLose = {EC_WORD_PRETTY, EC_WORD_COULD, EC_WORD_BE, EC_WORD_GOOD, 0xFFFF, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Anya + .monSet = gBattleFrontierTrainerMons_Anya }, - [297] = { + [FRONTIER_TRAINER_DAWN] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("DAWN"), .speechBefore = {EC_WORD_I, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_EXCL, 0xFFFF}, .speechWin = {EC_WORD_DON_T, EC_WORD_BE, EC_WORD_A, EC_WORD_BABY, EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_YOU, EC_WORD_WON, EC_WORD_EXCL, EC_WORD_MOVE, EC_WORD_ON, EC_WORD_EXCL}, - .monSets = gBattleFrontierTrainerMons_Dawn + .monSet = gBattleFrontierTrainerMons_Dawn }, - [298] = { + [FRONTIER_TRAINER_ABBY] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("ABBY"), .speechBefore = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TRAINER, EC_WORD_THAT_S, EC_WORD_REFRESHING}, .speechWin = {EC_WORD_VICTORY, EC_WORD_HAS, EC_WORD_A, EC_MOVE(SWEET_SCENT), EC_WORD_EXCL, 0xFFFF}, .speechLose = {EC_WORD_WHAT, EC_WORD_AN, EC_WORD_AWFUL, EC_WORD_STENCH, EC_WORD_EXCL, 0xFFFF}, - .monSets = gBattleFrontierTrainerMons_Abby + .monSet = gBattleFrontierTrainerMons_Abby }, - [299] = { + [FRONTIER_TRAINER_GRETEL] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("GRETEL"), .speechBefore = {EC_WORD_I, EC_WORD_CAUSE, EC_MOVE(OUTRAGE), EC_WORD_AS, EC_WORD_A, EC_WORD_TRAINER}, .speechWin = {EC_WORD_IT_S, EC_WORD_ONLY, EC_WORD_NATURAL, EC_WORD_SEE_YA, EC_WORD_BYE_BYE, EC_WORD_EXCL}, .speechLose = {EC_WORD_IT_S, EC_WORD_HARD, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_BUT, EC_WORD_CONGRATS}, - .monSets = gBattleFrontierTrainerMons_Gretel + .monSet = gBattleFrontierTrainerMons_Gretel } }; diff --git a/src/data/battle_frontier/battle_tent.h b/src/data/battle_frontier/battle_tent.h index 946ca01875f8..bf89c5bc3895 100644 --- a/src/data/battle_frontier/battle_tent.h +++ b/src/data/battle_frontier/battle_tent.h @@ -1,1242 +1,1242 @@ // Slateport Battle Tent. const u16 gSlateportBattleTentTrainerMons_Jolie[] = { - 9, - 10, - 13, - 27, - 35, - 37, - 42, - 44, - 45, - 46, - 63, + SLATEPORT_TENT_MON_CACNEA_1, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_NUZLEAF, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_SOLROCK, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_SHROOMISH_1, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_BRELOOM, -1 }; const u16 gSlateportBattleTentTrainerMons_Malachi[] = { - 9, - 16, - 17, - 27, - 36, - 39, - 42, - 45, - 48, - 49, - 53, + SLATEPORT_TENT_MON_CACNEA_1, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_SOLROCK, + SLATEPORT_TENT_MON_SHROOMISH_1, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_TRAPINCH_2, + SLATEPORT_TENT_MON_SKITTY, -1 }; const u16 gSlateportBattleTentTrainerMons_Kelsie[] = { - 4, - 5, - 6, - 11, - 28, - 34, - 35, - 37, - 43, - 51, - 53, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_MARILL_1, + SLATEPORT_TENT_MON_LOTAD, + SLATEPORT_TENT_MON_TAILLOW, + SLATEPORT_TENT_MON_WHISMUR, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_SKITTY, -1 }; const u16 gSlateportBattleTentTrainerMons_Davon[] = { - 4, - 5, - 6, - 12, - 26, - 36, - 37, - 38, - 40, - 44, - 46, - 50, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_MARILL_1, + SLATEPORT_TENT_MON_SEEDOT, + SLATEPORT_TENT_MON_TRAPINCH_1, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_MAGIKARP, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_PELIPPER_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Glenda[] = { - 0, - 1, - 17, - 18, - 19, - 22, - 23, - 33, - 42, - 61, - 64, - 65, - 66, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_MIGHTYENA_1, + SLATEPORT_TENT_MON_MIGHTYENA_2, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_MAGNEMITE, + SLATEPORT_TENT_MON_SOLROCK, + SLATEPORT_TENT_MON_KADABRA, + SLATEPORT_TENT_MON_PLUSLE_1, + SLATEPORT_TENT_MON_PLUSLE_2, + SLATEPORT_TENT_MON_ELECTRIKE_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Helena[] = { - 18, - 19, - 21, - 38, - 39, - 41, - 42, - 52, - 54, - 58, - 63, + SLATEPORT_TENT_MON_MIGHTYENA_1, + SLATEPORT_TENT_MON_MIGHTYENA_2, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_SEVIPER_1, + SLATEPORT_TENT_MON_SOLROCK, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_SEVIPER_2, + SLATEPORT_TENT_MON_SWALOT, + SLATEPORT_TENT_MON_BRELOOM, -1 }; const u16 gSlateportBattleTentTrainerMons_Rodolfo[] = { - 0, - 1, - 4, - 5, - 7, - 8, - 18, - 20, - 21, - 37, - 38, - 40, - 62, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_WINGULL_1, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_MIGHTYENA_1, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_MAGIKARP, + SLATEPORT_TENT_MON_KIRLIA, -1 }; const u16 gSlateportBattleTentTrainerMons_Davion[] = { - 17, - 23, - 24, - 25, - 31, - 32, - 33, - 34, - 39, - 43, - 44, - 49, - 57, - 69, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_ARON_1, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_LOUDRED, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_MAGNEMITE, + SLATEPORT_TENT_MON_WHISMUR, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_TRAPINCH_2, + SLATEPORT_TENT_MON_SANDSHREW, + SLATEPORT_TENT_MON_MACHOKE, -1 }; const u16 gSlateportBattleTentTrainerMons_Kendall[] = { - 4, - 7, - 8, - 9, - 11, - 12, - 13, - 27, - 38, - 40, - 45, - 46, - 47, - 63, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WINGULL_1, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_CACNEA_1, + SLATEPORT_TENT_MON_LOTAD, + SLATEPORT_TENT_MON_SEEDOT, + SLATEPORT_TENT_MON_NUZLEAF, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_MAGIKARP, + SLATEPORT_TENT_MON_SHROOMISH_1, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_LOMBRE_2, + SLATEPORT_TENT_MON_BRELOOM, -1 }; const u16 gSlateportBattleTentTrainerMons_Colten[] = { - 0, - 2, - 12, - 22, - 28, - 30, - 35, - 38, - 43, - 44, - 56, - 57, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_BEAUTIFLY, + SLATEPORT_TENT_MON_SEEDOT, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_TAILLOW, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_RALTS, + SLATEPORT_TENT_MON_SANDSHREW, -1 }; const u16 gSlateportBattleTentTrainerMons_Irvin[] = { - 0, - 1, - 2, - 3, - 14, - 15, - 24, - 25, - 32, - 34, - 39, - 59, - 60, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_BEAUTIFLY, + SLATEPORT_TENT_MON_DUSTOX, + SLATEPORT_TENT_MON_NINJASK_1, + SLATEPORT_TENT_MON_NINJASK_2, + SLATEPORT_TENT_MON_ARON_1, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_WHISMUR, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_VOLBEAT, + SLATEPORT_TENT_MON_ILLUMISE, -1 }; const u16 gSlateportBattleTentTrainerMons_Shaun[] = { - 17, - 18, - 19, - 22, - 29, - 36, - 42, - 48, - 61, - 62, - 66, - 68, - 69, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_MIGHTYENA_1, + SLATEPORT_TENT_MON_MIGHTYENA_2, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_SOLROCK, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_KADABRA, + SLATEPORT_TENT_MON_KIRLIA, + SLATEPORT_TENT_MON_ELECTRIKE_2, + SLATEPORT_TENT_MON_MACHOP, + SLATEPORT_TENT_MON_MACHOKE, -1 }; const u16 gSlateportBattleTentTrainerMons_Kyler[] = { - 22, - 23, - 28, - 29, - 31, - 32, - 34, - 39, - 55, - 64, - 65, - 67, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_TAILLOW, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_LOUDRED, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_WHISMUR, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_GOLBAT_2, + SLATEPORT_TENT_MON_PLUSLE_1, + SLATEPORT_TENT_MON_PLUSLE_2, + SLATEPORT_TENT_MON_SWABLU, -1 }; const u16 gSlateportBattleTentTrainerMons_Maggie[] = { - 10, - 13, - 17, - 27, - 45, - 46, - 53, - 56, - 61, - 62, - 63, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_NUZLEAF, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_SHROOMISH_1, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_SKITTY, + SLATEPORT_TENT_MON_RALTS, + SLATEPORT_TENT_MON_KADABRA, + SLATEPORT_TENT_MON_KIRLIA, + SLATEPORT_TENT_MON_BRELOOM, -1 }; const u16 gSlateportBattleTentTrainerMons_Stephon[] = { - 8, - 10, - 16, - 23, - 29, - 43, - 44, - 60, - 62, - 63, - 68, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_ILLUMISE, + SLATEPORT_TENT_MON_KIRLIA, + SLATEPORT_TENT_MON_BRELOOM, + SLATEPORT_TENT_MON_MACHOP, -1 }; const u16 gSlateportBattleTentTrainerMons_Rebecca[] = { - 8, - 13, - 21, - 29, - 33, - 41, - 48, - 54, - 59, - 61, - 68, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_NUZLEAF, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_MAGNEMITE, + SLATEPORT_TENT_MON_SEVIPER_1, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_SEVIPER_2, + SLATEPORT_TENT_MON_VOLBEAT, + SLATEPORT_TENT_MON_KADABRA, + SLATEPORT_TENT_MON_MACHOP, -1 }; const u16 gSlateportBattleTentTrainerMons_Reggie[] = { - 6, - 7, - 17, - 23, - 24, - 26, - 32, - 36, - 52, - 53, - 57, - 65, + SLATEPORT_TENT_MON_MARILL_1, + SLATEPORT_TENT_MON_WINGULL_1, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_ARON_1, + SLATEPORT_TENT_MON_TRAPINCH_1, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_SKITTY, + SLATEPORT_TENT_MON_SANDSHREW, + SLATEPORT_TENT_MON_PLUSLE_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Janae[] = { - 0, - 1, - 27, - 28, - 32, - 34, - 36, - 37, - 52, - 53, - 57, - 65, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_TAILLOW, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_WHISMUR, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_SKITTY, + SLATEPORT_TENT_MON_SANDSHREW, + SLATEPORT_TENT_MON_PLUSLE_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Caiden[] = { - 10, - 14, - 15, - 16, - 20, - 21, - 25, - 30, - 35, - 47, - 48, - 50, - 69, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_NINJASK_1, + SLATEPORT_TENT_MON_NINJASK_2, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_LOMBRE_2, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_PELIPPER_2, + SLATEPORT_TENT_MON_MACHOKE, -1 }; const u16 gSlateportBattleTentTrainerMons_Kirsten[] = { - 10, - 16, - 18, - 19, - 20, - 21, - 25, - 30, - 35, - 39, - 41, - 48, - 69, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_MIGHTYENA_1, + SLATEPORT_TENT_MON_MIGHTYENA_2, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_SEVIPER_1, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_MACHOKE, -1 }; const u16 gSlateportBattleTentTrainerMons_Kurtis[] = { - 0, - 1, - 36, - 37, - 40, - 46, - 49, - 51, - 64, - 67, - 68, + SLATEPORT_TENT_MON_ZIGZAGOON_1, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_MAGIKARP, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_TRAPINCH_2, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_PLUSLE_1, + SLATEPORT_TENT_MON_SWABLU, + SLATEPORT_TENT_MON_MACHOP, -1 }; const u16 gSlateportBattleTentTrainerMons_Stefan[] = { - 4, - 5, - 21, - 33, - 37, - 38, - 40, - 51, - 52, - 64, - 65, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_MAGNEMITE, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_MAGIKARP, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_PLUSLE_1, + SLATEPORT_TENT_MON_PLUSLE_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Avery[] = { - 2, - 3, - 7, - 8, - 22, - 23, - 28, - 29, - 30, - 51, - 67, + SLATEPORT_TENT_MON_BEAUTIFLY, + SLATEPORT_TENT_MON_DUSTOX, + SLATEPORT_TENT_MON_WINGULL_1, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_VOLTORB, + SLATEPORT_TENT_MON_TAILLOW, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_SWABLU, -1 }; const u16 gSlateportBattleTentTrainerMons_Dwane[] = { - 14, - 15, - 30, - 43, - 44, - 45, - 46, - 55, - 58, - 59, - 63, + SLATEPORT_TENT_MON_NINJASK_1, + SLATEPORT_TENT_MON_NINJASK_2, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_SHROOMISH_1, + SLATEPORT_TENT_MON_SHROOMISH_2, + SLATEPORT_TENT_MON_GOLBAT_2, + SLATEPORT_TENT_MON_SWALOT, + SLATEPORT_TENT_MON_VOLBEAT, + SLATEPORT_TENT_MON_BRELOOM, -1 }; const u16 gSlateportBattleTentTrainerMons_Mckenna[] = { - 27, - 29, - 30, - 32, - 36, - 48, - 51, - 52, - 53, - 57, - 67, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_GOLBAT_1, + SLATEPORT_TENT_MON_SPINDA, + SLATEPORT_TENT_MON_NUMEL_1, + SLATEPORT_TENT_MON_NUMEL_2, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_SKITTY, + SLATEPORT_TENT_MON_SANDSHREW, + SLATEPORT_TENT_MON_SWABLU, -1 }; const u16 gSlateportBattleTentTrainerMons_Camryn[] = { - 5, - 6, - 7, - 8, - 10, - 16, - 17, - 20, - 21, - 37, - 43, - 44, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_MARILL_1, + SLATEPORT_TENT_MON_WINGULL_1, + SLATEPORT_TENT_MON_PELIPPER_1, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Natasha[] = { - 1, - 3, - 4, - 5, - 9, - 11, - 12, - 20, - 21, - 22, - 51, + SLATEPORT_TENT_MON_ZIGZAGOON_2, + SLATEPORT_TENT_MON_DUSTOX, + SLATEPORT_TENT_MON_WAILMER_1, + SLATEPORT_TENT_MON_WAILMER_2, + SLATEPORT_TENT_MON_CACNEA_1, + SLATEPORT_TENT_MON_LOTAD, + SLATEPORT_TENT_MON_SEEDOT, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_GOLDEEN, + SLATEPORT_TENT_MON_ELECTRIKE_1, + SLATEPORT_TENT_MON_WINGULL_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Austyn[] = { - 25, - 31, - 35, - 37, - 38, - 39, - 50, - 51, - 52, - 58, - 68, - 69, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_LOUDRED, + SLATEPORT_TENT_MON_MAKUHITA, + SLATEPORT_TENT_MON_BARBOACH, + SLATEPORT_TENT_MON_TENTACOOL, + SLATEPORT_TENT_MON_VIGOROTH, + SLATEPORT_TENT_MON_PELIPPER_2, + SLATEPORT_TENT_MON_WINGULL_2, + SLATEPORT_TENT_MON_MARILL_2, + SLATEPORT_TENT_MON_SWALOT, + SLATEPORT_TENT_MON_MACHOP, + SLATEPORT_TENT_MON_MACHOKE, -1 }; const u16 gSlateportBattleTentTrainerMons_Donovan[] = { - 10, - 16, - 17, - 24, - 25, - 43, - 44, - 47, - 49, - 53, - 59, - 60, - 64, - 65, + SLATEPORT_TENT_MON_LOMBRE_1, + SLATEPORT_TENT_MON_GRAVELER, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_ARON_1, + SLATEPORT_TENT_MON_ARON_2, + SLATEPORT_TENT_MON_KECLEON_1, + SLATEPORT_TENT_MON_KECLEON_2, + SLATEPORT_TENT_MON_LOMBRE_2, + SLATEPORT_TENT_MON_TRAPINCH_2, + SLATEPORT_TENT_MON_SKITTY, + SLATEPORT_TENT_MON_VOLBEAT, + SLATEPORT_TENT_MON_ILLUMISE, + SLATEPORT_TENT_MON_PLUSLE_1, + SLATEPORT_TENT_MON_PLUSLE_2, -1 }; const u16 gSlateportBattleTentTrainerMons_Tamia[] = { - 2, - 6, - 9, - 13, - 17, - 19, - 20, - 24, - 27, - 29, - 30, + SLATEPORT_TENT_MON_BEAUTIFLY, + SLATEPORT_TENT_MON_MARILL_1, + SLATEPORT_TENT_MON_CACNEA_1, + SLATEPORT_TENT_MON_NUZLEAF, + SLATEPORT_TENT_MON_BALTOY, + SLATEPORT_TENT_MON_MIGHTYENA_2, + SLATEPORT_TENT_MON_LINOONE, + SLATEPORT_TENT_MON_ARON_1, + SLATEPORT_TENT_MON_CACNEA_2, + SLATEPORT_TENT_MON_SWELLOW, + SLATEPORT_TENT_MON_GOLBAT_1, -1 }; -const struct BattleFrontierTrainer gSlateportBattleTentTrainers[] = +const struct BattleFrontierTrainer gSlateportBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] = { - [0] = { + [SLATEPORT_TENT_TRAINER_JOLIE] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("JOLIE"), .speechBefore = {EC_WORD_WHAT, EC_WORD_WILL, EC_WORD_I, EC_WORD_BE, EC_WORD_TOMORROW, EC_WORD_QUES}, .speechWin = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_FRIDAY, EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_LIKE, EC_WORD_IT_S, EC_WORD_MONDAY, EC_WORD_ELLIPSIS}, - .monSets = gSlateportBattleTentTrainerMons_Jolie + .monSet = gSlateportBattleTentTrainerMons_Jolie }, - [1] = { + [SLATEPORT_TENT_TRAINER_MALACHI] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("MALACHI"), .speechBefore = {EC_WORD_BAD, EC_WORD_NEWS, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_A, EC_MOVE(SAND_TOMB)}, .speechWin = {EC_WORD_YEEHAW_EXCL, -1, -1, EC_WORD_I_VE, EC_WORD_DONE, EC_WORD_IT}, .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_IN, EC_WORD_THIS, EC_MOVE(SAND_TOMB), EC_WORD_ELLIPSIS}, - .monSets = gSlateportBattleTentTrainerMons_Malachi + .monSet = gSlateportBattleTentTrainerMons_Malachi }, - [2] = { + [SLATEPORT_TENT_TRAINER_KELSIE] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("KELSIE"), .speechBefore = {EC_WORD_GO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, .speechWin = {EC_WORD_YAHOO, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, .speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, EC_WORD_MY, EC_WORD_BATH, EC_WORD_POKEMON, EC_WORD_EXCL_EXCL}, - .monSets = gSlateportBattleTentTrainerMons_Kelsie + .monSet = gSlateportBattleTentTrainerMons_Kelsie }, - [3] = { + [SLATEPORT_TENT_TRAINER_DAVON] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("DAVON"), .speechBefore = {EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_GREAT, EC_MOVE(WHIRLPOOL), EC_WORD_ISN_T_IT_QUES}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_LIKE, EC_WORD_A, EC_MOVE(WHIRLPOOL), EC_WORD_YEAH_YEAH, EC_WORD_EXCL_EXCL}, .speechLose = {EC_WORD_DON_T, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_IN, EC_WORD_THAT, EC_MOVE(WHIRLPOOL)}, - .monSets = gSlateportBattleTentTrainerMons_Davon + .monSet = gSlateportBattleTentTrainerMons_Davon }, - [4] = { + [SLATEPORT_TENT_TRAINER_GLENDA] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("GLENDA"), .speechBefore = {EC_WORD_CONVERSATION, EC_WORD_CAN, EC_WORD_WAIT, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_WIN}, .speechWin = {EC_WORD_FABULOUS, EC_WORD_EXCL, EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ROCK}, .speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_WASN_T, EC_WORD_SERIOUS}, - .monSets = gSlateportBattleTentTrainerMons_Glenda + .monSet = gSlateportBattleTentTrainerMons_Glenda }, - [5] = { + [SLATEPORT_TENT_TRAINER_HELENA] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("HELENA"), .speechBefore = {EC_WORD_DOES, EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES}, .speechWin = {EC_WORD_I_AM, EC_WORD_SO, EC_WORD_SORRY, EC_WORD_BUT, EC_WORD_YOU_RE, EC_WORD_BORING}, .speechLose = {EC_WORD_I, EC_WORD_DO, EC_WORD_SO, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_EXCL}, - .monSets = gSlateportBattleTentTrainerMons_Helena + .monSet = gSlateportBattleTentTrainerMons_Helena }, - [6] = { + [SLATEPORT_TENT_TRAINER_RODOLFO] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("RODOLFO"), .speechBefore = {EC_WORD_GO, EC_WORD_GET, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_FOR, EC_WORD_ME}, .speechWin = {EC_WORD_AWW, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_HAVE, EC_WORD_A, EC_POKEMON(WHISCASH)}, .speechLose = {EC_WORD_PLEASE, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_POKEMON(WHISCASH), EC_WORD_BADLY}, - .monSets = gSlateportBattleTentTrainerMons_Rodolfo + .monSet = gSlateportBattleTentTrainerMons_Rodolfo }, - [7] = { + [SLATEPORT_TENT_TRAINER_DAVION] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("DAVION"), .speechBefore = {EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL, EC_WORD_GRAAAH, EC_WORD_GRAAAH, EC_WORD_EXCL_EXCL}, .speechWin = {EC_MOVE2(ROAR), EC_WORD_EXCL, -1, EC_MOVE2(ROAR), EC_WORD_EXCL_EXCL, -1}, .speechLose = {EC_WORD_URGH, EC_WORD_WAAAH, EC_WORD_EXCL_EXCL, -1, -1, -1}, - .monSets = gSlateportBattleTentTrainerMons_Davion + .monSet = gSlateportBattleTentTrainerMons_Davion }, - [8] = { + [SLATEPORT_TENT_TRAINER_KENDALL] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("KENDALL"), .speechBefore = {EC_WORD_A_LITTLE, EC_MOVE2(PETAL_DANCE), EC_WORD_TO, EC_WORD_PLEASE, EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_DO, EC_WORD_THIS, EC_WORD_ONLY, EC_WORD_FOR, EC_WORD_WORK}, .speechLose = {EC_WORD_HOW, EC_WORD_COULD, EC_WORD_YOU, EC_MOVE2(POUND), EC_WORD_ME, EC_WORD_QUES}, - .monSets = gSlateportBattleTentTrainerMons_Kendall + .monSet = gSlateportBattleTentTrainerMons_Kendall }, - [9] = { + [SLATEPORT_TENT_TRAINER_COLTEN] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("COLTEN"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_RUN, EC_WORD_AROUND}, .speechWin = {EC_WORD_YAY, EC_WORD_EXCL, EC_WORD_WANT, EC_WORD_TO, EC_WORD_RUN, EC_WORD_QUES}, .speechLose = {EC_WORD_A, EC_WORD_SWIFT_SWIM, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_GOOD, EC_WORD_TOO}, - .monSets = gSlateportBattleTentTrainerMons_Colten + .monSet = gSlateportBattleTentTrainerMons_Colten }, - [10] = { + [SLATEPORT_TENT_TRAINER_IRVIN] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("IRVIN"), .speechBefore = {EC_WORD_HAVE, EC_WORD_A, EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE(CONFUSE_RAY)}, .speechWin = {EC_WORD_YAHOO, EC_WORD_MY, EC_MOVE(CONFUSE_RAY), EC_WORD_IS, EC_WORD_THE, EC_WORD_BEST}, .speechLose = {EC_WORD_GWAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_I_AM, EC_WORD_SORRY, EC_WORD_EXCL}, - .monSets = gSlateportBattleTentTrainerMons_Irvin + .monSet = gSlateportBattleTentTrainerMons_Irvin }, - [11] = { + [SLATEPORT_TENT_TRAINER_SHAUN] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("SHAUN"), .speechBefore = {EC_WORD_LISTEN, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_AREN_T, EC_WORD_VERY, EC_WORD_GOOD}, .speechWin = {EC_WORD_YOU, EC_WORD_SEE, EC_WORD_QUES, EC_WORD_I, EC_WORD_WAS, EC_WORD_RIGHT}, .speechLose = {EC_WORD_YES, EC_WORD_YES, EC_WORD_ELLIPSIS, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_SOMETHING}, - .monSets = gSlateportBattleTentTrainerMons_Shaun + .monSet = gSlateportBattleTentTrainerMons_Shaun }, - [12] = { + [SLATEPORT_TENT_TRAINER_KYLER] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("KYLER"), .speechBefore = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_QUES}, .speechWin = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_YAY}, .speechLose = {EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_WOW}, - .monSets = gSlateportBattleTentTrainerMons_Kyler + .monSet = gSlateportBattleTentTrainerMons_Kyler }, - [13] = { + [SLATEPORT_TENT_TRAINER_MAGGIE] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("MAGGIE"), .speechBefore = {EC_POKEMON(VULPIX), EC_POKEMON(XATU), EC_POKEMON2(UMBREON), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_WORD_ELLIPSIS}, .speechWin = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON(SEVIPER), EC_WORD_EXCL, -1}, .speechLose = {EC_POKEMON(NOSEPASS), EC_WORD_ELLIPSIS, EC_WORD_UM, EC_POKEMON2(SNORLAX), EC_WORD_ELLIPSIS, EC_WORD_UH_OH}, - .monSets = gSlateportBattleTentTrainerMons_Maggie + .monSet = gSlateportBattleTentTrainerMons_Maggie }, - [14] = { + [SLATEPORT_TENT_TRAINER_STEPHON] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("STEPHON"), .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_ENJOY, EC_WORD_AN, EC_WORD_EGG}, .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_WORD_ENJOY, EC_WORD_THIS, EC_WORD_TASTY, EC_WORD_VICTORY}, .speechLose = {EC_WORD_AWFUL, EC_WORD_EXCL_EXCL, -1, EC_WORD_JUST, EC_WORD_AWFUL, EC_WORD_EXCL_EXCL}, - .monSets = gSlateportBattleTentTrainerMons_Stephon + .monSet = gSlateportBattleTentTrainerMons_Stephon }, - [15] = { + [SLATEPORT_TENT_TRAINER_REBECCA] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("REBECCA"), .speechBefore = {EC_WORD_THAT, EC_WORD_EGG, EC_WORD_HAS, EC_WORD_A, EC_WORD_TASTY, EC_WORD_SHINE}, .speechWin = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_EXCL, EC_WORD_SMELL, EC_WORD_THAT, EC_WORD_STENCH}, .speechLose = {EC_WORD_YOU, EC_WORD_CAN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_STOP, EC_WORD_ELLIPSIS}, - .monSets = gSlateportBattleTentTrainerMons_Rebecca + .monSet = gSlateportBattleTentTrainerMons_Rebecca }, - [16] = { + [SLATEPORT_TENT_TRAINER_REGGIE] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("REGGIE"), .speechBefore = {EC_WORD_POKEMON, EC_WORD_COME, EC_WORD_BEFORE, EC_WORD_MONEY, EC_WORD_OR, EC_WORD_FAMILY}, .speechWin = {EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_ME, EC_WORD_STRONG}, .speechLose = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I_AM, EC_WORD_SO, EC_WORD_THICK, EC_WORD_ELLIPSIS}, - .monSets = gSlateportBattleTentTrainerMons_Reggie + .monSet = gSlateportBattleTentTrainerMons_Reggie }, - [17] = { + [SLATEPORT_TENT_TRAINER_JANAE] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("JANAE"), .speechBefore = {EC_WORD_I, EC_WORD_JUST, EC_WORD_ADORE, EC_WORD_YOUR, EC_WORD_TOUGH, EC_WORD_LOOK}, .speechWin = {EC_WORD_I, EC_WORD_LIKE, EC_WORD_HOW, EC_WORD_YOU, EC_MOVE2(STRUGGLE), -1}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MEAN, EC_WORD_AND, EC_WORD_AWFUL, EC_WORD_TRAINER}, - .monSets = gSlateportBattleTentTrainerMons_Janae + .monSet = gSlateportBattleTentTrainerMons_Janae }, - [18] = { + [SLATEPORT_TENT_TRAINER_CAIDEN] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("CAIDEN"), .speechBefore = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_BREAK, EC_WORD_YOUR, EC_WORD_SPIRIT}, .speechWin = {EC_MOVE2(CURSE), EC_WORD_QUES, EC_WORD_IT_S, EC_WORD_A, EC_WORD_LIE, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_MY, EC_MOVE2(CURSE), EC_WORD_WILL, EC_WORD_LAST, EC_WORD_FOREVER, -1}, - .monSets = gSlateportBattleTentTrainerMons_Caiden + .monSet = gSlateportBattleTentTrainerMons_Caiden }, - [19] = { + [SLATEPORT_TENT_TRAINER_KIRSTEN] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("KIRSTEN"), .speechBefore = {EC_WORD_HUH_QUES, EC_WORD_A, EC_WORD_BATTLE, EC_WORD_YOU, EC_WORD_SAID, EC_WORD_QUES}, .speechWin = {EC_WORD_HUH_QUES, EC_WORD_STRONG, EC_WORD_BUT, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH}, .speechLose = {EC_WORD_HUH_QUES, EC_WORD_I, EC_WORD_SURRENDER, EC_WORD_TO, EC_WORD_YOUR, EC_MOVE(STRENGTH)}, - .monSets = gSlateportBattleTentTrainerMons_Kirsten + .monSet = gSlateportBattleTentTrainerMons_Kirsten }, - [20] = { + [SLATEPORT_TENT_TRAINER_KURTIS] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("KURTIS"), .speechBefore = {EC_WORD_SORRY, EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_GET, EC_MOVE2(BEAT_UP)}, .speechWin = {EC_WORD_I, EC_WORD_SAID, EC_WORD_WE, EC_WORD_WOULD, EC_MOVE2(POUND), EC_WORD_YOU}, .speechLose = {EC_WORD_HOW, EC_WORD_DID, EC_WORD_I, EC_WORD_GET, EC_MOVE2(BEAT_UP), EC_WORD_QUES}, - .monSets = gSlateportBattleTentTrainerMons_Kurtis + .monSet = gSlateportBattleTentTrainerMons_Kurtis }, - [21] = { + [SLATEPORT_TENT_TRAINER_STEFAN] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("STEFAN"), .speechBefore = {EC_WORD_I, EC_WORD_ONLY, EC_WORD_WANT, EC_WORD_CUTE, EC_WORD_POKEMON, -1}, .speechWin = {EC_WORD_WHAT, EC_WORD_IS, EC_WORD_IT, EC_WORD_TO, EC_WORD_YOU, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_KIND, EC_WORD_OF, EC_WORD_AWESOME, EC_WORD_ELLIPSIS, -1}, - .monSets = gSlateportBattleTentTrainerMons_Stefan + .monSet = gSlateportBattleTentTrainerMons_Stefan }, - [22] = { + [SLATEPORT_TENT_TRAINER_AVERY] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("AVERY"), .speechBefore = {EC_WORD_TOYS, EC_WORD_EXCL, EC_WORD_I, EC_WORD_NEED, EC_WORD_MORE, EC_WORD_TOYS}, .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_SOME, EC_WORD_EASY, EC_WORD_MONEY, EC_WORD_FAST}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_WORK, EC_WORD_FOR, EC_WORD_MONEY}, - .monSets = gSlateportBattleTentTrainerMons_Avery + .monSet = gSlateportBattleTentTrainerMons_Avery }, - [23] = { + [SLATEPORT_TENT_TRAINER_DWANE] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("DWANE"), .speechBefore = {EC_WORD_MMM, EC_WORD_TASTY, EC_WORD_ELLIPSIS, EC_WORD_WONDER, EC_WORD_WHAT, EC_WORD_QUES}, .speechWin = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW}, .speechLose = {EC_WORD_MMM, EC_WORD_MMM, EC_WORD_ELLIPSIS, EC_WORD_OH_YEAH, EC_WORD_THIS_IS_IT_EXCL, -1}, - .monSets = gSlateportBattleTentTrainerMons_Dwane + .monSet = gSlateportBattleTentTrainerMons_Dwane }, - [24] = { + [SLATEPORT_TENT_TRAINER_MCKENNA] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("MCKENNA"), .speechBefore = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SMALL, EC_WORD_TALK, EC_WORD_LET_S, EC_WORD_GO}, .speechWin = {EC_WORD_YUP, EC_WORD_THAT_S, EC_WORD_THAT, -1, -1, -1}, .speechLose = {EC_WORD_KTHX_BYE, -1, -1, -1, -1, -1}, - .monSets = gSlateportBattleTentTrainerMons_Mckenna + .monSet = gSlateportBattleTentTrainerMons_Mckenna }, - [25] = { + [SLATEPORT_TENT_TRAINER_CAMRYN] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("CAMRYN"), .speechBefore = {EC_WORD_MR, EC_WORD_JUDGE, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_OUR, EC_WORD_TRUST}, .speechWin = {EC_WORD_YES_SIR_EXCL, EC_WORD_WE_RE, EC_WORD_NO_1, EC_WORD_IN, EC_WORD_THIS, EC_WORD_CONTEST}, .speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_GIVE_UP, EC_WORD_MY, EC_WORD_IDOL, EC_WORD_DREAM}, - .monSets = gSlateportBattleTentTrainerMons_Camryn + .monSet = gSlateportBattleTentTrainerMons_Camryn }, - [26] = { + [SLATEPORT_TENT_TRAINER_NATASHA] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("NATASHA"), .speechBefore = {EC_WORD_COME_OVER, EC_WORD_TO, EC_WORD_MY, EC_WORD_PLACE, EC_WORD_OK_QUES, -1}, .speechWin = {EC_WORD_COME_ON, EC_WORD_OVER, EC_WORD_IT, EC_WORD_WILL, EC_WORD_BE, EC_WORD_GREAT}, .speechLose = {EC_WORD_AWW, EC_WORD_WON_T, EC_WORD_YOU, EC_WORD_COME_OVER, EC_WORD_QUES, -1}, - .monSets = gSlateportBattleTentTrainerMons_Natasha + .monSet = gSlateportBattleTentTrainerMons_Natasha }, - [27] = { + [SLATEPORT_TENT_TRAINER_AUSTYN] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("AUSTYN"), .speechBefore = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_CARE, EC_WORD_HOW, EC_WORD_WE, EC_WORD_MATCH_UP}, .speechWin = {EC_WORD_HAH, EC_WORD_BACK, EC_WORD_TO, EC_WORD_SCHOOL, EC_WORD_FOR, EC_WORD_YOU}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_STUDY, EC_WORD_MY, EC_WORD_LESSONS}, - .monSets = gSlateportBattleTentTrainerMons_Austyn + .monSet = gSlateportBattleTentTrainerMons_Austyn }, - [28] = { + [SLATEPORT_TENT_TRAINER_DONOVAN] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("DONOVAN"), .speechBefore = {EC_WORD_OH, EC_WORD_I_AM, EC_WORD_FEELING, EC_WORD_SLIMY, EC_WORD_ALL, EC_WORD_OVER}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_DOWN, EC_WORD_THE, EC_MOVE2(MEGA_DRAIN), EC_WORD_HAHAHA}, .speechLose = {EC_WORD_I_AM, EC_WORD_NATURALLY, EC_WORD_SLIMY, EC_WORD_THAT_S, EC_WORD_WHAT, EC_WORD_I_AM}, - .monSets = gSlateportBattleTentTrainerMons_Donovan + .monSet = gSlateportBattleTentTrainerMons_Donovan }, - [29] = { + [SLATEPORT_TENT_TRAINER_TAMIA] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("TAMIA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_ANGRY, EC_WORD_WITH, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DISLIKE, EC_WORD_MY, EC_WORD_FATHER, EC_WORD_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_JUST, EC_WORD_SO, EC_WORD_ADORE, EC_WORD_MY, EC_WORD_FATHER}, - .monSets = gSlateportBattleTentTrainerMons_Tamia + .monSet = gSlateportBattleTentTrainerMons_Tamia } }; -const struct FacilityMon gSlateportBattleTentMons[] = +const struct FacilityMon gSlateportBattleTentMons[NUM_SLATEPORT_TENT_MONS] = { - [0] = { + [SLATEPORT_TENT_MON_ZIGZAGOON_1] = { .species = SPECIES_ZIGZAGOON, .moves = {MOVE_TACKLE, MOVE_CHARM, MOVE_ODOR_SLEUTH, MOVE_PIN_MISSILE}, .itemTableId = BATTLE_FRONTIER_ITEM_CHOICE_BAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [1] = { + [SLATEPORT_TENT_MON_ZIGZAGOON_2] = { .species = SPECIES_ZIGZAGOON, .moves = {MOVE_DIG, MOVE_MUD_SPORT, MOVE_TAIL_WHIP, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [2] = { + [SLATEPORT_TENT_MON_BEAUTIFLY] = { .species = SPECIES_BEAUTIFLY, .moves = {MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_GUST, MOVE_HARDEN}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [3] = { + [SLATEPORT_TENT_MON_DUSTOX] = { .species = SPECIES_DUSTOX, .moves = {MOVE_POISON_STING, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_GUST}, .itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [4] = { + [SLATEPORT_TENT_MON_WAILMER_1] = { .species = SPECIES_WAILMER, .moves = {MOVE_ROLLOUT, MOVE_CURSE, MOVE_GROWL, MOVE_WHIRLPOOL}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [5] = { + [SLATEPORT_TENT_MON_WAILMER_2] = { .species = SPECIES_WAILMER, .moves = {MOVE_ROLLOUT, MOVE_GROWL, MOVE_WHIRLPOOL, MOVE_WATER_PULSE}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [6] = { + [SLATEPORT_TENT_MON_MARILL_1] = { .species = SPECIES_MARILL, .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [7] = { + [SLATEPORT_TENT_MON_WINGULL_1] = { .species = SPECIES_WINGULL, .moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_WING_ATTACK, MOVE_STEEL_WING}, .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAIVE }, - [8] = { + [SLATEPORT_TENT_MON_PELIPPER_1] = { .species = SPECIES_PELIPPER, .moves = {MOVE_TWISTER, MOVE_WATER_SPORT, MOVE_GROWL, MOVE_WING_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [9] = { + [SLATEPORT_TENT_MON_CACNEA_1] = { .species = SPECIES_CACNEA, .moves = {MOVE_SANDSTORM, MOVE_LEER, MOVE_LEECH_SEED, MOVE_PIN_MISSILE}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED, .nature = NATURE_JOLLY }, - [10] = { + [SLATEPORT_TENT_MON_LOMBRE_1] = { .species = SPECIES_LOMBRE, .moves = {MOVE_ASTONISH, MOVE_WATER_GUN, MOVE_FAKE_OUT, MOVE_ABSORB}, .itemTableId = BATTLE_FRONTIER_ITEM_MIRACLE_SEED, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [11] = { + [SLATEPORT_TENT_MON_LOTAD] = { .species = SPECIES_LOTAD, .moves = {MOVE_SYNTHESIS, MOVE_NATURE_POWER, MOVE_RAIN_DANCE, MOVE_MEGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_DOCILE }, - [12] = { + [SLATEPORT_TENT_MON_SEEDOT] = { .species = SPECIES_SEEDOT, .moves = {MOVE_SUNNY_DAY, MOVE_SYNTHESIS, MOVE_LEECH_SEED, MOVE_BIDE}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [13] = { + [SLATEPORT_TENT_MON_NUZLEAF] = { .species = SPECIES_NUZLEAF, .moves = {MOVE_FAKE_OUT, MOVE_NATURE_POWER, MOVE_HARDEN, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [14] = { + [SLATEPORT_TENT_MON_NINJASK_1] = { .species = SPECIES_NINJASK, .moves = {MOVE_FURY_CUTTER, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [15] = { + [SLATEPORT_TENT_MON_NINJASK_2] = { .species = SPECIES_NINJASK, .moves = {MOVE_FURY_CUTTER, MOVE_DOUBLE_TEAM, MOVE_SCREECH, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [16] = { + [SLATEPORT_TENT_MON_GRAVELER] = { .species = SPECIES_GRAVELER, .moves = {MOVE_MUD_SPORT, MOVE_BLOCK, MOVE_ROCK_TOMB, MOVE_MAGNITUDE}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [17] = { + [SLATEPORT_TENT_MON_BALTOY] = { .species = SPECIES_BALTOY, .moves = {MOVE_SELF_DESTRUCT, MOVE_ANCIENT_POWER, MOVE_PSYBEAM, MOVE_REFLECT}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_NAIVE }, - [18] = { + [SLATEPORT_TENT_MON_MIGHTYENA_1] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_BITE, MOVE_ROAR, MOVE_SWAGGER, MOVE_TACKLE}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [19] = { + [SLATEPORT_TENT_MON_MIGHTYENA_2] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_SAND_ATTACK, MOVE_POISON_FANG}, .itemTableId = BATTLE_FRONTIER_ITEM_SHELL_BELL, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [20] = { + [SLATEPORT_TENT_MON_LINOONE] = { .species = SPECIES_LINOONE, .moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_TAIL_WHIP, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [21] = { + [SLATEPORT_TENT_MON_GOLDEEN] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_WATER_SPORT, MOVE_HORN_ATTACK, MOVE_WATERFALL, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_CALM }, - [22] = { + [SLATEPORT_TENT_MON_ELECTRIKE_1] = { .species = SPECIES_ELECTRIKE, .moves = {MOVE_BITE, MOVE_SPARK, MOVE_ROAR, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_MODEST }, - [23] = { + [SLATEPORT_TENT_MON_VOLTORB] = { .species = SPECIES_VOLTORB, .moves = {MOVE_SPARK, MOVE_ROLLOUT, MOVE_CHARGE, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK, .nature = NATURE_MILD }, - [24] = { + [SLATEPORT_TENT_MON_ARON_1] = { .species = SPECIES_ARON, .moves = {MOVE_DIG, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ENDEAVOR}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [25] = { + [SLATEPORT_TENT_MON_ARON_2] = { .species = SPECIES_ARON, .moves = {MOVE_MUD_SLAP, MOVE_IRON_TAIL, MOVE_HARDEN, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [26] = { + [SLATEPORT_TENT_MON_TRAPINCH_1] = { .species = SPECIES_TRAPINCH, .moves = {MOVE_BODY_SLAM, MOVE_FOCUS_ENERGY, MOVE_SAND_TOMB, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [27] = { + [SLATEPORT_TENT_MON_CACNEA_2] = { .species = SPECIES_CACNEA, .moves = {MOVE_INGRAIN, MOVE_SANDSTORM, MOVE_POISON_STING, MOVE_DESTINY_BOND}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [28] = { + [SLATEPORT_TENT_MON_TAILLOW] = { .species = SPECIES_TAILLOW, .moves = {MOVE_GROWL, MOVE_AERIAL_ACE, MOVE_AGILITY, MOVE_ENDEAVOR}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [29] = { + [SLATEPORT_TENT_MON_SWELLOW] = { .species = SPECIES_SWELLOW, .moves = {MOVE_SUPERSONIC, MOVE_GROWL, MOVE_FOCUS_ENERGY, MOVE_PECK}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [30] = { + [SLATEPORT_TENT_MON_GOLBAT_1] = { .species = SPECIES_GOLBAT, .moves = {MOVE_ASTONISH, MOVE_GUST, MOVE_MEAN_LOOK, MOVE_CONFUSE_RAY}, .itemTableId = BATTLE_FRONTIER_ITEM_SPELL_TAG, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_TIMID }, - [31] = { + [SLATEPORT_TENT_MON_LOUDRED] = { .species = SPECIES_LOUDRED, .moves = {MOVE_ASTONISH, MOVE_SCREECH, MOVE_UPROAR, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [32] = { + [SLATEPORT_TENT_MON_SPINDA] = { .species = SPECIES_SPINDA, .moves = {MOVE_DIZZY_PUNCH, MOVE_FAINT_ATTACK, MOVE_HYPNOSIS, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [33] = { + [SLATEPORT_TENT_MON_MAGNEMITE] = { .species = SPECIES_MAGNEMITE, .moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SPARK}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_SERIOUS }, - [34] = { + [SLATEPORT_TENT_MON_WHISMUR] = { .species = SPECIES_WHISMUR, .moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HOWL, MOVE_BODY_SLAM}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [35] = { + [SLATEPORT_TENT_MON_MAKUHITA] = { .species = SPECIES_MAKUHITA, .moves = {MOVE_SAND_ATTACK, MOVE_KNOCK_OFF, MOVE_ARM_THRUST, MOVE_BELLY_DRUM}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [36] = { + [SLATEPORT_TENT_MON_NUMEL_1] = { .species = SPECIES_NUMEL, .moves = {MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_GROWL, MOVE_FOCUS_ENERGY}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_MODEST }, - [37] = { + [SLATEPORT_TENT_MON_BARBOACH] = { .species = SPECIES_BARBOACH, .moves = {MOVE_MAGNITUDE, MOVE_MUD_SPORT, MOVE_WATER_SPORT, MOVE_WATER_GUN}, .itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [38] = { + [SLATEPORT_TENT_MON_TENTACOOL] = { .species = SPECIES_TENTACOOL, .moves = {MOVE_SCREECH, MOVE_BUBBLE_BEAM, MOVE_ACID, MOVE_BARRIER}, .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [39] = { + [SLATEPORT_TENT_MON_VIGOROTH] = { .species = SPECIES_VIGOROTH, .moves = {MOVE_FOCUS_ENERGY, MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_YAWN}, .itemTableId = BATTLE_FRONTIER_ITEM_AGUAV_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [40] = { + [SLATEPORT_TENT_MON_MAGIKARP] = { .species = SPECIES_MAGIKARP, .moves = {MOVE_TACKLE, MOVE_FLAIL, MOVE_SPLASH, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [41] = { + [SLATEPORT_TENT_MON_SEVIPER_1] = { .species = SPECIES_SEVIPER, .moves = {MOVE_LICK, MOVE_POISON_FANG, MOVE_GLARE, MOVE_WRAP}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [42] = { + [SLATEPORT_TENT_MON_SOLROCK] = { .species = SPECIES_SOLROCK, .moves = {MOVE_ROCK_THROW, MOVE_HARDEN, MOVE_PSYWAVE, MOVE_TACKLE}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [43] = { + [SLATEPORT_TENT_MON_KECLEON_1] = { .species = SPECIES_KECLEON, .moves = {MOVE_PSYBEAM, MOVE_SUBSTITUTE, MOVE_THIEF, MOVE_TAIL_WHIP}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [44] = { + [SLATEPORT_TENT_MON_KECLEON_2] = { .species = SPECIES_KECLEON, .moves = {MOVE_FAINT_ATTACK, MOVE_ASTONISH, MOVE_LICK, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [45] = { + [SLATEPORT_TENT_MON_SHROOMISH_1] = { .species = SPECIES_SHROOMISH, .moves = {MOVE_STUN_SPORE, MOVE_TACKLE, MOVE_LEECH_SEED, MOVE_MEGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [46] = { + [SLATEPORT_TENT_MON_SHROOMISH_2] = { .species = SPECIES_SHROOMISH, .moves = {MOVE_ABSORB, MOVE_STUN_SPORE, MOVE_SPORE, MOVE_LEECH_SEED}, .itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY, .evSpread = F_EV_SPREAD_ATTACK, .nature = NATURE_BRAVE }, - [47] = { + [SLATEPORT_TENT_MON_LOMBRE_2] = { .species = SPECIES_LOMBRE, .moves = {MOVE_NATURE_POWER, MOVE_ASTONISH, MOVE_GROWL, MOVE_ABSORB}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_LONELY }, - [48] = { + [SLATEPORT_TENT_MON_NUMEL_2] = { .species = SPECIES_NUMEL, .moves = {MOVE_EMBER, MOVE_GROWL, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [49] = { + [SLATEPORT_TENT_MON_TRAPINCH_2] = { .species = SPECIES_TRAPINCH, .moves = {MOVE_FAINT_ATTACK, MOVE_DIG, MOVE_BITE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [50] = { + [SLATEPORT_TENT_MON_PELIPPER_2] = { .species = SPECIES_PELIPPER, .moves = {MOVE_WING_ATTACK, MOVE_SUPERSONIC, MOVE_MIST, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [51] = { + [SLATEPORT_TENT_MON_WINGULL_2] = { .species = SPECIES_WINGULL, .moves = {MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_GROWL, MOVE_ICY_WIND}, .itemTableId = BATTLE_FRONTIER_ITEM_NEVER_MELT_ICE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [52] = { + [SLATEPORT_TENT_MON_MARILL_2] = { .species = SPECIES_MARILL, .moves = {MOVE_DOUBLE_EDGE, MOVE_RAIN_DANCE, MOVE_TAIL_WHIP, MOVE_WATER_GUN}, .itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [53] = { + [SLATEPORT_TENT_MON_SKITTY] = { .species = SPECIES_SKITTY, .moves = {MOVE_ASSIST, MOVE_ATTRACT, MOVE_SING, MOVE_CHARM}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [54] = { + [SLATEPORT_TENT_MON_SEVIPER_2] = { .species = SPECIES_SEVIPER, .moves = {MOVE_SWAGGER, MOVE_WRAP, MOVE_POISON_TAIL, MOVE_HAZE}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE, .nature = NATURE_BRAVE }, - [55] = { + [SLATEPORT_TENT_MON_GOLBAT_2] = { .species = SPECIES_GOLBAT, .moves = {MOVE_BITE, MOVE_TORMENT, MOVE_SCREECH, MOVE_POISON_FANG}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_HARDY }, - [56] = { + [SLATEPORT_TENT_MON_RALTS] = { .species = SPECIES_RALTS, .moves = {MOVE_HYPNOSIS, MOVE_IMPRISON, MOVE_PSYCHIC, MOVE_DREAM_EATER}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_TIMID }, - [57] = { + [SLATEPORT_TENT_MON_SANDSHREW] = { .species = SPECIES_SANDSHREW, .moves = {MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_SAND_TOMB, MOVE_DEFENSE_CURL}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = 0, .nature = NATURE_HARDY }, - [58] = { + [SLATEPORT_TENT_MON_SWALOT] = { .species = SPECIES_SWALOT, .moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ENCORE, MOVE_POUND}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_IMPISH }, - [59] = { + [SLATEPORT_TENT_MON_VOLBEAT] = { .species = SPECIES_VOLBEAT, .moves = {MOVE_TACKLE, MOVE_CONFUSE_RAY, MOVE_QUICK_ATTACK, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [60] = { + [SLATEPORT_TENT_MON_ILLUMISE] = { .species = SPECIES_ILLUMISE, .moves = {MOVE_CHARM, MOVE_TACKLE, MOVE_ENCORE, MOVE_MOONLIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_CHERI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [61] = { + [SLATEPORT_TENT_MON_KADABRA] = { .species = SPECIES_KADABRA, .moves = {MOVE_DISABLE, MOVE_CONFUSION, MOVE_REFLECT, MOVE_RECOVER}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [62] = { + [SLATEPORT_TENT_MON_KIRLIA] = { .species = SPECIES_KIRLIA, .moves = {MOVE_CALM_MIND, MOVE_CONFUSION, MOVE_DOUBLE_TEAM, MOVE_GROWL}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [63] = { + [SLATEPORT_TENT_MON_BRELOOM] = { .species = SPECIES_BRELOOM, .moves = {MOVE_ABSORB, MOVE_TACKLE, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAIVE }, - [64] = { + [SLATEPORT_TENT_MON_PLUSLE_1] = { .species = SPECIES_PLUSLE, .moves = {MOVE_SPARK, MOVE_ENCORE, MOVE_THUNDER_WAVE, MOVE_GROWL}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_LONELY }, - [65] = { + [SLATEPORT_TENT_MON_PLUSLE_2] = { .species = SPECIES_PLUSLE, .moves = {MOVE_SPARK, MOVE_FAKE_TEARS, MOVE_SUBSTITUTE, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MILD }, - [66] = { + [SLATEPORT_TENT_MON_ELECTRIKE_2] = { .species = SPECIES_ELECTRIKE, .moves = {MOVE_SPARK, MOVE_CHARGE, MOVE_ROAR, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_APICOT_BERRY, .evSpread = F_EV_SPREAD_SPEED, .nature = NATURE_TIMID }, - [67] = { + [SLATEPORT_TENT_MON_SWABLU] = { .species = SPECIES_SWABLU, .moves = {MOVE_SING, MOVE_PECK, MOVE_STEEL_WING, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [68] = { + [SLATEPORT_TENT_MON_MACHOP] = { .species = SPECIES_MACHOP, .moves = {MOVE_FOCUS_ENERGY, MOVE_VITAL_THROW, MOVE_SEISMIC_TOSS, MOVE_FORESIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [69] = { + [SLATEPORT_TENT_MON_MACHOKE] = { .species = SPECIES_MACHOKE, .moves = {MOVE_FOCUS_ENERGY, MOVE_LEER, MOVE_KARATE_CHOP, MOVE_FORESIGHT}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, @@ -1248,873 +1248,873 @@ const struct FacilityMon gSlateportBattleTentMons[] = // Verdanturf Battle Tent. const u16 gVerdanturfBattleTentTrainerMons_Brenna[] = { - 4, - 11, - 13, - 18, - 26, + VERDANTURF_TENT_MON_SHROOMISH, + VERDANTURF_TENT_MON_SWALOT, + VERDANTURF_TENT_MON_BALTOY, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_NUZLEAF, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Dilan[] = { - 30, - 37, - 13, - 29, - 42, + VERDANTURF_TENT_MON_GRAVELER, + VERDANTURF_TENT_MON_TRAPINCH, + VERDANTURF_TENT_MON_BALTOY, + VERDANTURF_TENT_MON_SOLROCK, + VERDANTURF_TENT_MON_MACHOKE, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Eliana[] = { - 6, - 7, - 17, - 18, - 40, + VERDANTURF_TENT_MON_MAGIKARP, + VERDANTURF_TENT_MON_BARBOACH, + VERDANTURF_TENT_MON_GOLDEEN_1, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_WAILMER, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Markus[] = { - 6, - 7, - 18, - 24, - 38, + VERDANTURF_TENT_MON_MAGIKARP, + VERDANTURF_TENT_MON_BARBOACH, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_GOLDEEN_2, + VERDANTURF_TENT_MON_TENTACOOL, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Caitlyn[] = { - 0, - 12, - 25, - 28, - 22, - 44, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_KECLEON, + VERDANTURF_TENT_MON_ELECTRIKE, + VERDANTURF_TENT_MON_MIGHTYENA, + VERDANTURF_TENT_MON_SKARMORY, + VERDANTURF_TENT_MON_CACNEA, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Desiree[] = { - 8, - 12, - 21, - 22, - 31, + VERDANTURF_TENT_MON_WINGULL, + VERDANTURF_TENT_MON_KECLEON, + VERDANTURF_TENT_MON_SEVIPER, + VERDANTURF_TENT_MON_SKARMORY, + VERDANTURF_TENT_MON_KADABRA, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Ronald[] = { - 1, - 20, - 23, - 25, - 32, + VERDANTURF_TENT_MON_ZIGZAGOON, + VERDANTURF_TENT_MON_LINOONE, + VERDANTURF_TENT_MON_SWELLOW, + VERDANTURF_TENT_MON_ELECTRIKE, + VERDANTURF_TENT_MON_VOLTORB, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Ashten[] = { - 9, - 12, - 27, - 37, - 43, + VERDANTURF_TENT_MON_ARON_1, + VERDANTURF_TENT_MON_KECLEON, + VERDANTURF_TENT_MON_ARON_2, + VERDANTURF_TENT_MON_TRAPINCH, + VERDANTURF_TENT_MON_WHISMUR, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Gerard[] = { - 36, - 7, - 34, - 6, - 40, + VERDANTURF_TENT_MON_MARILL, + VERDANTURF_TENT_MON_BARBOACH, + VERDANTURF_TENT_MON_PELIPPER, + VERDANTURF_TENT_MON_MAGIKARP, + VERDANTURF_TENT_MON_WAILMER, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Bradly[] = { - 26, - 3, - 0, - 2, - 17, + VERDANTURF_TENT_MON_NUZLEAF, + VERDANTURF_TENT_MON_TAILLOW, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_DUSTOX, + VERDANTURF_TENT_MON_GOLDEEN_1, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Dennis[] = { - 14, - 37, - 2, - 38, - 27, + VERDANTURF_TENT_MON_NINJASK, + VERDANTURF_TENT_MON_TRAPINCH, + VERDANTURF_TENT_MON_DUSTOX, + VERDANTURF_TENT_MON_TENTACOOL, + VERDANTURF_TENT_MON_ARON_2, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Prestin[] = { - 31, - 28, - 22, - 25, - 44, - 43, - 41, + VERDANTURF_TENT_MON_KADABRA, + VERDANTURF_TENT_MON_MIGHTYENA, + VERDANTURF_TENT_MON_SKARMORY, + VERDANTURF_TENT_MON_ELECTRIKE, + VERDANTURF_TENT_MON_CACNEA, + VERDANTURF_TENT_MON_WHISMUR, + VERDANTURF_TENT_MON_ILLUMISE, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Ernesto[] = { - 33, - 32, - 25, - 35, - 34, + VERDANTURF_TENT_MON_MAGNEMITE, + VERDANTURF_TENT_MON_VOLTORB, + VERDANTURF_TENT_MON_ELECTRIKE, + VERDANTURF_TENT_MON_LOUDRED, + VERDANTURF_TENT_MON_PELIPPER, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Nala[] = { - 1, - 4, - 8, - 11, - 17, - 40, - 34, + VERDANTURF_TENT_MON_ZIGZAGOON, + VERDANTURF_TENT_MON_SHROOMISH, + VERDANTURF_TENT_MON_WINGULL, + VERDANTURF_TENT_MON_SWALOT, + VERDANTURF_TENT_MON_GOLDEEN_1, + VERDANTURF_TENT_MON_WAILMER, + VERDANTURF_TENT_MON_PELIPPER, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Darnell[] = { - 0, - 29, - 35, - 37, - 39, - 43, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_SOLROCK, + VERDANTURF_TENT_MON_LOUDRED, + VERDANTURF_TENT_MON_TRAPINCH, + VERDANTURF_TENT_MON_VIGOROTH, + VERDANTURF_TENT_MON_WHISMUR, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Ashlyn[] = { - 29, - 36, - 32, - 30, - 17, - 6, - 44, + VERDANTURF_TENT_MON_SOLROCK, + VERDANTURF_TENT_MON_MARILL, + VERDANTURF_TENT_MON_VOLTORB, + VERDANTURF_TENT_MON_GRAVELER, + VERDANTURF_TENT_MON_GOLDEEN_1, + VERDANTURF_TENT_MON_MAGIKARP, + VERDANTURF_TENT_MON_CACNEA, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Addison[] = { - 0, - 1, - 16, - 31, - 6, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_ZIGZAGOON, + VERDANTURF_TENT_MON_SWABLU, + VERDANTURF_TENT_MON_KADABRA, + VERDANTURF_TENT_MON_MAGIKARP, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Justine[] = { - 0, - 1, - 16, - 36, - 18, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_ZIGZAGOON, + VERDANTURF_TENT_MON_SWABLU, + VERDANTURF_TENT_MON_MARILL, + VERDANTURF_TENT_MON_LOTAD, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Tyson[] = { - 5, - 15, - 22, - 30, - 16, - 39, - 43, + VERDANTURF_TENT_MON_MACHOP, + VERDANTURF_TENT_MON_MAKUHITA, + VERDANTURF_TENT_MON_SKARMORY, + VERDANTURF_TENT_MON_GRAVELER, + VERDANTURF_TENT_MON_SWABLU, + VERDANTURF_TENT_MON_VIGOROTH, + VERDANTURF_TENT_MON_WHISMUR, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Laila[] = { - 5, - 15, - 19, - 24, - 41, - 43, + VERDANTURF_TENT_MON_MACHOP, + VERDANTURF_TENT_MON_MAKUHITA, + VERDANTURF_TENT_MON_NUMEL_2, + VERDANTURF_TENT_MON_GOLDEEN_2, + VERDANTURF_TENT_MON_ILLUMISE, + VERDANTURF_TENT_MON_WHISMUR, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Waren[] = { - 0, - 9, - 10, - 11, - 23, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_ARON_1, + VERDANTURF_TENT_MON_NUMEL_1, + VERDANTURF_TENT_MON_SWALOT, + VERDANTURF_TENT_MON_SWELLOW, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Tobias[] = { - 6, - 7, - 24, - 38, - 40, + VERDANTURF_TENT_MON_MAGIKARP, + VERDANTURF_TENT_MON_BARBOACH, + VERDANTURF_TENT_MON_GOLDEEN_2, + VERDANTURF_TENT_MON_TENTACOOL, + VERDANTURF_TENT_MON_WAILMER, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Josiah[] = { - 8, - 16, - 23, - 34, - 3, + VERDANTURF_TENT_MON_WINGULL, + VERDANTURF_TENT_MON_SWABLU, + VERDANTURF_TENT_MON_SWELLOW, + VERDANTURF_TENT_MON_PELIPPER, + VERDANTURF_TENT_MON_TAILLOW, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Dion[] = { - 14, - 2, - 11, - 39, - 21, - 38, + VERDANTURF_TENT_MON_NINJASK, + VERDANTURF_TENT_MON_DUSTOX, + VERDANTURF_TENT_MON_SWALOT, + VERDANTURF_TENT_MON_VIGOROTH, + VERDANTURF_TENT_MON_SEVIPER, + VERDANTURF_TENT_MON_TENTACOOL, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Kenzie[] = { - 18, - 10, - 16, - 26, - 25, - 27, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_NUMEL_1, + VERDANTURF_TENT_MON_SWABLU, + VERDANTURF_TENT_MON_NUZLEAF, + VERDANTURF_TENT_MON_ELECTRIKE, + VERDANTURF_TENT_MON_ARON_2, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Lillian[] = { - 24, - 34, - 36, - 38, - 5, + VERDANTURF_TENT_MON_GOLDEEN_2, + VERDANTURF_TENT_MON_PELIPPER, + VERDANTURF_TENT_MON_MARILL, + VERDANTURF_TENT_MON_TENTACOOL, + VERDANTURF_TENT_MON_MACHOP, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Lesley[] = { - 26, - 0, - 18, - 13, - 25, + VERDANTURF_TENT_MON_NUZLEAF, + VERDANTURF_TENT_MON_POOCHYENA, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_BALTOY, + VERDANTURF_TENT_MON_ELECTRIKE, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Marquis[] = { - 24, - 34, - 5, - 15, - 7, - 42, + VERDANTURF_TENT_MON_GOLDEEN_2, + VERDANTURF_TENT_MON_PELIPPER, + VERDANTURF_TENT_MON_MACHOP, + VERDANTURF_TENT_MON_MAKUHITA, + VERDANTURF_TENT_MON_BARBOACH, + VERDANTURF_TENT_MON_MACHOKE, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Freddy[] = { - 18, - 21, - 26, - 29, - 41, + VERDANTURF_TENT_MON_LOTAD, + VERDANTURF_TENT_MON_SEVIPER, + VERDANTURF_TENT_MON_NUZLEAF, + VERDANTURF_TENT_MON_SOLROCK, + VERDANTURF_TENT_MON_ILLUMISE, -1 }; const u16 gVerdanturfBattleTentTrainerMons_Cecilia[] = { - 23, - 26, - 27, - 28, - 31, + VERDANTURF_TENT_MON_SWELLOW, + VERDANTURF_TENT_MON_NUZLEAF, + VERDANTURF_TENT_MON_ARON_2, + VERDANTURF_TENT_MON_MIGHTYENA, + VERDANTURF_TENT_MON_KADABRA, -1 }; -const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[] = +const struct BattleFrontierTrainer gVerdanturfBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] = { - [0] = { + [VERDANTURF_TENT_TRAINER_BRENNA] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("BRENNA"), .speechBefore = {EC_WORD_NO, EC_WORD_DAYS, EC_WORD_GO, EC_WORD_WITHOUT, EC_WORD_MY, EC_MOVE(FAKE_TEARS)}, .speechWin = {EC_WORD_OH, EC_WORD_THAT_WAS, EC_WORD_SO, EC_WORD_REFRESHING, EC_WORD_EXCL, -1}, .speechLose = {EC_WORD_ALL, EC_WORD_I, EC_WORD_EVER, EC_WORD_GET, EC_WORD_IS, EC_MOVE(TORMENT)}, - .monSets = gVerdanturfBattleTentTrainerMons_Brenna + .monSet = gVerdanturfBattleTentTrainerMons_Brenna }, - [1] = { + [VERDANTURF_TENT_TRAINER_DILAN] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("DILAN"), .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_KNOW, EC_WORD_HOW, EC_WORD_BORED, EC_WORD_I_AM}, .speechWin = {EC_WORD_LOSING, EC_WORD_ISN_T, EC_WORD_EXCITING, EC_WORD_AT, EC_WORD_ALL, EC_WORD_ELLIPSIS}, .speechLose = {EC_WORD_EXCITING, EC_WORD_EXCL_EXCL, EC_WORD_BYE_BYE, EC_WORD_TO, EC_WORD_BEING, EC_WORD_BORED}, - .monSets = gVerdanturfBattleTentTrainerMons_Dilan + .monSet = gVerdanturfBattleTentTrainerMons_Dilan }, - [2] = { + [VERDANTURF_TENT_TRAINER_ELIANA] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("ELIANA"), .speechBefore = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_ON, EC_WORD_A, EC_WORD_VACATION, EC_WORD_SOON}, .speechWin = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_GET, EC_WORD_SOME, EC_WORD_MONEY}, .speechLose = {EC_WORD_NO, EC_WORD_SLEEP, EC_WORD_UNTIL, EC_WORD_I, EC_WORD_GET, EC_WORD_HOME}, - .monSets = gVerdanturfBattleTentTrainerMons_Eliana + .monSet = gVerdanturfBattleTentTrainerMons_Eliana }, - [3] = { + [VERDANTURF_TENT_TRAINER_MARKUS] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("MARKUS"), .speechBefore = {EC_WORD_I_AM, EC_WORD_SMART, EC_WORD_EXCL, EC_WORD_IF_I_LOSE, EC_WORD_I, EC_MOVE(SELF_DESTRUCT)}, .speechWin = {EC_WORD_IT_S, EC_WORD_A, EC_WORD_NON_STOP, EC_MOVE2(EXPLOSION), EC_WORD_OF, EC_WORD_JOY}, .speechLose = {EC_WORD_I_VE, EC_WORD_LOST, EC_WORD_ELLIPSIS, EC_WORD_TIME, EC_WORD_TO, EC_MOVE(SELF_DESTRUCT)}, - .monSets = gVerdanturfBattleTentTrainerMons_Markus + .monSet = gVerdanturfBattleTentTrainerMons_Markus }, - [4] = { + [VERDANTURF_TENT_TRAINER_CAITLYN] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("CAITLYN"), .speechBefore = {EC_WORD_I_AM, EC_WORD_BORED, EC_WORD_OF, EC_WORD_BEING, EC_WORD_AN, EC_WORD_IDOL}, .speechWin = {EC_WORD_A, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_BEST, EC_WORD_FOR, EC_WORD_HAPPINESS}, .speechLose = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_WORD_BUG, EC_WORD_ME, EC_WORD_AT, EC_WORD_ALL}, - .monSets = gVerdanturfBattleTentTrainerMons_Caitlyn + .monSet = gVerdanturfBattleTentTrainerMons_Caitlyn }, - [5] = { + [VERDANTURF_TENT_TRAINER_DESIREE] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("DESIREE"), .speechBefore = {EC_WORD_DOESN_T, EC_WORD_MY, EC_WORD_BEAUTY, EC_MOVE(ASTONISH), EC_WORD_YOU, EC_WORD_QUES}, .speechWin = {EC_WORD_DID, EC_WORD_I, EC_WORD_INTIMIDATE, EC_WORD_YOU, EC_WORD_QUES, -1}, .speechLose = {EC_WORD_MY, EC_WORD_BEAUTY, EC_WORD_DID, EC_WORD_NOTHING, EC_WORD_FOR, EC_WORD_YOU}, - .monSets = gVerdanturfBattleTentTrainerMons_Desiree + .monSet = gVerdanturfBattleTentTrainerMons_Desiree }, - [6] = { + [VERDANTURF_TENT_TRAINER_RONALD] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("RONALD"), .speechBefore = {EC_WORD_COME_ON, EC_WORD_I, EC_WORD_WILL, EC_WORD_BATTLE, EC_WORD_SERIOUSLY, -1}, .speechWin = {EC_WORD_GIVE_UP, EC_WORD_QUES, -1, EC_WORD_THAT_S, EC_WORD_REALLY, EC_WORD_WEAK}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_TO, EC_WORD_DO, EC_WORD_A, EC_MOVE2(BATON_PASS)}, - .monSets = gVerdanturfBattleTentTrainerMons_Ronald + .monSet = gVerdanturfBattleTentTrainerMons_Ronald }, - [7] = { + [VERDANTURF_TENT_TRAINER_ASHTEN] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("ASHTEN"), .speechBefore = {EC_WORD_OH_YEAH, EC_WORD_ANOTHER, EC_WORD_EXCITING, EC_WORD_BATTLE, EC_WORD_EXCL, -1}, .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_WIMPY, EC_WORD_AND, EC_WORD_BORING}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_AN, EC_WORD_EXCITING, EC_WORD_LOSS, EC_WORD_WOW, EC_WORD_EXCL}, - .monSets = gVerdanturfBattleTentTrainerMons_Ashten + .monSet = gVerdanturfBattleTentTrainerMons_Ashten }, - [8] = { + [VERDANTURF_TENT_TRAINER_GERARD] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("GERARD"), .speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_WORD_SUPER, EC_MOVE2(TEETER_DANCE), EC_WORD_EXCL}, .speechWin = {EC_WORD_THAT_WAS, EC_WORD_HARD, EC_WORD_ELLIPSIS, EC_WORD_AM, EC_WORD_I, EC_WORD_OK_QUES}, .speechLose = {EC_WORD_I, EC_WORD_WON_T, EC_WORD_FORGIVE, EC_WORD_YOU, EC_WORD_FOR, EC_WORD_THAT}, - .monSets = gVerdanturfBattleTentTrainerMons_Gerard + .monSet = gVerdanturfBattleTentTrainerMons_Gerard }, - [9] = { + [VERDANTURF_TENT_TRAINER_BRADLY] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("BRADLY"), .speechBefore = {EC_WORD_IT_S, EC_WORD_LONESOME, EC_WORD_BUT, EC_WORD_I, EC_WORD_VACATION, EC_WORD_ALONE}, .speechWin = {EC_WORD_I, EC_WORD_WILL, EC_MOVE(WITHDRAW), EC_WORD_INSIDE, EC_WORD_MY, EC_WORD_SHELL_ARMOR}, .speechLose = {EC_WORD_OH, EC_WORD_ELLIPSIS, -1, EC_WORD_ALONE, EC_WORD_AS, EC_WORD_ALWAYS}, - .monSets = gVerdanturfBattleTentTrainerMons_Bradly + .monSet = gVerdanturfBattleTentTrainerMons_Bradly }, - [10] = { + [VERDANTURF_TENT_TRAINER_DENNIS] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("DENNIS"), .speechBefore = {EC_WORD_ARE, EC_WORD_YOU, EC_WORD_REALLY, EC_WORD_STRONG, EC_WORD_QUES, -1}, .speechWin = {EC_WORD_WAHAHAHA, EC_WORD_EXCL, -1, EC_WORD_WAHAHAHA, EC_WORD_EXCL_EXCL, -1}, .speechLose = {EC_WORD_NICE, EC_WORD_GOING, EC_WORD_EXCL, EC_WORD_I, EC_WORD_WAS, EC_WORD_CHILD_S_PLAY}, - .monSets = gVerdanturfBattleTentTrainerMons_Dennis + .monSet = gVerdanturfBattleTentTrainerMons_Dennis }, - [11] = { + [VERDANTURF_TENT_TRAINER_PRESTIN] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("PRESTIN"), .speechBefore = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_FOR, EC_WORD_YOU}, .speechWin = {EC_WORD_FORGIVE, EC_WORD_ME, EC_WORD_ELLIPSIS, EC_WORD_IT_S, EC_WORD_A, EC_WORD_DREAM}, .speechLose = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_WAKE_UP, EC_WORD_FROM, EC_WORD_THIS}, - .monSets = gVerdanturfBattleTentTrainerMons_Prestin + .monSet = gVerdanturfBattleTentTrainerMons_Prestin }, - [12] = { + [VERDANTURF_TENT_TRAINER_ERNESTO] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("ERNESTO"), .speechBefore = {EC_WORD_THIS, EC_WORD_PARTY, EC_WORD_GOES, EC_WORD_ON, EC_WORD_FOREVER, EC_WORD_EXCL}, .speechWin = {EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_PLAYS, EC_WORD_ON, EC_WORD_WITHOUT, EC_WORD_END}, .speechLose = {EC_WORD_NO, EC_WORD_EXCL, EC_WORD_THE, EC_WORD_MUSIC, EC_WORD_CAN_T, EC_WORD_STOP}, - .monSets = gVerdanturfBattleTentTrainerMons_Ernesto + .monSet = gVerdanturfBattleTentTrainerMons_Ernesto }, - [13] = { + [VERDANTURF_TENT_TRAINER_NALA] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("NALA"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_THE, EC_WORD_WORLD, EC_WORD_MOVIE, EC_WORD_COLLECTION}, .speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_LIKE, EC_WORD_RADIO, EC_WORD_VERY, EC_WORD_MUCH}, .speechLose = {EC_WORD_I, EC_WORD_REFUSE, EC_WORD_TO, EC_WORD_BELIEVE, EC_WORD_THIS, EC_WORD_EXCL}, - .monSets = gVerdanturfBattleTentTrainerMons_Nala + .monSet = gVerdanturfBattleTentTrainerMons_Nala }, - [14] = { + [VERDANTURF_TENT_TRAINER_DARNELL] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("DARNELL"), .speechBefore = {EC_WORD_I, EC_WORD_WILL, EC_WORD_GO_EASY, EC_WORD_ON, EC_WORD_YOU, -1}, .speechWin = {EC_WORD_YOUR, EC_MOVE2(FRUSTRATION), EC_WORD_SHOULD, EC_WORD_BE, EC_WORD_HIDDEN, EC_WORD_AWAY}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_TO, EC_WORD_TAKE, EC_WORD_ELLIPSIS}, - .monSets = gVerdanturfBattleTentTrainerMons_Darnell + .monSet = gVerdanturfBattleTentTrainerMons_Darnell }, - [15] = { + [VERDANTURF_TENT_TRAINER_ASHLYN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("ASHLYN"), .speechBefore = {EC_WORD_I, EC_WORD_LOOK, EC_WORD_TOUGH, EC_WORD_DO, EC_WORD_I, EC_WORD_QUES}, .speechWin = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_OVER, EC_WORD_YOUR, EC_MOVE2(TAUNT), EC_WORD_YET}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MEAN, EC_WORD_EXCL_EXCL, -1, -1, -1}, - .monSets = gVerdanturfBattleTentTrainerMons_Ashlyn + .monSet = gVerdanturfBattleTentTrainerMons_Ashlyn }, - [16] = { + [VERDANTURF_TENT_TRAINER_ADDISON] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("ADDISON"), .speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_EXCL}, .speechWin = {EC_WORD_WELL, EC_WORD_WASN_T, EC_WORD_THAT, EC_WORD_EASY, EC_WORD_QUES, -1}, .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, -1, EC_WORD_BUT, EC_WORD_WHY, EC_WORD_QUES}, - .monSets = gVerdanturfBattleTentTrainerMons_Addison + .monSet = gVerdanturfBattleTentTrainerMons_Addison }, - [17] = { + [VERDANTURF_TENT_TRAINER_JUSTINE] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("JUSTINE"), .speechBefore = {EC_WORD_YES, EC_WORD_EXCL, -1, EC_WORD_COME_ON, EC_WORD_I_AM, EC_WORD_READY}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_GOOD, EC_WORD_ENOUGH, EC_WORD_EXCL}, .speechLose = {EC_WORD_WOWEE, EC_WORD_EXCL_EXCL, -1, -1, -1, -1}, - .monSets = gVerdanturfBattleTentTrainerMons_Justine + .monSet = gVerdanturfBattleTentTrainerMons_Justine }, - [18] = { + [VERDANTURF_TENT_TRAINER_TYSON] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("TYSON"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_GOING, EC_WORD_TO, EC_WORD_PRESSURE, EC_WORD_ME, EC_WORD_QUES}, .speechWin = {EC_WORD_WHAT, EC_WORD_QUES, EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_EXCL}, .speechLose = {EC_WORD_THIS, EC_WORD_DOESN_T, EC_WORD_MAKE, EC_WORD_ME, EC_WORD_HAPPY, EC_WORD_EXCL}, - .monSets = gVerdanturfBattleTentTrainerMons_Tyson + .monSet = gVerdanturfBattleTentTrainerMons_Tyson }, - [19] = { + [VERDANTURF_TENT_TRAINER_LAILA] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("LAILA"), .speechBefore = {EC_WORD_A, EC_MOVE2(STRUGGLE), EC_WORD_ISN_T, EC_WORD_VERY, EC_WORD_COOL, -1}, .speechWin = {EC_WORD_NOPE, EC_WORD_NOT_VERY, EC_WORD_COOL, EC_WORD_AT, EC_WORD_ALL, EC_WORD_EXCL}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_NOT, EC_WORD_COOL, EC_WORD_BUT, EC_WORD_YOU, EC_WORD_WON}, - .monSets = gVerdanturfBattleTentTrainerMons_Laila + .monSet = gVerdanturfBattleTentTrainerMons_Laila }, - [20] = { + [VERDANTURF_TENT_TRAINER_WAREN] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("WAREN"), .speechBefore = {EC_WORD_DANGER, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_SENSE, EC_WORD_DANGER}, .speechWin = {EC_WORD_DID, EC_WORD_YOU, EC_WORD_BELIEVE, EC_WORD_MY, EC_WORD_LIE, EC_WORD_QUES_EXCL}, .speechLose = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_DID, EC_WORD_SENSE, EC_WORD_DANGER, EC_WORD_ELLIPSIS}, - .monSets = gVerdanturfBattleTentTrainerMons_Waren + .monSet = gVerdanturfBattleTentTrainerMons_Waren }, - [21] = { + [VERDANTURF_TENT_TRAINER_TOBIAS] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("TOBIAS"), .speechBefore = {EC_MOVE2(BARRIER), EC_WORD_EXCL_EXCL, -1, EC_WORD_NOW, EC_WORD_COME_ON, EC_WORD_EXCL}, .speechWin = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_I, EC_WORD_WON, EC_WORD_QUES}, .speechLose = {EC_WORD_I, EC_WORD_SHOULD, EC_WORD_KNOW, EC_WORD_THAT, EC_WORD_IT_S, EC_WORD_HOPELESS}, - .monSets = gVerdanturfBattleTentTrainerMons_Tobias + .monSet = gVerdanturfBattleTentTrainerMons_Tobias }, - [22] = { + [VERDANTURF_TENT_TRAINER_JOSIAH] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("JOSIAH"), .speechBefore = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_IF_I_LOSE, -1}, .speechWin = {EC_WORD_TOO_WEAK, EC_WORD_ELLIPSIS, -1, EC_WORD_YOU, EC_MOVE(FLY), EC_WORD_INSTEAD}, .speechLose = {EC_WORD_I, EC_WORD_PROMISE, EC_WORD_TO, EC_MOVE(FLY), EC_WORD_SOMETIME, EC_WORD_SOON}, - .monSets = gVerdanturfBattleTentTrainerMons_Josiah + .monSet = gVerdanturfBattleTentTrainerMons_Josiah }, - [23] = { + [VERDANTURF_TENT_TRAINER_DION] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("DION"), .speechBefore = {EC_WORD_IT_S, EC_WORD_TRENDY, EC_WORD_UM, EC_WORD_BATTLE, EC_WORD_SOMETHING, -1}, .speechWin = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_DATE, EC_WORD_QUES}, .speechLose = {EC_WORD_WAS, EC_WORD_IT, EC_WORD_ELLIPSIS, EC_WORD_BATTLE, EC_WORD_GOURMET, EC_WORD_QUES}, - .monSets = gVerdanturfBattleTentTrainerMons_Dion + .monSet = gVerdanturfBattleTentTrainerMons_Dion }, - [24] = { + [VERDANTURF_TENT_TRAINER_KENZIE] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("KENZIE"), .speechBefore = {EC_WORD_THE, EC_MOVE(MORNING_SUN), EC_WORD_GIVES, EC_WORD_ME, EC_MOVE(STRENGTH), -1}, .speechWin = {EC_WORD_BUT, EC_WORD_I, EC_WORD_LIKE, EC_MOVE2(MOONLIGHT), EC_WORD_TOO, -1}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_LIKE, EC_WORD_A, EC_WORD_TERRIBLE, EC_MOVE(SANDSTORM), EC_WORD_ELLIPSIS}, - .monSets = gVerdanturfBattleTentTrainerMons_Kenzie + .monSet = gVerdanturfBattleTentTrainerMons_Kenzie }, - [25] = { + [VERDANTURF_TENT_TRAINER_LILLIAN] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("LILLIAN"), .speechBefore = {EC_WORD_I, EC_WORD_DO, EC_WORD_THINGS, EC_WORD_AT, EC_WORD_MY, EC_WORD_OWN_TEMPO}, .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_QUES, EC_WORD_WHAT, EC_WORD_A, EC_WORD_SURPRISE}, .speechLose = {EC_WORD_AWW, EC_WORD_ELLIPSIS, EC_WORD_I, EC_WORD_NEED, EC_WORD_A, EC_WORD_NAP}, - .monSets = gVerdanturfBattleTentTrainerMons_Lillian + .monSet = gVerdanturfBattleTentTrainerMons_Lillian }, - [26] = { + [VERDANTURF_TENT_TRAINER_LESLEY] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("LESLEY"), .speechBefore = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_LOLLING, EC_WORD_ABOUT}, .speechWin = {EC_WORD_YOU, EC_WORD_SHOULD, EC_WORD_GET, EC_WORD_UP, EC_WORD_EARLIER, -1}, .speechLose = {EC_WORD_THIS, EC_WORD_SHOULD, EC_WORD_NOT, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_EXCL}, - .monSets = gVerdanturfBattleTentTrainerMons_Lesley + .monSet = gVerdanturfBattleTentTrainerMons_Lesley }, - [27] = { + [VERDANTURF_TENT_TRAINER_MARQUIS] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("MARQUIS"), .speechBefore = {EC_WORD_NONE, EC_WORD_OF, EC_WORD_THIS, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_SENSE}, .speechWin = {EC_WORD_SEE, EC_WORD_QUES, EC_WORD_THIS, EC_WORD_JUST, EC_WORD_ISN_T, EC_WORD_NORMAL}, .speechLose = {EC_WORD_SHOULD, EC_WORD_I, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_QUES}, - .monSets = gVerdanturfBattleTentTrainerMons_Marquis + .monSet = gVerdanturfBattleTentTrainerMons_Marquis }, - [28] = { + [VERDANTURF_TENT_TRAINER_FREDDY] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("FREDDY"), .speechBefore = {EC_WORD_I, EC_WORD_ADORE, EC_WORD_THIS, EC_WORD_CUTE, EC_WORD_TELEVISION, EC_WORD_IDOL}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_SO, EC_WORD_FUNNY, EC_WORD_WHEN, EC_WORD_YOU_RE, EC_WORD_ANGRY}, .speechLose = {EC_WORD_LATE, EC_WORD_NIGHT, EC_WORD_TELEVISION, EC_WORD_IS, EC_WORD_MY, EC_WORD_LIFE}, - .monSets = gVerdanturfBattleTentTrainerMons_Freddy + .monSet = gVerdanturfBattleTentTrainerMons_Freddy }, - [29] = { + [VERDANTURF_TENT_TRAINER_CECILIA] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("CECILIA"), .speechBefore = {EC_WORD_MY, EC_WORD_FABULOUS, EC_WORD_CUTENESS, EC_WORD_IS, EC_WORD_IN, EC_WORD_FASHION}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_NO, EC_WORD_MATCH, EC_WORD_FOR, EC_WORD_MY, EC_WORD_CUTE_CHARM}, .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_FASHION, EC_WORD_SENSE, EC_WORD_QUES}, - .monSets = gVerdanturfBattleTentTrainerMons_Cecilia + .monSet = gVerdanturfBattleTentTrainerMons_Cecilia } }; -const struct FacilityMon gVerdanturfBattleTentMons[] = +const struct FacilityMon gVerdanturfBattleTentMons[NUM_VERDANTURF_TENT_MONS] = { - [0] = { + [VERDANTURF_TENT_MON_POOCHYENA] = { .species = SPECIES_POOCHYENA, .moves = {MOVE_ROAR, MOVE_THIEF, MOVE_BITE, MOVE_HOWL}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [1] = { + [VERDANTURF_TENT_MON_ZIGZAGOON] = { .species = SPECIES_ZIGZAGOON, .moves = {MOVE_COVET, MOVE_GROWL, MOVE_PIN_MISSILE, MOVE_MUD_SPORT}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [2] = { + [VERDANTURF_TENT_MON_DUSTOX] = { .species = SPECIES_DUSTOX, .moves = {MOVE_CONFUSION, MOVE_MOONLIGHT, MOVE_PROTECT, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_MODEST }, - [3] = { + [VERDANTURF_TENT_MON_TAILLOW] = { .species = SPECIES_TAILLOW, .moves = {MOVE_AGILITY, MOVE_DOUBLE_TEAM, MOVE_WING_ATTACK, MOVE_GROWL}, .itemTableId = BATTLE_FRONTIER_ITEM_ORAN_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [4] = { + [VERDANTURF_TENT_MON_SHROOMISH] = { .species = SPECIES_SHROOMISH, .moves = {MOVE_HEADBUTT, MOVE_STUN_SPORE, MOVE_LEECH_SEED, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_RASH }, - [5] = { + [VERDANTURF_TENT_MON_MACHOP] = { .species = SPECIES_MACHOP, .moves = {MOVE_LOW_KICK, MOVE_LEER, MOVE_FOCUS_ENERGY, MOVE_ENCORE}, .itemTableId = BATTLE_FRONTIER_ITEM_PERSIM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_LONELY }, - [6] = { + [VERDANTURF_TENT_MON_MAGIKARP] = { .species = SPECIES_MAGIKARP, .moves = {MOVE_SPLASH, MOVE_FLAIL, MOVE_TACKLE, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [7] = { + [VERDANTURF_TENT_MON_BARBOACH] = { .species = SPECIES_BARBOACH, .moves = {MOVE_MUD_SLAP, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_SPARK}, .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, .evSpread = F_EV_SPREAD_SPEED, .nature = NATURE_HASTY }, - [8] = { + [VERDANTURF_TENT_MON_WINGULL] = { .species = SPECIES_WINGULL, .moves = {MOVE_ATTRACT, MOVE_TWISTER, MOVE_WING_ATTACK, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_IMPISH }, - [9] = { + [VERDANTURF_TENT_MON_ARON_1] = { .species = SPECIES_ARON, .moves = {MOVE_ENDEAVOR, MOVE_METAL_CLAW, MOVE_TACKLE, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_PECHA_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_HARDY }, - [10] = { + [VERDANTURF_TENT_MON_NUMEL_1] = { .species = SPECIES_NUMEL, .moves = {MOVE_EMBER, MOVE_ROCK_SLIDE, MOVE_ROLLOUT, MOVE_GROWL}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_SASSY }, - [11] = { + [VERDANTURF_TENT_MON_SWALOT] = { .species = SPECIES_SWALOT, .moves = {MOVE_YAWN, MOVE_SLUDGE, MOVE_ACID_ARMOR, MOVE_AMNESIA}, .itemTableId = BATTLE_FRONTIER_ITEM_POISON_BARB, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [12] = { + [VERDANTURF_TENT_MON_KECLEON] = { .species = SPECIES_KECLEON, .moves = {MOVE_SUBSTITUTE, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_BIND}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIET }, - [13] = { + [VERDANTURF_TENT_MON_BALTOY] = { .species = SPECIES_BALTOY, .moves = {MOVE_SANDSTORM, MOVE_FLASH, MOVE_SELF_DESTRUCT, MOVE_HARDEN}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [14] = { + [VERDANTURF_TENT_MON_NINJASK] = { .species = SPECIES_NINJASK, .moves = {MOVE_DIG, MOVE_SCREECH, MOVE_SWORDS_DANCE, MOVE_LEECH_LIFE}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [15] = { + [VERDANTURF_TENT_MON_MAKUHITA] = { .species = SPECIES_MAKUHITA, .moves = {MOVE_BULK_UP, MOVE_ARM_THRUST, MOVE_SMELLING_SALT, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [16] = { + [VERDANTURF_TENT_MON_SWABLU] = { .species = SPECIES_SWABLU, .moves = {MOVE_REFRESH, MOVE_SAFEGUARD, MOVE_ATTRACT, MOVE_MIRROR_MOVE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MILD }, - [17] = { + [VERDANTURF_TENT_MON_GOLDEEN_1] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_WATERFALL, MOVE_MUD_SPORT, MOVE_SUPERSONIC, MOVE_DOUBLE_TEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_MYSTIC_WATER, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_GENTLE }, - [18] = { + [VERDANTURF_TENT_MON_LOTAD] = { .species = SPECIES_LOTAD, .moves = {MOVE_GROWL, MOVE_WATER_GUN, MOVE_MEGA_DRAIN, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_IAPAPA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [19] = { + [VERDANTURF_TENT_MON_NUMEL_2] = { .species = SPECIES_NUMEL, .moves = {MOVE_MAGNITUDE, MOVE_EMBER, MOVE_GROWL, MOVE_DEFENSE_CURL}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_RELAXED }, - [20] = { + [VERDANTURF_TENT_MON_LINOONE] = { .species = SPECIES_LINOONE, .moves = {MOVE_HEADBUTT, MOVE_TICKLE, MOVE_PROTECT, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [21] = { + [VERDANTURF_TENT_MON_SEVIPER] = { .species = SPECIES_SEVIPER, .moves = {MOVE_WRAP, MOVE_GLARE, MOVE_POISON_FANG, MOVE_SWAGGER}, .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [22] = { + [VERDANTURF_TENT_MON_SKARMORY] = { .species = SPECIES_SKARMORY, .moves = {MOVE_AIR_CUTTER, MOVE_SANDSTORM, MOVE_LEER, MOVE_AGILITY}, .itemTableId = BATTLE_FRONTIER_ITEM_MACHO_BRACE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_BASHFUL }, - [23] = { + [VERDANTURF_TENT_MON_SWELLOW] = { .species = SPECIES_SWELLOW, .moves = {MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_SHARP_BEAK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [24] = { + [VERDANTURF_TENT_MON_GOLDEEN_2] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_PECK, MOVE_SUPERSONIC, MOVE_PSYBEAM, MOVE_RAIN_DANCE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_GENTLE }, - [25] = { + [VERDANTURF_TENT_MON_ELECTRIKE] = { .species = SPECIES_ELECTRIKE, .moves = {MOVE_SHOCK_WAVE, MOVE_TACKLE, MOVE_CHARGE, MOVE_THUNDER_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_MILD }, - [26] = { + [VERDANTURF_TENT_MON_NUZLEAF] = { .species = SPECIES_NUZLEAF, .moves = {MOVE_SUNNY_DAY, MOVE_TORMENT, MOVE_FAKE_OUT, MOVE_THIEF}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_GLASSES, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [27] = { + [VERDANTURF_TENT_MON_ARON_2] = { .species = SPECIES_ARON, .moves = {MOVE_TAKE_DOWN, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [28] = { + [VERDANTURF_TENT_MON_MIGHTYENA] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_HOWL, MOVE_TAKE_DOWN, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [29] = { + [VERDANTURF_TENT_MON_SOLROCK] = { .species = SPECIES_SOLROCK, .moves = {MOVE_HARDEN, MOVE_FIRE_SPIN, MOVE_MIMIC, MOVE_PSYWAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_TWISTED_SPOON, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [30] = { + [VERDANTURF_TENT_MON_GRAVELER] = { .species = SPECIES_GRAVELER, .moves = {MOVE_ROLLOUT, MOVE_ROCK_SMASH, MOVE_SANDSTORM, MOVE_BLOCK}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_IMPISH }, - [31] = { + [VERDANTURF_TENT_MON_KADABRA] = { .species = SPECIES_KADABRA, .moves = {MOVE_ENCORE, MOVE_PSYBEAM, MOVE_DISABLE, MOVE_KINESIS}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [32] = { + [VERDANTURF_TENT_MON_VOLTORB] = { .species = SPECIES_VOLTORB, .moves = {MOVE_PROTECT, MOVE_SELF_DESTRUCT, MOVE_SPARK, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_BASHFUL }, - [33] = { + [VERDANTURF_TENT_MON_MAGNEMITE] = { .species = SPECIES_MAGNEMITE, .moves = {MOVE_METAL_SOUND, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_SERIOUS }, - [34] = { + [VERDANTURF_TENT_MON_PELIPPER] = { .species = SPECIES_PELIPPER, .moves = {MOVE_WING_ATTACK, MOVE_MIST, MOVE_AGILITY, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_FIGY_BERRY, .evSpread = 0, .nature = NATURE_BRAVE }, - [35] = { + [VERDANTURF_TENT_MON_LOUDRED] = { .species = SPECIES_LOUDRED, .moves = {MOVE_HOWL, MOVE_UPROAR, MOVE_REST, MOVE_SCREECH}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CALM }, - [36] = { + [VERDANTURF_TENT_MON_MARILL] = { .species = SPECIES_MARILL, .moves = {MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_TAIL_WHIP, MOVE_BUBBLE_BEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [37] = { + [VERDANTURF_TENT_MON_TRAPINCH] = { .species = SPECIES_TRAPINCH, .moves = {MOVE_DIG, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_FAINT_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_NONE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_NAUGHTY }, - [38] = { + [VERDANTURF_TENT_MON_TENTACOOL] = { .species = SPECIES_TENTACOOL, .moves = {MOVE_SCREECH, MOVE_CONFUSE_RAY, MOVE_WRAP, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [39] = { + [VERDANTURF_TENT_MON_VIGOROTH] = { .species = SPECIES_VIGOROTH, .moves = {MOVE_ENCORE, MOVE_SLACK_OFF, MOVE_YAWN, MOVE_SECRET_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [40] = { + [VERDANTURF_TENT_MON_WAILMER] = { .species = SPECIES_WAILMER, .moves = {MOVE_WATER_PULSE, MOVE_ROLLOUT, MOVE_CURSE, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_WHITE_HERB, .evSpread = F_EV_SPREAD_HP, .nature = NATURE_RELAXED }, - [41] = { + [VERDANTURF_TENT_MON_ILLUMISE] = { .species = SPECIES_ILLUMISE, .moves = {MOVE_TACKLE, MOVE_SWEET_SCENT, MOVE_WISH, MOVE_ENCORE}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [42] = { + [VERDANTURF_TENT_MON_MACHOKE] = { .species = SPECIES_MACHOKE, .moves = {MOVE_LEER, MOVE_KARATE_CHOP, MOVE_BULK_UP, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_CALM }, - [43] = { + [VERDANTURF_TENT_MON_WHISMUR] = { .species = SPECIES_WHISMUR, .moves = {MOVE_SECRET_POWER, MOVE_SUPERSONIC, MOVE_STOMP, MOVE_ROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_QUIRKY }, - [44] = { + [VERDANTURF_TENT_MON_CACNEA] = { .species = SPECIES_CACNEA, .moves = {MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_NEEDLE_ARM, MOVE_GROWTH}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, @@ -2126,876 +2126,876 @@ const struct FacilityMon gVerdanturfBattleTentMons[] = // Fallarbor Battle Tent. const u16 gFallarborBattleTentTrainerMons_Amber[] = { - 39, - 40, - 41, - 42, - 43, - 44, + FALLARBOR_TENT_MON_SWALOT, + FALLARBOR_TENT_MON_SHROOMISH, + FALLARBOR_TENT_MON_KIRLIA, + FALLARBOR_TENT_MON_LOMBRE, + FALLARBOR_TENT_MON_NUZLEAF, + FALLARBOR_TENT_MON_CACNEA, -1 }; const u16 gFallarborBattleTentTrainerMons_Javier[] = { - 6, - 35, - 36, - 37, - 38, - 44, + FALLARBOR_TENT_MON_SOLROCK, + FALLARBOR_TENT_MON_TRAPINCH, + FALLARBOR_TENT_MON_BALTOY, + FALLARBOR_TENT_MON_GRAVELER, + FALLARBOR_TENT_MON_SANDSHREW, + FALLARBOR_TENT_MON_CACNEA, -1 }; const u16 gFallarborBattleTentTrainerMons_Natalie[] = { - 5, - 29, - 30, - 32, - 34, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_PELIPPER, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_MARILL, + FALLARBOR_TENT_MON_GOLDEEN_2, -1 }; const u16 gFallarborBattleTentTrainerMons_Treve[] = { - 28, - 29, - 30, - 32, - 33, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_PELIPPER, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_MARILL, + FALLARBOR_TENT_MON_GOLDEEN_1, -1 }; const u16 gFallarborBattleTentTrainerMons_Arianna[] = { - 18, - 23, - 24, - 27, - 44, + FALLARBOR_TENT_MON_ELECTRIKE, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_MIGHTYENA, + FALLARBOR_TENT_MON_GOLBAT, + FALLARBOR_TENT_MON_CACNEA, -1 }; const u16 gFallarborBattleTentTrainerMons_Jadyn[] = { - 0, - 22, - 24, - 27, - 32, - 39, + FALLARBOR_TENT_MON_NUMEL, + FALLARBOR_TENT_MON_LOUDRED, + FALLARBOR_TENT_MON_MIGHTYENA, + FALLARBOR_TENT_MON_GOLBAT, + FALLARBOR_TENT_MON_MARILL, + FALLARBOR_TENT_MON_SWALOT, -1 }; const u16 gFallarborBattleTentTrainerMons_Gerardo[] = { - 6, - 18, - 23, - 24, - 29, + FALLARBOR_TENT_MON_SOLROCK, + FALLARBOR_TENT_MON_ELECTRIKE, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_MIGHTYENA, + FALLARBOR_TENT_MON_PELIPPER, -1 }; const u16 gFallarborBattleTentTrainerMons_Jonn[] = { - 16, - 17, - 21, - 22, - 37, + FALLARBOR_TENT_MON_ARON_1, + FALLARBOR_TENT_MON_ARON_2, + FALLARBOR_TENT_MON_WHISMUR, + FALLARBOR_TENT_MON_LOUDRED, + FALLARBOR_TENT_MON_GRAVELER, -1 }; const u16 gFallarborBattleTentTrainerMons_Esteban[] = { - 5, - 28, - 30, - 33, - 42, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_GOLDEEN_1, + FALLARBOR_TENT_MON_LOMBRE, -1 }; const u16 gFallarborBattleTentTrainerMons_Jameson[] = { - 1, - 2, - 3, - 5, - 9, + FALLARBOR_TENT_MON_LINOONE_1, + FALLARBOR_TENT_MON_PLUSLE, + FALLARBOR_TENT_MON_POOCHYENA, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_NINCADA, -1 }; const u16 gFallarborBattleTentTrainerMons_Alanzo[] = { - 9, - 10, - 11, - 12, - 13, - 14, - 15, + FALLARBOR_TENT_MON_NINCADA, + FALLARBOR_TENT_MON_BEAUTIFLY, + FALLARBOR_TENT_MON_DUSTOX, + FALLARBOR_TENT_MON_ILLUMISE, + FALLARBOR_TENT_MON_VOLBEAT, + FALLARBOR_TENT_MON_NINJASK_1, + FALLARBOR_TENT_MON_NINJASK_2, -1 }; const u16 gFallarborBattleTentTrainerMons_Howard[] = { - 18, - 23, - 31, - 38, - 43, + FALLARBOR_TENT_MON_ELECTRIKE, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_SANDSHREW, + FALLARBOR_TENT_MON_NUZLEAF, -1 }; const u16 gFallarborBattleTentTrainerMons_Conrad[] = { - 18, - 19, - 20, - 21, - 22, + FALLARBOR_TENT_MON_ELECTRIKE, + FALLARBOR_TENT_MON_MAGNEMITE, + FALLARBOR_TENT_MON_VOLTORB, + FALLARBOR_TENT_MON_WHISMUR, + FALLARBOR_TENT_MON_LOUDRED, -1 }; const u16 gFallarborBattleTentTrainerMons_Makenna[] = { - 4, - 21, - 25, - 36, - 40, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_WHISMUR, + FALLARBOR_TENT_MON_SWABLU, + FALLARBOR_TENT_MON_BALTOY, + FALLARBOR_TENT_MON_SHROOMISH, -1 }; const u16 gFallarborBattleTentTrainerMons_Brayan[] = { - 0, - 4, - 6, - 12, - 19, - 23, - 28, + FALLARBOR_TENT_MON_NUMEL, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_SOLROCK, + FALLARBOR_TENT_MON_ILLUMISE, + FALLARBOR_TENT_MON_MAGNEMITE, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_WINGULL, -1 }; const u16 gFallarborBattleTentTrainerMons_Mariana[] = { - 0, - 4, - 13, - 19, - 28, - 30, - 37, + FALLARBOR_TENT_MON_NUMEL, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_VOLBEAT, + FALLARBOR_TENT_MON_MAGNEMITE, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_GRAVELER, -1 }; const u16 gFallarborBattleTentTrainerMons_Sheldon[] = { - 2, - 3, - 21, - 31, - 39, + FALLARBOR_TENT_MON_PLUSLE, + FALLARBOR_TENT_MON_POOCHYENA, + FALLARBOR_TENT_MON_WHISMUR, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_SWALOT, -1 }; const u16 gFallarborBattleTentTrainerMons_Gianna[] = { - 1, - 2, - 30, - 32, - 41, + FALLARBOR_TENT_MON_LINOONE_1, + FALLARBOR_TENT_MON_PLUSLE, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_MARILL, + FALLARBOR_TENT_MON_KIRLIA, -1 }; const u16 gFallarborBattleTentTrainerMons_Yahir[] = { - 4, - 8, - 15, - 17, - 22, - 24, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_MACHOKE, + FALLARBOR_TENT_MON_NINJASK_2, + FALLARBOR_TENT_MON_ARON_2, + FALLARBOR_TENT_MON_LOUDRED, + FALLARBOR_TENT_MON_MIGHTYENA, -1 }; const u16 gFallarborBattleTentTrainerMons_Britney[] = { - 4, - 7, - 14, - 20, - 23, - 43, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_MAKUHITA, + FALLARBOR_TENT_MON_NINJASK_1, + FALLARBOR_TENT_MON_VOLTORB, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_NUZLEAF, -1 }; const u16 gFallarborBattleTentTrainerMons_Hecter[] = { - 0, - 1, - 2, - 5, - 9, - 35, + FALLARBOR_TENT_MON_NUMEL, + FALLARBOR_TENT_MON_LINOONE_1, + FALLARBOR_TENT_MON_PLUSLE, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_NINCADA, + FALLARBOR_TENT_MON_TRAPINCH, -1 }; const u16 gFallarborBattleTentTrainerMons_Tannor[] = { - 5, - 30, - 31, - 33, - 34, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_BARBOACH, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_GOLDEEN_1, + FALLARBOR_TENT_MON_GOLDEEN_2, -1 }; const u16 gFallarborBattleTentTrainerMons_Benji[] = { - 25, - 26, - 27, - 28, - 29, + FALLARBOR_TENT_MON_SWABLU, + FALLARBOR_TENT_MON_SKARMORY, + FALLARBOR_TENT_MON_GOLBAT, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_PELIPPER, -1 }; const u16 gFallarborBattleTentTrainerMons_Rory[] = { - 9, - 11, - 14, - 15, - 27, - 39, + FALLARBOR_TENT_MON_NINCADA, + FALLARBOR_TENT_MON_DUSTOX, + FALLARBOR_TENT_MON_NINJASK_1, + FALLARBOR_TENT_MON_NINJASK_2, + FALLARBOR_TENT_MON_GOLBAT, + FALLARBOR_TENT_MON_SWALOT, -1 }; const u16 gFallarborBattleTentTrainerMons_Eleanor[] = { - 23, - 28, - 31, - 36, - 38, - 42, - 44, + FALLARBOR_TENT_MON_LINOONE_2, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_BALTOY, + FALLARBOR_TENT_MON_SANDSHREW, + FALLARBOR_TENT_MON_LOMBRE, + FALLARBOR_TENT_MON_CACNEA, -1 }; const u16 gFallarborBattleTentTrainerMons_Evelyn[] = { - 29, - 31, - 32, - 33, - 34, + FALLARBOR_TENT_MON_PELIPPER, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_MARILL, + FALLARBOR_TENT_MON_GOLDEEN_1, + FALLARBOR_TENT_MON_GOLDEEN_2, -1 }; const u16 gFallarborBattleTentTrainerMons_Arielle[] = { - 1, - 3, - 38, - 39, - 41, + FALLARBOR_TENT_MON_LINOONE_1, + FALLARBOR_TENT_MON_POOCHYENA, + FALLARBOR_TENT_MON_SANDSHREW, + FALLARBOR_TENT_MON_SWALOT, + FALLARBOR_TENT_MON_KIRLIA, -1 }; const u16 gFallarborBattleTentTrainerMons_Connar[] = { - 7, - 8, - 28, - 29, - 31, - 32, + FALLARBOR_TENT_MON_MAKUHITA, + FALLARBOR_TENT_MON_MACHOKE, + FALLARBOR_TENT_MON_WINGULL, + FALLARBOR_TENT_MON_PELIPPER, + FALLARBOR_TENT_MON_WAILMER, + FALLARBOR_TENT_MON_MARILL, -1 }; const u16 gFallarborBattleTentTrainerMons_Maurice[] = { - 4, - 5, - 6, - 12, - 13, + FALLARBOR_TENT_MON_KECLEON, + FALLARBOR_TENT_MON_MAGIKARP, + FALLARBOR_TENT_MON_SOLROCK, + FALLARBOR_TENT_MON_ILLUMISE, + FALLARBOR_TENT_MON_VOLBEAT, -1 }; const u16 gFallarborBattleTentTrainerMons_Kianna[] = { - 22, - 24, - 26, - 27, - 34, - 37, + FALLARBOR_TENT_MON_LOUDRED, + FALLARBOR_TENT_MON_MIGHTYENA, + FALLARBOR_TENT_MON_SKARMORY, + FALLARBOR_TENT_MON_GOLBAT, + FALLARBOR_TENT_MON_GOLDEEN_2, + FALLARBOR_TENT_MON_GRAVELER, -1 }; -const struct BattleFrontierTrainer gFallarborBattleTentTrainers[] = +const struct BattleFrontierTrainer gFallarborBattleTentTrainers[NUM_BATTLE_TENT_TRAINERS] = { - [0] = { + [FALLARBOR_TENT_TRAINER_AMBER] = { .facilityClass = FACILITY_CLASS_AROMA_LADY, .trainerName = _("AMBER"), .speechBefore = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_DIET, EC_WORD_EVERY, EC_WORD_DAY}, .speechWin = {EC_WORD_A, EC_MOVE(NIGHTMARE), EC_WORD_OF, EC_WORD_SWEETS, EC_WORD_SHOCKED, EC_WORD_ME}, .speechLose = {EC_WORD_IF, EC_WORD_YOU, EC_WORD_GIVE_UP, EC_WORD_YOU, EC_WORD_WILL, EC_WORD_LOSE}, - .monSets = gFallarborBattleTentTrainerMons_Amber + .monSet = gFallarborBattleTentTrainerMons_Amber }, - [1] = { + [FALLARBOR_TENT_TRAINER_JAVIER] = { .facilityClass = FACILITY_CLASS_RUIN_MANIAC, .trainerName = _("JAVIER"), .speechBefore = {EC_WORD_I, EC_WORD_NEVER, EC_WORD_EVER, EC_WORD_HAVE, EC_WORD_ENOUGH, EC_WORD_MONEY}, .speechWin = {EC_WORD_I, EC_WORD_WON, EC_WORD_BUT, EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY}, .speechLose = {EC_WORD_I, EC_WORD_NEED, EC_WORD_MONEY, EC_WORD_FOR, EC_WORD_A, EC_WORD_BIKE}, - .monSets = gFallarborBattleTentTrainerMons_Javier + .monSet = gFallarborBattleTentTrainerMons_Javier }, - [2] = { + [FALLARBOR_TENT_TRAINER_NATALIA] = { .facilityClass = FACILITY_CLASS_TUBER_F, .trainerName = _("NATALIE"), .speechBefore = {EC_WORD_THE, EC_WORD_WAY, EC_WORD_I, EC_WORD_BATTLE, EC_WORD_IS, EC_WORD_WEIRD}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO_WEAK, EC_WORD_FOR, EC_WORD_THIS, EC_WORD_PLACE}, .speechLose = {EC_WORD_GIVE_ME, EC_WORD_AN, EC_WORD_EASY, EC_WORD_MATCH, EC_WORD_NEXT, EC_WORD_TIME}, - .monSets = gFallarborBattleTentTrainerMons_Natalie + .monSet = gFallarborBattleTentTrainerMons_Natalie }, - [3] = { + [FALLARBOR_TENT_TRAINER_TREVE] = { .facilityClass = FACILITY_CLASS_TUBER_M, .trainerName = _("TREVE"), .speechBefore = {EC_WORD_LOOK, EC_WORD_AT, EC_WORD_MY, EC_MOVE2(METRONOME), EC_WORD_AND, EC_WORD_SLEEP}, .speechWin = {EC_WORD_YEAH, EC_WORD_EXCL, EC_MOVE(HYPNOSIS), EC_WORD_IS, EC_WORD_TOTALLY, EC_WORD_GREAT}, .speechLose = {EC_WORD_MY, EC_MOVE(HYPNOSIS), EC_WORD_DIDN_T, EC_WORD_WORK, EC_WORD_ELLIPSIS, -1}, - .monSets = gFallarborBattleTentTrainerMons_Treve + .monSet = gFallarborBattleTentTrainerMons_Treve }, - [4] = { + [FALLARBOR_TENT_TRAINER_ARIANNA] = { .facilityClass = FACILITY_CLASS_LADY, .trainerName = _("ARIANNA"), .speechBefore = {EC_WORD_IF_I_WIN, EC_WORD_GIVE_ME, EC_WORD_POKEMON, EC_WORD_FOR, EC_WORD_MY, EC_WORD_COLLECTION}, .speechWin = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_TOO_WEAK, EC_WORD_TO, EC_WORD_COLLECT}, .speechLose = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SOMETHING, EC_WORD_ELSE, EC_WORD_ELLIPSIS}, - .monSets = gFallarborBattleTentTrainerMons_Arianna + .monSet = gFallarborBattleTentTrainerMons_Arianna }, - [5] = { + [FALLARBOR_TENT_TRAINER_JADYN] = { .facilityClass = FACILITY_CLASS_BEAUTY, .trainerName = _("JADYN"), .speechBefore = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_IS, EC_WORD_REALLY, EC_WORD_A, EC_WORD_MYSTERY}, .speechWin = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_GOES, EC_WORD_ON, EC_WORD_A, EC_WORD_MYSTERY}, .speechLose = {EC_WORD_MY, EC_WORD_NAME, EC_WORD_QUES, EC_WORD_I_AM, EC_WORD_YOUR, EC_WORD_MOTHER}, - .monSets = gFallarborBattleTentTrainerMons_Jadyn + .monSet = gFallarborBattleTentTrainerMons_Jadyn }, - [6] = { + [FALLARBOR_TENT_TRAINER_GERARDO] = { .facilityClass = FACILITY_CLASS_RICH_BOY, .trainerName = _("GERARDO"), .speechBefore = {EC_WORD_I_AM, EC_WORD_THE, EC_WORD_BEST, EC_WORD_HERO, EC_WORD_EVER, EC_WORD_EXCL}, .speechWin = {EC_WORD_SEE, EC_WORD_WHAT, EC_WORD_I, EC_WORD_MEAN, EC_WORD_QUES, -1}, .speechLose = {EC_WORD_HUH_QUES, EC_WORD_YOU, EC_WORD_WERE, EC_WORD_RIGHT, EC_WORD_QUES, -1}, - .monSets = gFallarborBattleTentTrainerMons_Gerardo + .monSet = gFallarborBattleTentTrainerMons_Gerardo }, - [7] = { + [FALLARBOR_TENT_TRAINER_JONN] = { .facilityClass = FACILITY_CLASS_POKEMANIAC, .trainerName = _("JONN"), .speechBefore = {EC_WORD_THE, EC_WORD_WORLD, EC_MOVE2(SUPERPOWER), EC_MOVE2(STOMP), EC_WORD_CONTEST, EC_WORD_EXCL_EXCL}, .speechWin = {EC_WORD_I_AM, EC_WORD_NO_1, EC_WORD_EXCL_EXCL, EC_WORD_HEAR, EC_WORD_ME, EC_MOVE2(ROAR)}, .speechLose = {EC_WORD_I, EC_WORD_GIVE_UP, EC_WORD_EXCL, EC_WORD_YOU_RE, EC_WORD_NO_1, EC_WORD_EXCL}, - .monSets = gFallarborBattleTentTrainerMons_Jonn + .monSet = gFallarborBattleTentTrainerMons_Jonn }, - [8] = { + [FALLARBOR_TENT_TRAINER_ESTEBAN] = { .facilityClass = FACILITY_CLASS_SWIMMER_M, .trainerName = _("ESTEBAN"), .speechBefore = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_GOOD, EC_WORD_TRAINER, EC_WORD_QUES, EC_WORD_UNBELIEVABLE}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_SOME, EC_WORD_PUSHOVER, EC_WORD_OF, EC_WORD_A, EC_WORD_TRAINER}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_MUCH, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_FOR, EC_WORD_ME}, - .monSets = gFallarborBattleTentTrainerMons_Esteban + .monSet = gFallarborBattleTentTrainerMons_Esteban }, - [9] = { + [FALLARBOR_TENT_TRAINER_JAMESON] = { .facilityClass = FACILITY_CLASS_CAMPER, .trainerName = _("JAMESON"), .speechBefore = {EC_WORD_MY, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_EXCL}, .speechWin = {EC_WORD_MY, EC_WORD_SILKY, EC_WORD_SMOOTH, EC_WORD_POKEMON, EC_WORD_RULE, EC_WORD_EXCL}, .speechLose = {EC_WORD_MY, EC_WORD_POKEMON, EC_MOVE2(STRUGGLE), EC_WORD_IN, EC_WORD_YOUR, EC_WORD_STICKY_HOLD}, - .monSets = gFallarborBattleTentTrainerMons_Jameson + .monSet = gFallarborBattleTentTrainerMons_Jameson }, - [10] = { + [FALLARBOR_TENT_TRAINER_ALANZO] = { .facilityClass = FACILITY_CLASS_BUG_MANIAC, .trainerName = _("ALANZO"), .speechBefore = {EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_A, EC_WORD_POWER, EC_WORD_I, EC_WORD_HAVE}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_OBLIVIOUS, EC_WORD_ABOUT, EC_MOVE2(FORESIGHT), EC_WORD_EXCL, -1}, .speechLose = {EC_WORD_MY, EC_MOVE2(FORESIGHT), EC_WORD_IS, EC_WORD_ALWAYS, EC_WORD_RIGHT, EC_WORD_EXCL}, - .monSets = gFallarborBattleTentTrainerMons_Alanzo + .monSet = gFallarborBattleTentTrainerMons_Alanzo }, - [11] = { + [FALLARBOR_TENT_TRAINER_HOWARD] = { .facilityClass = FACILITY_CLASS_GENTLEMAN, .trainerName = _("HOWARD"), .speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_CAN_T, EC_WORD_BEAT, EC_WORD_ME, -1}, .speechWin = {EC_WORD_YOU, EC_WORD_COULDN_T, EC_WORD_WIN, EC_WORD_COULD, EC_WORD_YOU, EC_WORD_QUES}, .speechLose = {EC_WORD_YOU, EC_WORD_WOULD, EC_WORD_GO, EC_WORD_ALL, EC_WORD_OUT, EC_WORD_ELLIPSIS}, - .monSets = gFallarborBattleTentTrainerMons_Howard + .monSet = gFallarborBattleTentTrainerMons_Howard }, - [12] = { + [FALLARBOR_TENT_TRAINER_CONRAD] = { .facilityClass = FACILITY_CLASS_GUITARIST, .trainerName = _("CONRAD"), .speechBefore = {EC_WORD_YOUR, EC_WORD_POKEMON, EC_WORD_ARE, EC_WORD_PRETTY, EC_WORD_WILD, EC_WORD_EXCL}, .speechWin = {EC_WORD_WHOAH, EC_WORD_EXCL_EXCL, -1, EC_WORD_LET_S, EC_WORD_DANCE, EC_WORD_EXCL}, .speechLose = {EC_WORD_MY, EC_WORD_MUSIC, EC_WORD_WILL, EC_WORD_PLAY, EC_WORD_ON, EC_WORD_ELLIPSIS}, - .monSets = gFallarborBattleTentTrainerMons_Conrad + .monSet = gFallarborBattleTentTrainerMons_Conrad }, - [13] = { + [FALLARBOR_TENT_TRAINER_MAKENNA] = { .facilityClass = FACILITY_CLASS_SCHOOL_KID_F, .trainerName = _("MAKENNA"), .speechBefore = {EC_WORD_SHOW, EC_WORD_ME, EC_WORD_THAT, EC_WORD_YOU, EC_WORD_MEAN, EC_WORD_IT}, .speechWin = {EC_WORD_THAT_S, EC_WORD_WHY, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY}, .speechLose = {EC_WORD_AWW, EC_WORD_I, EC_WORD_STUDY, EC_WORD_EVERY, EC_WORD_DAY, EC_WORD_TOO}, - .monSets = gFallarborBattleTentTrainerMons_Makenna + .monSet = gFallarborBattleTentTrainerMons_Makenna }, - [14] = { + [FALLARBOR_TENT_TRAINER_BRAYAN] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_M, .trainerName = _("BRAYAN"), .speechBefore = {EC_WORD_CAN, EC_WORD_YOU, EC_WORD_SEE, EC_WORD_MY, EC_WORD_POWER, EC_WORD_QUES}, .speechWin = {EC_WORD_HOW, EC_WORD_BORING, EC_WORD_ELLIPSIS, EC_WORD_THIS, EC_WORD_IS, EC_WORD_GOOD_BYE}, .speechLose = {EC_WORD_AM, EC_WORD_I, EC_WORD_THE, EC_WORD_WEAK, EC_WORD_TRAINER, EC_WORD_QUES}, - .monSets = gFallarborBattleTentTrainerMons_Brayan + .monSet = gFallarborBattleTentTrainerMons_Brayan }, - [15] = { + [FALLARBOR_TENT_TRAINER_MARIANA] = { .facilityClass = FACILITY_CLASS_COOLTRAINER_F, .trainerName = _("MARIANA"), .speechBefore = {EC_WORD_A, EC_WORD_LIE, EC_WORD_CAN, EC_WORD_BE, EC_WORD_KIND, EC_WORD_ELLIPSIS}, .speechWin = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_THE, EC_WORD_SUNDAY, EC_WORD_COMICS}, .speechLose = {EC_WORD_THIS, EC_WORD_IS, EC_WORD_LIKE, EC_WORD_FROM, EC_WORD_A, EC_WORD_MOVIE}, - .monSets = gFallarborBattleTentTrainerMons_Mariana + .monSet = gFallarborBattleTentTrainerMons_Mariana }, - [16] = { + [FALLARBOR_TENT_TRAINER_SHELDON] = { .facilityClass = FACILITY_CLASS_POKEFAN_M, .trainerName = _("SHELDON"), .speechBefore = {EC_WORD_A, EC_WORD_POKEMON, EC_WORD_TEACHER, EC_WORD_GETS, EC_WORD_NO, EC_MOVE2(REST)}, .speechWin = {EC_WORD_MY, EC_WORD_SMARTNESS, EC_WORD_GETS, EC_WORD_ME, EC_WORD_EASY, EC_WORD_WINS}, .speechLose = {EC_WORD_I, EC_WORD_HAVE, EC_WORD_TO, EC_WORD_GO, EC_WORD_WORK, EC_WORD_BYE_BYE}, - .monSets = gFallarborBattleTentTrainerMons_Sheldon + .monSet = gFallarborBattleTentTrainerMons_Sheldon }, - [17] = { + [FALLARBOR_TENT_TRAINER_GIANNA] = { .facilityClass = FACILITY_CLASS_POKEFAN_F, .trainerName = _("GIANNA"), .speechBefore = {EC_WORD_AHAHA, EC_WORD_YES, EC_WORD_EXCL, EC_WORD_LOVEY_DOVEY, EC_WORD_POKEMON, EC_WORD_WORLD}, .speechWin = {EC_WORD_MY, EC_WORD_SHINE, EC_WORD_IS, EC_WORD_MAKING, EC_WORD_THINGS, EC_WORD_BETTER}, .speechLose = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_DISLIKE, EC_WORD_POKEMON, EC_WORD_QUES, -1}, - .monSets = gFallarborBattleTentTrainerMons_Gianna + .monSet = gFallarborBattleTentTrainerMons_Gianna }, - [18] = { + [FALLARBOR_TENT_TRAINER_YAHIR] = { .facilityClass = FACILITY_CLASS_EXPERT_M, .trainerName = _("YAHIR"), .speechBefore = {EC_WORD_YOU, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, EC_WORD_COME_ON, EC_WORD_EXCL}, .speechWin = {EC_WORD_YOU, EC_WORD_NEED, EC_WORD_TO, EC_WORD_TRAIN, EC_WORD_A_LOT, EC_WORD_MORE}, .speechLose = {EC_WORD_NOT, EC_WORD_ENOUGH, EC_WORD_ELLIPSIS, EC_WORD_JUST, EC_WORD_NOT, EC_WORD_ENOUGH}, - .monSets = gFallarborBattleTentTrainerMons_Yahir + .monSet = gFallarborBattleTentTrainerMons_Yahir }, - [19] = { + [FALLARBOR_TENT_TRAINER_BRITNEY] = { .facilityClass = FACILITY_CLASS_EXPERT_F, .trainerName = _("BRITNEY"), .speechBefore = {EC_WORD_IT, EC_WORD_SEEMS, EC_WORD_THAT, EC_WORD_YOU_RE, EC_WORD_QUITE, EC_WORD_GOOD}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_LUKEWARM, EC_WORD_TALENT, EC_WORD_AT, EC_WORD_BEST}, .speechLose = {EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_COOL, EC_WORD_HERO, EC_WORD_AT, EC_WORD_THIS}, - .monSets = gFallarborBattleTentTrainerMons_Britney + .monSet = gFallarborBattleTentTrainerMons_Britney }, - [20] = { + [FALLARBOR_TENT_TRAINER_HECTER] = { .facilityClass = FACILITY_CLASS_YOUNGSTER, .trainerName = _("HECTER"), .speechBefore = {EC_WORD_MY, EC_MOVE2(HIDDEN_POWER), EC_WORD_IS, EC_WORD_EXCITING, EC_WORD_ME, EC_WORD_EXCL}, .speechWin = {EC_WORD_YEEHAW_EXCL, EC_WORD_LET_S, EC_WORD_HAVE, EC_WORD_A, EC_MOVE2(HIDDEN_POWER), EC_WORD_PARTY}, .speechLose = {EC_WORD_WAAAH, EC_WORD_EXCL, EC_WORD_DON_T, EC_WORD_YOU, EC_MOVE2(MIMIC), EC_WORD_ME}, - .monSets = gFallarborBattleTentTrainerMons_Hecter + .monSet = gFallarborBattleTentTrainerMons_Hecter }, - [21] = { + [FALLARBOR_TENT_TRAINER_TANNOR] = { .facilityClass = FACILITY_CLASS_FISHERMAN, .trainerName = _("TANNOR"), .speechBefore = {EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_GOT, EC_WORD_TO, EC_WORD_BE, EC_WORD_JOKING}, .speechWin = {EC_WORD_YOU_RE, EC_WORD_THE, EC_WORD_BEST, EC_WORD_AT, EC_WORD_BEING, EC_WORD_FUNNY}, .speechLose = {EC_WORD_YOU, EC_WORD_WEREN_T, EC_WORD_BEING, EC_WORD_FUNNY, EC_WORD_AT, EC_WORD_ALL}, - .monSets = gFallarborBattleTentTrainerMons_Tannor + .monSet = gFallarborBattleTentTrainerMons_Tannor }, - [22] = { + [FALLARBOR_TENT_TRAINER_BENJI] = { .facilityClass = FACILITY_CLASS_BIRD_KEEPER, .trainerName = _("BENJI"), .speechBefore = {EC_WORD_YOU, EC_WORD_DON_T, EC_WORD_THINK, EC_WORD_VERY, EC_WORD_FAST, EC_WORD_HUH_QUES}, .speechWin = {EC_WORD_SORRY, EC_WORD_EXCL, EC_WORD_I, EC_WORD_DIDN_T, EC_WORD_MEAN, EC_WORD_YOU}, .speechLose = {EC_WORD_YOU, EC_WORD_LEFT, EC_WORD_ME, EC_WORD_FEELING, EC_WORD_SAD, EC_WORD_ELLIPSIS}, - .monSets = gFallarborBattleTentTrainerMons_Benji + .monSet = gFallarborBattleTentTrainerMons_Benji }, - [23] = { + [FALLARBOR_TENT_TRAINER_RORY] = { .facilityClass = FACILITY_CLASS_NINJA_BOY, .trainerName = _("RORY"), .speechBefore = {EC_WORD_DON_T, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_YOU, EC_WORD_EXCL}, .speechWin = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_NEED, EC_WORD_AN, EC_MOVE(UPROAR), EC_WORD_EXCL}, .speechLose = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_CAUSE, EC_WORD_AN, EC_MOVE(UPROAR)}, - .monSets = gFallarborBattleTentTrainerMons_Rory + .monSet = gFallarborBattleTentTrainerMons_Rory }, - [24] = { + [FALLARBOR_TENT_TRAINER_ELEANOR] = { .facilityClass = FACILITY_CLASS_PARASOL_LADY, .trainerName = _("ELEANOR"), .speechBefore = {EC_WORD_I, EC_WORD_REALLY, EC_WORD_WANT, EC_WORD_TO, EC_WORD_PARTY, -1}, .speechWin = {EC_WORD_A, EC_WORD_TRENDY, EC_WORD_PARTY, EC_WORD_WOULD, EC_WORD_BE, EC_WORD_REFRESHING}, .speechLose = {EC_WORD_DON_T, EC_WORD_YOU, EC_WORD_LIKE, EC_WORD_TO, EC_WORD_PARTY, EC_WORD_QUES}, - .monSets = gFallarborBattleTentTrainerMons_Eleanor + .monSet = gFallarborBattleTentTrainerMons_Eleanor }, - [25] = { + [FALLARBOR_TENT_TRAINER_EVELYN] = { .facilityClass = FACILITY_CLASS_SWIMMER_F, .trainerName = _("EVELYN"), .speechBefore = {EC_WORD_MY, EC_WORD_PC, EC_WORD_IS, EC_WORD_MY, EC_WORD_SECRET_BASE, EC_WORD_EXCL}, .speechWin = {EC_WORD_IT_S, EC_WORD_ALL, EC_WORD_SECRET, EC_WORD_ON, EC_WORD_MY, EC_WORD_PC}, .speechLose = {EC_WORD_NO, EC_WORD_EXCL, -1, EC_WORD_I, EC_WORD_REJECT, EC_WORD_THIS}, - .monSets = gFallarborBattleTentTrainerMons_Evelyn + .monSet = gFallarborBattleTentTrainerMons_Evelyn }, - [26] = { + [FALLARBOR_TENT_TRAINER_ARIELLE] = { .facilityClass = FACILITY_CLASS_PICNICKER, .trainerName = _("ARIELLE"), .speechBefore = {EC_WORD_IT_S, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_I, EC_WORD_TRY}, .speechWin = {EC_WORD_WE_RE, EC_WORD_NOT_VERY, EC_WORD_PRETTY, EC_WORD_BUT, EC_WORD_WE_RE, EC_WORD_GREAT}, .speechLose = {EC_WORD_THAT_WAS, EC_WORD_PRETTY, EC_WORD_MEAN, EC_WORD_OF, EC_WORD_YOU, EC_WORD_EXCL}, - .monSets = gFallarborBattleTentTrainerMons_Arielle + .monSet = gFallarborBattleTentTrainerMons_Arielle }, - [27] = { + [FALLARBOR_TENT_TRAINER_CONNAR] = { .facilityClass = FACILITY_CLASS_SAILOR, .trainerName = _("CONNAR"), .speechBefore = {EC_WORD_I_AM, EC_WORD_NOT, EC_WORD_STRONG, EC_WORD_ENOUGH, EC_WORD_FOR, EC_WORD_THIS}, .speechWin = {EC_WORD_DO, EC_WORD_YOU, EC_WORD_THINK, EC_WORD_YOU_RE, EC_WORD_OK_QUES, -1}, .speechLose = {EC_WORD_GOOD_BYE, EC_WORD_AND, EC_WORD_THANK_YOU, -1, -1, -1}, - .monSets = gFallarborBattleTentTrainerMons_Connar + .monSet = gFallarborBattleTentTrainerMons_Connar }, - [28] = { + [FALLARBOR_TENT_TRAINER_MAURICE] = { .facilityClass = FACILITY_CLASS_COLLECTOR, .trainerName = _("MAURICE"), .speechBefore = {EC_WORD_THERE, EC_WORD_IS, EC_WORD_NO, EC_WORD_RADIO, EC_WORD_OR, EC_WORD_TELEVISION}, .speechWin = {EC_WORD_BUT, EC_WORD_THERE, EC_WORD_IS, EC_WORD_A_LOT, EC_WORD_OF, EC_WORD_POKEMON}, .speechLose = {EC_WORD_I, EC_WORD_CAN_T, EC_WORD_ENJOY, EC_WORD_MYSELF, EC_WORD_WITHOUT, EC_WORD_MONEY}, - .monSets = gFallarborBattleTentTrainerMons_Maurice + .monSet = gFallarborBattleTentTrainerMons_Maurice }, - [29] = { + [FALLARBOR_TENT_TRAINER_KIANNA] = { .facilityClass = FACILITY_CLASS_LASS, .trainerName = _("KIANNA"), .speechBefore = {EC_WORD_I, EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_DEPT_STORE, EC_WORD_SHOPPING}, .speechWin = {EC_WORD_I, EC_WORD_DISLIKE, EC_WORD_SHOPPING, EC_WORD_ALONE, -1, -1}, .speechLose = {EC_WORD_WANT, EC_WORD_TO, EC_WORD_GO, EC_WORD_SHOPPING, EC_WORD_TOGETHER, EC_WORD_QUES}, - .monSets = gFallarborBattleTentTrainerMons_Kianna + .monSet = gFallarborBattleTentTrainerMons_Kianna } }; -const struct FacilityMon gFallarborBattleTentMons[] = +const struct FacilityMon gFallarborBattleTentMons[NUM_FALLARBOR_TENT_MONS] = { - [0] = { + [FALLARBOR_TENT_MON_NUMEL] = { .species = SPECIES_NUMEL, .moves = {MOVE_GROWL, MOVE_FLAMETHROWER, MOVE_TACKLE, MOVE_SUNNY_DAY}, .itemTableId = BATTLE_FRONTIER_ITEM_CHARCOAL, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [1] = { + [FALLARBOR_TENT_MON_LINOONE_1] = { .species = SPECIES_LINOONE, .moves = {MOVE_ODOR_SLEUTH, MOVE_COVET, MOVE_ROCK_SMASH, MOVE_CHARM}, .itemTableId = BATTLE_FRONTIER_ITEM_SILK_SCARF, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE, .nature = NATURE_SASSY }, - [2] = { + [FALLARBOR_TENT_MON_PLUSLE] = { .species = SPECIES_PLUSLE, .moves = {MOVE_SPARK, MOVE_GROWL, MOVE_QUICK_ATTACK, MOVE_FAKE_TEARS}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [3] = { + [FALLARBOR_TENT_MON_POOCHYENA] = { .species = SPECIES_POOCHYENA, .moves = {MOVE_YAWN, MOVE_ODOR_SLEUTH, MOVE_HOWL, MOVE_FRUSTRATION}, .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAUGHTY }, - [4] = { + [FALLARBOR_TENT_MON_KECLEON] = { .species = SPECIES_KECLEON, .moves = {MOVE_LICK, MOVE_SLASH, MOVE_FAINT_ATTACK, MOVE_PSYBEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_WIKI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_MODEST }, - [5] = { + [FALLARBOR_TENT_MON_MAGIKARP] = { .species = SPECIES_MAGIKARP, .moves = {MOVE_SPLASH, MOVE_TACKLE, MOVE_FLAIL, MOVE_NONE}, .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_SCALE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [6] = { + [FALLARBOR_TENT_MON_SOLROCK] = { .species = SPECIES_SOLROCK, .moves = {MOVE_ROCK_THROW, MOVE_FLASH, MOVE_SANDSTORM, MOVE_PSYWAVE}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_SASSY }, - [7] = { + [FALLARBOR_TENT_MON_MAKUHITA] = { .species = SPECIES_MAKUHITA, .moves = {MOVE_DETECT, MOVE_ARM_THRUST, MOVE_FAKE_OUT, MOVE_SMELLING_SALT}, .itemTableId = BATTLE_FRONTIER_ITEM_BLACK_BELT, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [8] = { + [FALLARBOR_TENT_MON_MACHOKE] = { .species = SPECIES_MACHOKE, .moves = {MOVE_COUNTER, MOVE_REVENGE, MOVE_BULK_UP, MOVE_FOCUS_ENERGY}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_NAIVE }, - [9] = { + [FALLARBOR_TENT_MON_NINCADA] = { .species = SPECIES_NINCADA, .moves = {MOVE_FURY_SWIPES, MOVE_ENDURE, MOVE_MUD_SLAP, MOVE_DIG}, .itemTableId = BATTLE_FRONTIER_ITEM_LUM_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_SERIOUS }, - [10] = { + [FALLARBOR_TENT_MON_BEAUTIFLY] = { .species = SPECIES_BEAUTIFLY, .moves = {MOVE_FLASH, MOVE_MORNING_SUN, MOVE_HARDEN, MOVE_MEGA_DRAIN}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIRKY }, - [11] = { + [FALLARBOR_TENT_MON_DUSTOX] = { .species = SPECIES_DUSTOX, .moves = {MOVE_MOONLIGHT, MOVE_HARDEN, MOVE_POISON_STING, MOVE_PSYBEAM}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE, .nature = NATURE_DOCILE }, - [12] = { + [FALLARBOR_TENT_MON_ILLUMISE] = { .species = SPECIES_ILLUMISE, .moves = {MOVE_METRONOME, MOVE_FLATTER, MOVE_WISH, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_SALAC_BERRY, .evSpread = F_EV_SPREAD_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [13] = { + [FALLARBOR_TENT_MON_VOLBEAT] = { .species = SPECIES_VOLBEAT, .moves = {MOVE_TACKLE, MOVE_MOONLIGHT, MOVE_SIGNAL_BEAM, MOVE_TAIL_GLOW}, .itemTableId = BATTLE_FRONTIER_ITEM_LEPPA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [14] = { + [FALLARBOR_TENT_MON_NINJASK_1] = { .species = SPECIES_NINJASK, .moves = {MOVE_DOUBLE_TEAM, MOVE_PROTECT, MOVE_DIG, MOVE_SAND_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_TIMID }, - [15] = { + [FALLARBOR_TENT_MON_NINJASK_2] = { .species = SPECIES_NINJASK, .moves = {MOVE_SWORDS_DANCE, MOVE_CUT, MOVE_FURY_CUTTER, MOVE_LEECH_LIFE}, .itemTableId = BATTLE_FRONTIER_ITEM_SILVER_POWDER, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [16] = { + [FALLARBOR_TENT_MON_ARON_1] = { .species = SPECIES_ARON, .moves = {MOVE_METAL_CLAW, MOVE_PROTECT, MOVE_SHOCK_WAVE, MOVE_METAL_SOUND}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_LONELY }, - [17] = { + [FALLARBOR_TENT_MON_ARON_2] = { .species = SPECIES_ARON, .moves = {MOVE_SECRET_POWER, MOVE_METAL_CLAW, MOVE_IRON_DEFENSE, MOVE_MUD_SLAP}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_GENTLE }, - [18] = { + [FALLARBOR_TENT_MON_ELECTRIKE] = { .species = SPECIES_ELECTRIKE, .moves = {MOVE_CRUNCH, MOVE_THUNDER_WAVE, MOVE_HOWL, MOVE_QUICK_ATTACK}, .itemTableId = BATTLE_FRONTIER_ITEM_SEA_INCENSE, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_HASTY }, - [19] = { + [FALLARBOR_TENT_MON_MAGNEMITE] = { .species = SPECIES_MAGNEMITE, .moves = {MOVE_THUNDER_WAVE, MOVE_SUPERSONIC, MOVE_ENDURE, MOVE_SPARK}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_QUIET }, - [20] = { + [FALLARBOR_TENT_MON_VOLTORB] = { .species = SPECIES_VOLTORB, .moves = {MOVE_CHARGE, MOVE_SPARK, MOVE_SCREECH, MOVE_SONIC_BOOM}, .itemTableId = BATTLE_FRONTIER_ITEM_ASPEAR_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [21] = { + [FALLARBOR_TENT_MON_WHISMUR] = { .species = SPECIES_WHISMUR, .moves = {MOVE_REST, MOVE_SLEEP_TALK, MOVE_HYPER_VOICE, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_LAX_INCENSE, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [22] = { + [FALLARBOR_TENT_MON_LOUDRED] = { .species = SPECIES_LOUDRED, .moves = {MOVE_STOMP, MOVE_REST, MOVE_SCREECH, MOVE_UPROAR}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [23] = { + [FALLARBOR_TENT_MON_LINOONE_2] = { .species = SPECIES_LINOONE, .moves = {MOVE_FURY_SWIPES, MOVE_SAND_ATTACK, MOVE_SHOCK_WAVE, MOVE_GROWL}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGNET, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [24] = { + [FALLARBOR_TENT_MON_MIGHTYENA] = { .species = SPECIES_MIGHTYENA, .moves = {MOVE_SAND_ATTACK, MOVE_HOWL, MOVE_SWAGGER, MOVE_SECRET_POWER}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_JOLLY }, - [25] = { + [FALLARBOR_TENT_MON_SWABLU] = { .species = SPECIES_SWABLU, .moves = {MOVE_TAKE_DOWN, MOVE_SING, MOVE_GROWL, MOVE_SAFEGUARD}, .itemTableId = BATTLE_FRONTIER_ITEM_FOCUS_BAND, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_QUIRKY }, - [26] = { + [FALLARBOR_TENT_MON_SKARMORY] = { .species = SPECIES_SKARMORY, .moves = {MOVE_AGILITY, MOVE_STEEL_WING, MOVE_SAND_ATTACK, MOVE_TORMENT}, .itemTableId = BATTLE_FRONTIER_ITEM_METAL_COAT, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [27] = { + [FALLARBOR_TENT_MON_GOLBAT] = { .species = SPECIES_GOLBAT, .moves = {MOVE_CONFUSE_RAY, MOVE_BITE, MOVE_DOUBLE_TEAM, MOVE_SUBSTITUTE}, .itemTableId = BATTLE_FRONTIER_ITEM_PETAYA_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BOLD }, - [28] = { + [FALLARBOR_TENT_MON_WINGULL] = { .species = SPECIES_WINGULL, .moves = {MOVE_WING_ATTACK, MOVE_HAIL, MOVE_DOUBLE_TEAM, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_RAWST_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_SPEED, .nature = NATURE_MODEST }, - [29] = { + [FALLARBOR_TENT_MON_PELIPPER] = { .species = SPECIES_PELIPPER, .moves = {MOVE_TWISTER, MOVE_ICY_WIND, MOVE_DOUBLE_TEAM, MOVE_WATER_GUN}, .itemTableId = BATTLE_FRONTIER_ITEM_DRAGON_FANG, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [30] = { + [FALLARBOR_TENT_MON_BARBOACH] = { .species = SPECIES_BARBOACH, .moves = {MOVE_SPARK, MOVE_WATER_GUN, MOVE_EARTHQUAKE, MOVE_WATER_SPORT}, .itemTableId = BATTLE_FRONTIER_ITEM_LIECHI_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_MODEST }, - [31] = { + [FALLARBOR_TENT_MON_WAILMER] = { .species = SPECIES_WAILMER, .moves = {MOVE_WATER_PULSE, MOVE_RAIN_DANCE, MOVE_SPLASH, MOVE_CURSE}, .itemTableId = BATTLE_FRONTIER_ITEM_KINGS_ROCK, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_QUIET }, - [32] = { + [FALLARBOR_TENT_MON_MARILL] = { .species = SPECIES_MARILL, .moves = {MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_ATTRACT}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [33] = { + [FALLARBOR_TENT_MON_GOLDEEN_1] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_WATERFALL, MOVE_RAIN_DANCE, MOVE_FLAIL, MOVE_PROTECT}, .itemTableId = BATTLE_FRONTIER_ITEM_GANLON_BERRY, .evSpread = F_EV_SPREAD_SP_ATTACK | F_EV_SPREAD_ATTACK, .nature = NATURE_HASTY }, - [34] = { + [FALLARBOR_TENT_MON_GOLDEEN_2] = { .species = SPECIES_GOLDEEN, .moves = {MOVE_SLEEP_TALK, MOVE_HORN_DRILL, MOVE_REST, MOVE_SUPERSONIC}, .itemTableId = BATTLE_FRONTIER_ITEM_MENTAL_HERB, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_CAREFUL }, - [35] = { + [FALLARBOR_TENT_MON_TRAPINCH] = { .species = SPECIES_TRAPINCH, .moves = {MOVE_RETURN, MOVE_SAND_ATTACK, MOVE_ATTRACT, MOVE_STRENGTH}, .itemTableId = BATTLE_FRONTIER_ITEM_MAGO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [36] = { + [FALLARBOR_TENT_MON_BALTOY] = { .species = SPECIES_BALTOY, .moves = {MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_RAPID_SPIN, MOVE_MIMIC}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [37] = { + [FALLARBOR_TENT_MON_GRAVELER] = { .species = SPECIES_GRAVELER, .moves = {MOVE_ROCK_BLAST, MOVE_DEFENSE_CURL, MOVE_MAGNITUDE, MOVE_MUD_SPORT}, .itemTableId = BATTLE_FRONTIER_ITEM_HARD_STONE, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_ADAMANT }, - [38] = { + [FALLARBOR_TENT_MON_SANDSHREW] = { .species = SPECIES_SANDSHREW, .moves = {MOVE_SAND_TOMB, MOVE_SANDSTORM, MOVE_DOUBLE_TEAM, MOVE_FOCUS_PUNCH}, .itemTableId = BATTLE_FRONTIER_ITEM_SOFT_SAND, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_JOLLY }, - [39] = { + [FALLARBOR_TENT_MON_SWALOT] = { .species = SPECIES_SWALOT, .moves = {MOVE_YAWN, MOVE_ENCORE, MOVE_BULLET_SEED, MOVE_SLUDGE}, .itemTableId = BATTLE_FRONTIER_ITEM_SCOPE_LENS, .evSpread = F_EV_SPREAD_ATTACK | F_EV_SPREAD_HP, .nature = NATURE_BRAVE }, - [40] = { + [FALLARBOR_TENT_MON_SHROOMISH] = { .species = SPECIES_SHROOMISH, .moves = {MOVE_HEADBUTT, MOVE_SPORE, MOVE_SWAGGER, MOVE_LEECH_SEED}, .itemTableId = BATTLE_FRONTIER_ITEM_QUICK_CLAW, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_IMPISH }, - [41] = { + [FALLARBOR_TENT_MON_KIRLIA] = { .species = SPECIES_KIRLIA, .moves = {MOVE_HYPNOSIS, MOVE_GROWL, MOVE_ATTRACT, MOVE_DREAM_EATER}, .itemTableId = BATTLE_FRONTIER_ITEM_SITRUS_BERRY, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [42] = { + [FALLARBOR_TENT_MON_LOMBRE] = { .species = SPECIES_LOMBRE, .moves = {MOVE_NATURE_POWER, MOVE_WATER_GUN, MOVE_RAIN_DANCE, MOVE_FLASH}, .itemTableId = BATTLE_FRONTIER_ITEM_LEFTOVERS, .evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP, .nature = NATURE_BASHFUL }, - [43] = { + [FALLARBOR_TENT_MON_NUZLEAF] = { .species = SPECIES_NUZLEAF, .moves = {MOVE_NATURE_POWER, MOVE_TORMENT, MOVE_SWAGGER, MOVE_REST}, .itemTableId = BATTLE_FRONTIER_ITEM_CHESTO_BERRY, .evSpread = F_EV_SPREAD_SPEED | F_EV_SPREAD_ATTACK, .nature = NATURE_ADAMANT }, - [44] = { + [FALLARBOR_TENT_MON_CACNEA] = { .species = SPECIES_CACNEA, .moves = {MOVE_SANDSTORM, MOVE_NEEDLE_ARM, MOVE_TEETER_DANCE, MOVE_LEECH_SEED}, .itemTableId = BATTLE_FRONTIER_ITEM_BRIGHT_POWDER, diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 07415949d9ab..45e34030fd6b 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -572,12 +572,12 @@ const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/sh const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); -const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/front.4bpp.lz"); -const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/normal.gbapal.lz"); -const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/back.4bpp.lz"); -const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetch_d/shiny.gbapal.lz"); -const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/icon.4bpp"); -const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetch_d/footprint.1bpp"); +const u32 gMonStillFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/front.4bpp.lz"); +const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/normal.gbapal.lz"); +const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back.4bpp.lz"); +const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny.gbapal.lz"); +const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon.4bpp"); +const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/footprint.1bpp"); const u32 gMonStillFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/front.4bpp.lz"); const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index 33fda56d13d1..ceecabbd9b40 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -331,7 +331,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Zander[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Shelly1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_ShellyWeatherInstitute[] = { { .iv = 50, .lvl = 28, @@ -344,7 +344,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Shelly1[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Shelly2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_ShellySeafloorCavern[] = { { .iv = 100, .lvl = 37, @@ -419,13 +419,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Felix[] = { .iv = 0, .lvl = 43, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_NONE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_PSYCHIC, MOVE_NONE, MOVE_NONE, MOVE_NONE} }, { .iv = 0, .lvl = 43, .species = SPECIES_CLAYDOL, - .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE} } }; @@ -514,7 +514,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Dusty1[] = { .iv = 50, .lvl = 23, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -523,19 +523,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Chip[] = { .iv = 50, .lvl = 27, .species = SPECIES_BALTOY, - .moves = MOVE_PSYBEAM, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_ANCIENT_POWER + .moves = {MOVE_PSYBEAM, MOVE_SELF_DESTRUCT, MOVE_SANDSTORM, MOVE_ANCIENT_POWER} }, { .iv = 50, .lvl = 27, .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} }, { .iv = 50, .lvl = 27, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -544,13 +544,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Foster[] = { .iv = 100, .lvl = 25, .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} }, { .iv = 100, .lvl = 25, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -559,7 +559,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Dusty2[] = { .iv = 60, .lvl = 27, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -568,7 +568,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Dusty3[] = { .iv = 70, .lvl = 30, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -577,7 +577,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Dusty4[] = { .iv = 80, .lvl = 33, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -586,7 +586,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Dusty5[] = { .iv = 90, .lvl = 36, .species = SPECIES_SANDSLASH, - .moves = MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING + .moves = {MOVE_DIG, MOVE_SLASH, MOVE_SAND_ATTACK, MOVE_POISON_STING} } }; @@ -660,13 +660,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_GabbyAndTy6[] = { .iv = 250, .lvl = 39, .species = SPECIES_MAGNETON, - .moves = MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND, MOVE_THUNDERBOLT + .moves = {MOVE_SONIC_BOOM, MOVE_THUNDER_WAVE, MOVE_METAL_SOUND, MOVE_THUNDERBOLT} }, { .iv = 250, .lvl = 39, .species = SPECIES_EXPLOUD, - .moves = MOVE_ASTONISH, MOVE_STOMP, MOVE_SUPERSONIC, MOVE_HYPER_VOICE + .moves = {MOVE_ASTONISH, MOVE_STOMP, MOVE_SUPERSONIC, MOVE_HYPER_VOICE} } }; @@ -756,7 +756,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ricky1[] = { .iv = 10, .lvl = 13, .species = SPECIES_ZIGZAGOON, - .moves = MOVE_SAND_ATTACK, MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF + .moves = {MOVE_SAND_ATTACK, MOVE_HEADBUTT, MOVE_TAIL_WHIP, MOVE_SURF} } }; @@ -786,7 +786,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ricky2[] = { .iv = 10, .lvl = 27, .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + .moves = {MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF} } }; @@ -795,7 +795,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ricky3[] = { .iv = 20, .lvl = 30, .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + .moves = {MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF} } }; @@ -804,7 +804,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ricky4[] = { .iv = 30, .lvl = 33, .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + .moves = {MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF} } }; @@ -813,7 +813,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ricky5[] = { .iv = 40, .lvl = 36, .species = SPECIES_LINOONE, - .moves = MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF + .moves = {MOVE_SAND_ATTACK, MOVE_PIN_MISSILE, MOVE_TAIL_WHIP, MOVE_SURF} } }; @@ -823,7 +823,7 @@ static const struct TrainerMonItemCustomMoves sParty_Randall[] = { .lvl = 26, .species = SPECIES_SWELLOW, .heldItem = ITEM_NONE, - .moves = MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_NONE + .moves = {MOVE_QUICK_ATTACK, MOVE_AGILITY, MOVE_WING_ATTACK, MOVE_NONE} } }; @@ -833,7 +833,7 @@ static const struct TrainerMonItemCustomMoves sParty_Parker[] = { .lvl = 26, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_DIZZY_PUNCH, MOVE_FOCUS_PUNCH, MOVE_NONE + .moves = {MOVE_TEETER_DANCE, MOVE_DIZZY_PUNCH, MOVE_FOCUS_PUNCH, MOVE_NONE} } }; @@ -843,7 +843,7 @@ static const struct TrainerMonItemCustomMoves sParty_George[] = { .lvl = 26, .species = SPECIES_SLAKOTH, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SLACK_OFF, MOVE_COUNTER, MOVE_SHADOW_BALL, MOVE_NONE + .moves = {MOVE_SLACK_OFF, MOVE_COUNTER, MOVE_SHADOW_BALL, MOVE_NONE} } }; @@ -853,7 +853,7 @@ static const struct TrainerMonItemCustomMoves sParty_Berke[] = { .lvl = 26, .species = SPECIES_VIGOROTH, .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_ENERGY, MOVE_SLASH, MOVE_NONE, MOVE_NONE + .moves = {MOVE_FOCUS_ENERGY, MOVE_SLASH, MOVE_NONE, MOVE_NONE} } }; @@ -862,31 +862,31 @@ static const struct TrainerMonNoItemCustomMoves sParty_Braxton[] = { .iv = 100, .lvl = 28, .species = SPECIES_SWELLOW, - .moves = MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, MOVE_WING_ATTACK, MOVE_ENDEAVOR + .moves = {MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, MOVE_WING_ATTACK, MOVE_ENDEAVOR} }, { .iv = 100, .lvl = 28, .species = SPECIES_TRAPINCH, - .moves = MOVE_BITE, MOVE_DIG, MOVE_FAINT_ATTACK, MOVE_SAND_TOMB + .moves = {MOVE_BITE, MOVE_DIG, MOVE_FAINT_ATTACK, MOVE_SAND_TOMB} }, { .iv = 100, .lvl = 28, .species = SPECIES_WAILMER, - .moves = MOVE_ROLLOUT, MOVE_WHIRLPOOL, MOVE_ASTONISH, MOVE_WATER_PULSE + .moves = {MOVE_ROLLOUT, MOVE_WHIRLPOOL, MOVE_ASTONISH, MOVE_WATER_PULSE} }, { .iv = 100, .lvl = 28, .species = SPECIES_MAGNETON, - .moves = MOVE_THUNDERBOLT, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM + .moves = {MOVE_THUNDERBOLT, MOVE_SUPERSONIC, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM} }, { .iv = 100, .lvl = 28, .species = SPECIES_SHIFTRY, - .moves = MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SWAGGER + .moves = {MOVE_GIGA_DRAIN, MOVE_FAINT_ATTACK, MOVE_DOUBLE_TEAM, MOVE_SWAGGER} } }; @@ -1115,7 +1115,7 @@ static const struct TrainerMonItemCustomMoves sParty_Mary[] = { .lvl = 26, .species = SPECIES_DELCATTY, .heldItem = ITEM_NONE, - .moves = MOVE_FAINT_ATTACK, MOVE_SHOCK_WAVE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_FAINT_ATTACK, MOVE_SHOCK_WAVE, MOVE_NONE, MOVE_NONE} } }; @@ -1125,7 +1125,7 @@ static const struct TrainerMonItemCustomMoves sParty_Alexia[] = { .lvl = 26, .species = SPECIES_WIGGLYTUFF, .heldItem = ITEM_NONE, - .moves = MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_NONE + .moves = {MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_SHADOW_BALL, MOVE_NONE} } }; @@ -1135,7 +1135,7 @@ static const struct TrainerMonItemCustomMoves sParty_Jody[] = { .lvl = 26, .species = SPECIES_ZANGOOSE, .heldItem = ITEM_NONE, - .moves = MOVE_SWORDS_DANCE, MOVE_SLASH, MOVE_NONE, MOVE_NONE + .moves = {MOVE_SWORDS_DANCE, MOVE_SLASH, MOVE_NONE, MOVE_NONE} } }; @@ -1144,19 +1144,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Wendy[] = { .iv = 100, .lvl = 29, .species = SPECIES_MAWILE, - .moves = MOVE_BATON_PASS, MOVE_FAINT_ATTACK, MOVE_FAKE_TEARS, MOVE_BITE + .moves = {MOVE_BATON_PASS, MOVE_FAINT_ATTACK, MOVE_FAKE_TEARS, MOVE_BITE} }, { .iv = 100, .lvl = 29, .species = SPECIES_ROSELIA, - .moves = MOVE_MEGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED + .moves = {MOVE_MEGA_DRAIN, MOVE_MAGICAL_LEAF, MOVE_GRASS_WHISTLE, MOVE_LEECH_SEED} }, { .iv = 100, .lvl = 29, .species = SPECIES_PELIPPER, - .moves = MOVE_FLY, MOVE_WATER_GUN, MOVE_MIST, MOVE_PROTECT + .moves = {MOVE_FLY, MOVE_WATER_GUN, MOVE_MIST, MOVE_PROTECT} } }; @@ -1463,14 +1463,14 @@ static const struct TrainerMonItemCustomMoves sParty_Daphne[] = { .lvl = 39, .species = SPECIES_LUVDISC, .heldItem = ITEM_NUGGET, - .moves = MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL, MOVE_WATER_PULSE + .moves = {MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL, MOVE_WATER_PULSE} }, { .iv = 100, .lvl = 39, .species = SPECIES_LUVDISC, .heldItem = ITEM_NUGGET, - .moves = MOVE_ATTRACT, MOVE_SAFEGUARD, MOVE_TAKE_DOWN, MOVE_WATER_PULSE + .moves = {MOVE_ATTRACT, MOVE_SAFEGUARD, MOVE_TAKE_DOWN, MOVE_WATER_PULSE} } }; @@ -1498,7 +1498,7 @@ static const struct TrainerMonItemCustomMoves sParty_Cindy2[] = { .lvl = 11, .species = SPECIES_ZIGZAGOON, .heldItem = ITEM_NUGGET, - .moves = MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_NONE, MOVE_NONE} } }; @@ -1553,7 +1553,7 @@ static const struct TrainerMonItemCustomMoves sParty_Cindy6[] = { .lvl = 36, .species = SPECIES_LINOONE, .heldItem = ITEM_NUGGET, - .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK + .moves = {MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK} } }; @@ -1586,13 +1586,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica1[] = { .iv = 0, .lvl = 29, .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + .moves = {MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK} }, { .iv = 0, .lvl = 29, .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + .moves = {MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH} } }; @@ -1617,19 +1617,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Olivia[] = { .iv = 100, .lvl = 35, .species = SPECIES_CLAMPERL, - .moves = MOVE_IRON_DEFENSE, MOVE_WHIRLPOOL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE + .moves = {MOVE_IRON_DEFENSE, MOVE_WHIRLPOOL, MOVE_RAIN_DANCE, MOVE_WATER_PULSE} }, { .iv = 100, .lvl = 37, .species = SPECIES_CORPHISH, - .moves = MOVE_TAUNT, MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_NONE + .moves = {MOVE_TAUNT, MOVE_CRABHAMMER, MOVE_WATER_PULSE, MOVE_NONE} }, { .iv = 100, .lvl = 39, .species = SPECIES_LOMBRE, - .moves = MOVE_UPROAR, MOVE_FURY_SWIPES, MOVE_FAKE_OUT, MOVE_WATER_PULSE + .moves = {MOVE_UPROAR, MOVE_FURY_SWIPES, MOVE_FAKE_OUT, MOVE_WATER_PULSE} } }; @@ -1651,13 +1651,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica2[] = { .iv = 10, .lvl = 35, .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + .moves = {MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK} }, { .iv = 10, .lvl = 35, .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + .moves = {MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH} } }; @@ -1666,13 +1666,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica3[] = { .iv = 20, .lvl = 38, .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + .moves = {MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK} }, { .iv = 20, .lvl = 38, .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + .moves = {MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH} } }; @@ -1681,13 +1681,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica4[] = { .iv = 30, .lvl = 41, .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + .moves = {MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK} }, { .iv = 30, .lvl = 41, .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + .moves = {MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH} } }; @@ -1696,13 +1696,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica5[] = { .iv = 40, .lvl = 44, .species = SPECIES_KECLEON, - .moves = MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK + .moves = {MOVE_BIND, MOVE_LICK, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK} }, { .iv = 40, .lvl = 44, .species = SPECIES_SEVIPER, - .moves = MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH + .moves = {MOVE_POISON_TAIL, MOVE_SCREECH, MOVE_GLARE, MOVE_CRUNCH} } }; @@ -1770,7 +1770,7 @@ static const struct TrainerMonItemCustomMoves sParty_Winston5[] = { .lvl = 36, .species = SPECIES_LINOONE, .heldItem = ITEM_NUGGET, - .moves = MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK + .moves = {MOVE_FURY_SWIPES, MOVE_MUD_SPORT, MOVE_ODOR_SLEUTH, MOVE_SAND_ATTACK} } }; @@ -2302,13 +2302,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Kirk[] = { .iv = 100, .lvl = 17, .species = SPECIES_ELECTRIKE, - .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_LEER + .moves = {MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SPARK, MOVE_LEER} }, { .iv = 100, .lvl = 17, .species = SPECIES_VOLTORB, - .moves = MOVE_CHARGE, MOVE_SHOCK_WAVE, MOVE_SCREECH, MOVE_NONE + .moves = {MOVE_CHARGE, MOVE_SHOCK_WAVE, MOVE_SCREECH, MOVE_NONE} } }; @@ -2559,7 +2559,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Drew[] = { .iv = 0, .lvl = 23, .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH + .moves = {MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH} } }; @@ -2568,19 +2568,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Beau[] = { .iv = 0, .lvl = 21, .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + .moves = {MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB} }, { .iv = 0, .lvl = 21, .species = SPECIES_SANDSHREW, - .moves = MOVE_POISON_STING, MOVE_SAND_ATTACK, MOVE_SCRATCH, MOVE_DIG + .moves = {MOVE_POISON_STING, MOVE_SAND_ATTACK, MOVE_SCRATCH, MOVE_DIG} }, { .iv = 0, .lvl = 21, .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + .moves = {MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB} } }; @@ -2876,7 +2876,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Edward[] = { .iv = 0, .lvl = 15, .species = SPECIES_ABRA, - .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE} } }; @@ -3000,7 +3000,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jaclyn[] = { .iv = 0, .lvl = 16, .species = SPECIES_ABRA, - .moves = MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_HIDDEN_POWER, MOVE_NONE, MOVE_NONE, MOVE_NONE} } }; @@ -3166,13 +3166,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Walter3[] = { .iv = 20, .lvl = 36, .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + .moves = {MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES} }, { .iv = 20, .lvl = 36, .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR + .moves = {MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR} } }; @@ -3181,13 +3181,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Walter4[] = { .iv = 30, .lvl = 39, .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + .moves = {MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES} }, { .iv = 30, .lvl = 39, .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_NONE + .moves = {MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_NONE} } }; @@ -3196,19 +3196,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Walter5[] = { .iv = 40, .lvl = 41, .species = SPECIES_LINOONE, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES + .moves = {MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_ODOR_SLEUTH, MOVE_FURY_SWIPES} }, { .iv = 40, .lvl = 41, .species = SPECIES_GOLDUCK, - .moves = MOVE_FURY_SWIPES, MOVE_DISABLE, MOVE_CONFUSION, MOVE_PSYCH_UP + .moves = {MOVE_FURY_SWIPES, MOVE_DISABLE, MOVE_CONFUSION, MOVE_PSYCH_UP} }, { .iv = 40, .lvl = 41, .species = SPECIES_MANECTRIC, - .moves = MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR + .moves = {MOVE_QUICK_ATTACK, MOVE_SPARK, MOVE_ODOR_SLEUTH, MOVE_ROAR} } }; @@ -3218,35 +3218,35 @@ static const struct TrainerMonItemCustomMoves sParty_Sidney[] = { .lvl = 46, .species = SPECIES_MIGHTYENA, .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_CRUNCH + .moves = {MOVE_ROAR, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_CRUNCH} }, { .iv = 250, .lvl = 48, .species = SPECIES_SHIFTRY, .heldItem = ITEM_NONE, - .moves = MOVE_TORMENT, MOVE_DOUBLE_TEAM, MOVE_SWAGGER, MOVE_EXTRASENSORY + .moves = {MOVE_TORMENT, MOVE_DOUBLE_TEAM, MOVE_SWAGGER, MOVE_EXTRASENSORY} }, { .iv = 250, .lvl = 46, .species = SPECIES_CACTURNE, .heldItem = ITEM_NONE, - .moves = MOVE_LEECH_SEED, MOVE_FAINT_ATTACK, MOVE_NEEDLE_ARM, MOVE_COTTON_SPORE + .moves = {MOVE_LEECH_SEED, MOVE_FAINT_ATTACK, MOVE_NEEDLE_ARM, MOVE_COTTON_SPORE} }, { .iv = 250, .lvl = 48, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_FACADE + .moves = {MOVE_SURF, MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_FACADE} }, { .iv = 255, .lvl = 49, .species = SPECIES_ABSOL, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_SLASH + .moves = {MOVE_AERIAL_ACE, MOVE_ROCK_SLIDE, MOVE_SWORDS_DANCE, MOVE_SLASH} } }; @@ -3256,35 +3256,35 @@ static const struct TrainerMonItemCustomMoves sParty_Phoebe[] = { .lvl = 48, .species = SPECIES_DUSCLOPS, .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_PROTECT + .moves = {MOVE_SHADOW_PUNCH, MOVE_CONFUSE_RAY, MOVE_CURSE, MOVE_PROTECT} }, { .iv = 250, .lvl = 49, .species = SPECIES_BANETTE, .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_FAINT_ATTACK + .moves = {MOVE_SHADOW_BALL, MOVE_GRUDGE, MOVE_WILL_O_WISP, MOVE_FAINT_ATTACK} }, { .iv = 250, .lvl = 50, .species = SPECIES_SABLEYE, .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK + .moves = {MOVE_SHADOW_BALL, MOVE_DOUBLE_TEAM, MOVE_NIGHT_SHADE, MOVE_FAINT_ATTACK} }, { .iv = 250, .lvl = 49, .species = SPECIES_BANETTE, .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FACADE + .moves = {MOVE_SHADOW_BALL, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_FACADE} }, { .iv = 255, .lvl = 51, .species = SPECIES_DUSCLOPS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SHADOW_BALL, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE + .moves = {MOVE_SHADOW_BALL, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_EARTHQUAKE} } }; @@ -3294,35 +3294,35 @@ static const struct TrainerMonItemCustomMoves sParty_Glacia[] = { .lvl = 50, .species = SPECIES_SEALEO, .heldItem = ITEM_NONE, - .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_HAIL, MOVE_ICE_BALL + .moves = {MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_HAIL, MOVE_ICE_BALL} }, { .iv = 250, .lvl = 50, .species = SPECIES_GLALIE, .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_ICE_BEAM + .moves = {MOVE_LIGHT_SCREEN, MOVE_CRUNCH, MOVE_ICY_WIND, MOVE_ICE_BEAM} }, { .iv = 250, .lvl = 52, .species = SPECIES_SEALEO, .heldItem = ITEM_NONE, - .moves = MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_HAIL, MOVE_BLIZZARD + .moves = {MOVE_ATTRACT, MOVE_DOUBLE_EDGE, MOVE_HAIL, MOVE_BLIZZARD} }, { .iv = 250, .lvl = 52, .species = SPECIES_GLALIE, .heldItem = ITEM_NONE, - .moves = MOVE_SHADOW_BALL, MOVE_EXPLOSION, MOVE_HAIL, MOVE_ICE_BEAM + .moves = {MOVE_SHADOW_BALL, MOVE_EXPLOSION, MOVE_HAIL, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 53, .species = SPECIES_WALREIN, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SURF, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_SHEER_COLD + .moves = {MOVE_SURF, MOVE_BODY_SLAM, MOVE_ICE_BEAM, MOVE_SHEER_COLD} } }; @@ -3332,35 +3332,35 @@ static const struct TrainerMonItemCustomMoves sParty_Drake[] = { .lvl = 52, .species = SPECIES_SHELGON, .heldItem = ITEM_NONE, - .moves = MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_PROTECT, MOVE_DOUBLE_EDGE + .moves = {MOVE_ROCK_TOMB, MOVE_DRAGON_CLAW, MOVE_PROTECT, MOVE_DOUBLE_EDGE} }, { .iv = 250, .lvl = 54, .species = SPECIES_ALTARIA, .heldItem = ITEM_NONE, - .moves = MOVE_DOUBLE_EDGE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE + .moves = {MOVE_DOUBLE_EDGE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE} }, { .iv = 250, .lvl = 53, .species = SPECIES_KINGDRA, .heldItem = ITEM_NONE, - .moves = MOVE_SMOKESCREEN, MOVE_DRAGON_DANCE, MOVE_SURF, MOVE_BODY_SLAM + .moves = {MOVE_SMOKESCREEN, MOVE_DRAGON_DANCE, MOVE_SURF, MOVE_BODY_SLAM} }, { .iv = 250, .lvl = 53, .species = SPECIES_FLYGON, .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_DRAGON_BREATH, MOVE_EARTHQUAKE + .moves = {MOVE_FLAMETHROWER, MOVE_CRUNCH, MOVE_DRAGON_BREATH, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 55, .species = SPECIES_SALAMENCE, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_ROCK_SLIDE, MOVE_CRUNCH + .moves = {MOVE_FLAMETHROWER, MOVE_DRAGON_CLAW, MOVE_ROCK_SLIDE, MOVE_CRUNCH} } }; @@ -3370,14 +3370,14 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne1[] = { .lvl = 12, .species = SPECIES_GEODUDE, .heldItem = ITEM_NONE, - .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB + .moves = {MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB} }, { .iv = 100, .lvl = 12, .species = SPECIES_GEODUDE, .heldItem = ITEM_NONE, - .moves = MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB + .moves = {MOVE_TACKLE, MOVE_DEFENSE_CURL, MOVE_ROCK_THROW, MOVE_ROCK_TOMB} }, { .iv = 100, @@ -3391,7 +3391,7 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne1[] = { .lvl = 15, .species = SPECIES_NOSEPASS, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_BLOCK, MOVE_HARDEN, MOVE_TACKLE, MOVE_ROCK_TOMB + .moves = {MOVE_BLOCK, MOVE_HARDEN, MOVE_TACKLE, MOVE_ROCK_TOMB} } }; @@ -3401,14 +3401,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly1[] = { .lvl = 16, .species = SPECIES_MACHOP, .heldItem = ITEM_NONE, - .moves = MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SEISMIC_TOSS, MOVE_BULK_UP + .moves = {MOVE_KARATE_CHOP, MOVE_LOW_KICK, MOVE_SEISMIC_TOSS, MOVE_BULK_UP} }, { .iv = 100, .lvl = 16, .species = SPECIES_MEDITITE, .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_BULK_UP + .moves = {MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_BULK_UP} }, { .iv = 100, @@ -3422,7 +3422,7 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly1[] = { .lvl = 19, .species = SPECIES_MAKUHITA, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_ARM_THRUST, MOVE_VITAL_THROW, MOVE_REVERSAL, MOVE_BULK_UP + .moves = {MOVE_ARM_THRUST, MOVE_VITAL_THROW, MOVE_REVERSAL, MOVE_BULK_UP} } }; @@ -3432,28 +3432,28 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson1[] = { .lvl = 20, .species = SPECIES_VOLTORB, .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_SPARK, MOVE_SELF_DESTRUCT, MOVE_SHOCK_WAVE + .moves = {MOVE_ROLLOUT, MOVE_SPARK, MOVE_SELF_DESTRUCT, MOVE_SHOCK_WAVE} }, { .iv = 200, .lvl = 20, .species = SPECIES_ELECTRIKE, .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_HOWL + .moves = {MOVE_SHOCK_WAVE, MOVE_LEER, MOVE_QUICK_ATTACK, MOVE_HOWL} }, { .iv = 220, .lvl = 22, .species = SPECIES_MAGNETON, .heldItem = ITEM_NONE, - .moves = MOVE_SUPERSONIC, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM + .moves = {MOVE_SUPERSONIC, MOVE_SHOCK_WAVE, MOVE_THUNDER_WAVE, MOVE_SONIC_BOOM} }, { .iv = 250, .lvl = 24, .species = SPECIES_MANECTRIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_HOWL + .moves = {MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_SHOCK_WAVE, MOVE_HOWL} } }; @@ -3463,14 +3463,14 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery1[] = { .lvl = 24, .species = SPECIES_NUMEL, .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + .moves = {MOVE_OVERHEAT, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY} }, { .iv = 200, .lvl = 24, .species = SPECIES_SLUGMA, .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_SMOG, MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY + .moves = {MOVE_OVERHEAT, MOVE_SMOG, MOVE_LIGHT_SCREEN, MOVE_SUNNY_DAY} }, { .iv = 220, @@ -3484,14 +3484,14 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery1[] = { .lvl = 26, .species = SPECIES_CAMERUPT, .heldItem = ITEM_NONE, - .moves = MOVE_OVERHEAT, MOVE_TACKLE, MOVE_SUNNY_DAY, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_TACKLE, MOVE_SUNNY_DAY, MOVE_ATTRACT} }, { .iv = 250, .lvl = 29, .species = SPECIES_TORKOAL, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_BODY_SLAM, MOVE_ATTRACT} } }; @@ -3501,21 +3501,21 @@ static const struct TrainerMonItemCustomMoves sParty_Norman1[] = { .lvl = 27, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FACADE, MOVE_ENCORE + .moves = {MOVE_TEETER_DANCE, MOVE_PSYBEAM, MOVE_FACADE, MOVE_ENCORE} }, { .iv = 200, .lvl = 27, .species = SPECIES_VIGOROTH, .heldItem = ITEM_NONE, - .moves = MOVE_SLASH, MOVE_FACADE, MOVE_ENCORE, MOVE_FAINT_ATTACK + .moves = {MOVE_SLASH, MOVE_FACADE, MOVE_ENCORE, MOVE_FAINT_ATTACK} }, { .iv = 200, .lvl = 29, .species = SPECIES_LINOONE, .heldItem = ITEM_NONE, - .moves = MOVE_SLASH, MOVE_BELLY_DRUM, MOVE_FACADE, MOVE_HEADBUTT + .moves = {MOVE_SLASH, MOVE_BELLY_DRUM, MOVE_FACADE, MOVE_HEADBUTT} }, { .iv = 220, @@ -3529,7 +3529,7 @@ static const struct TrainerMonItemCustomMoves sParty_Norman1[] = { .lvl = 31, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_COUNTER, MOVE_YAWN, MOVE_FACADE, MOVE_FAINT_ATTACK + .moves = {MOVE_COUNTER, MOVE_YAWN, MOVE_FACADE, MOVE_FAINT_ATTACK} } }; @@ -3539,35 +3539,35 @@ static const struct TrainerMonItemCustomMoves sParty_Winona1[] = { .lvl = 29, .species = SPECIES_FEAROW, .heldItem = ITEM_NONE, - .moves = MOVE_FURY_ATTACK, MOVE_PURSUIT, MOVE_DRILL_PECK, MOVE_AERIAL_ACE + .moves = {MOVE_PERISH_SONG, MOVE_MIRROR_MOVE, MOVE_SAFEGUARD, MOVE_AERIAL_ACE} }, { .iv = 210, .lvl = 29, .species = SPECIES_TROPIUS, .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS + .moves = {MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_SYNTHESIS} }, { .iv = 210, .lvl = 30, .species = SPECIES_PELIPPER, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + .moves = {MOVE_WATER_GUN, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE} }, { .iv = 220, .lvl = 31, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_SAND_ATTACK, MOVE_FURY_ATTACK, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .moves = {MOVE_SAND_ATTACK, MOVE_FURY_ATTACK, MOVE_STEEL_WING, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 33, .species = SPECIES_ALTARIA, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE + .moves = {MOVE_EARTHQUAKE, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE, MOVE_AERIAL_ACE} } }; @@ -3577,28 +3577,28 @@ static const struct TrainerMonItemCustomMoves sParty_TateAndLiza1[] = { .lvl = 41, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN} }, { .iv = 250, .lvl = 41, .species = SPECIES_XATU, .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_SUNNY_DAY, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + .moves = {MOVE_PSYCHIC, MOVE_SUNNY_DAY, MOVE_CONFUSE_RAY, MOVE_CALM_MIND} }, { .iv = 250, .lvl = 42, .species = SPECIES_LUNATONE, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_CALM_MIND + .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_HYPNOSIS, MOVE_CALM_MIND} }, { .iv = 250, .lvl = 42, .species = SPECIES_SOLROCK, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER} }, { .iv = 250, @@ -3622,21 +3622,21 @@ static const struct TrainerMonItemCustomMoves sParty_Juan1[] = { .lvl = 41, .species = SPECIES_LUVDISC, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL + .moves = {MOVE_WATER_PULSE, MOVE_ATTRACT, MOVE_SWEET_KISS, MOVE_FLAIL} }, { .iv = 200, .lvl = 41, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_AMNESIA, MOVE_EARTHQUAKE + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_AMNESIA, MOVE_EARTHQUAKE} }, { .iv = 200, .lvl = 43, .species = SPECIES_SEALEO, .heldItem = ITEM_NONE, - .moves = MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_AURORA_BEAM, MOVE_WATER_PULSE + .moves = {MOVE_ENCORE, MOVE_BODY_SLAM, MOVE_AURORA_BEAM, MOVE_WATER_PULSE} }, { .iv = 200, @@ -3650,14 +3650,14 @@ static const struct TrainerMonItemCustomMoves sParty_Juan1[] = { .lvl = 43, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_LEER + .moves = {MOVE_WATER_PULSE, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_LEER} }, { .iv = 250, .lvl = 46, .species = SPECIES_KINGDRA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST} } }; @@ -3830,13 +3830,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_KateAndJoy[] = { .iv = 0, .lvl = 30, .species = SPECIES_SPINDA, - .moves = MOVE_HYPNOSIS, MOVE_PSYBEAM, MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE + .moves = {MOVE_HYPNOSIS, MOVE_PSYBEAM, MOVE_DIZZY_PUNCH, MOVE_TEETER_DANCE} }, { .iv = 0, .lvl = 32, .species = SPECIES_SLAKING, - .moves = MOVE_FOCUS_PUNCH, MOVE_YAWN, MOVE_SLACK_OFF, MOVE_FAINT_ATTACK + .moves = {MOVE_FOCUS_PUNCH, MOVE_YAWN, MOVE_SLACK_OFF, MOVE_FAINT_ATTACK} } }; @@ -3845,13 +3845,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg1[] = { .iv = 0, .lvl = 15, .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH} }, { .iv = 0, .lvl = 17, .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE} } }; @@ -3860,13 +3860,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg2[] = { .iv = 10, .lvl = 28, .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH} }, { .iv = 10, .lvl = 30, .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE} } }; @@ -3875,13 +3875,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg3[] = { .iv = 20, .lvl = 31, .species = SPECIES_ZIGZAGOON, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH} }, { .iv = 20, .lvl = 33, .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE} } }; @@ -3890,13 +3890,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg4[] = { .iv = 30, .lvl = 34, .species = SPECIES_LINOONE, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH} }, { .iv = 30, .lvl = 36, .species = SPECIES_MAKUHITA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE} } }; @@ -3905,13 +3905,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AnnaAndMeg5[] = { .iv = 40, .lvl = 36, .species = SPECIES_LINOONE, - .moves = MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH + .moves = {MOVE_GROWL, MOVE_TAIL_WHIP, MOVE_HEADBUTT, MOVE_ODOR_SLEUTH} }, { .iv = 40, .lvl = 38, .species = SPECIES_HARIYAMA, - .moves = MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_FOCUS_ENERGY, MOVE_ARM_THRUST, MOVE_NONE} } }; @@ -3945,42 +3945,42 @@ static const struct TrainerMonItemCustomMoves sParty_Colton[] = { .lvl = 22, .species = SPECIES_SKITTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} }, { .iv = 0, .lvl = 36, .species = SPECIES_SKITTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} }, { .iv = 0, .lvl = 40, .species = SPECIES_SKITTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} }, { .iv = 0, .lvl = 12, .species = SPECIES_SKITTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} }, { .iv = 0, .lvl = 30, .species = SPECIES_SKITTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} }, { .iv = 0, .lvl = 42, .species = SPECIES_DELCATTY, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL + .moves = {MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK, MOVE_HEAL_BELL} } }; @@ -4147,7 +4147,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Timothy2[] = { .iv = 210, .lvl = 33, .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG + .moves = {MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG} } }; @@ -4156,7 +4156,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Timothy3[] = { .iv = 220, .lvl = 36, .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG + .moves = {MOVE_ARM_THRUST, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_DIG} } }; @@ -4165,7 +4165,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Timothy4[] = { .iv = 230, .lvl = 39, .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG + .moves = {MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG} } }; @@ -4174,7 +4174,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Timothy5[] = { .iv = 240, .lvl = 42, .species = SPECIES_HARIYAMA, - .moves = MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG + .moves = {MOVE_ARM_THRUST, MOVE_BELLY_DRUM, MOVE_SAND_ATTACK, MOVE_DIG} } }; @@ -4183,7 +4183,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Vicky[] = { .iv = 200, .lvl = 18, .species = SPECIES_MEDITITE, - .moves = MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_DETECT + .moves = {MOVE_HI_JUMP_KICK, MOVE_MEDITATE, MOVE_CONFUSION, MOVE_DETECT} } }; @@ -4278,7 +4278,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Josh[] = { .iv = 100, .lvl = 10, .species = SPECIES_GEODUDE, - .moves = MOVE_TACKLE, MOVE_NONE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_NONE, MOVE_NONE, MOVE_NONE} } }; @@ -4308,13 +4308,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Ben[] = { .iv = 150, .lvl = 17, .species = SPECIES_ZIGZAGOON, - .moves = MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_GROWL, MOVE_THUNDERBOLT + .moves = {MOVE_HEADBUTT, MOVE_SAND_ATTACK, MOVE_GROWL, MOVE_THUNDERBOLT} }, { .iv = 150, .lvl = 17, .species = SPECIES_GULPIN, - .moves = MOVE_AMNESIA, MOVE_SLUDGE, MOVE_YAWN, MOVE_POUND + .moves = {MOVE_AMNESIA, MOVE_SLUDGE, MOVE_YAWN, MOVE_POUND} } }; @@ -4323,13 +4323,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Quincy[] = { .iv = 100, .lvl = 43, .species = SPECIES_SLAKING, - .moves = MOVE_ATTRACT, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER + .moves = {MOVE_ATTRACT, MOVE_ICE_BEAM, MOVE_THUNDERBOLT, MOVE_FLAMETHROWER} }, { .iv = 100, .lvl = 43, .species = SPECIES_DUSCLOPS, - .moves = MOVE_SKILL_SWAP, MOVE_PROTECT, MOVE_WILL_O_WISP, MOVE_TOXIC + .moves = {MOVE_SKILL_SWAP, MOVE_PROTECT, MOVE_WILL_O_WISP, MOVE_TOXIC} } }; @@ -4338,13 +4338,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Katelynn[] = { .iv = 100, .lvl = 43, .species = SPECIES_GARDEVOIR, - .moves = MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_CALM_MIND + .moves = {MOVE_SKILL_SWAP, MOVE_PSYCHIC, MOVE_THUNDERBOLT, MOVE_CALM_MIND} }, { .iv = 100, .lvl = 43, .species = SPECIES_SLAKING, - .moves = MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK + .moves = {MOVE_EARTHQUAKE, MOVE_SHADOW_BALL, MOVE_AERIAL_ACE, MOVE_BRICK_BREAK} } }; @@ -4466,42 +4466,42 @@ static const struct TrainerMonItemCustomMoves sParty_Wallace[] = { .lvl = 57, .species = SPECIES_WAILORD, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_SPOUT, MOVE_DOUBLE_EDGE, MOVE_BLIZZARD + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_SPOUT, MOVE_DOUBLE_EDGE, MOVE_BLIZZARD} }, { .iv = 255, .lvl = 55, .species = SPECIES_TENTACRUEL, .heldItem = ITEM_NONE, - .moves = MOVE_TOXIC, MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM + .moves = {MOVE_TOXIC, MOVE_HYDRO_PUMP, MOVE_SLUDGE_BOMB, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 56, .species = SPECIES_LUDICOLO, .heldItem = ITEM_NONE, - .moves = MOVE_GIGA_DRAIN, MOVE_SURF, MOVE_LEECH_SEED, MOVE_DOUBLE_TEAM + .moves = {MOVE_GIGA_DRAIN, MOVE_SURF, MOVE_LEECH_SEED, MOVE_DOUBLE_TEAM} }, { .iv = 255, .lvl = 56, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA, MOVE_HYPER_BEAM + .moves = {MOVE_EARTHQUAKE, MOVE_SURF, MOVE_AMNESIA, MOVE_HYPER_BEAM} }, { .iv = 255, .lvl = 56, .species = SPECIES_GYARADOS, .heldItem = ITEM_NONE, - .moves = MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF + .moves = {MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE, MOVE_HYPER_BEAM, MOVE_SURF} }, { .iv = 255, .lvl = 58, .species = SPECIES_MILOTIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_RECOVER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_TOXIC + .moves = {MOVE_RECOVER, MOVE_SURF, MOVE_ICE_BEAM, MOVE_TOXIC} } }; @@ -5236,7 +5236,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Aaron[] = { .iv = 255, .lvl = 34, .species = SPECIES_BAGON, - .moves = MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_FOCUS_ENERGY, MOVE_EMBER + .moves = {MOVE_DRAGON_BREATH, MOVE_HEADBUTT, MOVE_FOCUS_ENERGY, MOVE_EMBER} } }; @@ -5473,14 +5473,14 @@ static const struct TrainerMonItemCustomMoves sParty_Dianne[] = { .lvl = 43, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_SKILL_SWAP, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE} }, { .iv = 0, .lvl = 43, .species = SPECIES_LANTURN, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_NONE, MOVE_NONE} } }; @@ -5497,19 +5497,19 @@ static const struct TrainerMonNoItemCustomMoves sParty_Lao1[] = { .iv = 0, .lvl = 17, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT} }, { .iv = 0, .lvl = 17, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SMOG, MOVE_SELF_DESTRUCT} }, { .iv = 0, .lvl = 17, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} } }; @@ -5531,25 +5531,25 @@ static const struct TrainerMonNoItemCustomMoves sParty_Lao2[] = { .iv = 0, .lvl = 24, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 0, .lvl = 24, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 0, .lvl = 24, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 0, .lvl = 26, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE} } }; @@ -5558,25 +5558,25 @@ static const struct TrainerMonNoItemCustomMoves sParty_Lao3[] = { .iv = 20, .lvl = 27, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 20, .lvl = 27, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 20, .lvl = 27, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 20, .lvl = 29, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE} } }; @@ -5585,25 +5585,25 @@ static const struct TrainerMonNoItemCustomMoves sParty_Lao4[] = { .iv = 30, .lvl = 30, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 30, .lvl = 30, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 30, .lvl = 30, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 30, .lvl = 32, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE} } }; @@ -5613,28 +5613,28 @@ static const struct TrainerMonItemCustomMoves sParty_Lao5[] = { .lvl = 33, .species = SPECIES_KOFFING, .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE} }, { .iv = 40, .lvl = 33, .species = SPECIES_KOFFING, .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 40, .lvl = 33, .species = SPECIES_KOFFING, .heldItem = ITEM_NONE, - .moves = MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT + .moves = {MOVE_POISON_GAS, MOVE_TACKLE, MOVE_SLUDGE, MOVE_SELF_DESTRUCT} }, { .iv = 40, .lvl = 35, .species = SPECIES_WEEZING, .heldItem = ITEM_SMOKE_BALL, - .moves = MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_TACKLE, MOVE_SLUDGE, MOVE_NONE, MOVE_NONE} } }; @@ -5740,7 +5740,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Madeline1[] = { .iv = 0, .lvl = 19, .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + .moves = {MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY} } }; @@ -5762,7 +5762,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Angelica[] = { .iv = 50, .lvl = 30, .species = SPECIES_CASTFORM, - .moves = MOVE_RAIN_DANCE, MOVE_WEATHER_BALL, MOVE_THUNDER, MOVE_WATER_PULSE + .moves = {MOVE_RAIN_DANCE, MOVE_WEATHER_BALL, MOVE_THUNDER, MOVE_WATER_PULSE} } }; @@ -5771,7 +5771,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Madeline2[] = { .iv = 10, .lvl = 29, .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + .moves = {MOVE_EMBER, MOVE_TACKLE, MOVE_MAGNITUDE, MOVE_SUNNY_DAY} } }; @@ -5780,7 +5780,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Madeline3[] = { .iv = 20, .lvl = 32, .species = SPECIES_NUMEL, - .moves = MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + .moves = {MOVE_EMBER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY} } }; @@ -5789,13 +5789,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Madeline4[] = { .iv = 30, .lvl = 34, .species = SPECIES_ROSELIA, - .moves = MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_SUNNY_DAY + .moves = {MOVE_LEECH_SEED, MOVE_MEGA_DRAIN, MOVE_GRASS_WHISTLE, MOVE_SUNNY_DAY} }, { .iv = 30, .lvl = 34, .species = SPECIES_NUMEL, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY + .moves = {MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_MAGNITUDE, MOVE_SUNNY_DAY} } }; @@ -5804,13 +5804,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Madeline5[] = { .iv = 40, .lvl = 37, .species = SPECIES_ROSELIA, - .moves = MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY + .moves = {MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_SOLAR_BEAM, MOVE_SUNNY_DAY} }, { .iv = 40, .lvl = 37, .species = SPECIES_CAMERUPT, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY + .moves = {MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_EARTHQUAKE, MOVE_SUNNY_DAY} } }; @@ -6113,13 +6113,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Heidi[] = { .iv = 0, .lvl = 22, .species = SPECIES_SANDSHREW, - .moves = MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH + .moves = {MOVE_DIG, MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH} }, { .iv = 0, .lvl = 22, .species = SPECIES_BALTOY, - .moves = MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB + .moves = {MOVE_RAPID_SPIN, MOVE_MUD_SLAP, MOVE_PSYBEAM, MOVE_ROCK_TOMB} } }; @@ -6128,13 +6128,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Becky[] = { .iv = 0, .lvl = 22, .species = SPECIES_SANDSHREW, - .moves = MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH, MOVE_DIG + .moves = {MOVE_SAND_ATTACK, MOVE_POISON_STING, MOVE_SLASH, MOVE_DIG} }, { .iv = 0, .lvl = 22, .species = SPECIES_MARILL, - .moves = MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL + .moves = {MOVE_ROLLOUT, MOVE_BUBBLE_BEAM, MOVE_TAIL_WHIP, MOVE_DEFENSE_CURL} } }; @@ -6200,7 +6200,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Cedric[] = { .iv = 0, .lvl = 32, .species = SPECIES_WOBBUFFET, - .moves = MOVE_DESTINY_BOND, MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_MIRROR_COAT + .moves = {MOVE_DESTINY_BOND, MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_MIRROR_COAT} } }; @@ -6359,13 +6359,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_GinaAndMia2[] = { .iv = 0, .lvl = 10, .species = SPECIES_DUSKULL, - .moves = MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_NIGHT_SHADE, MOVE_DISABLE, MOVE_NONE, MOVE_NONE} }, { .iv = 0, .lvl = 10, .species = SPECIES_SHROOMISH, - .moves = MOVE_ABSORB, MOVE_LEECH_SEED, MOVE_NONE, MOVE_NONE + .moves = {MOVE_ABSORB, MOVE_LEECH_SEED, MOVE_NONE, MOVE_NONE} } }; @@ -6387,13 +6387,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AmyAndLiv5[] = { .iv = 30, .lvl = 33, .species = SPECIES_PLUSLE, - .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND + .moves = {MOVE_SPARK, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND} }, { .iv = 30, .lvl = 33, .species = SPECIES_MINUN, - .moves = MOVE_SPARK, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND + .moves = {MOVE_SPARK, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND} } }; @@ -6402,13 +6402,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_AmyAndLiv6[] = { .iv = 40, .lvl = 36, .species = SPECIES_PLUSLE, - .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND + .moves = {MOVE_THUNDER, MOVE_CHARGE, MOVE_FAKE_TEARS, MOVE_HELPING_HAND} }, { .iv = 40, .lvl = 36, .species = SPECIES_MINUN, - .moves = MOVE_THUNDER, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND + .moves = {MOVE_THUNDER, MOVE_CHARGE, MOVE_CHARM, MOVE_HELPING_HAND} } }; @@ -6594,14 +6594,14 @@ static const struct TrainerMonItemCustomMoves sParty_Annika[] = { .lvl = 39, .species = SPECIES_FEEBAS, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT + .moves = {MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT} }, { .iv = 100, .lvl = 39, .species = SPECIES_FEEBAS, .heldItem = ITEM_ORAN_BERRY, - .moves = MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT + .moves = {MOVE_FLAIL, MOVE_WATER_PULSE, MOVE_RETURN, MOVE_ATTRACT} } }; @@ -6618,7 +6618,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jonas[] = { .iv = 0, .lvl = 31, .species = SPECIES_KOFFING, - .moves = MOVE_TOXIC, MOVE_THUNDER, MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB + .moves = {MOVE_TOXIC, MOVE_THUNDER, MOVE_SELF_DESTRUCT, MOVE_SLUDGE_BOMB} } }; @@ -6627,7 +6627,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Kayley[] = { .iv = 0, .lvl = 31, .species = SPECIES_CASTFORM, - .moves = MOVE_SUNNY_DAY, MOVE_WEATHER_BALL, MOVE_FLAMETHROWER, MOVE_SOLAR_BEAM + .moves = {MOVE_SUNNY_DAY, MOVE_WEATHER_BALL, MOVE_FLAMETHROWER, MOVE_SOLAR_BEAM} } }; @@ -6663,7 +6663,7 @@ static const struct TrainerMonItemCustomMoves sParty_Marley[] = { .lvl = 34, .species = SPECIES_MANECTRIC, .heldItem = ITEM_NONE, - .moves = MOVE_BITE, MOVE_ROAR, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT + .moves = {MOVE_BITE, MOVE_ROAR, MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT} } }; @@ -6727,7 +6727,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Hector[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_TabithaMossdeep[] = { { .iv = 100, .lvl = 36, @@ -6797,40 +6797,40 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Edwin5[] = { } }; -static const struct TrainerMonNoItemCustomMoves sParty_Wally1[] = { +static const struct TrainerMonNoItemCustomMoves sParty_WallyVR1[] = { { .iv = 150, .lvl = 44, .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + .moves = {MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE} }, { .iv = 150, .lvl = 43, .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + .moves = {MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK} }, { .iv = 150, .lvl = 44, .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + .moves = {MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC} }, { .iv = 150, .lvl = 41, .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + .moves = {MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH} }, { .iv = 250, .lvl = 45, .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + .moves = {MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT} } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute103Mudkip[] = { { .iv = 0, .lvl = 5, @@ -6838,7 +6838,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan1[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute110Mudkip[] = { { .iv = 50, .lvl = 18, @@ -6856,7 +6856,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan2[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute119Mudkip[] = { { .iv = 100, .lvl = 29, @@ -6874,7 +6874,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan3[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute103Treecko[] = { { .iv = 0, .lvl = 5, @@ -6882,7 +6882,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan4[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute110Treecko[] = { { .iv = 50, .lvl = 18, @@ -6900,7 +6900,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan5[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan6[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute119Treecko[] = { { .iv = 100, .lvl = 29, @@ -6918,7 +6918,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan6[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan7[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute103Torchic[] = { { .iv = 0, .lvl = 5, @@ -6926,7 +6926,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan7[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan8[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute110Torchic[] = { { .iv = 50, .lvl = 18, @@ -6944,7 +6944,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan8[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan9[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRoute119Torchic[] = { { .iv = 100, .lvl = 29, @@ -6962,7 +6962,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan9[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute103Mudkip[] = { { .iv = 0, .lvl = 5, @@ -6970,7 +6970,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May1[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute110Mudkip[] = { { .iv = 50, .lvl = 18, @@ -6988,7 +6988,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May2[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute119Mudkip[] = { { .iv = 100, .lvl = 29, @@ -7006,7 +7006,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May3[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May4[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute103Treecko[] = { { .iv = 0, .lvl = 5, @@ -7014,7 +7014,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May4[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May5[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute110Treecko[] = { { .iv = 50, .lvl = 18, @@ -7032,7 +7032,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May5[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May6[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute119Treecko[] = { { .iv = 100, .lvl = 29, @@ -7050,7 +7050,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May6[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May7[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute103Torchic[] = { { .iv = 0, .lvl = 5, @@ -7058,7 +7058,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May7[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May8[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute110Torchic[] = { { .iv = 50, .lvl = 18, @@ -7076,7 +7076,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May8[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May9[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRoute119Torchic[] = { { .iv = 100, .lvl = 29, @@ -7140,13 +7140,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Mitchell[] = { .iv = 0, .lvl = 43, .species = SPECIES_LUNATONE, - .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC + .moves = {MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_PSYCHIC} }, { .iv = 0, .lvl = 43, .species = SPECIES_SOLROCK, - .moves = MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_SHADOW_BALL + .moves = {MOVE_EXPLOSION, MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_SHADOW_BALL} } }; @@ -7754,14 +7754,14 @@ static const struct TrainerMonItemCustomMoves sParty_Athena[] = { .lvl = 32, .species = SPECIES_MANECTRIC, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_NONE + .moves = {MOVE_THUNDER, MOVE_THUNDER_WAVE, MOVE_QUICK_ATTACK, MOVE_NONE} }, { .iv = 100, .lvl = 32, .species = SPECIES_LINOONE, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_THIEF, MOVE_NONE, MOVE_NONE + .moves = {MOVE_SURF, MOVE_THIEF, MOVE_NONE, MOVE_NONE} } }; @@ -7882,7 +7882,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Macey[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan10[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRustboroTreecko[] = { { .iv = 25, .lvl = 13, @@ -7895,7 +7895,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan10[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan11[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRustboroMudkip[] = { { .iv = 25, .lvl = 13, @@ -7942,7 +7942,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst5[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_TabithaMtChimney[] = { { .iv = 50, .lvl = 18, @@ -7978,7 +7978,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Jonathan[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan12[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanRustboroTorchic[] = { { .iv = 25, .lvl = 13, @@ -7991,7 +7991,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan12[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May10[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRustboroMudkip[] = { { .iv = 25, .lvl = 13, @@ -8004,7 +8004,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May10[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Maxie1[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MaxieMagmaHideout[] = { { .iv = 150, .lvl = 37, @@ -8022,7 +8022,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Maxie1[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Maxie2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MaxieMtChimney[] = { { .iv = 150, .lvl = 24, @@ -8455,7 +8455,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Lucas2[] = { .iv = 0, .lvl = 9, .species = SPECIES_WAILMER, - .moves = MOVE_SPLASH, MOVE_WATER_GUN, MOVE_NONE, MOVE_NONE + .moves = {MOVE_SPLASH, MOVE_WATER_GUN, MOVE_NONE, MOVE_NONE} } }; @@ -8464,13 +8464,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Mike1[] = { .iv = 0, .lvl = 10, .species = SPECIES_PELIPPER, - .moves = MOVE_GUST, MOVE_GROWL, MOVE_NONE, MOVE_NONE + .moves = {MOVE_GUST, MOVE_GROWL, MOVE_NONE, MOVE_NONE} }, { .iv = 0, .lvl = 10, .species = SPECIES_POOCHYENA, - .moves = MOVE_BITE, MOVE_SCARY_FACE, MOVE_NONE, MOVE_NONE + .moves = {MOVE_BITE, MOVE_SCARY_FACE, MOVE_NONE, MOVE_NONE} } }; @@ -8688,7 +8688,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Gerald[] = { .iv = 100, .lvl = 23, .species = SPECIES_KECLEON, - .moves = MOVE_FLAMETHROWER, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK, MOVE_BIND + .moves = {MOVE_FLAMETHROWER, MOVE_FURY_SWIPES, MOVE_FAINT_ATTACK, MOVE_BIND} } }; @@ -8697,13 +8697,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Vivian[] = { .iv = 100, .lvl = 17, .species = SPECIES_MEDITITE, - .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_THUNDER_PUNCH + .moves = {MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_THUNDER_PUNCH} }, { .iv = 100, .lvl = 17, .species = SPECIES_MEDITITE, - .moves = MOVE_THUNDER_PUNCH, MOVE_DETECT, MOVE_CONFUSION, MOVE_MEDITATE + .moves = {MOVE_THUNDER_PUNCH, MOVE_DETECT, MOVE_CONFUSION, MOVE_MEDITATE} } }; @@ -8712,7 +8712,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Danielle[] = { .iv = 100, .lvl = 23, .species = SPECIES_MEDITITE, - .moves = MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_FIRE_PUNCH + .moves = {MOVE_BIDE, MOVE_DETECT, MOVE_CONFUSION, MOVE_FIRE_PUNCH} } }; @@ -8721,13 +8721,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Hideo[] = { .iv = 0, .lvl = 25, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + .moves = {MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN} }, { .iv = 0, .lvl = 25, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_POISON_GAS, MOVE_SLUDGE, MOVE_SMOKESCREEN + .moves = {MOVE_TACKLE, MOVE_POISON_GAS, MOVE_SLUDGE, MOVE_SMOKESCREEN} } }; @@ -8736,13 +8736,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Keigo[] = { .iv = 0, .lvl = 28, .species = SPECIES_KOFFING, - .moves = MOVE_POISON_GAS, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + .moves = {MOVE_POISON_GAS, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN} }, { .iv = 0, .lvl = 28, .species = SPECIES_NINJASK, - .moves = MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM, MOVE_FURY_CUTTER, MOVE_SWORDS_DANCE + .moves = {MOVE_SAND_ATTACK, MOVE_DOUBLE_TEAM, MOVE_FURY_CUTTER, MOVE_SWORDS_DANCE} } }; @@ -8751,13 +8751,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_Riley[] = { .iv = 0, .lvl = 28, .species = SPECIES_NINCADA, - .moves = MOVE_LEECH_LIFE, MOVE_FURY_SWIPES, MOVE_MIND_READER, MOVE_DIG + .moves = {MOVE_LEECH_LIFE, MOVE_FURY_SWIPES, MOVE_MIND_READER, MOVE_DIG} }, { .iv = 0, .lvl = 28, .species = SPECIES_KOFFING, - .moves = MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN + .moves = {MOVE_TACKLE, MOVE_SELF_DESTRUCT, MOVE_SLUDGE, MOVE_SMOKESCREEN} } }; @@ -8792,7 +8792,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Ashley[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Wally2[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_WallyMauville[] = { { .iv = 30, .lvl = 16, @@ -8800,139 +8800,139 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Wally2[] = { } }; -static const struct TrainerMonNoItemCustomMoves sParty_Wally3[] = { +static const struct TrainerMonNoItemCustomMoves sParty_WallyVR2[] = { { .iv = 150, .lvl = 47, .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + .moves = {MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE} }, { .iv = 150, .lvl = 46, .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + .moves = {MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK} }, { .iv = 150, .lvl = 47, .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + .moves = {MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC} }, { .iv = 150, .lvl = 44, .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + .moves = {MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH} }, { .iv = 250, .lvl = 48, .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + .moves = {MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT} } }; -static const struct TrainerMonNoItemCustomMoves sParty_Wally4[] = { +static const struct TrainerMonNoItemCustomMoves sParty_WallyVR3[] = { { .iv = 150, .lvl = 50, .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + .moves = {MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE} }, { .iv = 150, .lvl = 49, .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + .moves = {MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK} }, { .iv = 150, .lvl = 50, .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + .moves = {MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC} }, { .iv = 150, .lvl = 47, .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + .moves = {MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH} }, { .iv = 250, .lvl = 51, .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + .moves = {MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT} } }; -static const struct TrainerMonNoItemCustomMoves sParty_Wally5[] = { +static const struct TrainerMonNoItemCustomMoves sParty_WallyVR4[] = { { .iv = 150, .lvl = 53, .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + .moves = {MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE} }, { .iv = 150, .lvl = 52, .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + .moves = {MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK} }, { .iv = 150, .lvl = 53, .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + .moves = {MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC} }, { .iv = 150, .lvl = 50, .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + .moves = {MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH} }, { .iv = 250, .lvl = 54, .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + .moves = {MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT} } }; -static const struct TrainerMonNoItemCustomMoves sParty_Wally6[] = { +static const struct TrainerMonNoItemCustomMoves sParty_WallyVR5[] = { { .iv = 150, .lvl = 56, .species = SPECIES_ALTARIA, - .moves = MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE + .moves = {MOVE_AERIAL_ACE, MOVE_SAFEGUARD, MOVE_DRAGON_BREATH, MOVE_DRAGON_DANCE} }, { .iv = 150, .lvl = 55, .species = SPECIES_DELCATTY, - .moves = MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK + .moves = {MOVE_SING, MOVE_ASSIST, MOVE_CHARM, MOVE_FAINT_ATTACK} }, { .iv = 150, .lvl = 56, .species = SPECIES_ROSELIA, - .moves = MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC + .moves = {MOVE_MAGICAL_LEAF, MOVE_LEECH_SEED, MOVE_GIGA_DRAIN, MOVE_TOXIC} }, { .iv = 150, .lvl = 53, .species = SPECIES_MAGNETON, - .moves = MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH + .moves = {MOVE_SUPERSONIC, MOVE_THUNDERBOLT, MOVE_TRI_ATTACK, MOVE_SCREECH} }, { .iv = 250, .lvl = 57, .species = SPECIES_GARDEVOIR, - .moves = MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT + .moves = {MOVE_DOUBLE_TEAM, MOVE_CALM_MIND, MOVE_PSYCHIC, MOVE_FUTURE_SIGHT} } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan13[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanLilycoveMudkip[] = { { .iv = 150, .lvl = 31, @@ -8955,7 +8955,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan13[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan14[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanLilycoveTreecko[] = { { .iv = 150, .lvl = 31, @@ -8978,7 +8978,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan14[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan15[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanLilycoveTorchic[] = { { .iv = 150, .lvl = 31, @@ -9001,7 +9001,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan15[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May11[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayLilycoveMudkip[] = { { .iv = 150, .lvl = 31, @@ -9024,7 +9024,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May11[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May12[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayLilycoveTreecko[] = { { .iv = 150, .lvl = 31, @@ -9047,7 +9047,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May12[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May13[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayLilycoveTorchic[] = { { .iv = 150, .lvl = 31, @@ -9223,13 +9223,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_KimAndIris[] = { .iv = 0, .lvl = 32, .species = SPECIES_SWABLU, - .moves = MOVE_SING, MOVE_FURY_ATTACK, MOVE_SAFEGUARD, MOVE_AERIAL_ACE + .moves = {MOVE_SING, MOVE_FURY_ATTACK, MOVE_SAFEGUARD, MOVE_AERIAL_ACE} }, { .iv = 0, .lvl = 35, .species = SPECIES_NUMEL, - .moves = MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_REST, MOVE_EARTHQUAKE + .moves = {MOVE_FLAMETHROWER, MOVE_TAKE_DOWN, MOVE_REST, MOVE_EARTHQUAKE} } }; @@ -9238,13 +9238,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_TyraAndIvy[] = { .iv = 0, .lvl = 18, .species = SPECIES_ROSELIA, - .moves = MOVE_GROWTH, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_LEECH_SEED + .moves = {MOVE_GROWTH, MOVE_STUN_SPORE, MOVE_MEGA_DRAIN, MOVE_LEECH_SEED} }, { .iv = 0, .lvl = 20, .species = SPECIES_GRAVELER, - .moves = MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MUD_SPORT, MOVE_ROCK_THROW + .moves = {MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MUD_SPORT, MOVE_ROCK_THROW} } }; @@ -9253,13 +9253,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_MelAndPaul[] = { .iv = 0, .lvl = 27, .species = SPECIES_DUSTOX, - .moves = MOVE_GUST, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_PROTECT + .moves = {MOVE_GUST, MOVE_PSYBEAM, MOVE_TOXIC, MOVE_PROTECT} }, { .iv = 0, .lvl = 27, .species = SPECIES_BEAUTIFLY, - .moves = MOVE_GUST, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_STUN_SPORE + .moves = {MOVE_GUST, MOVE_MEGA_DRAIN, MOVE_ATTRACT, MOVE_STUN_SPORE} } }; @@ -9268,13 +9268,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay1[] = { .iv = 200, .lvl = 39, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT} }, { .iv = 200, .lvl = 39, .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM} } }; @@ -9283,13 +9283,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay2[] = { .iv = 210, .lvl = 43, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT} }, { .iv = 210, .lvl = 43, .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM} } }; @@ -9298,13 +9298,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay3[] = { .iv = 220, .lvl = 46, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT} }, { .iv = 220, .lvl = 46, .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM} } }; @@ -9313,13 +9313,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay4[] = { .iv = 230, .lvl = 49, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT} }, { .iv = 230, .lvl = 49, .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM} } }; @@ -9328,13 +9328,13 @@ static const struct TrainerMonNoItemCustomMoves sParty_JohnAndJay5[] = { .iv = 240, .lvl = 52, .species = SPECIES_MEDICHAM, - .moves = MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT + .moves = {MOVE_PSYCHIC, MOVE_FIRE_PUNCH, MOVE_PSYCH_UP, MOVE_PROTECT} }, { .iv = 240, .lvl = 52, .species = SPECIES_HARIYAMA, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROCK_TOMB, MOVE_REST, MOVE_BELLY_DRUM} } }; @@ -9832,7 +9832,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout16[] = } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Tabitha3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_TabithaMagmaHideout[] = { { .iv = 75, .lvl = 26, @@ -9868,7 +9868,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Darcy[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Maxie3[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MaxieMossdeep[] = { { .iv = 150, .lvl = 42, @@ -10212,7 +10212,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Leonel[] = { .iv = 100, .lvl = 30, .species = SPECIES_MANECTRIC, - .moves = MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_NONE + .moves = {MOVE_THUNDER, MOVE_QUICK_ATTACK, MOVE_THUNDER_WAVE, MOVE_NONE} } }; @@ -10321,7 +10321,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Cristin1[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May14[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRustboroTreecko[] = { { .iv = 25, .lvl = 13, @@ -10334,7 +10334,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_May14[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May15[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayRustboroTorchic[] = { { .iv = 25, .lvl = 13, @@ -10353,14 +10353,14 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne2[] = { .lvl = 32, .species = SPECIES_GOLEM, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION + .moves = {MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION} }, { .iv = 255, .lvl = 35, .species = SPECIES_KABUTO, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + .moves = {MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE} }, { .iv = 255, @@ -10374,14 +10374,14 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne2[] = { .lvl = 35, .species = SPECIES_ONIX, .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + .moves = {MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 37, .species = SPECIES_NOSEPASS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + .moves = {MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE} } }; @@ -10391,14 +10391,14 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne3[] = { .lvl = 37, .species = SPECIES_OMANYTE, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + .moves = {MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF} }, { .iv = 255, .lvl = 37, .species = SPECIES_GOLEM, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION + .moves = {MOVE_PROTECT, MOVE_ROLLOUT, MOVE_MAGNITUDE, MOVE_EXPLOSION} }, { .iv = 255, @@ -10412,21 +10412,21 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne3[] = { .lvl = 40, .species = SPECIES_KABUTOPS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + .moves = {MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 40, .species = SPECIES_ONIX, .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + .moves = {MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 42, .species = SPECIES_NOSEPASS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + .moves = {MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE} } }; @@ -10436,14 +10436,14 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne4[] = { .lvl = 42, .species = SPECIES_OMASTAR, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + .moves = {MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF} }, { .iv = 255, .lvl = 42, .species = SPECIES_GOLEM, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION + .moves = {MOVE_PROTECT, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION} }, { .iv = 255, @@ -10457,21 +10457,21 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne4[] = { .lvl = 45, .species = SPECIES_KABUTOPS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + .moves = {MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 45, .species = SPECIES_ONIX, .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + .moves = {MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 47, .species = SPECIES_NOSEPASS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + .moves = {MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE} } }; @@ -10481,42 +10481,42 @@ static const struct TrainerMonItemCustomMoves sParty_Roxanne5[] = { .lvl = 47, .species = SPECIES_AERODACTYL, .heldItem = ITEM_NONE, - .moves = MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_PROTECT + .moves = {MOVE_ROCK_SLIDE, MOVE_HYPER_BEAM, MOVE_SUPERSONIC, MOVE_PROTECT} }, { .iv = 255, .lvl = 47, .species = SPECIES_GOLEM, .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION + .moves = {MOVE_FOCUS_PUNCH, MOVE_ROLLOUT, MOVE_EARTHQUAKE, MOVE_EXPLOSION} }, { .iv = 255, .lvl = 47, .species = SPECIES_OMASTAR, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF + .moves = {MOVE_PROTECT, MOVE_ICE_BEAM, MOVE_ROCK_SLIDE, MOVE_SURF} }, { .iv = 255, .lvl = 50, .species = SPECIES_KABUTOPS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE + .moves = {MOVE_SWORDS_DANCE, MOVE_ICE_BEAM, MOVE_SURF, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 50, .species = SPECIES_STEELIX, .heldItem = ITEM_NONE, - .moves = MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE + .moves = {MOVE_IRON_TAIL, MOVE_EXPLOSION, MOVE_ROAR, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 52, .species = SPECIES_NOSEPASS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE + .moves = {MOVE_DOUBLE_TEAM, MOVE_EXPLOSION, MOVE_PROTECT, MOVE_ROCK_SLIDE} } }; @@ -10526,14 +10526,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly2[] = { .lvl = 33, .species = SPECIES_MACHAMP, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + .moves = {MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP} }, { .iv = 255, .lvl = 33, .species = SPECIES_MEDITITE, .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH + .moves = {MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH} }, { .iv = 255, @@ -10547,14 +10547,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly2[] = { .lvl = 35, .species = SPECIES_HITMONTOP, .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + .moves = {MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK} }, { .iv = 255, .lvl = 37, .species = SPECIES_HARIYAMA, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + .moves = {MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE} } }; @@ -10564,14 +10564,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly3[] = { .lvl = 38, .species = SPECIES_MACHAMP, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + .moves = {MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP} }, { .iv = 255, .lvl = 38, .species = SPECIES_MEDICHAM, .heldItem = ITEM_NONE, - .moves = MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH + .moves = {MOVE_PSYCHIC, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_FOCUS_PUNCH} }, { .iv = 255, @@ -10585,14 +10585,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly3[] = { .lvl = 40, .species = SPECIES_HITMONTOP, .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + .moves = {MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK} }, { .iv = 255, .lvl = 42, .species = SPECIES_HARIYAMA, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + .moves = {MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE} } }; @@ -10602,21 +10602,21 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly4[] = { .lvl = 40, .species = SPECIES_HITMONCHAN, .heldItem = ITEM_NONE, - .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH + .moves = {MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH} }, { .iv = 255, .lvl = 43, .species = SPECIES_MACHAMP, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + .moves = {MOVE_KARATE_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP} }, { .iv = 255, .lvl = 43, .species = SPECIES_MEDICHAM, .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC + .moves = {MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC} }, { .iv = 255, @@ -10630,14 +10630,14 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly4[] = { .lvl = 45, .species = SPECIES_HITMONTOP, .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + .moves = {MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK} }, { .iv = 255, .lvl = 47, .species = SPECIES_HARIYAMA, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + .moves = {MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE} } }; @@ -10647,42 +10647,42 @@ static const struct TrainerMonItemCustomMoves sParty_Brawly5[] = { .lvl = 46, .species = SPECIES_HITMONLEE, .heldItem = ITEM_NONE, - .moves = MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_BULK_UP + .moves = {MOVE_MEGA_KICK, MOVE_FOCUS_PUNCH, MOVE_EARTHQUAKE, MOVE_BULK_UP} }, { .iv = 255, .lvl = 46, .species = SPECIES_HITMONCHAN, .heldItem = ITEM_NONE, - .moves = MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH + .moves = {MOVE_SKY_UPPERCUT, MOVE_PROTECT, MOVE_FIRE_PUNCH, MOVE_ICE_PUNCH} }, { .iv = 255, .lvl = 48, .species = SPECIES_MACHAMP, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP + .moves = {MOVE_CROSS_CHOP, MOVE_ROCK_SLIDE, MOVE_FOCUS_PUNCH, MOVE_BULK_UP} }, { .iv = 255, .lvl = 48, .species = SPECIES_MEDICHAM, .heldItem = ITEM_NONE, - .moves = MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC + .moves = {MOVE_FOCUS_PUNCH, MOVE_LIGHT_SCREEN, MOVE_REFLECT, MOVE_PSYCHIC} }, { .iv = 255, .lvl = 50, .species = SPECIES_HITMONTOP, .heldItem = ITEM_NONE, - .moves = MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK + .moves = {MOVE_PURSUIT, MOVE_COUNTER, MOVE_PROTECT, MOVE_TRIPLE_KICK} }, { .iv = 255, .lvl = 52, .species = SPECIES_HARIYAMA, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE + .moves = {MOVE_FAKE_OUT, MOVE_FOCUS_PUNCH, MOVE_BELLY_DRUM, MOVE_EARTHQUAKE} } }; @@ -10692,14 +10692,14 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson2[] = { .lvl = 36, .species = SPECIES_MAREEP, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 36, .species = SPECIES_ELECTRODE, .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + .moves = {MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE} }, { .iv = 255, @@ -10713,14 +10713,14 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson2[] = { .lvl = 38, .species = SPECIES_MAGNETON, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + .moves = {MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE} }, { .iv = 255, .lvl = 40, .species = SPECIES_MANECTRIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + .moves = {MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT} } }; @@ -10730,21 +10730,21 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson3[] = { .lvl = 39, .species = SPECIES_PIKACHU, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_SHOCK_WAVE + .moves = {MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_SHOCK_WAVE} }, { .iv = 255, .lvl = 41, .species = SPECIES_FLAAFFY, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 41, .species = SPECIES_ELECTRODE, .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + .moves = {MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE} }, { .iv = 255, @@ -10758,14 +10758,14 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson3[] = { .lvl = 43, .species = SPECIES_MAGNETON, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + .moves = {MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE} }, { .iv = 255, .lvl = 45, .species = SPECIES_MANECTRIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + .moves = {MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT} } }; @@ -10775,21 +10775,21 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson4[] = { .lvl = 44, .species = SPECIES_RAICHU, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT + .moves = {MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT} }, { .iv = 255, .lvl = 46, .species = SPECIES_AMPHAROS, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 46, .species = SPECIES_ELECTRODE, .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + .moves = {MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE} }, { .iv = 255, @@ -10803,14 +10803,14 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson4[] = { .lvl = 48, .species = SPECIES_MAGNETON, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + .moves = {MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE} }, { .iv = 255, .lvl = 50, .species = SPECIES_MANECTRIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + .moves = {MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT} } }; @@ -10820,42 +10820,42 @@ static const struct TrainerMonItemCustomMoves sParty_Wattson5[] = { .lvl = 50, .species = SPECIES_ELECTABUZZ, .heldItem = ITEM_NONE, - .moves = MOVE_SWIFT, MOVE_FOCUS_PUNCH, MOVE_THUNDER_PUNCH, MOVE_LIGHT_SCREEN + .moves = {MOVE_SWIFT, MOVE_FOCUS_PUNCH, MOVE_THUNDER_PUNCH, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 51, .species = SPECIES_RAICHU, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT + .moves = {MOVE_THUNDER, MOVE_SLAM, MOVE_RAIN_DANCE, MOVE_PROTECT} }, { .iv = 255, .lvl = 51, .species = SPECIES_AMPHAROS, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_THUNDER_WAVE, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 53, .species = SPECIES_ELECTRODE, .heldItem = ITEM_NONE, - .moves = MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE + .moves = {MOVE_ROLLOUT, MOVE_THUNDER, MOVE_EXPLOSION, MOVE_RAIN_DANCE} }, { .iv = 255, .lvl = 53, .species = SPECIES_MAGNETON, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE + .moves = {MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_THUNDER, MOVE_RAIN_DANCE} }, { .iv = 255, .lvl = 55, .species = SPECIES_MANECTRIC, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT + .moves = {MOVE_BITE, MOVE_THUNDER_WAVE, MOVE_THUNDER, MOVE_PROTECT} } }; @@ -10865,14 +10865,14 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery2[] = { .lvl = 38, .species = SPECIES_MAGCARGO, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + .moves = {MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 36, .species = SPECIES_PONYTA, .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + .moves = {MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE} }, { .iv = 255, @@ -10886,14 +10886,14 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery2[] = { .lvl = 38, .species = SPECIES_CAMERUPT, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT} }, { .iv = 255, .lvl = 40, .species = SPECIES_TORKOAL, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT} } }; @@ -10903,14 +10903,14 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery3[] = { .lvl = 41, .species = SPECIES_GROWLITHE, .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_SUNNY_DAY + .moves = {MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_ROAR, MOVE_SUNNY_DAY} }, { .iv = 255, .lvl = 43, .species = SPECIES_MAGCARGO, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + .moves = {MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE} }, { .iv = 255, @@ -10924,21 +10924,21 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery3[] = { .lvl = 41, .species = SPECIES_PONYTA, .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + .moves = {MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE} }, { .iv = 255, .lvl = 43, .species = SPECIES_CAMERUPT, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT} }, { .iv = 255, .lvl = 45, .species = SPECIES_TORKOAL, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT} } }; @@ -10948,42 +10948,42 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery4[] = { .lvl = 46, .species = SPECIES_HOUNDOUR, .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY + .moves = {MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY} }, { .iv = 255, .lvl = 46, .species = SPECIES_GROWLITHE, .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR + .moves = {MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR} }, { .iv = 255, .lvl = 48, .species = SPECIES_MAGCARGO, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + .moves = {MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 46, .species = SPECIES_RAPIDASH, .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + .moves = {MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE} }, { .iv = 255, .lvl = 48, .species = SPECIES_CAMERUPT, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT} }, { .iv = 255, .lvl = 50, .species = SPECIES_TORKOAL, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT} } }; @@ -10993,42 +10993,42 @@ static const struct TrainerMonItemCustomMoves sParty_Flannery5[] = { .lvl = 51, .species = SPECIES_ARCANINE, .heldItem = ITEM_NONE, - .moves = MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR + .moves = {MOVE_HELPING_HAND, MOVE_FLAMETHROWER, MOVE_SUNNY_DAY, MOVE_ROAR} }, { .iv = 255, .lvl = 53, .species = SPECIES_MAGCARGO, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE + .moves = {MOVE_OVERHEAT, MOVE_ATTRACT, MOVE_LIGHT_SCREEN, MOVE_ROCK_SLIDE} }, { .iv = 255, .lvl = 51, .species = SPECIES_HOUNDOOM, .heldItem = ITEM_NONE, - .moves = MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY + .moves = {MOVE_ROAR, MOVE_SOLAR_BEAM, MOVE_TAUNT, MOVE_SUNNY_DAY} }, { .iv = 255, .lvl = 51, .species = SPECIES_RAPIDASH, .heldItem = ITEM_NONE, - .moves = MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE + .moves = {MOVE_FLAMETHROWER, MOVE_ATTRACT, MOVE_SOLAR_BEAM, MOVE_BOUNCE} }, { .iv = 255, .lvl = 53, .species = SPECIES_CAMERUPT, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EARTHQUAKE, MOVE_ATTRACT} }, { .iv = 255, .lvl = 55, .species = SPECIES_TORKOAL, .heldItem = ITEM_WHITE_HERB, - .moves = MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT + .moves = {MOVE_OVERHEAT, MOVE_SUNNY_DAY, MOVE_EXPLOSION, MOVE_ATTRACT} } }; @@ -11038,14 +11038,14 @@ static const struct TrainerMonItemCustomMoves sParty_Norman2[] = { .lvl = 42, .species = SPECIES_CHANSEY, .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + .moves = {MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH} }, { .iv = 255, .lvl = 42, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + .moves = {MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST} }, { .iv = 255, @@ -11059,14 +11059,14 @@ static const struct TrainerMonItemCustomMoves sParty_Norman2[] = { .lvl = 43, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + .moves = {MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS} }, { .iv = 255, .lvl = 45, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL} } }; @@ -11076,14 +11076,14 @@ static const struct TrainerMonItemCustomMoves sParty_Norman3[] = { .lvl = 47, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + .moves = {MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST} }, { .iv = 255, .lvl = 47, .species = SPECIES_CHANSEY, .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + .moves = {MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH} }, { .iv = 255, @@ -11097,21 +11097,21 @@ static const struct TrainerMonItemCustomMoves sParty_Norman3[] = { .lvl = 45, .species = SPECIES_KANGASKHAN, .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + .moves = {MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL} }, { .iv = 255, .lvl = 48, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + .moves = {MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS} }, { .iv = 255, .lvl = 50, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL} } }; @@ -11121,35 +11121,35 @@ static const struct TrainerMonItemCustomMoves sParty_Norman4[] = { .lvl = 52, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + .moves = {MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST} }, { .iv = 255, .lvl = 52, .species = SPECIES_BLISSEY, .heldItem = ITEM_NONE, - .moves = MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + .moves = {MOVE_LIGHT_SCREEN, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH} }, { .iv = 255, .lvl = 50, .species = SPECIES_KANGASKHAN, .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + .moves = {MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL} }, { .iv = 255, .lvl = 53, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + .moves = {MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS} }, { .iv = 255, .lvl = 55, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL} } }; @@ -11159,42 +11159,42 @@ static const struct TrainerMonItemCustomMoves sParty_Norman5[] = { .lvl = 57, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST + .moves = {MOVE_BLIZZARD, MOVE_SHADOW_BALL, MOVE_DOUBLE_EDGE, MOVE_FIRE_BLAST} }, { .iv = 255, .lvl = 57, .species = SPECIES_BLISSEY, .heldItem = ITEM_NONE, - .moves = MOVE_PROTECT, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH + .moves = {MOVE_PROTECT, MOVE_SING, MOVE_SKILL_SWAP, MOVE_FOCUS_PUNCH} }, { .iv = 255, .lvl = 55, .species = SPECIES_KANGASKHAN, .heldItem = ITEM_NONE, - .moves = MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL + .moves = {MOVE_FAKE_OUT, MOVE_DIZZY_PUNCH, MOVE_ENDURE, MOVE_REVERSAL} }, { .iv = 255, .lvl = 57, .species = SPECIES_TAUROS, .heldItem = ITEM_NONE, - .moves = MOVE_TAKE_DOWN, MOVE_PROTECT, MOVE_FIRE_BLAST, MOVE_EARTHQUAKE + .moves = {MOVE_TAKE_DOWN, MOVE_PROTECT, MOVE_FIRE_BLAST, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 58, .species = SPECIES_SPINDA, .heldItem = ITEM_NONE, - .moves = MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS + .moves = {MOVE_TEETER_DANCE, MOVE_SKILL_SWAP, MOVE_FACADE, MOVE_HYPNOSIS} }, { .iv = 255, .lvl = 60, .species = SPECIES_SLAKING, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL + .moves = {MOVE_HYPER_BEAM, MOVE_FLAMETHROWER, MOVE_THUNDERBOLT, MOVE_SHADOW_BALL} } }; @@ -11204,35 +11204,35 @@ static const struct TrainerMonItemCustomMoves sParty_Winona2[] = { .lvl = 40, .species = SPECIES_DRATINI, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 38, .species = SPECIES_TROPIUS, .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + .moves = {MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 41, .species = SPECIES_PELIPPER, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + .moves = {MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 43, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .moves = {MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 45, .species = SPECIES_ALTARIA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + .moves = {MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE} } }; @@ -11242,42 +11242,42 @@ static const struct TrainerMonItemCustomMoves sParty_Winona3[] = { .lvl = 43, .species = SPECIES_HOOTHOOT, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + .moves = {MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER} }, { .iv = 255, .lvl = 43, .species = SPECIES_TROPIUS, .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + .moves = {MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 45, .species = SPECIES_DRAGONAIR, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 46, .species = SPECIES_PELIPPER, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + .moves = {MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 48, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .moves = {MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 50, .species = SPECIES_ALTARIA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + .moves = {MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE} } }; @@ -11287,42 +11287,42 @@ static const struct TrainerMonItemCustomMoves sParty_Winona4[] = { .lvl = 48, .species = SPECIES_NOCTOWL, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + .moves = {MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER} }, { .iv = 255, .lvl = 49, .species = SPECIES_TROPIUS, .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + .moves = {MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 50, .species = SPECIES_DRAGONAIR, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_THUNDER_WAVE, MOVE_THUNDERBOLT, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 51, .species = SPECIES_PELIPPER, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + .moves = {MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 53, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .moves = {MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 55, .species = SPECIES_ALTARIA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + .moves = {MOVE_AERIAL_ACE, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE} } }; @@ -11332,42 +11332,42 @@ static const struct TrainerMonItemCustomMoves sParty_Winona5[] = { .lvl = 53, .species = SPECIES_NOCTOWL, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER + .moves = {MOVE_HYPNOSIS, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_DREAM_EATER} }, { .iv = 255, .lvl = 54, .species = SPECIES_TROPIUS, .heldItem = ITEM_NONE, - .moves = MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE + .moves = {MOVE_SUNNY_DAY, MOVE_AERIAL_ACE, MOVE_SOLAR_BEAM, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 55, .species = SPECIES_PELIPPER, .heldItem = ITEM_NONE, - .moves = MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE + .moves = {MOVE_SURF, MOVE_SUPERSONIC, MOVE_PROTECT, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 55, .species = SPECIES_DRAGONITE, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM + .moves = {MOVE_HYPER_BEAM, MOVE_THUNDERBOLT, MOVE_EARTHQUAKE, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 58, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE + .moves = {MOVE_WHIRLWIND, MOVE_SPIKES, MOVE_STEEL_WING, MOVE_AERIAL_ACE} }, { .iv = 255, .lvl = 60, .species = SPECIES_ALTARIA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_SKY_ATTACK, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE + .moves = {MOVE_SKY_ATTACK, MOVE_REST, MOVE_DRAGON_DANCE, MOVE_EARTHQUAKE} } }; @@ -11377,35 +11377,35 @@ static const struct TrainerMonItemCustomMoves sParty_TateAndLiza2[] = { .lvl = 48, .species = SPECIES_SLOWPOKE, .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + .moves = {MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT} }, { .iv = 255, .lvl = 49, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + .moves = {MOVE_EARTHQUAKE, MOVE_ANCIENT_POWER, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 49, .species = SPECIES_XATU, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + .moves = {MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 50, .species = SPECIES_LUNATONE, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 50, .species = SPECIES_SOLROCK, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER} } }; @@ -11415,42 +11415,42 @@ static const struct TrainerMonItemCustomMoves sParty_TateAndLiza3[] = { .lvl = 53, .species = SPECIES_DROWZEE, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT} }, { .iv = 255, .lvl = 53, .species = SPECIES_SLOWPOKE, .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + .moves = {MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT} }, { .iv = 255, .lvl = 54, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + .moves = {MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 54, .species = SPECIES_XATU, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + .moves = {MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 55, .species = SPECIES_LUNATONE, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 55, .species = SPECIES_SOLROCK, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER} } }; @@ -11460,42 +11460,42 @@ static const struct TrainerMonItemCustomMoves sParty_TateAndLiza4[] = { .lvl = 58, .species = SPECIES_HYPNO, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT} }, { .iv = 255, .lvl = 59, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + .moves = {MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 58, .species = SPECIES_SLOWPOKE, .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + .moves = {MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT} }, { .iv = 255, .lvl = 59, .species = SPECIES_XATU, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + .moves = {MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 60, .species = SPECIES_LUNATONE, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 60, .species = SPECIES_SOLROCK, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER} } }; @@ -11505,42 +11505,42 @@ static const struct TrainerMonItemCustomMoves sParty_TateAndLiza5[] = { .lvl = 63, .species = SPECIES_HYPNO, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT + .moves = {MOVE_HYPNOSIS, MOVE_DREAM_EATER, MOVE_HEADBUTT, MOVE_PROTECT} }, { .iv = 255, .lvl = 64, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN + .moves = {MOVE_EARTHQUAKE, MOVE_EXPLOSION, MOVE_PSYCHIC, MOVE_LIGHT_SCREEN} }, { .iv = 255, .lvl = 63, .species = SPECIES_SLOWKING, .heldItem = ITEM_NONE, - .moves = MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT + .moves = {MOVE_YAWN, MOVE_PSYCHIC, MOVE_CALM_MIND, MOVE_PROTECT} }, { .iv = 255, .lvl = 64, .species = SPECIES_XATU, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND + .moves = {MOVE_PSYCHIC, MOVE_REST, MOVE_CONFUSE_RAY, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 65, .species = SPECIES_LUNATONE, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_REST, MOVE_CALM_MIND} }, { .iv = 255, .lvl = 65, .species = SPECIES_SOLROCK, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER + .moves = {MOVE_SUNNY_DAY, MOVE_SOLAR_BEAM, MOVE_PSYCHIC, MOVE_FLAMETHROWER} } }; @@ -11550,21 +11550,21 @@ static const struct TrainerMonItemCustomMoves sParty_Juan2[] = { .lvl = 46, .species = SPECIES_POLIWAG, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + .moves = {MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP} }, { .iv = 255, .lvl = 46, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE} }, { .iv = 255, .lvl = 48, .species = SPECIES_WALREIN, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, @@ -11578,14 +11578,14 @@ static const struct TrainerMonItemCustomMoves sParty_Juan2[] = { .lvl = 48, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_DOUBLE_TEAM + .moves = {MOVE_REST, MOVE_CRABHAMMER, MOVE_TAUNT, MOVE_DOUBLE_TEAM} }, { .iv = 255, .lvl = 51, .species = SPECIES_KINGDRA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST} } }; @@ -11595,21 +11595,21 @@ static const struct TrainerMonItemCustomMoves sParty_Juan3[] = { .lvl = 50, .species = SPECIES_POLIWHIRL, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + .moves = {MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP} }, { .iv = 255, .lvl = 51, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE} }, { .iv = 255, .lvl = 53, .species = SPECIES_WALREIN, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, @@ -11623,14 +11623,14 @@ static const struct TrainerMonItemCustomMoves sParty_Juan3[] = { .lvl = 53, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + .moves = {MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM} }, { .iv = 255, .lvl = 56, .species = SPECIES_KINGDRA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST} } }; @@ -11640,42 +11640,42 @@ static const struct TrainerMonItemCustomMoves sParty_Juan4[] = { .lvl = 56, .species = SPECIES_LAPRAS, .heldItem = ITEM_NONE, - .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY + .moves = {MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY} }, { .iv = 255, .lvl = 58, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE} }, { .iv = 255, .lvl = 56, .species = SPECIES_POLIWHIRL, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP + .moves = {MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_PROTECT, MOVE_HYDRO_PUMP} }, { .iv = 255, .lvl = 58, .species = SPECIES_WALREIN, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM + .moves = {MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_ICE_BEAM} }, { .iv = 255, .lvl = 58, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + .moves = {MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM} }, { .iv = 255, .lvl = 61, .species = SPECIES_KINGDRA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST} } }; @@ -11685,42 +11685,42 @@ static const struct TrainerMonItemCustomMoves sParty_Juan5[] = { .lvl = 61, .species = SPECIES_LAPRAS, .heldItem = ITEM_NONE, - .moves = MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY + .moves = {MOVE_HYDRO_PUMP, MOVE_PERISH_SONG, MOVE_ICE_BEAM, MOVE_CONFUSE_RAY} }, { .iv = 255, .lvl = 63, .species = SPECIES_WHISCASH, .heldItem = ITEM_NONE, - .moves = MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE + .moves = {MOVE_RAIN_DANCE, MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_FISSURE} }, { .iv = 255, .lvl = 61, .species = SPECIES_POLITOED, .heldItem = ITEM_NONE, - .moves = MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_PERISH_SONG + .moves = {MOVE_HYPNOSIS, MOVE_RAIN_DANCE, MOVE_HYDRO_PUMP, MOVE_PERISH_SONG} }, { .iv = 255, .lvl = 63, .species = SPECIES_WALREIN, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_SHEER_COLD + .moves = {MOVE_WATER_PULSE, MOVE_BODY_SLAM, MOVE_PROTECT, MOVE_SHEER_COLD} }, { .iv = 255, .lvl = 63, .species = SPECIES_CRAWDAUNT, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM + .moves = {MOVE_REST, MOVE_GUILLOTINE, MOVE_TAUNT, MOVE_DOUBLE_TEAM} }, { .iv = 255, .lvl = 66, .species = SPECIES_KINGDRA, .heldItem = ITEM_CHESTO_BERRY, - .moves = MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST + .moves = {MOVE_WATER_PULSE, MOVE_DOUBLE_TEAM, MOVE_ICE_BEAM, MOVE_REST} } }; @@ -11730,14 +11730,14 @@ static const struct TrainerMonItemCustomMoves sParty_Angelo[] = { .lvl = 17, .species = SPECIES_ILLUMISE, .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CHARM, MOVE_NONE + .moves = {MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CHARM, MOVE_NONE} }, { .iv = 100, .lvl = 17, .species = SPECIES_VOLBEAT, .heldItem = ITEM_NONE, - .moves = MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CONFUSE_RAY, MOVE_NONE + .moves = {MOVE_SHOCK_WAVE, MOVE_QUICK_ATTACK, MOVE_CONFUSE_RAY, MOVE_NONE} } }; @@ -11755,42 +11755,42 @@ static const struct TrainerMonItemCustomMoves sParty_Steven[] = { .lvl = 77, .species = SPECIES_SKARMORY, .heldItem = ITEM_NONE, - .moves = MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_SPIKES, MOVE_STEEL_WING + .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_SPIKES, MOVE_STEEL_WING} }, { .iv = 255, .lvl = 75, .species = SPECIES_CLAYDOL, .heldItem = ITEM_NONE, - .moves = MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE + .moves = {MOVE_REFLECT, MOVE_LIGHT_SCREEN, MOVE_ANCIENT_POWER, MOVE_EARTHQUAKE} }, { .iv = 255, .lvl = 76, .species = SPECIES_AGGRON, .heldItem = ITEM_NONE, - .moves = MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW + .moves = {MOVE_THUNDER, MOVE_EARTHQUAKE, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW} }, { .iv = 255, .lvl = 76, .species = SPECIES_CRADILY, .heldItem = ITEM_NONE, - .moves = MOVE_GIGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_INGRAIN, MOVE_CONFUSE_RAY + .moves = {MOVE_GIGA_DRAIN, MOVE_ANCIENT_POWER, MOVE_INGRAIN, MOVE_CONFUSE_RAY} }, { .iv = 255, .lvl = 76, .species = SPECIES_ARMALDO, .heldItem = ITEM_NONE, - .moves = MOVE_WATER_PULSE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_SLASH + .moves = {MOVE_WATER_PULSE, MOVE_ANCIENT_POWER, MOVE_AERIAL_ACE, MOVE_SLASH} }, { .iv = 255, .lvl = 78, .species = SPECIES_METAGROSS, .heldItem = ITEM_SITRUS_BERRY, - .moves = MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_SHADOW_BALL + .moves = {MOVE_EARTHQUAKE, MOVE_PSYCHIC, MOVE_METEOR_MASH, MOVE_SHADOW_BALL} } }; @@ -12573,7 +12573,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Leaf[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_Brendan16[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_BrendanLinkPlaceholder[] = { { .iv = 0, .lvl = 5, @@ -12581,7 +12581,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Brendan16[] = { } }; -static const struct TrainerMonNoItemDefaultMoves sParty_May16[] = { +static const struct TrainerMonNoItemDefaultMoves sParty_MayLinkPlaceholder[] = { { .iv = 0, .lvl = 5, diff --git a/src/data/trainers.h b/src/data/trainers.h index b305f83fd21b..db622fb2092c 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -447,7 +447,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Zander}, }, - [TRAINER_SHELLY_1] = + [TRAINER_SHELLY_WEATHER_INSTITUTE] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_AQUA_ADMIN, @@ -457,11 +457,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Shelly1), - .party = {.NoItemDefaultMoves = sParty_Shelly1}, + .partySize = ARRAY_COUNT(sParty_ShellyWeatherInstitute), + .party = {.NoItemDefaultMoves = sParty_ShellyWeatherInstitute}, }, - [TRAINER_SHELLY_2] = + [TRAINER_SHELLY_SEAFLOOR_CAVERN] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_AQUA_ADMIN, @@ -471,8 +471,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Shelly2), - .party = {.NoItemDefaultMoves = sParty_Shelly2}, + .partySize = ARRAY_COUNT(sParty_ShellySeafloorCavern), + .party = {.NoItemDefaultMoves = sParty_ShellySeafloorCavern}, }, [TRAINER_ARCHIE] = @@ -7195,7 +7195,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Hector}, }, - [TRAINER_TABITHA_1] = + [TRAINER_TABITHA_MOSSDEEP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_ADMIN, @@ -7205,8 +7205,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, - .partySize = ARRAY_COUNT(sParty_Tabitha1), - .party = {.NoItemDefaultMoves = sParty_Tabitha1}, + .partySize = ARRAY_COUNT(sParty_TabithaMossdeep), + .party = {.NoItemDefaultMoves = sParty_TabithaMossdeep}, }, [TRAINER_EDWIN_2] = @@ -7265,7 +7265,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Edwin5}, }, - [TRAINER_WALLY_1] = + [TRAINER_WALLY_VR_1] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7275,11 +7275,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally1), - .party = {.NoItemCustomMoves = sParty_Wally1}, + .partySize = ARRAY_COUNT(sParty_WallyVR1), + .party = {.NoItemCustomMoves = sParty_WallyVR1}, }, - [TRAINER_BRENDAN_1] = + [TRAINER_BRENDAN_ROUTE_103_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7289,11 +7289,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan1), - .party = {.NoItemDefaultMoves = sParty_Brendan1}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute103Mudkip), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Mudkip}, }, - [TRAINER_BRENDAN_2] = + [TRAINER_BRENDAN_ROUTE_110_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7303,11 +7303,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan2), - .party = {.NoItemDefaultMoves = sParty_Brendan2}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute110Mudkip), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Mudkip}, }, - [TRAINER_BRENDAN_3] = + [TRAINER_BRENDAN_ROUTE_119_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7317,11 +7317,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan3), - .party = {.NoItemDefaultMoves = sParty_Brendan3}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute119Mudkip), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Mudkip}, }, - [TRAINER_BRENDAN_4] = + [TRAINER_BRENDAN_ROUTE_103_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7331,11 +7331,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, - .partySize = ARRAY_COUNT(sParty_Brendan4), - .party = {.NoItemDefaultMoves = sParty_Brendan4}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute103Treecko), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Treecko}, }, - [TRAINER_BRENDAN_5] = + [TRAINER_BRENDAN_ROUTE_110_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7345,11 +7345,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan5), - .party = {.NoItemDefaultMoves = sParty_Brendan5}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute110Treecko), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Treecko}, }, - [TRAINER_BRENDAN_6] = + [TRAINER_BRENDAN_ROUTE_119_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7359,11 +7359,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan6), - .party = {.NoItemDefaultMoves = sParty_Brendan6}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute119Treecko), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Treecko}, }, - [TRAINER_BRENDAN_7] = + [TRAINER_BRENDAN_ROUTE_103_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7373,11 +7373,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan7), - .party = {.NoItemDefaultMoves = sParty_Brendan7}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute103Torchic), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute103Torchic}, }, - [TRAINER_BRENDAN_8] = + [TRAINER_BRENDAN_ROUTE_110_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7387,11 +7387,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan8), - .party = {.NoItemDefaultMoves = sParty_Brendan8}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute110Torchic), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute110Torchic}, }, - [TRAINER_BRENDAN_9] = + [TRAINER_BRENDAN_ROUTE_119_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7401,11 +7401,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan9), - .party = {.NoItemDefaultMoves = sParty_Brendan9}, + .partySize = ARRAY_COUNT(sParty_BrendanRoute119Torchic), + .party = {.NoItemDefaultMoves = sParty_BrendanRoute119Torchic}, }, - [TRAINER_MAY_1] = + [TRAINER_MAY_ROUTE_103_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7415,11 +7415,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May1), - .party = {.NoItemDefaultMoves = sParty_May1}, + .partySize = ARRAY_COUNT(sParty_MayRoute103Mudkip), + .party = {.NoItemDefaultMoves = sParty_MayRoute103Mudkip}, }, - [TRAINER_MAY_2] = + [TRAINER_MAY_ROUTE_110_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7429,11 +7429,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May2), - .party = {.NoItemDefaultMoves = sParty_May2}, + .partySize = ARRAY_COUNT(sParty_MayRoute110Mudkip), + .party = {.NoItemDefaultMoves = sParty_MayRoute110Mudkip}, }, - [TRAINER_MAY_3] = + [TRAINER_MAY_ROUTE_119_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7443,11 +7443,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May3), - .party = {.NoItemDefaultMoves = sParty_May3}, + .partySize = ARRAY_COUNT(sParty_MayRoute119Mudkip), + .party = {.NoItemDefaultMoves = sParty_MayRoute119Mudkip}, }, - [TRAINER_MAY_4] = + [TRAINER_MAY_ROUTE_103_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7457,11 +7457,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May4), - .party = {.NoItemDefaultMoves = sParty_May4}, + .partySize = ARRAY_COUNT(sParty_MayRoute103Treecko), + .party = {.NoItemDefaultMoves = sParty_MayRoute103Treecko}, }, - [TRAINER_MAY_5] = + [TRAINER_MAY_ROUTE_110_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7471,11 +7471,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May5), - .party = {.NoItemDefaultMoves = sParty_May5}, + .partySize = ARRAY_COUNT(sParty_MayRoute110Treecko), + .party = {.NoItemDefaultMoves = sParty_MayRoute110Treecko}, }, - [TRAINER_MAY_6] = + [TRAINER_MAY_ROUTE_119_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7485,11 +7485,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May6), - .party = {.NoItemDefaultMoves = sParty_May6}, + .partySize = ARRAY_COUNT(sParty_MayRoute119Treecko), + .party = {.NoItemDefaultMoves = sParty_MayRoute119Treecko}, }, - [TRAINER_MAY_7] = + [TRAINER_MAY_ROUTE_103_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7499,11 +7499,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May7), - .party = {.NoItemDefaultMoves = sParty_May7}, + .partySize = ARRAY_COUNT(sParty_MayRoute103Torchic), + .party = {.NoItemDefaultMoves = sParty_MayRoute103Torchic}, }, - [TRAINER_MAY_8] = + [TRAINER_MAY_ROUTE_110_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7513,11 +7513,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May8), - .party = {.NoItemDefaultMoves = sParty_May8}, + .partySize = ARRAY_COUNT(sParty_MayRoute110Torchic), + .party = {.NoItemDefaultMoves = sParty_MayRoute110Torchic}, }, - [TRAINER_MAY_9] = + [TRAINER_MAY_ROUTE_119_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -7527,8 +7527,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May9), - .party = {.NoItemDefaultMoves = sParty_May9}, + .partySize = ARRAY_COUNT(sParty_MayRoute119Torchic), + .party = {.NoItemDefaultMoves = sParty_MayRoute119Torchic}, }, [TRAINER_ISAAC_1] = @@ -8287,7 +8287,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Macey}, }, - [TRAINER_BRENDAN_10] = + [TRAINER_BRENDAN_RUSTBORO_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -8297,11 +8297,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, - .partySize = ARRAY_COUNT(sParty_Brendan10), - .party = {.NoItemDefaultMoves = sParty_Brendan10}, + .partySize = ARRAY_COUNT(sParty_BrendanRustboroTreecko), + .party = {.NoItemDefaultMoves = sParty_BrendanRustboroTreecko}, }, - [TRAINER_BRENDAN_11] = + [TRAINER_BRENDAN_RUSTBORO_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -8311,8 +8311,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, - .partySize = ARRAY_COUNT(sParty_Brendan11), - .party = {.NoItemDefaultMoves = sParty_Brendan11}, + .partySize = ARRAY_COUNT(sParty_BrendanRustboroMudkip), + .party = {.NoItemDefaultMoves = sParty_BrendanRustboroMudkip}, }, [TRAINER_PAXTON] = @@ -8357,7 +8357,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst5}, }, - [TRAINER_TABITHA_2] = + [TRAINER_TABITHA_MT_CHIMNEY] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_ADMIN, @@ -8367,8 +8367,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Tabitha2), - .party = {.NoItemDefaultMoves = sParty_Tabitha2}, + .partySize = ARRAY_COUNT(sParty_TabithaMtChimney), + .party = {.NoItemDefaultMoves = sParty_TabithaMtChimney}, }, [TRAINER_JONATHAN] = @@ -8385,7 +8385,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Jonathan}, }, - [TRAINER_BRENDAN_12] = + [TRAINER_BRENDAN_RUSTBORO_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -8395,11 +8395,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan12), - .party = {.NoItemDefaultMoves = sParty_Brendan12}, + .partySize = ARRAY_COUNT(sParty_BrendanRustboroTorchic), + .party = {.NoItemDefaultMoves = sParty_BrendanRustboroTorchic}, }, - [TRAINER_MAY_10] = + [TRAINER_MAY_RUSTBORO_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -8409,11 +8409,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_SETUP_FIRST_TURN, - .partySize = ARRAY_COUNT(sParty_May10), - .party = {.NoItemDefaultMoves = sParty_May10}, + .partySize = ARRAY_COUNT(sParty_MayRustboroMudkip), + .party = {.NoItemDefaultMoves = sParty_MayRustboroMudkip}, }, - [TRAINER_MAXIE_1] = + [TRAINER_MAXIE_MAGMA_HIDEOUT] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_LEADER, @@ -8423,11 +8423,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Maxie1), - .party = {.NoItemDefaultMoves = sParty_Maxie1}, + .partySize = ARRAY_COUNT(sParty_MaxieMagmaHideout), + .party = {.NoItemDefaultMoves = sParty_MaxieMagmaHideout}, }, - [TRAINER_MAXIE_2] = + [TRAINER_MAXIE_MT_CHIMNEY] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_LEADER, @@ -8437,8 +8437,8 @@ const struct Trainer gTrainers[] = { .items = {ITEM_SUPER_POTION, ITEM_SUPER_POTION, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Maxie2), - .party = {.NoItemDefaultMoves = sParty_Maxie2}, + .partySize = ARRAY_COUNT(sParty_MaxieMtChimney), + .party = {.NoItemDefaultMoves = sParty_MaxieMtChimney}, }, [TRAINER_TIANA] = @@ -9183,7 +9183,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Ashley}, }, - [TRAINER_WALLY_2] = + [TRAINER_WALLY_MAUVILLE] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9193,11 +9193,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally2), - .party = {.NoItemDefaultMoves = sParty_Wally2}, + .partySize = ARRAY_COUNT(sParty_WallyMauville), + .party = {.NoItemDefaultMoves = sParty_WallyMauville}, }, - [TRAINER_WALLY_3] = + [TRAINER_WALLY_VR_2] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9207,11 +9207,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally3), - .party = {.NoItemCustomMoves = sParty_Wally3}, + .partySize = ARRAY_COUNT(sParty_WallyVR2), + .party = {.NoItemCustomMoves = sParty_WallyVR2}, }, - [TRAINER_WALLY_4] = + [TRAINER_WALLY_VR_3] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9221,11 +9221,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally4), - .party = {.NoItemCustomMoves = sParty_Wally4}, + .partySize = ARRAY_COUNT(sParty_WallyVR3), + .party = {.NoItemCustomMoves = sParty_WallyVR3}, }, - [TRAINER_WALLY_5] = + [TRAINER_WALLY_VR_4] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9235,11 +9235,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally5), - .party = {.NoItemCustomMoves = sParty_Wally5}, + .partySize = ARRAY_COUNT(sParty_WallyVR4), + .party = {.NoItemCustomMoves = sParty_WallyVR4}, }, - [TRAINER_WALLY_6] = + [TRAINER_WALLY_VR_5] = { .partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9249,11 +9249,11 @@ const struct Trainer gTrainers[] = { .items = {ITEM_FULL_RESTORE, ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Wally6), - .party = {.NoItemCustomMoves = sParty_Wally6}, + .partySize = ARRAY_COUNT(sParty_WallyVR5), + .party = {.NoItemCustomMoves = sParty_WallyVR5}, }, - [TRAINER_BRENDAN_13] = + [TRAINER_BRENDAN_LILYCOVE_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9263,11 +9263,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan13), - .party = {.NoItemDefaultMoves = sParty_Brendan13}, + .partySize = ARRAY_COUNT(sParty_BrendanLilycoveMudkip), + .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveMudkip}, }, - [TRAINER_BRENDAN_14] = + [TRAINER_BRENDAN_LILYCOVE_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9277,11 +9277,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan14), - .party = {.NoItemDefaultMoves = sParty_Brendan14}, + .partySize = ARRAY_COUNT(sParty_BrendanLilycoveTreecko), + .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveTreecko}, }, - [TRAINER_BRENDAN_15] = + [TRAINER_BRENDAN_LILYCOVE_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9291,11 +9291,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Brendan15), - .party = {.NoItemDefaultMoves = sParty_Brendan15}, + .partySize = ARRAY_COUNT(sParty_BrendanLilycoveTorchic), + .party = {.NoItemDefaultMoves = sParty_BrendanLilycoveTorchic}, }, - [TRAINER_MAY_11] = + [TRAINER_MAY_LILYCOVE_MUDKIP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9305,11 +9305,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May11), - .party = {.NoItemDefaultMoves = sParty_May11}, + .partySize = ARRAY_COUNT(sParty_MayLilycoveMudkip), + .party = {.NoItemDefaultMoves = sParty_MayLilycoveMudkip}, }, - [TRAINER_MAY_12] = + [TRAINER_MAY_LILYCOVE_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9319,11 +9319,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May12), - .party = {.NoItemDefaultMoves = sParty_May12}, + .partySize = ARRAY_COUNT(sParty_MayLilycoveTreecko), + .party = {.NoItemDefaultMoves = sParty_MayLilycoveTreecko}, }, - [TRAINER_MAY_13] = + [TRAINER_MAY_LILYCOVE_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -9333,8 +9333,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May13), - .party = {.NoItemDefaultMoves = sParty_May13}, + .partySize = ARRAY_COUNT(sParty_MayLilycoveTorchic), + .party = {.NoItemDefaultMoves = sParty_MayLilycoveTorchic}, }, [TRAINER_JONAH] = @@ -10247,7 +10247,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout16}, }, - [TRAINER_TABITHA_3] = + [TRAINER_TABITHA_MAGMA_HIDEOUT] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_ADMIN, @@ -10257,8 +10257,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE, - .partySize = ARRAY_COUNT(sParty_Tabitha3), - .party = {.NoItemDefaultMoves = sParty_Tabitha3}, + .partySize = ARRAY_COUNT(sParty_TabithaMagmaHideout), + .party = {.NoItemDefaultMoves = sParty_TabithaMagmaHideout}, }, [TRAINER_DARCY] = @@ -10275,7 +10275,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Darcy}, }, - [TRAINER_MAXIE_3] = + [TRAINER_MAXIE_MOSSDEEP] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_MAGMA_LEADER, @@ -10285,8 +10285,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_Maxie3), - .party = {.NoItemDefaultMoves = sParty_Maxie3}, + .partySize = ARRAY_COUNT(sParty_MaxieMossdeep), + .party = {.NoItemDefaultMoves = sParty_MaxieMossdeep}, }, [TRAINER_PETE] = @@ -10751,7 +10751,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Cristin1}, }, - [TRAINER_MAY_14] = + [TRAINER_MAY_RUSTBORO_TREECKO] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -10761,11 +10761,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May14), - .party = {.NoItemDefaultMoves = sParty_May14}, + .partySize = ARRAY_COUNT(sParty_MayRustboroTreecko), + .party = {.NoItemDefaultMoves = sParty_MayRustboroTreecko}, }, - [TRAINER_MAY_15] = + [TRAINER_MAY_RUSTBORO_TORCHIC] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_PKMN_TRAINER_3, @@ -10775,8 +10775,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_TRY_TO_FAINT | AI_SCRIPT_CHECK_VIABILITY, - .partySize = ARRAY_COUNT(sParty_May15), - .party = {.NoItemDefaultMoves = sParty_May15}, + .partySize = ARRAY_COUNT(sParty_MayRustboroTorchic), + .party = {.NoItemDefaultMoves = sParty_MayRustboroTorchic}, }, [TRAINER_ROXANNE_2] = @@ -11941,7 +11941,7 @@ const struct Trainer gTrainers[] = { .party = {.NoItemDefaultMoves = sParty_Leaf}, }, - [TRAINER_BRENDAN_16] = + [TRAINER_BRENDAN_PLACEHOLDER] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_RS_PROTAG, @@ -11951,11 +11951,11 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = 0, - .partySize = ARRAY_COUNT(sParty_Brendan16), - .party = {.NoItemDefaultMoves = sParty_Brendan16}, + .partySize = ARRAY_COUNT(sParty_BrendanLinkPlaceholder), + .party = {.NoItemDefaultMoves = sParty_BrendanLinkPlaceholder}, }, - [TRAINER_MAY_16] = + [TRAINER_MAY_PLACEHOLDER] = { .partyFlags = 0, .trainerClass = TRAINER_CLASS_RS_PROTAG, @@ -11965,8 +11965,8 @@ const struct Trainer gTrainers[] = { .items = {}, .doubleBattle = FALSE, .aiFlags = 0, - .partySize = ARRAY_COUNT(sParty_May16), - .party = {.NoItemDefaultMoves = sParty_May16}, + .partySize = ARRAY_COUNT(sParty_MayLinkPlaceholder), + .party = {.NoItemDefaultMoves = sParty_MayLinkPlaceholder}, }, [TRAINER_JAELEN] = diff --git a/src/decoration.c b/src/decoration.c index d09f238d793d..2a8fe973d4d8 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -2154,7 +2154,8 @@ void sub_8129708(void) } } -void sub_81297AC(void) +// Unused +void GetEventObjectLocalIdByFlag(void) { u8 i; diff --git a/src/dewford_trend.c b/src/dewford_trend.c index 57a97d8f3c83..9c5e69d99358 100644 --- a/src/dewford_trend.c +++ b/src/dewford_trend.c @@ -25,12 +25,12 @@ void InitDewfordTrend(void) for (i = 0; i < 5; i++) { - gSaveBlock1Ptr->easyChatPairs[i].words[0] = sub_811EE38(EC_GROUP_CONDITIONS); + gSaveBlock1Ptr->easyChatPairs[i].words[0] = GetRandomEasyChatWordFromGroup(EC_GROUP_CONDITIONS); if (Random() & 1) - gSaveBlock1Ptr->easyChatPairs[i].words[1] = sub_811EE38(EC_GROUP_LIFESTYLE); + gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_LIFESTYLE); else - gSaveBlock1Ptr->easyChatPairs[i].words[1] = sub_811EE38(EC_GROUP_HOBBIES); + gSaveBlock1Ptr->easyChatPairs[i].words[1] = GetRandomEasyChatWordFromGroup(EC_GROUP_HOBBIES); gSaveBlock1Ptr->easyChatPairs[i].unk1_6 = Random() & 1; sub_8122B28(&(gSaveBlock1Ptr->easyChatPairs[i])); diff --git a/src/easy_chat.c b/src/easy_chat.c index 6bb1d9c862fb..86349cbd61c4 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -222,7 +222,7 @@ static void sub_811E1A4(s8, s8); static void sub_811E2DC(struct Sprite *); static void sub_811E34C(u8, u8); static bool8 EasyChatIsNationalPokedexEnabled(void); -static u16 sub_811F108(void); +static u16 GetRandomUnlockedEasyChatPokemon(void); static void sub_811F2D4(void); static void sub_811F46C(void); static u8 *CopyEasyChatWordPadded(u8 *, u16, u16); @@ -5039,24 +5039,24 @@ static u16 GetEasyChatWordStringLength(u16 easyChatWord) } } -bool8 sub_811EDC4(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3) +static bool8 CanPhraseFitInXRowsYCols(const u16 *easyChatWords, u8 numRows, u8 numColumns, u16 maxLength) { u8 i, j; - for (i = 0; i < arg2; i++) + for (i = 0; i < numColumns; i++) { - u16 totalLength = arg1 - 1; - for (j = 0; j < arg1; j++) + u16 totalLength = numRows - 1; + for (j = 0; j < numRows; j++) totalLength += GetEasyChatWordStringLength(*(easyChatWords++)); - if (totalLength > arg3) + if (totalLength > maxLength) return TRUE; } return FALSE; } -u16 sub_811EE38(u16 groupId) +u16 GetRandomEasyChatWordFromGroup(u16 groupId) { u16 index = Random() % gEasyChatGroups[groupId].numWords; if (groupId == EC_GROUP_POKEMON @@ -5070,18 +5070,18 @@ u16 sub_811EE38(u16 groupId) return EC_WORD(groupId, index); } -u16 sub_811EE90(u16 groupId) +u16 GetRandomEasyChatWordFromUnlockedGroup(u16 groupId) { if (!IsEasyChatGroupUnlocked(groupId)) return 0xFFFF; if (groupId == EC_GROUP_POKEMON) - return sub_811F108(); + return GetRandomUnlockedEasyChatPokemon(); - return sub_811EE38(groupId); + return GetRandomEasyChatWordFromGroup(groupId); } -void sub_811EECC(void) +void ShowEasyChatProfile(void) { u16 *easyChatWords; int columns, rows; @@ -5094,7 +5094,7 @@ void sub_811EECC(void) break; case 1: easyChatWords = gSaveBlock1Ptr->easyChatBattleStart; - if (sub_811EDC4(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) + if (CanPhraseFitInXRowsYCols(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) { columns = 2; rows = 3; @@ -5123,10 +5123,11 @@ void sub_811EECC(void) ShowFieldAutoScrollMessage(gStringVar4); } -void sub_811EF6C(void) +// The phrase that a man in Dewford Hall suggests has a "deep link" to the current trendy phrase +void BufferDeepLinkPhrase(void) { int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE; - u16 easyChatWord = sub_811EE90(groupId); + u16 easyChatWord = GetRandomEasyChatWordFromUnlockedGroup(groupId); CopyEasyChatWord(gStringVar2, easyChatWord); } @@ -5217,7 +5218,7 @@ static bool8 EasyChatIsNationalPokedexEnabled(void) return IsNationalPokedexEnabled(); } -static u16 sub_811F108(void) +static u16 GetRandomUnlockedEasyChatPokemon(void) { u16 i; u16 numWords; diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index 2419c28066a9..bdfbebf6b130 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -473,7 +473,7 @@ static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct } buffer2->checksum = CalcByteArraySum((u8 *)buffer2->floors, 4 * sizeof(struct TrHillFloor)); - if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != 1) + if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != SAVE_STATUS_OK) return FALSE; return TRUE; @@ -487,13 +487,13 @@ bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0) return result; } -static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *arg0, u8 *arg1) +static bool32 TryReadTrainerHill_r(struct EReaderTrainerHillSet *dst, u8 *buffer) { - if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, arg1) != 1) + if (TryReadSpecialSaveSection(SECTOR_ID_TRAINER_HILL, buffer) != SAVE_STATUS_OK) return FALSE; - memcpy(arg0, arg1, sizeof(struct EReaderTrainerHillSet)); - if (!TrainerHill_VerifyChecksum(arg0)) + memcpy(dst, buffer, sizeof(struct EReaderTrainerHillSet)); + if (!TrainerHill_VerifyChecksum(dst)) return FALSE; return TRUE; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index b5bea8d8182d..31b68981c624 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1863,27 +1863,30 @@ const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId) { u8 bard; - if (graphicsId >= SPRITE_VAR) + if (graphicsId >= OBJ_EVENT_GFX_VARS) { - graphicsId = VarGetEventObjectGraphicsId(graphicsId - SPRITE_VAR); + graphicsId = VarGetEventObjectGraphicsId(graphicsId - OBJ_EVENT_GFX_VARS); } + if (graphicsId == EVENT_OBJ_GFX_BARD) { bard = GetCurrentMauvilleOldMan(); return gMauvilleOldManGraphicsInfoPointers[bard]; } - if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO) + + if (graphicsId >= NUM_OBJ_EVENT_GFX) { graphicsId = EVENT_OBJ_GFX_NINJA_BOY; } + return gEventObjectGraphicsInfoPointers[graphicsId]; } static void SetEventObjectDynamicGraphicsId(struct EventObject *eventObject) { - if (eventObject->graphicsId >= SPRITE_VAR) + if (eventObject->graphicsId >= OBJ_EVENT_GFX_VARS) { - eventObject->graphicsId = VarGetEventObjectGraphicsId(eventObject->graphicsId - SPRITE_VAR); + eventObject->graphicsId = VarGetEventObjectGraphicsId(eventObject->graphicsId - OBJ_EVENT_GFX_VARS); } } diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 424b85d625c5..4af42ca2fc4d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -423,23 +423,23 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me return SecretBase_EventScript_ShieldOrToyTV; if (MetatileBehavior_IsMB_C6(metatileBehavior) == TRUE) { - SetSecretBaseSecretsTvFlags_MiscFurnature(); + CheckInteractedWithFriendsFurnitureBottom(); return NULL; } if (MetatileBehavior_HoldsLargeDecoration(metatileBehavior) == TRUE) { - SetSecretBaseSecretsTvFlags_LargeDecorationSpot(); + CheckInteractedWithFriendsFurnitureMiddle(); return NULL; } if (MetatileBehavior_HoldsSmallDecoration(metatileBehavior) == TRUE) { - SetSecretBaseSecretsTvFlags_SmallDecorationSpot(); + CheckInteractedWithFriendsFurnitureTop(); return NULL; } } else if (MetatileBehavior_IsSecretBasePoster(metatileBehavior) == TRUE) { - SetSecretBaseSecretsTvFlags_Poster(); + CheckInteractedWithFriendsPosterDecor(); return NULL; } diff --git a/src/field_specials.c b/src/field_specials.c index 54d435b2c951..ce3ccce9531e 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -995,7 +995,7 @@ u16 GetWeekCount(void) u8 GetLeadMonFriendshipScore(void) { struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255) + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP) { return 6; } @@ -1221,18 +1221,18 @@ void EndLotteryCornerComputerEffect(void) DrawWholeMapView(); } -void SetTrickHouseEndRoomFlag(void) +void SetTrickHouseNuggetFlag(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = FLAG_TRICK_HOUSE_END_ROOM; + u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET; *specVar = flag; FlagSet(flag); } -void ResetTrickHouseEndRoomFlag(void) +void ResetTrickHouseNuggetFlag(void) { u16 *specVar = &gSpecialVar_0x8004; - u16 flag = FLAG_TRICK_HOUSE_END_ROOM; + u16 flag = FLAG_HIDDEN_ITEM_TRICK_HOUSE_NUGGET; *specVar = flag; FlagClear(flag); } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index fedf38cf5923..e2497ca95077 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -14,53 +14,54 @@ #include "sprite.h" #include "task.h" #include "constants/songs.h" +#include "constants/map_types.h" // structures struct FlashStruct { - u8 unk0; - u8 unk1; - bool8 unk2; - bool8 unk3; + u8 fromType; + u8 toType; + bool8 isEnter; + bool8 isExit; void (*func)(void); }; // static functions static void FieldCallback_Flash(void); static void FldEff_UseFlash(void); -static bool8 sub_8137304(void); -static void sub_81373F0(void); -static void sub_8137404(u8 taskId); -static void sub_8137420(u8 taskId); -static void sub_81374C4(u8 taskId); -static void sub_813750C(u8 taskId); -static void sub_8137574(u8 taskId); -static void sub_81375A8(void); -static void sub_81375BC(u8 taskId); -static void sub_81375D8(u8 taskId); -static void sub_8137678(u8 taskId); -static void sub_81376DC(u8 taskId); +static bool8 TryDoMapTransition(void); +static void DoExitCaveTransition(void); +static void Task_ExitCaveTransition1(u8 taskId); +static void Task_ExitCaveTransition2(u8 taskId); +static void Task_ExitCaveTransition3(u8 taskId); +static void Task_ExitCaveTransition4(u8 taskId); +static void Task_ExitCaveTransition5(u8 taskId); +static void DoEnterCaveTransition(void); +static void Task_EnterCaveTransition1(u8 taskId); +static void Task_EnterCaveTransition2(u8 taskId); +static void Task_EnterCaveTransition3(u8 taskId); +static void Task_EnterCaveTransition4(u8 taskId); // rodata -static const struct FlashStruct gUnknown_085B27C8[] = +static const struct FlashStruct sTransitionTypes[] = { - {1, 4, 1, 0, sub_81375A8}, - {2, 4, 1, 0, sub_81375A8}, - {3, 4, 1, 0, sub_81375A8}, - {5, 4, 1, 0, sub_81375A8}, - {6, 4, 1, 0, sub_81375A8}, - {7, 4, 1, 0, sub_81375A8}, - {8, 4, 1, 0, sub_81375A8}, - {9, 4, 1, 0, sub_81375A8}, - {4, 1, 0, 1, sub_81373F0}, - {4, 2, 0, 1, sub_81373F0}, - {4, 3, 0, 1, sub_81373F0}, - {4, 5, 0, 1, sub_81373F0}, - {4, 6, 0, 1, sub_81373F0}, - {4, 7, 0, 1, sub_81373F0}, - {4, 8, 0, 1, sub_81373F0}, - {4, 9, 0, 1, sub_81373F0}, - {0, 0, 0, 0, NULL}, + {MAP_TYPE_TOWN, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_CITY, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_ROUTE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_UNDERWATER, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_OCEAN_ROUTE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_UNUSED_2, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_INDOOR, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_SECRET_BASE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_TOWN, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_CITY, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_ROUTE, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNDERWATER, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_OCEAN_ROUTE, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNUSED_2, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_INDOOR, FALSE, TRUE, DoExitCaveTransition}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_SECRET_BASE, FALSE, TRUE, DoExitCaveTransition}, + {}, }; static const u16 gCaveTransitionPalette_White[] = INCBIN_U16("graphics/misc/cave_transition_white.gbapal"); @@ -108,7 +109,7 @@ static void FldEff_UseFlash(void) ScriptContext1_SetupScript(EventScript_FldEffFlash); } -static void sub_81371D4(void) +static void CB2_ChangeMapMain(void) { RunTasks(); AnimateSprites(); @@ -116,14 +117,14 @@ static void sub_81371D4(void) UpdatePaletteFade(); } -static void sub_81371EC(void) +static void VBC_ChangeMapVBlank(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void c2_change_map(void) +void CB2_DoChangeMap(void) { u16 ime; @@ -148,23 +149,23 @@ void c2_change_map(void) REG_IME = 0; REG_IE |= INTR_FLAG_VBLANK; REG_IME = ime; - SetVBlankCallback(sub_81371EC); - SetMainCallback2(sub_81371D4); - if (!sub_8137304()) + SetVBlankCallback(VBC_ChangeMapVBlank); + SetMainCallback2(CB2_ChangeMapMain); + if (!TryDoMapTransition()) SetMainCallback2(gMain.savedCallback); } -static bool8 sub_8137304(void) +static bool8 TryDoMapTransition(void) { u8 i; - u8 v0 = GetLastUsedWarpMapType(); - u8 v1 = GetCurrentMapType(); + u8 fromType = GetLastUsedWarpMapType(); + u8 toType = GetCurrentMapType(); - for (i = 0; gUnknown_085B27C8[i].unk0; i++) + for (i = 0; sTransitionTypes[i].fromType; i++) { - if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1) + if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType) { - gUnknown_085B27C8[i].func(); + sTransitionTypes[i].func(); return TRUE; } } @@ -172,51 +173,51 @@ static bool8 sub_8137304(void) return FALSE; } -bool8 GetMapPairFadeToType(u8 a1, u8 a2) +bool8 GetMapPairFadeToType(u8 _fromType, u8 _toType) { u8 i; - u8 v0 = a1; - u8 v1 = a2; + u8 fromType = _fromType; + u8 toType = _toType; - for (i = 0; gUnknown_085B27C8[i].unk0; i++) + for (i = 0; sTransitionTypes[i].fromType; i++) { - if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1) + if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType) { - return gUnknown_085B27C8[i].unk2; + return sTransitionTypes[i].isEnter; } } return FALSE; } -bool8 GetMapPairFadeFromType(u8 a1, u8 a2) +bool8 GetMapPairFadeFromType(u8 _fromType, u8 _toType) { u8 i; - u8 v0 = a1; - u8 v1 = a2; + u8 fromType = _fromType; + u8 toType = _toType; - for (i = 0; gUnknown_085B27C8[i].unk0; i++) + for (i = 0; sTransitionTypes[i].fromType; i++) { - if (gUnknown_085B27C8[i].unk0 == v0 && gUnknown_085B27C8[i].unk1 == v1) + if (sTransitionTypes[i].fromType == fromType && sTransitionTypes[i].toType == toType) { - return gUnknown_085B27C8[i].unk3; + return sTransitionTypes[i].isExit; } } return FALSE; } -static void sub_81373F0(void) +static void DoExitCaveTransition(void) { - CreateTask(sub_8137404, 0); + CreateTask(Task_ExitCaveTransition1, 0); } -static void sub_8137404(u8 taskId) +static void Task_ExitCaveTransition1(u8 taskId) { - gTasks[taskId].func = sub_8137420; + gTasks[taskId].func = Task_ExitCaveTransition2; } -static void sub_8137420(u8 taskId) +static void Task_ExitCaveTransition2(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); @@ -241,12 +242,12 @@ static void sub_8137420(u8 taskId) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON); - gTasks[taskId].func = sub_81374C4; + gTasks[taskId].func = Task_ExitCaveTransition3; gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = 0; } -static void sub_81374C4(u8 taskId) +static void Task_ExitCaveTransition3(u8 taskId) { u16 count = gTasks[taskId].data[1]; u16 blend = count + 0x1000; @@ -259,11 +260,11 @@ static void sub_81374C4(u8 taskId) else { gTasks[taskId].data[2] = 0; - gTasks[taskId].func = sub_813750C; + gTasks[taskId].func = Task_ExitCaveTransition4; } } -static void sub_813750C(u8 taskId) +static void Task_ExitCaveTransition4(u8 taskId) { u16 count; @@ -278,12 +279,12 @@ static void sub_813750C(u8 taskId) else { LoadPalette(gCaveTransitionPalette_White, 0, 0x20); - gTasks[taskId].func = sub_8137574; + gTasks[taskId].func = Task_ExitCaveTransition5; gTasks[taskId].data[2] = 8; } } -static void sub_8137574(u8 taskId) +static void Task_ExitCaveTransition5(u8 taskId) { if (gTasks[taskId].data[2]) gTasks[taskId].data[2]--; @@ -291,17 +292,17 @@ static void sub_8137574(u8 taskId) SetMainCallback2(gMain.savedCallback); } -static void sub_81375A8(void) +static void DoEnterCaveTransition(void) { - CreateTask(sub_81375BC, 0); + CreateTask(Task_EnterCaveTransition1, 0); } -static void sub_81375BC(u8 taskId) +static void Task_EnterCaveTransition1(u8 taskId) { - gTasks[taskId].func = sub_81375D8; + gTasks[taskId].func = Task_EnterCaveTransition2; } -static void sub_81375D8(u8 taskId) +static void Task_EnterCaveTransition2(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); @@ -320,13 +321,13 @@ static void sub_81375D8(u8 taskId) | DISPCNT_OBJ_ON); LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20); LoadPalette(gCaveTransitionPalette_Black, 0, 0x20); - gTasks[taskId].func = sub_8137678; + gTasks[taskId].func = Task_EnterCaveTransition3; gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = 0; } -static void sub_8137678(u8 taskId) +static void Task_EnterCaveTransition3(u8 taskId) { u16 count = gTasks[taskId].data[2]; @@ -346,11 +347,11 @@ static void sub_8137678(u8 taskId) | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); - gTasks[taskId].func = sub_81376DC; + gTasks[taskId].func = Task_EnterCaveTransition4; } } -static void sub_81376DC(u8 taskId) +static void Task_EnterCaveTransition4(u8 taskId) { u16 count = 16 - gTasks[taskId].data[1]; u16 blend = count + 0x1000; diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 591f61eb7048..05fa433387f1 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -20,9 +20,11 @@ #include "string_util.h" #include "constants/field_effects.h" #include "constants/metatile_behaviors.h" +#include "constants/metatile_labels.h" #include "constants/songs.h" +#include "constants/tv.h" #include "constants/vars.h" -#include "constants/metatile_labels.h" + EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; @@ -801,16 +803,16 @@ static void Task_SecretBasePCTurnOn(u8 taskId) { case 4: case 12: - MapGridSetMetatileIdAt(data[0], data[1], 0x224); + MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); CurrentMapDrawMetatileAt(data[0], data[1]); break; case 8: case 16: - MapGridSetMetatileIdAt(data[0], data[1], 0x220); + MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC); CurrentMapDrawMetatileAt(data[0], data[1]); break; case 20: - MapGridSetMetatileIdAt(data[0], data[1], 0x224); + MapGridSetMetatileIdAt(data[0], data[1], METATILE_SecretBase_PC_On); CurrentMapDrawMetatileAt(data[0], data[1]); FieldEffectActiveListRemove(FLDEFF_PCTURN_ON); EnableBothScriptContexts(); @@ -829,9 +831,9 @@ void DoSecretBasePCTurnOffEffect(void) PlaySE(SE_PC_OFF); if (!VarGet(VAR_CURRENT_SECRET_BASE)) - MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK); else - MapGridSetMetatileIdAt(x, y, 0x221 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); } @@ -875,16 +877,16 @@ static void DoBalloonSoundEffect(s16 metatileId) { switch (metatileId) { - case 824: + case METATILE_SecretBase_RedBalloon: PlaySE(SE_FUUSEN1); break; - case 828: + case METATILE_SecretBase_BlueBalloon: PlaySE(SE_FUUSEN2); break; - case 832: + case METATILE_SecretBase_YellowBalloon: PlaySE(SE_FUUSEN3); break; - case 552: + case METATILE_SecretBase_MudBall: PlaySE(SE_TOY_DANGO); break; } @@ -903,8 +905,8 @@ bool8 FldEff_NopA700(void) static void DoSecretBaseBreakableDoorEffect(s16 x, s16 y) { PlaySE(SE_TOY_KABE); - MapGridSetMetatileIdAt(x, y, 0x276); - MapGridSetMetatileIdAt(x, y - 1, 0x26E); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_BreakableDoor_BottomOpen); + MapGridSetMetatileIdAt(x, y - 1, METATILE_SecretBase_BreakableDoor_TopOpen); CurrentMapDrawMetatileAt(x, y); CurrentMapDrawMetatileAt(x, y - 1); } @@ -946,28 +948,28 @@ static void Task_SecretBaseMusicNoteMatSound(u8 taskId) { switch (gTasks[taskId].tMetatileID) { - case 632: + case METATILE_SecretBase_NoteMat_C: PlaySE(SE_TOY_C); break; - case 633: + case METATILE_SecretBase_NoteMat_D: PlaySE(SE_TOY_D); break; - case 634: + case METATILE_SecretBase_NoteMat_E: PlaySE(SE_TOY_E); break; - case 635: + case METATILE_SecretBase_NoteMat_F: PlaySE(SE_TOY_F); break; - case 636: + case METATILE_SecretBase_NoteMat_G: PlaySE(SE_TOY_G); break; - case 637: + case METATILE_SecretBase_NoteMat_A: PlaySE(SE_TOY_A); break; - case 638: + case METATILE_SecretBase_NoteMat_B: PlaySE(SE_TOY_B); break; - case 691: + case METATILE_SecretBase_NoteMat_C_Sharp: PlaySE(SE_TOY_C1); break; } @@ -1071,12 +1073,12 @@ static void SpriteCB_SandPillar_0(struct Sprite *sprite) { PlaySE(SE_W088); - if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == 646) - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 3586); + if (MapGridGetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1) == METATILE_SecretBase_SandOrnament_TopWall) + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_Wall_TopMid | METATILE_COLLISION_MASK); else - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, 644); + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1, METATILE_SecretBase_SandOrnament_BrokenTop); - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 522); + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_Ground); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6] - 1); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); @@ -1092,7 +1094,7 @@ static void SpriteCB_SandPillar_1(struct Sprite *sprite) } else { - MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], 3724); + MapGridSetMetatileIdAt(gFieldEffectArguments[5], gFieldEffectArguments[6], METATILE_SecretBase_SandOrnament_BrokenBase | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(gFieldEffectArguments[5], gFieldEffectArguments[6]); sprite->data[0] = 0; sprite->callback = SpriteCB_SandPillar_2; @@ -1105,7 +1107,7 @@ static void SpriteCB_SandPillar_2(struct Sprite *sprite) EnableBothScriptContexts(); } -void GetShieldToyTVDecorationInfo(void) +void InteractWithShieldOrTVDecoration(void) { s16 x, y; s32 metatileId; @@ -1116,7 +1118,7 @@ void GetShieldToyTVDecorationInfo(void) switch (metatileId) { - case 822: + case METATILE_SecretBase_GoldShield_Base1: ConvertIntToDecimalStringN(gStringVar1, 100, STR_CONV_MODE_LEFT_ALIGN, 3); StringCopy(gStringVar2, gText_Gold); @@ -1125,9 +1127,9 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x10); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GOLD_SHIELD); break; - case 734: + case METATILE_SecretBase_SilverShield_Base1: ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2); StringCopy(gStringVar2, gText_Silver); @@ -1136,31 +1138,31 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x20); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_SILVER_SHIELD); break; - case 756: + case METATILE_SecretBase_TV: gSpecialVar_Result = 1; if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV); break; - case 757: + case METATILE_SecretBase_RoundTV: gSpecialVar_Result = 2; if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV); break; - case 758: + case METATILE_SecretBase_CuteTV: gSpecialVar_Result = 3; if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TV); break; } } @@ -1172,16 +1174,16 @@ bool8 sub_80FADE4(u16 metatileId, u8 arg1) if (!arg1) { - if (metatileId == 0x285 || metatileId == 0x286) + if (metatileId == METATILE_SecretBase_SandOrnament_Top || metatileId == METATILE_SecretBase_SandOrnament_TopWall) return TRUE; - if (metatileId == 0x237) + if (metatileId == METATILE_SecretBase_BreakableDoor_TopClosed) return TRUE; } else { - if (metatileId == 0x28d) + if (metatileId == METATILE_SecretBase_SandOrnament_Base1) return TRUE; - if (metatileId == 0x23F) + if (metatileId == METATILE_SecretBase_BreakableDoor_BottomClosed) return TRUE; } diff --git a/src/frontier_util.c b/src/frontier_util.c index 070de64ed805..3efbf57f9981 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -1701,7 +1701,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) FrontierSpeechToString(gSaveBlock2Ptr->frontier.ereaderTrainer.greeting); else if (trainerId == TRAINER_FRONTIER_BRAIN) CopyFrontierBrainText(FALSE); - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) FrontierSpeechToString(gFacilityTrainers[trainerId].speechBefore); else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE) FrontierSpeechToString(gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].greeting); @@ -1717,7 +1717,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) { CopyFrontierBrainText(FALSE); } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { FrontierSpeechToString(gFacilityTrainers[trainerId].speechWin); } @@ -1745,7 +1745,7 @@ void CopyFrontierTrainerText(u8 whichText, u16 trainerId) { CopyFrontierBrainText(TRUE); } - else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) + else if (trainerId < FRONTIER_TRAINERS_COUNT) { FrontierSpeechToString(gFacilityTrainers[trainerId].speechLose); } @@ -2490,7 +2490,7 @@ void SetFrontierBrainEventObjGfx_2(void) void CreateFrontierBrainPokemon(void) { s32 i, j; - s32 monCountInBits; + s32 selectedMonBits; s32 monPartyId; s32 monLevel = 0; u8 friendship; @@ -2498,16 +2498,16 @@ void CreateFrontierBrainPokemon(void) s32 symbol = GetFronterBrainSymbol(); if (facility == FRONTIER_FACILITY_DOME) - monCountInBits = GetDomeTrainerMonCountInBits(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN)); + selectedMonBits = GetDomeTrainerSelectedMons(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN)); else - monCountInBits = 7; + selectedMonBits = (1 << FRONTIER_PARTY_SIZE) - 1; // all 3 mons selected ZeroEnemyPartyMons(); monPartyId = 0; monLevel = SetFacilityPtrsGetLevel(); - for (i = 0; i < 3; monCountInBits >>= 1, i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; selectedMonBits >>= 1, i++) { - if (!(monCountInBits & 1)) + if (!(selectedMonBits & 1)) continue; do @@ -2523,7 +2523,7 @@ void CreateFrontierBrainPokemon(void) SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem); for (j = 0; j < NUM_STATS; j++) SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { SetMonMoveSlot(&gEnemyParty[monPartyId], sFrontierBrainsMons[facility][symbol][i].moves[j], j); @@ -2560,7 +2560,7 @@ void CreateFrontierBrainPokemon(void) bl TrainerIdToDomeTournamentId\n\ lsls r0, 16\n\ lsrs r0, 16\n\ - bl GetDomeTrainerMonCountInBits\n\ + bl GetDomeTrainerSelectedMons\n\ adds r4, r0, 0\n\ b _081A4E46\n\ .pool\n\ diff --git a/src/graphics.c b/src/graphics.c index 82765e913608..eeeba56c99d1 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -964,25 +964,19 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz") #include "data/graphics/battle_terrain.h" -const u32 gUnknown_08D82F10[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz"); -const u32 gUnknown_08D834FC[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines - -const u32 gUnknown_08D83900[] = INCBIN_U32("graphics/unknown/unknown_D83900.bin.lz"); // tilemaps likely - -const u32 gUnknown_08D83B2C[] = INCBIN_U32("graphics/unknown/unknown_D83B2C.bin.lz"); - -const u32 gUnknown_08D83C3C[] = INCBIN_U32("graphics/unknown/unknown_D83C3C.bin.lz"); - -const u32 gUnknown_08D83D50[] = INCBIN_U32("graphics/battle_frontier/misc1.4bpp.lz"); - -const u32 gUnknown_08D84970[] = INCBIN_U32("graphics/unknown/unknown_D84970.bin.lz"); - -const u32 gUnknown_08D84F00[] = INCBIN_U32("graphics/unknown/unknown_D84F00.bin.lz"); - -const u32 gBattleFrontierGfx_DomeOptions[] = INCBIN_U32("graphics/battle_frontier/options.4bpp.lz"); -const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal1.gbapal.lz"); -const u32 gUnknown_08D85444[] = INCBIN_U32("graphics/battle_frontier/options_pal2.gbapal.lz"); // pokeball pal -const u32 gUnknown_08D854C8[] = INCBIN_U32("graphics/battle_frontier/options_pal3.gbapal.lz"); // arrow pal +// Battle Dome +const u32 gDomeTourneyBg_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz"); +const u32 gDomeTourneyLine_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines +const u32 gDomeTourneyLineMask_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_mask_map.bin.lz"); +const u32 gDomeTourneyLineDown_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_down_map.bin.lz"); +const u32 gDomeTourneyLineUp_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_line_up_map.bin.lz"); +const u32 gDomeTourneyInfoCard_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card.4bpp.lz"); +const u32 gDomeTourneyInfoCard_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_tilemap.bin.lz"); +const u32 gDomeTourneyInfoCardBg_Tilemap[] = INCBIN_U32("graphics/battle_frontier/tourney_info_card_bg.bin.lz"); +const u32 gDomeTourneyTreeButtons_Gfx[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.4bpp.lz"); // exit/cancel and pokeball buttons +const u32 gDomeTourneyTree_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney.gbapal.lz"); +const u32 gDomeTourneyTreeButtons_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.gbapal.lz"); +const u32 gDomeTourneyMatchCardBg_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_match_card_bg.gbapal.lz"); const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz"); const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz"); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 95cbc11ef8c6..065d25582ccd 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -101,7 +101,7 @@ static void SpriteCB_GetOnScreenAndAnimate(struct Sprite *sprite); static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2); static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2); static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2); -static void sub_8175364(u8 taskId); +static void Task_DoConfettiEffect(u8 taskId); static void sub_81751A4(struct Sprite* sprite); // const rom data @@ -467,7 +467,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId) } else { - if (Save_LoadGameData(3) != TRUE) + if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK) memset(gDecompressionBuffer, 0, 0x2000); } @@ -498,7 +498,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId) static void Task_Hof_TrySaveData(u8 taskId) { gGameContinueCallback = CB2_DoHallOfFameScreenDontSaveData; - if (TrySavingData(SAVE_HALL_OF_FAME) == 0xFF && gDamagedSaveSectors != 0) + if (TrySavingData(SAVE_HALL_OF_FAME) == SAVE_STATUS_ERROR && gDamagedSaveSectors != 0) { UnsetBgTilemapBuffer(1); UnsetBgTilemapBuffer(3); @@ -836,7 +836,7 @@ void CB2_DoHallOfFamePC(void) static void Task_HofPC_CopySaveData(u8 taskId) { sub_81980F0(0, 0x1E, 0, 0xC, 0x226); - if (Save_LoadGameData(3) != 1) + if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK) { gTasks[taskId].func = Task_HofPC_PrintDataIsCorrupted; } @@ -1387,12 +1387,13 @@ static bool8 sub_81751FC(void) return FALSE; } -void sub_8175280(void) +// Used when a Battle Dome tourney is won +void DoConfettiEffect(void) { u8 taskId; gSpecialVar_0x8004 = 180; - taskId = CreateTask(sub_8175364, 0); + taskId = CreateTask(Task_DoConfettiEffect, 0); if (taskId != 0xFF) { gTasks[taskId].data[1] = gSpecialVar_0x8004; @@ -1400,11 +1401,11 @@ void sub_8175280(void) } } -static void sub_81752C0(void) +static void StopConfettiEffect(void) { u8 taskId; - if ((taskId = FindTaskIdByFunc(sub_8175364)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_DoConfettiEffect)) != 0xFF) DestroyTask(taskId); sub_8152254(); @@ -1437,7 +1438,7 @@ static void sub_81752F4(struct UnkStruct_81520A8 *structPtr) } } -static void sub_8175364(u8 taskId) +static void Task_DoConfettiEffect(u8 taskId) { u32 var = 0; u16 *data = gTasks[taskId].data; @@ -1475,7 +1476,7 @@ static void sub_8175364(u8 taskId) data[0] = 0xFF; break; case 0xFF: - sub_81752C0(); + StopConfettiEffect(); gSpecialVar_0x8004 = var; gSpecialVar_0x8005 = 0xFFFF; break; diff --git a/src/intro.c b/src/intro.c index 539b07a750b5..7c2303dcce5c 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1070,7 +1070,7 @@ void CB2_InitCopyrightScreenAfterBootup(void) ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); Save_LoadGameData(SAVE_NORMAL); - if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) Sav2_ClearSetDefault(); SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); InitHeap(gHeap, HEAP_SIZE); diff --git a/src/item.c b/src/item.c index 7b8b37c06678..61069ca7362a 100644 --- a/src/item.c +++ b/src/item.c @@ -14,6 +14,7 @@ #include "battle_pyramid_bag.h" #include "constants/items.h" #include "constants/hold_effects.h" +#include "constants/tv.h" extern u16 gUnknown_0203CF30[]; @@ -542,7 +543,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count) if (CurMapIsSecretBase() == TRUE) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BAG); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId); } diff --git a/src/librfu.c b/src/librfu.c deleted file mode 100644 index cdf14b693655..000000000000 --- a/src/librfu.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "global.h" -#include "librfu.h" - -struct RfuUnk1* gUnknown_03007870[4]; -struct RfuUnk2* gUnknown_03007880[4]; -struct RfuUnk5 *gUnknown_03007890; -u32 *gUnknown_03007894; -struct RfuUnk3* gUnknown_03007898; -u8 gUnknown_030078A0[12]; diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index c5aa25c10dee..732cc532d26d 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1,77 +1,2212 @@ -#include "global.h" -#include "main.h" - #include "librfu.h" -// Nonmatching, only register differences -/*u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam) +struct LLSFStruct +{ + u8 unk00; + u8 unk01; + u8 unk02; + u8 unk03; + u8 unk04; + u8 unk05; + u8 unk06; + u8 unk07; + u8 unk08; + u8 unk09; + u8 unk0A; + u8 unk0B; + u8 unk0C; + u16 unk0E; +}; + +struct RfuLocalStruct +{ + u8 unk00; + u8 unk01; + u8 unk02; + u8 unk03; + u8 unk04; + u8 unk05; + u16 unk06; +}; + +static void rfu_CB_defaultCallback(u8, u16); +static void rfu_CB_reset(u8, u16); +static void rfu_CB_configGameData(u8, u16); +static void rfu_CB_stopMode(u8, u16); +static void rfu_CB_startSearchChild(u8, u16); +static void rfu_CB_pollAndEndSearchChild(u8, u16); +static void rfu_CB_startSearchParent(u8, u16); +static void rfu_CB_pollSearchParent(u8, u16); +static void rfu_CB_pollConnectParent(u8, u16); +static void rfu_CB_pollConnectParent(u8, u16); +static void rfu_CB_disconnect(u8, u16); +static void rfu_CB_CHILD_pollConnectRecovery(u8, u16); +static void rfu_CB_sendData(__attribute__((unused)) u8, u16); +static void rfu_CB_sendData2(__attribute__((unused)) u8, u16); +static void rfu_CB_sendData3(u8, u16); +static void rfu_CB_recvData(u8, u16); +static void rfu_enableREQCallback(bool8); +static void rfu_STC_clearAPIVariables(void); +static void rfu_STC_readChildList(void); +static void rfu_STC_readParentCandidateList(void); +static void rfu_STC_REQ_callback(u8, u16); +static void rfu_STC_removeLinkData(u8, u8); +static void rfu_STC_fastCopy(const u8 **, u8 **, s32); +static void rfu_STC_clearLinkStatus(u8); +static void rfu_NI_checkCommFailCounter(void); +static u16 rfu_STC_setSendData_org(u8, u8, u8, const void *, u32); +static void rfu_constructSendLLFrame(void); +static u16 rfu_STC_NI_constructLLSF(u8, u8 **, struct NIComm *); +static u16 rfu_STC_UNI_constructLLSF(u8, u8 **); +static void rfu_STC_PARENT_analyzeRecvPacket(void); +static void rfu_STC_CHILD_analyzeRecvPacket(void); +static u16 rfu_STC_analyzeLLSF(u8, const u8 *, u16); +static void rfu_STC_UNI_receive(u8, const struct RfuLocalStruct *, const u8 *); +static void rfu_STC_NI_receive_Receiver(u8, const struct RfuLocalStruct *, const u8 *); +static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, __attribute__((unused)) const u8 *); +static void rfu_STC_NI_initSlot_asRecvDataEntity(u8, struct NIComm *); +static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *); + +struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX]; +struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX]; +struct RfuLinkStatus *gRfuLinkStatus; +struct RfuStatic *gRfuStatic; +struct RfuFixed *gRfuFixed; + +static const struct LLSFStruct llsf_struct[2] = { + { + 2, 14, 0, 10, 9, 5, 7, 2, + 0, 15, 1, 3, 3, 0x1f + }, { + 3, 22, 18, 14, 13, 9, 11, 3, + 15, 15, 1, 3, 3, 0x7f + } +}; + +static const char lib_ver[] = "RFU_V1026"; + +static const char str_checkMbootLL[] = "RFU-MBOOT"; + +u16 rfu_initializeAPI(struct RfuAPIBuffer *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p, bool8 copyInterruptToRam) { u16 i; - u16 *v13; - u16 *v12; - u16 num; + u16 *dst; + const u16 *src; + u16 r3; - if (((u32)unk0 & 0xF000000) == 0x2000000 && copyInterruptToRam) - { - return 2; - } - - if ((u32)unk0 & 3) - return 2; - - // Nintendo pls, just use a ternary for once + // is in EWRAM? + if (((u32)APIBuffer & 0xF000000) == 0x2000000 && copyInterruptToRam) + return ERR_RFU_API_BUFF_ADR; + // is not 4-byte aligned? + if ((u32)APIBuffer & 3) + return ERR_RFU_API_BUFF_ADR; if (copyInterruptToRam) { // An assert/debug print may have existed before, ie - // printf("%s %u < %u", "somefile.c:12345", unk1, num) + // printf("%s %u < %u", "somefile.c:12345", buffByteSize, num) // to push this into r3? - num = 0xe64; - if (unk1 < num) - return 1; + r3 = sizeof(struct RfuAPIBuffer); + if (buffByteSize < r3) + return ERR_RFU_API_BUFF_SIZE; + } + if (!copyInterruptToRam) + { + r3 = 0x504; // same issue as above + if (buffByteSize < r3) + return ERR_RFU_API_BUFF_SIZE; } + gRfuLinkStatus = &APIBuffer->linkStatus; + gRfuStatic = &APIBuffer->static_; + gRfuFixed = &APIBuffer->fixed; + gRfuSlotStatusNI[0] = &APIBuffer->NI[0]; + gRfuSlotStatusUNI[0] = &APIBuffer->UNI[0]; + for (i = 1; i < RFU_CHILD_MAX; ++i) + { + gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1]; + gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1]; + } + // TODO: Is it possible to fix the following 2 statements? + // It's equivalent to: + // gRfuFixed->STWIBuffer = &APIBuffer->intr; + // STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam); + gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1]; + STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam); + rfu_STC_clearAPIVariables(); + for (i = 0; i < RFU_CHILD_MAX; ++i) + { + gRfuSlotStatusNI[i]->recvBuffer = NULL; + gRfuSlotStatusNI[i]->recvBufferSize = 0; + gRfuSlotStatusUNI[i]->recvBuffer = NULL; + gRfuSlotStatusUNI[i]->recvBufferSize = 0; + } + // looks like a macro copying data + do + { + src = (const u16 *)((u32)&rfu_STC_fastCopy & 0xFFFFFFFE); + dst = gRfuFixed->fastCopyBuffer; + for (r3 = 0x2F; r3 != 0xFFFF; --r3) // copy rfu_STC_fastCopy function body to buffer + *dst++ = *src++; + gRfuFixed->fastCopyPtr = (void *)gRfuFixed->fastCopyBuffer + 1; + } while (0); + return 0; +} + +static void rfu_STC_clearAPIVariables(void) +{ + u16 IMEBackup = REG_IME; + u8 i, r4; + + REG_IME = 0; + r4 = gRfuStatic->flags; + CpuFill16(0, gRfuStatic, sizeof(struct RfuStatic)); + gRfuStatic->flags = r4 & 8; + CpuFill16(0, gRfuLinkStatus, sizeof(struct RfuLinkStatus)); + gRfuLinkStatus->watchInterval = 4; + gRfuStatic->nowWatchInterval = 0; + gRfuLinkStatus->parentChild = MODE_NEUTRAL; + rfu_clearAllSlot(); + gRfuStatic->SCStartFlag = 0; + for (i = 0; i < NELEMS(gRfuStatic->cidBak); ++i) + gRfuStatic->cidBak[i] = 0; + REG_IME = IMEBackup; +} - if (copyInterruptToRam == FALSE) +void rfu_REQ_PARENT_resumeRetransmitAndChange(void) +{ + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_ResumeRetransmitAndChangeREQ(); +} + +u16 rfu_UNI_PARENT_getDRAC_ACK(u8 *ackFlag) +{ + struct RfuIntrStruct *buf; + + *ackFlag = 0; + if (gRfuLinkStatus->parentChild != MODE_PARENT) + return ERR_MODE_NOT_PARENT; + buf = rfu_getSTWIRecvBuffer(); + switch (buf->rxPacketAlloc.rfuPacket8.data[0]) + { + case 40: + case 54: + if (buf->rxPacketAlloc.rfuPacket8.data[1] == 0) + *ackFlag = gRfuLinkStatus->connSlotFlag; + else + *ackFlag = buf->rxPacketAlloc.rfuPacket8.data[4]; + return 0; + default: + return ERR_REQ_CMD_ID; + } +} + +void rfu_setTimerInterrupt(u8 timerNo, IntrFunc *timerIntrTable_p) +{ + STWI_init_timer(timerIntrTable_p, timerNo); +} + +struct RfuIntrStruct *rfu_getSTWIRecvBuffer(void) +{ + return gRfuFixed->STWIBuffer; +} + +void rfu_setMSCCallback(void (*callback)(u16 reqCommandId)) +{ + STWI_set_Callback_S(callback); +} + +void rfu_setREQCallback(void (*callback)(u16 reqCommandId, u16 reqResult)) +{ + gRfuFixed->reqCallback = callback; + rfu_enableREQCallback(callback != NULL); +} + +static void rfu_enableREQCallback(bool8 enable) +{ + if (enable) + gRfuStatic->flags |= 8; + else + gRfuStatic->flags &= 0xF7; +} + +static void rfu_STC_REQ_callback(u8 r5, u16 reqResult) +{ + STWI_set_Callback_M(rfu_CB_defaultCallback); + gRfuStatic->reqResult = reqResult; + if (gRfuStatic->flags & 8) + gRfuFixed->reqCallback(r5, reqResult); +} + +static void rfu_CB_defaultCallback(u8 r0, u16 reqResult) +{ + s32 r5; + u8 i; + + if (r0 == 0xFF) { - num = 0x504; // same as above, this should be r3 not r0 - if (unk1 < num) + if (gRfuStatic->flags & 8) + gRfuFixed->reqCallback(r0, reqResult); + r5 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; + for (i = 0; i < RFU_CHILD_MAX; ++i) + if ((r5 >> i) & 1) + rfu_STC_removeLinkData(i, 1); + gRfuLinkStatus->parentChild = MODE_NEUTRAL; + } +} + +u16 rfu_waitREQComplete(void) +{ + STWI_poll_CommandEnd(); + return gRfuStatic->reqResult; +} + +void rfu_REQ_RFUStatus(void) +{ + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_SystemStatusREQ(); +} + +u16 rfu_getRFUStatus(u8 *rfuState) +{ + if (gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[0] != 0x93) + return ERR_REQ_CMD_ID; + if (STWI_poll_CommandEnd() == 0) + *rfuState = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[7]; + else + *rfuState = 0xFF; + return 0; +} + +u16 rfu_MBOOT_CHILD_inheritanceLinkStatus(void) +{ + const char *s1 = str_checkMbootLL; + char *s2 = (char *)0x30000F0; + u16 checksum; + u16 *r2; + u8 i; + + while (*s1 != '\0') + if (*s1++ != *s2++) return 1; + r2 = (u16 *)0x3000000; + checksum = 0; + for (i = 0; i < 90; ++i) + checksum += *r2++; + if (checksum != *(u16 *)0x30000FA) + return 1; + CpuCopy16((u16 *)0x3000000, gRfuLinkStatus, sizeof(struct RfuLinkStatus)); + gRfuStatic->flags |= 0x80; + return 0; +} + +void rfu_REQ_stopMode(void) +{ + vu32 *timerReg; + + if (REG_IME == 0) + { + rfu_STC_REQ_callback(61, 6); + gSTWIStatus->error = ERR_REQ_CMD_IME_DISABLE; } - gUnknown_03007890 = unk0; - gUnknown_03007894 = unk0 + (0xB4 / sizeof(u32)); - gUnknown_03007898 = (struct RfuUnk3*)(unk0 + (0xDC / sizeof(u32))); - gUnknown_03007880[0] = (struct RfuUnk2*)(unk0 + (0x1BC / sizeof(u32))); - gUnknown_03007870[0] = (struct RfuUnk1*)(unk0 + (0x37C / sizeof(u32))); + else + { + AgbRFU_SoftReset(); + rfu_STC_clearAPIVariables(); + if (AgbRFU_checkID(8) == 0x8001) + { + timerReg = ®_TMCNT(gSTWIStatus->timerSelect); + *timerReg = 0; + *timerReg = (TIMER_ENABLE | TIMER_1024CLK) << 16; + while (*timerReg << 16 < 262 << 16) + ; + *timerReg = 0; + STWI_set_Callback_M(rfu_CB_stopMode); + STWI_send_StopModeREQ(); + } + else + { + REG_SIOCNT = SIO_MULTI_MODE; + rfu_STC_REQ_callback(61, 0); + } + } +} - for (i = 1; i < 4; i++, num) +static void rfu_CB_stopMode(u8 a1, u16 reqResult) +{ + if (reqResult == 0) + REG_SIOCNT = SIO_MULTI_MODE; + rfu_STC_REQ_callback(a1, reqResult); +} + +u32 rfu_REQBN_softReset_and_checkID(void) +{ + u32 r2; + + if (REG_IME == 0) + return ERR_ID_CHECK_IME_DISABLE; + AgbRFU_SoftReset(); + rfu_STC_clearAPIVariables(); + if ((r2 = AgbRFU_checkID(30)) == 0) + REG_SIOCNT = SIO_MULTI_MODE; + return r2; +} + +void rfu_REQ_reset(void) +{ + STWI_set_Callback_M(rfu_CB_reset); + STWI_send_ResetREQ(); +} + +static void rfu_CB_reset(u8 a1, u16 reqResult) +{ + if (reqResult == 0) + rfu_STC_clearAPIVariables(); + rfu_STC_REQ_callback(a1, reqResult); +} + +void rfu_REQ_configSystem(u16 availSlotFlag, u8 maxMFrame, u8 mcTimer) +{ + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_SystemConfigREQ((availSlotFlag & AVAIL_SLOT1) | 0x3C, maxMFrame, mcTimer); + if (mcTimer == 0) { - gUnknown_03007880[i] = (struct RfuUnk2*)&gUnknown_03007880[i-1]->unk_70; - gUnknown_03007870[i] = (struct RfuUnk1*)&gUnknown_03007870[i-1]->unk_1c; + gRfuStatic->unk_1a = 1; + } + else + { + u16 IMEBackup = REG_IME; + + REG_IME = 0; + gRfuStatic->unk_1a = Div(600, mcTimer); + REG_IME = IMEBackup; } +} + +void rfu_REQ_configGameData(u8 mbootFlag, u16 serialNo, const u8 *gname, const u8 *uname) +{ + u8 sp[16]; + u8 i; + u8 r3; + const u8 *gnameBackup = gname; + const u8 *unameBackup; + + sp[0] = serialNo; + sp[1] = serialNo >> 8; + if (mbootFlag != 0) + sp[1] = (serialNo >> 8) | 0x80; + for (i = 2; i < 15; ++i) + sp[i] = *gname++; + r3 = 0; + unameBackup = uname; + for (i = 0; i < 8; ++i) + { + r3 += *unameBackup++; + r3 += *gnameBackup++; + } + sp[15] = ~r3; + if (mbootFlag != 0) + sp[14] = 0; + STWI_set_Callback_M(rfu_CB_configGameData); + STWI_send_GameConfigREQ(sp, uname); +} + +static void rfu_CB_configGameData(u8 ip, u16 r7) +{ + s32 r2, r3; + u8 *r4; + u8 i; + u8 *r1; + + if (r7 == 0) + { + r1 = gSTWIStatus->txPacket->rfuPacket8.data; + r2 = gRfuLinkStatus->my.serialNo = r1[4]; + gRfuLinkStatus->my.serialNo = (r1[5] << 8) | r2; + r4 = &r1[6]; + if (gRfuLinkStatus->my.serialNo & 0x8000) + { + gRfuLinkStatus->my.serialNo = gRfuLinkStatus->my.serialNo ^ 0x8000; + gRfuLinkStatus->my.mbootFlag = 1; + } + else + { + gRfuLinkStatus->my.mbootFlag = 0; + } + for (i = 0; i < RFU_GAME_NAME_LENGTH; ++i) + gRfuLinkStatus->my.gname[i] = *r4++; + ++r4; + for (i = 0; i < RFU_USER_NAME_LENGTH; ++i) + gRfuLinkStatus->my.uname[i] = *r4++; + } + rfu_STC_REQ_callback(ip, r7); +} + +void rfu_REQ_startSearchChild(void) +{ + u16 r1; + + for (r1 = 0; r1 < 4; ++r1) + gRfuStatic->lsFixedCount[r1] = 0; + STWI_set_Callback_M(rfu_CB_defaultCallback); + STWI_send_SystemStatusREQ(); + r1 = STWI_poll_CommandEnd(); + if (r1 == 0) + { + if (gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[7] == 0) + rfu_STC_clearLinkStatus(1); + } + else + { + rfu_STC_REQ_callback(25, r1); + } + STWI_set_Callback_M(rfu_CB_startSearchChild); + STWI_send_SC_StartREQ(); +} + +static void rfu_CB_startSearchChild(u8 r3, u16 reqResult) +{ + if (reqResult == 0) + gRfuStatic->SCStartFlag = 1; + rfu_STC_REQ_callback(r3, reqResult); +} + +static void rfu_STC_clearLinkStatus(u8 r4) +{ + u8 i; - gUnknown_03007898->unk_dc = (u32)&gUnknown_03007870[3]->unk_1c; - STWI_init_all(&gUnknown_03007870[3]->unk_1c, interrupt, copyInterruptToRam); - rfu_STC_clearAPIVariables(); + rfu_clearAllSlot(); + if (r4 != 0) + { + CpuFill16(0, gRfuLinkStatus->partner, sizeof(gRfuLinkStatus->partner)); + gRfuLinkStatus->findParentCount = 0; + } + for (i = 0; i < RFU_CHILD_MAX; ++i) + gRfuLinkStatus->strength[i] = 0; + gRfuLinkStatus->connCount = 0; + gRfuLinkStatus->connSlotFlag = 0; + gRfuLinkStatus->linkLossSlotFlag = 0; + gRfuLinkStatus->getNameFlag = 0; +} + +void rfu_REQ_pollSearchChild(void) +{ + STWI_set_Callback_M(rfu_CB_pollAndEndSearchChild); + STWI_send_SC_PollingREQ(); +} - for (i = 0; i < 4; i++) +void rfu_REQ_endSearchChild(void) +{ + STWI_set_Callback_M(rfu_CB_pollAndEndSearchChild); + STWI_send_SC_EndREQ(); +} + +static void rfu_CB_pollAndEndSearchChild(u8 r4, u16 reqResult) +{ + if (reqResult == 0) + rfu_STC_readChildList(); + if (r4 == 26) { - gUnknown_03007880[i]->unk_68 = 0; - gUnknown_03007880[i]->unk_6c = 0; - gUnknown_03007870[i]->unk_14 = 0; - gUnknown_03007870[i]->unk_18 = 0; + if (gRfuLinkStatus->my.id == 0) + { + STWI_set_Callback_M(rfu_CB_defaultCallback); + STWI_send_SystemStatusREQ(); + if (STWI_poll_CommandEnd() == 0) + gRfuLinkStatus->my.id = *(u16 *)&gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.data[0]; + } } + else if (r4 == 27) + { + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL) + gRfuLinkStatus->my.id = 0; + gRfuStatic->SCStartFlag = 0; + } + rfu_STC_REQ_callback(r4, reqResult); +} - // Not matching, register differences - v12 = (u16*)((u32)&sub_82E53F4 & ~1); - v13 = (u16*)gUnknown_03007898->unk_8; - - for (i = 47; i != 0xFFFF; i--) +static void rfu_STC_readChildList(void) +{ + u32 r5; + u8 r8 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[1]; + u8 *r4; + u8 i; + u8 r2; + + for (r4 = &gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[4]; + r8 != 0; + r4 += 4) { - *v13 = *v12; - ++v12; - ++v13; + r2 = r4[2]; + if (r2 < RFU_CHILD_MAX && !((gRfuLinkStatus->connSlotFlag >> r2) & 1) && !((gRfuLinkStatus->linkLossSlotFlag >> r2) & 1)) + { + gRfuStatic->lsFixedCount[r2] = 0xF0; + gRfuLinkStatus->strength[r2] = 0x10; + gRfuLinkStatus->connSlotFlag |= 1 << r2; + ++gRfuLinkStatus->connCount; + gRfuLinkStatus->partner[r2].id = *(u16 *)r4; + gRfuLinkStatus->partner[r2].slot = r2; + gRfuLinkStatus->parentChild = MODE_PARENT; + gRfuStatic->flags &= 0x7F; + gRfuStatic->cidBak[r2] = gRfuLinkStatus->partner[r2].id; + } + --r8; } +} + +void rfu_REQ_startSearchParent(void) +{ + STWI_set_Callback_M(rfu_CB_startSearchParent); + STWI_send_SP_StartREQ(); +} + +static void rfu_CB_startSearchParent(u8 r5, u16 reqResult) +{ + if (reqResult == 0) + rfu_STC_clearLinkStatus(0); + rfu_STC_REQ_callback(r5, reqResult); +} + +void rfu_REQ_pollSearchParent(void) +{ + STWI_set_Callback_M(rfu_CB_pollSearchParent); + STWI_send_SP_PollingREQ(); +} + +static void rfu_CB_pollSearchParent(u8 r5, u16 reqResult) +{ + if (reqResult == 0) + rfu_STC_readParentCandidateList(); + rfu_STC_REQ_callback(r5, reqResult); +} + +void rfu_REQ_endSearchParent(void) +{ + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_SP_EndREQ(); +} + +static void rfu_STC_readParentCandidateList(void) +{ + u8 r7, r6, r5, r4, r3; + u8 *r1, *r2; + struct RfuTgtData *r4_; + + CpuFill16(0, gRfuLinkStatus->partner, sizeof(gRfuLinkStatus->partner)); + r2 = &gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[0]; + r7 = r2[1]; + r2 += 4; + gRfuLinkStatus->findParentCount = 0; + for (r6 = 0; r6 < 4 && r7 != 0; ++r6) + { + r7 -= 7; + r1 = r2 + 6; + r2 += 19; + r5 = ~*r2; + ++r2; + r4 = 0; + for (r3 = 0; r3 < 8; ++r3) + { + r4 += *r2++; + r4 += *r1++; + } + if (r4 == r5) + { + r2 -= 28; + r4_ = &gRfuLinkStatus->partner[gRfuLinkStatus->findParentCount]; + r4_->id = *(u16 *)r2; + r2 += 2; + r4_->slot = *r2; + r2 += 2; + r4_->serialNo = *(u16 *)r2 & 0x7FFF; + if (*(u16 *)r2 & 0x8000) + r4_->mbootFlag = 1; + else + r4_->mbootFlag = 0; + r2 += 2; + for (r3 = 0; r3 < RFU_GAME_NAME_LENGTH; ++r3) + r4_->gname[r3] = *r2++; + ++r2; + for (r3 = 0; r3 < RFU_USER_NAME_LENGTH; ++r3) + r4_->uname[r3] = *r2++; + ++gRfuLinkStatus->findParentCount; + } + } +} + +void rfu_REQ_startConnectParent(u16 pid) +{ + u16 r3 = 0; + u8 i; + for (i = 0; i < RFU_CHILD_MAX && gRfuLinkStatus->partner[i].id != pid; ++i) + ; + if (i == 4) + r3 = 256; + if (r3 == 0) + { + gRfuStatic->tryPid = pid; + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_CP_StartREQ(pid); + } + else + { + rfu_STC_REQ_callback(31, r3); + } +} + +void rfu_REQ_pollConnectParent(void) +{ + STWI_set_Callback_M(rfu_CB_pollConnectParent); + STWI_send_CP_PollingREQ(); +} + +static void rfu_CB_pollConnectParent(u8 sp24, u16 sp28) +{ + u16 id; + u8 slot; + u8 r2, r5; + struct RfuTgtData *r9; + struct RfuTgtData sp; + + if (sp28 == 0) + { + id = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.data[0]; + slot = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[6]; + if (gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[7] == 0) + { + r2 = 1 << slot; + if (!(r2 & gRfuLinkStatus->connSlotFlag)) + { + gRfuLinkStatus->connSlotFlag |= r2; + gRfuLinkStatus->linkLossSlotFlag &= ~r2; + gRfuLinkStatus->my.id = id; + ++gRfuLinkStatus->connCount; + gRfuLinkStatus->parentChild = MODE_CHILD; + gRfuStatic->flags |= 0x80; + for (r5 = 0; r5 < RFU_CHILD_MAX; ++r5) + { + if (gRfuLinkStatus->partner[r5].id == gRfuStatic->tryPid) + { + if (gRfuLinkStatus->findParentCount != 0) + { + r9 = &sp; + CpuCopy16(&gRfuLinkStatus->partner[r5], &sp, sizeof(struct RfuTgtData)); + CpuFill16(0, gRfuLinkStatus->partner, sizeof(gRfuLinkStatus->partner)); + gRfuLinkStatus->findParentCount = 0; + } + else + { + r9 = &gRfuLinkStatus->partner[r5]; + } + break; + } + } + if (r5 < RFU_CHILD_MAX) + { + CpuCopy16(r9, &gRfuLinkStatus->partner[slot], sizeof(struct RfuTgtData)); + gRfuLinkStatus->partner[slot].slot = slot; + } + } + } + } + rfu_STC_REQ_callback(sp24, sp28); +} + +u16 rfu_getConnectParentStatus(u8 *status, u8 *connectSlotNo) +{ + u8 r0, *r2; + + *status = 0xFF; + r2 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data; + r0 = r2[0] + 96; + if (r0 <= 1) + { + r2 += 6; + *connectSlotNo = r2[0]; + *status = r2[1]; + return 0; + } + return ERR_REQ_CMD_ID; +} + +void rfu_REQ_endConnectParent(void) +{ + STWI_set_Callback_M(rfu_CB_pollConnectParent); + STWI_send_CP_EndREQ(); + if (gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[6] < 4) + gRfuStatic->linkEmergencyFlag[gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[6]] = 0; +} + +u16 rfu_syncVBlank(void) +{ + u8 r3, r4; + s32 r5; + + rfu_NI_checkCommFailCounter(); + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL) + return 0; + if (gRfuStatic->nowWatchInterval != 0) + --gRfuStatic->nowWatchInterval; + r3 = rfu_getMasterSlave(); + if (!(gRfuStatic->flags & 2)) + { + if (r3 == 0) + { + gRfuStatic->flags |= 4; + gRfuStatic->watchdogTimer = 360; + } + } + else if (r3 != 0) + { + gRfuStatic->flags &= 0xFB; + } + if (r3 != 0) + gRfuStatic->flags &= 0xFD; + else + gRfuStatic->flags |= 2; + if (!(gRfuStatic->flags & 4)) + return 0; + if (gRfuStatic->watchdogTimer == 0) + { + gRfuStatic->flags &= 0xFB; + r5 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; + for (r4 = 0; r4 < RFU_CHILD_MAX; ++r4) + if ((r5 >> r4) & 1) + rfu_STC_removeLinkData(r4, 1); + gRfuLinkStatus->parentChild = MODE_NEUTRAL; + return 1; + } + --gRfuStatic->watchdogTimer; + return 0; +} + +u16 rfu_REQBN_watchLink(u16 reqCommandId, u8 *bmLinkLossSlot, u8 *linkLossReason, u8 *parentBmLinkRecoverySlot) +{ + u8 sp08 = 0; + u8 sp0C = 0; + u8 i; + s32 sp10, sp14; + u8 *r2; + u8 r9, r6, r3, connSlotFlag, r0; + + *bmLinkLossSlot = 0; + *linkLossReason = REASON_DISCONNECTED; + *parentBmLinkRecoverySlot = 0; + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL || gSTWIStatus->msMode == 0) + return 0; + if (gRfuStatic->flags & 4) + gRfuStatic->watchdogTimer = 360; + if (gRfuStatic->nowWatchInterval == 0) + { + gRfuStatic->nowWatchInterval = 4; + sp08 = 1; + } + if ((u8)reqCommandId == 41) + { + u8 *r1 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data; - gUnknown_03007898->unk_4 = (u32)(&gUnknown_03007898->unk_8[1]); - + *bmLinkLossSlot = r1[4]; + *linkLossReason = r1[5]; + if (*linkLossReason == REASON_LINK_LOSS) + *bmLinkLossSlot = gRfuLinkStatus->connSlotFlag; + sp08 = 2; + } + else + { + if (reqCommandId == 310) + { + r6 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[5]; + r6 ^= gRfuLinkStatus->connSlotFlag; + *bmLinkLossSlot = r6 & gRfuLinkStatus->connSlotFlag; + *linkLossReason = REASON_LINK_LOSS; + for (i = 0; i < RFU_CHILD_MAX; ++i) + { + if ((*bmLinkLossSlot >> i) & 1) + { + gRfuLinkStatus->strength[i] = 0; + rfu_STC_removeLinkData(i, 0); + } + } + } + if (sp08 == 0) + return 0; + } + sp10 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.command; + sp14 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.data[0]; + STWI_set_Callback_M(rfu_CB_defaultCallback); + STWI_send_LinkStatusREQ(); + sp0C = STWI_poll_CommandEnd(); + if (sp0C == 0) + { + r2 = &gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[4]; + for (i = 0; i < RFU_CHILD_MAX; ++i) + gRfuLinkStatus->strength[i] = *r2++; + r9 = 0; + i = 0; + } + else + { + rfu_STC_REQ_callback(17, sp0C); + return sp0C; + } + for (; i < RFU_CHILD_MAX; ++i) + { + if (gRfuStatic->lsFixedCount[i] != 0) + { + gRfuStatic->lsFixedCount[i] -= 4; + if (gRfuLinkStatus->strength[i] <= 15) + gRfuLinkStatus->strength[i] = 16; + } + r6 = 1 << i; + if (sp0C == 0) + { + if (sp08 == 1 && (gRfuLinkStatus->connSlotFlag & r6)) + { + if (gRfuLinkStatus->strength[i] == 0) + { + if (gRfuLinkStatus->parentChild == MODE_PARENT) + { + ++gRfuStatic->linkEmergencyFlag[i]; + if (gRfuStatic->linkEmergencyFlag[i] > 3) + { + *bmLinkLossSlot |= r6; + *linkLossReason = sp08; // why not directly use REASON_LINK_LOSS? + } + } + else + { + STWI_send_SystemStatusREQ(); + if (STWI_poll_CommandEnd() == 0) + { + if (gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[7] == 0) + { + *bmLinkLossSlot |= r6; + *linkLossReason = sp08; // why not directly use REASON_LINK_LOSS? + } + else + { + if (++gRfuStatic->linkEmergencyFlag[i] > gRfuStatic->unk_1a) + { + gRfuStatic->linkEmergencyFlag[i] = 0; + STWI_send_DisconnectREQ(gRfuLinkStatus->connSlotFlag); + STWI_poll_CommandEnd(); + *bmLinkLossSlot |= r6; + *linkLossReason = sp08; // why not directly use REASON_LINK_LOSS? + } + } + } + } + } + else + { + gRfuStatic->linkEmergencyFlag[i] = sp0C; // why not directly use 0? + } + } + if (gRfuLinkStatus->parentChild == MODE_PARENT && gRfuLinkStatus->strength[i] != 0) + { + if (r6 & gRfuLinkStatus->linkLossSlotFlag) + { + if (gRfuLinkStatus->strength[i] > 10) + { + *parentBmLinkRecoverySlot |= r6; + gRfuLinkStatus->connSlotFlag |= r6; + gRfuLinkStatus->linkLossSlotFlag &= ~r6; + ++gRfuLinkStatus->connCount; + gRfuStatic->linkEmergencyFlag[i] = 0; + } + else + { + gRfuLinkStatus->strength[i] = 0; + } + } + else + { + if (!((gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag) & r6)) + { + STWI_send_SlotStatusREQ(); + STWI_poll_CommandEnd(); + r2 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data; + r3 = r2[1] - 1; + for (r2 += 8; r3 != 0; r2 += 4, --r3) + { + u16 r4 = *(u16 *)r2; + + if (r2[2] == i && r4 == gRfuStatic->cidBak[i]) + { + r9 |= 1 << i; + break; + } + } + } + } + } + } + connSlotFlag = gRfuLinkStatus->connSlotFlag; + r0 = *bmLinkLossSlot; + r0 &= connSlotFlag; + if (r6 & r0) + rfu_STC_removeLinkData(i, 0); + } + if (r9 != 0) + { + STWI_send_DisconnectREQ(r9); + STWI_poll_CommandEnd(); + } + // equivalent to: + // gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.command = sp10; + *(u32 *)gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data = sp10; + gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.data[0] = sp14; + return 0; +} + +static void rfu_STC_removeLinkData(u8 r7, u8 r12) +{ + u8 r5 = 1 << r7; + s32 r6; + + gRfuStatic->lsFixedCount[r7] = 0; + if ((gRfuLinkStatus->connSlotFlag & r5) && gRfuLinkStatus->connCount != 0) + --gRfuLinkStatus->connCount; + gRfuLinkStatus->connSlotFlag &= r6 = ~r5; + gRfuLinkStatus->linkLossSlotFlag |= r5; + if ((*(u32 *)gRfuLinkStatus & 0xFF00FF) == 0) + gRfuLinkStatus->parentChild = MODE_NEUTRAL; + if (r12 != 0) + { + CpuFill16(0, &gRfuLinkStatus->partner[r7], sizeof(struct RfuTgtData)); + gRfuLinkStatus->linkLossSlotFlag &= r6; + gRfuLinkStatus->getNameFlag &= r6; + gRfuLinkStatus->strength[r7] = 0; + } +} + +void rfu_REQ_disconnect(u8 bmDisconnectSlot) +{ + u16 r1; + + if ((gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag) & bmDisconnectSlot) + { + gRfuStatic->recoveryBmSlot = bmDisconnectSlot; + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL && gRfuStatic->flags & 0x80) + { + if (gRfuLinkStatus->linkLossSlotFlag & bmDisconnectSlot) + rfu_CB_disconnect(48, 0); + } + else if (gRfuStatic->SCStartFlag + && (STWI_set_Callback_M(rfu_CB_defaultCallback), + STWI_send_SC_EndREQ(), + (r1 = STWI_poll_CommandEnd()) != 0)) + { + rfu_STC_REQ_callback(27, r1); + } + else + { + STWI_set_Callback_M(rfu_CB_disconnect); + STWI_send_DisconnectREQ(bmDisconnectSlot); + } + } +} + +static void rfu_CB_disconnect(u8 r6, u16 r5) +{ + u8 r4, r0; + + if (r5 == 3 && gRfuLinkStatus->parentChild == MODE_CHILD) + { + STWI_set_Callback_M(rfu_CB_defaultCallback); + STWI_send_SystemStatusREQ(); + if (STWI_poll_CommandEnd() == 0 && gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[7] == 0) + r5 = 0; + } + gRfuStatic->recoveryBmSlot &= gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; + gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[8] = gRfuStatic->recoveryBmSlot; + if (r5 == 0) + { + for (r4 = 0; r4 < RFU_CHILD_MAX; ++r4) + { + r0 = 1 << r4; + if (r0 & gRfuStatic->recoveryBmSlot) + rfu_STC_removeLinkData(r4, 1); + } + } + if ((gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag) == 0) + gRfuLinkStatus->parentChild = MODE_NEUTRAL; + rfu_STC_REQ_callback(r6, r5); + if (gRfuStatic->SCStartFlag) + { + STWI_set_Callback_M(rfu_CB_defaultCallback); + STWI_send_SC_StartREQ(); + r5 = STWI_poll_CommandEnd(); + if (r5 != 0) + rfu_STC_REQ_callback(25, r5); + } +} + +void rfu_REQ_CHILD_startConnectRecovery(u8 bmRecoverySlot) +{ + u8 i; + + gRfuStatic->recoveryBmSlot = bmRecoverySlot; + for (i = 0; i < RFU_CHILD_MAX && !((bmRecoverySlot >> i) & 1); ++i) + ; + STWI_set_Callback_M(rfu_STC_REQ_callback); + // if i == 4, gRfuLinkStatus->partner[i].id becomes gRfuLinkStatus->my.id + STWI_send_CPR_StartREQ(gRfuLinkStatus->partner[i].id, gRfuLinkStatus->my.id, bmRecoverySlot); +} + +void rfu_REQ_CHILD_pollConnectRecovery(void) +{ + STWI_set_Callback_M(rfu_CB_CHILD_pollConnectRecovery); + STWI_send_CPR_PollingREQ(); +} + +static void rfu_CB_CHILD_pollConnectRecovery(u8 r8, u16 r7) +{ + u8 r3, r4; + struct RfuLinkStatus *r2; + + if (r7 == 0 && gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[4] == 0 && gRfuStatic->recoveryBmSlot) + { + gRfuLinkStatus->parentChild = MODE_CHILD; + for (r4 = 0; r4 < NELEMS(gRfuStatic->linkEmergencyFlag); ++r4) + { + r3 = 1 << r4; + r2 = gRfuLinkStatus; // ??? + if (gRfuStatic->recoveryBmSlot & r3 & r2->linkLossSlotFlag) + { + gRfuLinkStatus->connSlotFlag |= r3; + gRfuLinkStatus->linkLossSlotFlag &= ~r3; + ++gRfuLinkStatus->connCount; + gRfuStatic->linkEmergencyFlag[r4] = 0; + } + } + gRfuStatic->recoveryBmSlot = 0; + } + rfu_STC_REQ_callback(r8, r7); +} + +u16 rfu_CHILD_getConnectRecoveryStatus(u8 *status) +{ + u8 r0; + + *status = 0xFF; + r0 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[0] + 77; + if (r0 <= 1) + { + *status = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[4]; + return 0; + } + return ERR_REQ_CMD_ID; +} + +void rfu_REQ_CHILD_endConnectRecovery(void) +{ + STWI_set_Callback_M(rfu_CB_CHILD_pollConnectRecovery); + STWI_send_CPR_EndREQ(); +} + +static void rfu_STC_fastCopy(const u8 **src_p, u8 **dst_p, s32 size) +{ + const u8 *src = *src_p; + u8 *dst = *dst_p; + s32 i; + + for (i = size - 1; i != -1; --i) + *dst++ = *src++; + *src_p = src; + *dst_p = dst; +} + +void rfu_REQ_changeMasterSlave(void) +{ + if (STWI_read_status(1) == 1) + { + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_MS_ChangeREQ(); + } + else + { + rfu_STC_REQ_callback(39, 0); + } +} + +bool8 rfu_getMasterSlave(void) +{ + bool8 masterSlave = STWI_read_status(1); + + if (masterSlave == AGB_CLK_MASTER) + { + if (gSTWIStatus->unk_2c) + { + if (gSTWIStatus->reqActiveCommand == 39 + || gSTWIStatus->reqActiveCommand == 37 + || gSTWIStatus->reqActiveCommand == 55) + masterSlave = AGB_CLK_SLAVE; + } + } + return masterSlave; +} + +void rfu_clearAllSlot(void) +{ + u16 i; + u16 IMEBackup = REG_IME; + + REG_IME = 0; + for (i = 0; i < RFU_CHILD_MAX; ++i) + { + CpuFill16(0, gRfuSlotStatusNI[i], 2 * sizeof(struct NIComm)); + CpuFill16(0, gRfuSlotStatusUNI[i], sizeof(struct UNISend) + sizeof(struct UNIRecv)); + gRfuLinkStatus->remainLLFrameSizeChild[i] = 16; + } + gRfuLinkStatus->remainLLFrameSizeParent = LLF_P_SIZE; + gRfuLinkStatus->sendSlotNIFlag = 0; + gRfuLinkStatus->recvSlotNIFlag = 0; + gRfuLinkStatus->sendSlotUNIFlag = 0; + gRfuStatic->recvRenewalFlag = 0; + REG_IME = IMEBackup; +} + +static void rfu_STC_releaseFrame(u8 r5, u8 r3, struct NIComm *r4) +{ + + if (!(gRfuStatic->flags & 0x80)) + { + if (r3 == 0) + gRfuLinkStatus->remainLLFrameSizeParent += r4->payloadSize; + gRfuLinkStatus->remainLLFrameSizeParent += 3; + } + else + { + if (r3 == 0) + gRfuLinkStatus->remainLLFrameSizeChild[r5] += r4->payloadSize; + gRfuLinkStatus->remainLLFrameSizeChild[r5] += 2; + } +} + +u16 rfu_clearSlot(u8 connTypeFlag, u8 slotStatusIndex) +{ + u16 r10, r3, r1; + struct NIComm *r4; + + if (slotStatusIndex >= RFU_CHILD_MAX) + return ERR_SLOT_NO; + if (!(connTypeFlag & (TYPE_UNI_SEND | TYPE_UNI_RECV | TYPE_NI_SEND | TYPE_NI_RECV))) + return ERR_COMM_TYPE; + r10 = REG_IME; + REG_IME = 0; + if (connTypeFlag & (TYPE_NI_SEND | TYPE_NI_RECV)) + { + for (r3 = 0; r3 < 2; ++r3) + { + r4 = NULL; + if (r3 == 0) + { + if (connTypeFlag & TYPE_NI_SEND) + { + r4 = &gRfuSlotStatusNI[slotStatusIndex]->send; + gRfuLinkStatus->sendSlotNIFlag &= ~r4->bmSlotOrg; + } + } + else + { + if (connTypeFlag & TYPE_NI_RECV) + { + r4 = &gRfuSlotStatusNI[slotStatusIndex]->recv; + gRfuLinkStatus->recvSlotNIFlag &= ~(1 << slotStatusIndex); + } + } + if (r4 != NULL) + { + if (r4->state & SLOT_BUSY_FLAG) + { + rfu_STC_releaseFrame(slotStatusIndex, r3, r4); + for (r1 = 0; r1 < RFU_CHILD_MAX; ++r1) + if ((r4->bmSlotOrg >> r1) & 1) + r4->failCounter = 0; + } + CpuFill16(0, r4, sizeof(struct NIComm)); + } + } + } + if (connTypeFlag & TYPE_UNI_SEND) + { + struct RfuSlotStatusUNI *r3 = gRfuSlotStatusUNI[slotStatusIndex]; + + if (r3->send.state & SLOT_BUSY_FLAG) + { + if (!(gRfuStatic->flags & 0x80)) + gRfuLinkStatus->remainLLFrameSizeParent += 3 + (u8)r3->send.payloadSize; + else + gRfuLinkStatus->remainLLFrameSizeChild[slotStatusIndex] += 2 + (u8)r3->send.payloadSize; + gRfuLinkStatus->sendSlotUNIFlag &= ~r3->send.bmSlot; + } + CpuFill16(0, &r3->send, sizeof(struct UNISend)); + } + if (connTypeFlag & TYPE_UNI_RECV) + { + CpuFill16(0, &gRfuSlotStatusUNI[slotStatusIndex]->recv, sizeof(struct UNIRecv)); + } + REG_IME = r10; + return 0; +} + +u16 rfu_setRecvBuffer(u8 connType, u8 slotNo, void *buffer, u32 buffSize) +{ + if (slotNo >= RFU_CHILD_MAX) + return ERR_SLOT_NO; + if (connType & TYPE_NI) + { + gRfuSlotStatusNI[slotNo]->recvBuffer = buffer; + gRfuSlotStatusNI[slotNo]->recvBufferSize = buffSize; + } + else if (!(connType & TYPE_UNI)) + { + return ERR_COMM_TYPE; + } + else + { + gRfuSlotStatusUNI[slotNo]->recvBuffer = buffer; + gRfuSlotStatusUNI[slotNo]->recvBufferSize = buffSize; + } + return 0; +} + +u16 rfu_NI_setSendData(u8 bmSendSlot, u8 subFrameSize, const void *src, u32 size) +{ + return rfu_STC_setSendData_org(32, bmSendSlot, subFrameSize, src, size); +} + +u16 rfu_UNI_setSendData(u8 bmSendSlot, const void *src, u8 size) +{ + u8 subFrameSize; + + if (gRfuLinkStatus->parentChild == MODE_PARENT) + subFrameSize = size + 3; + else + subFrameSize = size + 2; + return rfu_STC_setSendData_org(16, bmSendSlot, subFrameSize, src, 0); +} + +u16 rfu_NI_CHILD_setSendGameName(u8 slotNo, u8 subFrameSize) +{ + return rfu_STC_setSendData_org(64, 1 << slotNo, subFrameSize, &gRfuLinkStatus->my.serialNo, 26); +} + +static u16 rfu_STC_setSendData_org(u8 r6, u8 bmSendSlot, u8 subFrameSize, const void *src, u32 sp28) +{ + u8 r2, r0; + u8 r4; + u8 *r9; + u8 r5; + u8 i; + u16 sp04; + struct RfuSlotStatusUNI *r1; + struct RfuSlotStatusNI *r12; + + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL) + return ERR_MODE_NOT_CONNECTED; + if (!(bmSendSlot & 0xF)) + return ERR_SLOT_NO; + if (((gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag) & bmSendSlot) != bmSendSlot) + return ERR_SLOT_NOT_CONNECTED; + if (r6 & 0x10) + r0 = gRfuLinkStatus->sendSlotUNIFlag; + else + r0 = gRfuLinkStatus->sendSlotNIFlag; + if (r0 & bmSendSlot) + return ERR_SLOT_BUSY; + for (r2 = 0; r2 < RFU_CHILD_MAX && !((bmSendSlot >> r2) & 1); ++r2) + ; + if (gRfuLinkStatus->parentChild == MODE_PARENT) + r9 = &gRfuLinkStatus->remainLLFrameSizeParent; + else if (gRfuLinkStatus->parentChild == MODE_CHILD) + r9 = &gRfuLinkStatus->remainLLFrameSizeChild[r2]; + r4 = llsf_struct[gRfuLinkStatus->parentChild].unk00; + if (subFrameSize > *r9 || subFrameSize <= r4) + return ERR_SUBFRAME_SIZE; + sp04 = REG_IME; + REG_IME = 0; + r5 = r6 & 0x20; + if (r5 || r6 == 0x40) + { + u8 *r1; // a hack to swap instructions + + r12 = gRfuSlotStatusNI[r2]; + r1 = NULL; + r12->send.errorCode = 0; + *r12->send.now_p = r1 = &r12->send.dataType; + r12->send.remainSize = 7; + r12->send.bmSlotOrg = bmSendSlot; + r12->send.bmSlot = bmSendSlot; + r12->send.payloadSize = subFrameSize - r4; + if (r5 != 0) + *r1 = 0; + else + *r1 = 1; + r12->send.dataSize = sp28; + r12->send.src = src; + r12->send.ack = 0; + r12->send.phase = 0; + #ifndef NONMATCHING // to fix r2, r3, r4, r5 register roulette + asm("":::"r2"); + #endif + for (i = 0; i < WINDOW_COUNT; ++i) + { + r12->send.recvAckFlag[i] = 0; + r12->send.n[i] = 1; + } + for (r2 = 0; r2 < RFU_CHILD_MAX; ++r2) + if ((bmSendSlot >> r2) & 1) + gRfuSlotStatusNI[r2]->send.failCounter = 0; + gRfuLinkStatus->sendSlotNIFlag |= bmSendSlot; + *r9 -= subFrameSize; + r12->send.state = SLOT_STATE_SEND_START; + } + else if (r6 & 0x10) + { + r1 = gRfuSlotStatusUNI[r2]; + r1->send.bmSlot = bmSendSlot; + r1->send.src = src; + r1->send.payloadSize = subFrameSize - r4; + *r9 -= subFrameSize; + r1->send.state = SLOT_STATE_SEND_UNI; + gRfuLinkStatus->sendSlotUNIFlag |= bmSendSlot; + } + REG_IME = sp04; + return 0; +} + +u16 rfu_changeSendTarget(u8 connType, u8 slotStatusIndex, u8 bmNewTgtSlot) +{ + struct RfuSlotStatusNI *r5; + u16 r8; + u8 r2; + + if (slotStatusIndex >= RFU_CHILD_MAX) + return ERR_SLOT_NO; + if (connType == 0x20) + { + r5 = gRfuSlotStatusNI[slotStatusIndex]; + if ((r5->send.state & SLOT_BUSY_FLAG) + && (r5->send.state & SLOT_SEND_FLAG)) + { + connType = bmNewTgtSlot ^ r5->send.bmSlot; + + if (!(connType & bmNewTgtSlot)) + { + if (connType) + { + r8 = REG_IME; + REG_IME = 0; + for (r2 = 0; r2 < RFU_CHILD_MAX; ++r2) + { + if ((connType >> r2) & 1) + gRfuSlotStatusNI[r2]->send.failCounter = 0; + } + gRfuLinkStatus->sendSlotNIFlag &= ~connType; + r5->send.bmSlot = bmNewTgtSlot; + if (r5->send.bmSlot == 0) + { + rfu_STC_releaseFrame(slotStatusIndex, 0, &r5->send); + r5->send.state = SLOT_STATE_SEND_FAILED; + } + REG_IME = r8; + } + } + else + { + return ERR_SLOT_TARGET; + } + } + else + { + return ERR_SLOT_NOT_SENDING; + } + } + else + { + if (connType == 16) + { + s32 r3; + + if (gRfuSlotStatusUNI[slotStatusIndex]->send.state != SLOT_STATE_SEND_UNI) + return ERR_SLOT_NOT_SENDING; + for (r3 = 0, r2 = 0; r2 < RFU_CHILD_MAX; ++r2) + if (r2 != slotStatusIndex) + r3 |= gRfuSlotStatusUNI[r2]->send.bmSlot; + if (bmNewTgtSlot & r3) + return ERR_SLOT_TARGET; + r8 = REG_IME; + REG_IME = 0; + gRfuLinkStatus->sendSlotUNIFlag &= ~gRfuSlotStatusUNI[slotStatusIndex]->send.bmSlot; + gRfuLinkStatus->sendSlotUNIFlag |= bmNewTgtSlot; + gRfuSlotStatusUNI[slotStatusIndex]->send.bmSlot = bmNewTgtSlot; + REG_IME = r8; + } + else + { + return ERR_COMM_TYPE; + } + } + return 0; +} + +u16 rfu_NI_stopReceivingData(u8 slotStatusIndex) +{ + struct NIComm *r5; + u16 r4, r1; + + if (slotStatusIndex >= RFU_CHILD_MAX) + return ERR_SLOT_NO; + r5 = &gRfuSlotStatusNI[slotStatusIndex]->recv; + r4 = REG_IME; + ++r4; --r4; // fix r4, r5 register swap + REG_IME = 0; + if (gRfuSlotStatusNI[slotStatusIndex]->recv.state & SLOT_BUSY_FLAG) + { + if (gRfuSlotStatusNI[slotStatusIndex]->recv.state == SLOT_STATE_RECV_LAST) + gRfuSlotStatusNI[slotStatusIndex]->recv.state = SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN; + else + gRfuSlotStatusNI[slotStatusIndex]->recv.state = SLOT_STATE_RECV_FAILED; + gRfuLinkStatus->recvSlotNIFlag &= ~(1 << slotStatusIndex); + rfu_STC_releaseFrame(slotStatusIndex, 1, r5); + } + REG_IME = r4; return 0; -}*/ +} + +u16 rfu_UNI_changeAndReadySendData(u8 slotStatusIndex, const void *src, u8 size) +{ + struct UNISend *r4; + u8 *r6; + u16 r1; + u8 r3_; + + if (slotStatusIndex >= RFU_CHILD_MAX) + return ERR_SLOT_NO; + r4 = &gRfuSlotStatusUNI[slotStatusIndex]->send; + if (r4->state != SLOT_STATE_SEND_UNI) + return ERR_SLOT_NOT_SENDING; + if (gRfuLinkStatus->parentChild == MODE_PARENT) + { + r6 = &gRfuLinkStatus->remainLLFrameSizeParent; + r3_ = gRfuLinkStatus->remainLLFrameSizeParent + (u8)r4->payloadSize; + } + else + { + r6 = &gRfuLinkStatus->remainLLFrameSizeChild[slotStatusIndex]; + r3_ = gRfuLinkStatus->remainLLFrameSizeChild[slotStatusIndex] + (u8)r4->payloadSize; + } + if (r3_ < size) + return ERR_SUBFRAME_SIZE; + r1 = REG_IME; + REG_IME = 0; + r4->src = src; + *r6 = r3_ - size; + r4->payloadSize = size; + r4->dataReadyFlag = 1; + REG_IME = r1; + return 0; +} + +void rfu_UNI_readySendData(u8 slotStatusIndex) +{ + if (slotStatusIndex < RFU_CHILD_MAX) + { + if (gRfuSlotStatusUNI[slotStatusIndex]->send.state == SLOT_STATE_SEND_UNI) + gRfuSlotStatusUNI[slotStatusIndex]->send.dataReadyFlag = 1; + } +} + +void rfu_UNI_clearRecvNewDataFlag(u8 slotStatusIndex) +{ + if (slotStatusIndex < RFU_CHILD_MAX) + gRfuSlotStatusUNI[slotStatusIndex]->recv.newDataFlag = 0; +} + +void rfu_REQ_sendData(bool8 clockChangeFlag) +{ + if (gRfuLinkStatus->parentChild != MODE_NEUTRAL) + { + if (gRfuLinkStatus->parentChild == MODE_PARENT + && !(gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag | gRfuLinkStatus->sendSlotUNIFlag)) + { + if (gRfuStatic->commExistFlag) + { + gRfuStatic->emberCount = 16; + gRfuStatic->nullFrameCount = 0; + } + if (gRfuStatic->emberCount) + --gRfuStatic->emberCount; + else + ++gRfuStatic->nullFrameCount; + if (gRfuStatic->emberCount + || !(gRfuStatic->nullFrameCount & 0xF)) + { + gRfuFixed->LLFBuffer[0] = 1; + gRfuFixed->LLFBuffer[4] = 0xFF; + STWI_set_Callback_M(rfu_CB_sendData3); + if (!clockChangeFlag) + STWI_send_DataTxREQ(gRfuFixed->LLFBuffer, 1); + else + STWI_send_DataTxAndChangeREQ(gRfuFixed->LLFBuffer, 1); + return; + } + } + else + { + if (!gRfuLinkStatus->LLFReadyFlag) + rfu_constructSendLLFrame(); + if (gRfuLinkStatus->LLFReadyFlag) + { + STWI_set_Callback_M(rfu_CB_sendData); + if (clockChangeFlag) + { + STWI_send_DataTxAndChangeREQ(gRfuFixed->LLFBuffer, gRfuStatic->totalPacketSize + 4); + return; + } + STWI_send_DataTxREQ(gRfuFixed->LLFBuffer, gRfuStatic->totalPacketSize + 4); + } + } + if (clockChangeFlag) + { + if (gRfuLinkStatus->parentChild == MODE_PARENT) + { + if (gSTWIStatus->callbackS != NULL) + gSTWIStatus->callbackS(39); + } + else + { + STWI_set_Callback_M(rfu_CB_sendData2); + STWI_send_MS_ChangeREQ(); + } + } + } +} + +static void rfu_CB_sendData(__attribute__((unused)) u8 r0, u16 r7) +{ + u8 r6; + struct NIComm *r4; + + if (r7 == 0) + { + for (r6 = 0; r6 < RFU_CHILD_MAX; ++r6) + { + if (gRfuSlotStatusUNI[r6]->send.dataReadyFlag) + gRfuSlotStatusUNI[r6]->send.dataReadyFlag = 0; + r4 = &gRfuSlotStatusNI[r6]->send; + if (r4->state == SLOT_STATE_SEND_NULL) + { + rfu_STC_releaseFrame(r6, 0, r4); + gRfuLinkStatus->sendSlotNIFlag &= ~r4->bmSlot; + if (r4->dataType == 1) + gRfuLinkStatus->getNameFlag |= 1 << r6; + r4->state = SLOT_STATE_SEND_SUCCESS; + } + } + } + gRfuLinkStatus->LLFReadyFlag = 0; + rfu_STC_REQ_callback(36, r7); +} + +static void rfu_CB_sendData2(__attribute__((unused)) u8 r0, u16 r1) +{ + rfu_STC_REQ_callback(36, r1); +} + +static void rfu_CB_sendData3(u8 r0, u16 r1) +{ + if (r1 != 0) + rfu_STC_REQ_callback(36, r1); + else if (r0 == 0xFF) + rfu_STC_REQ_callback(0xFF, 0); +} + +static void rfu_constructSendLLFrame(void) +{ + u32 r8, r5; + u8 r6; + u8 *sp00; + struct RfuSlotStatusNI *r2; + + if (gRfuLinkStatus->parentChild != MODE_NEUTRAL + && gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag | gRfuLinkStatus->sendSlotUNIFlag) + { + gRfuLinkStatus->LLFReadyFlag = 0; + r8 = 0; + sp00 = (u8 *)&gRfuFixed->LLFBuffer[1]; + for (r6 = 0; r6 < RFU_CHILD_MAX; ++r6) + { + r5 = 0; + if (gRfuSlotStatusNI[r6]->send.state & SLOT_BUSY_FLAG) + r5 = rfu_STC_NI_constructLLSF(r6, &sp00, &gRfuSlotStatusNI[r6]->send); + if (gRfuSlotStatusNI[r6]->recv.state & SLOT_BUSY_FLAG) + r5 += rfu_STC_NI_constructLLSF(r6, &sp00, &gRfuSlotStatusNI[r6]->recv); + if (gRfuSlotStatusUNI[r6]->send.state == SLOT_STATE_SEND_UNI) + r5 += rfu_STC_UNI_constructLLSF(r6, &sp00); + if (r5 != 0) + { + if (gRfuLinkStatus->parentChild == MODE_PARENT) + r8 += r5; + else + r8 |= r5 << (5 * r6 + 8); + } + } + if (r8 != 0) + { + while ((u32)sp00 & 3) + *sp00++ = 0; + gRfuFixed->LLFBuffer[0] = r8; + if (gRfuLinkStatus->parentChild == MODE_CHILD) + { + u8 *r0 = sp00 - offsetof(struct RfuFixed, LLFBuffer[1]); + + // Does the volatile qualifier make sense? + // It's the same as: + // asm("":::"memory"); + r8 = r0 - *(u8 *volatile *)&gRfuFixed; + } + } + gRfuStatic->totalPacketSize = r8; + } +} + +static u16 rfu_STC_NI_constructLLSF(u8 r10, u8 **r12, struct NIComm *r4) +{ + u16 r5; + u32 sp00; + u8 i; + u8 *r2; + const struct LLSFStruct *r8 = &llsf_struct[gRfuLinkStatus->parentChild]; + + if (r4->state == SLOT_STATE_SENDING) + { + while (r4->now_p[r4->phase] >= (const u8 *)r4->src + r4->dataSize) + { + ++r4->phase; + if (r4->phase == 4) + r4->phase = 0; + } + } + if (r4->state & SLOT_RECV_FLAG) + { + r5 = 0; + } + else if (r4->state == SLOT_STATE_SENDING) + { + if (r4->now_p[r4->phase] + r4->payloadSize > (const u8 *)r4->src + r4->dataSize) + r5 = (const u8 *)r4->src + r4->dataSize - r4->now_p[r4->phase]; + else + r5 = r4->payloadSize; + } + else + { + if ((u32)r4->remainSize >= r4->payloadSize) + r5 = r4->payloadSize; + else + r5 = r4->remainSize; + } + sp00 = (r4->state & 0xF) << r8->unk03 + | r4->ack << r8->unk04 + | r4->phase << r8->unk05 + | r4->n[r4->phase] << r8->unk06 + | r5; + if (gRfuLinkStatus->parentChild == MODE_PARENT) + sp00 |= r4->bmSlot << 18; + r2 = (u8 *)&sp00; + for (i = 0; i < r8->unk00; ++i) + *(*r12)++ = *r2++; + if (r5 != 0) + { + const u8 *sp04 = r4->now_p[r4->phase]; + + gRfuFixed->fastCopyPtr(&sp04, r12, r5); + } + if (r4->state == SLOT_STATE_SENDING) + { + ++r4->phase; + if (r4->phase == 4) + r4->phase = 0; + } + if (gRfuLinkStatus->parentChild == MODE_PARENT) + gRfuLinkStatus->LLFReadyFlag = 1; + else + gRfuLinkStatus->LLFReadyFlag |= 1 << r10; + return r5 + r8->unk00; +} + +static u16 rfu_STC_UNI_constructLLSF(u8 r8, u8 **r6) +{ + const struct LLSFStruct *r5; + const u8 *sp04; + u32 sp00; + u8 *r2; + u8 i; + struct UNISend *r4 = &gRfuSlotStatusUNI[r8]->send; + + if (!r4->dataReadyFlag || !r4->bmSlot) + return 0; + r5 = &llsf_struct[gRfuLinkStatus->parentChild]; + sp00 = (r4->state & 0xF) << r5->unk03 + | r4->payloadSize; + if (gRfuLinkStatus->parentChild == MODE_PARENT) + sp00 |= r4->bmSlot << 18; + r2 = (u8 *)&sp00; + for (i = 0; i < r5->unk00; ++i) + *(*r6)++ = *r2++; + sp04 = r4->src; + gRfuFixed->fastCopyPtr(&sp04, r6, r4->payloadSize); + if (gRfuLinkStatus->parentChild == MODE_PARENT) + gRfuLinkStatus->LLFReadyFlag = 16; + else + gRfuLinkStatus->LLFReadyFlag |= 16 << r8; + return r5->unk00 + r4->payloadSize; +} + +void rfu_REQ_recvData(void) +{ + if (gRfuLinkStatus->parentChild != MODE_NEUTRAL) + { + gRfuStatic->commExistFlag = gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag | gRfuLinkStatus->sendSlotUNIFlag; + gRfuStatic->recvErrorFlag = 0; + STWI_set_Callback_M(rfu_CB_recvData); + STWI_send_DataRxREQ(); + } +} + +static void rfu_CB_recvData(u8 r9, u16 r7) +{ + u8 r6; + struct RfuSlotStatusNI *r4; + struct NIComm *r5; + + if (r7 == 0 && gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[1]) + { + gRfuStatic->NIEndRecvFlag = 0; + if (gRfuLinkStatus->parentChild == MODE_PARENT) + rfu_STC_PARENT_analyzeRecvPacket(); + else + rfu_STC_CHILD_analyzeRecvPacket(); + for (r6 = 0; r6 < RFU_CHILD_MAX; ++r6) + { + r4 = gRfuSlotStatusNI[r6]; + if (r4->recv.state == SLOT_STATE_RECV_LAST && !((gRfuStatic->NIEndRecvFlag >> r6) & 1)) + { + r5 = &r4->recv; + if (r5->dataType == 1) + gRfuLinkStatus->getNameFlag |= 1 << r6; + rfu_STC_releaseFrame(r6, 1, r5); + gRfuLinkStatus->recvSlotNIFlag &= ~r5->bmSlot; + r4->recv.state = SLOT_STATE_RECV_SUCCESS; + } + } + if (gRfuStatic->recvErrorFlag) + r7 = gRfuStatic->recvErrorFlag | ERR_DATA_RECV; + } + rfu_STC_REQ_callback(r9, r7); +} + +static void rfu_STC_PARENT_analyzeRecvPacket(void) +{ + u32 r3; + u8 r5; + u8 sp[4]; + u8 *r6; + + r3 = gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket32.data[0] >> 8; + for (r5 = 0; r5 < NELEMS(sp); ++r5) + { + sp[r5] = r3 & 0x1F; + r3 >>= 5; + if (sp[r5] == 0) + gRfuStatic->NIEndRecvFlag |= 1 << r5; + } + r6 = &gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[8]; + for (r5 = 0; r5 < NELEMS(sp); ++r5) + { + if (sp[r5]) + { + u8 *r4 = &sp[r5]; + + do + { + u8 r0 = rfu_STC_analyzeLLSF(r5, r6, *r4); + + r6 += r0; + *r4 -= r0; + } while (!(*r4 & 0x80) && (*r4)); + } + } +} + +static void rfu_STC_CHILD_analyzeRecvPacket(void) +{ + u16 r4; + u8 *r5; + u16 r0; + + r4 = *(u16 *)&gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[4] & 0x7F; + r5 = &gRfuFixed->STWIBuffer->rxPacketAlloc.rfuPacket8.data[8]; + if (r4 == 0) + gRfuStatic->NIEndRecvFlag = 15; + do + { + if (r4 == 0) + break; + r0 = rfu_STC_analyzeLLSF(0, r5, r4); + r5 += r0; + r4 -= r0; + } while (!(r4 & 0x8000)); +} + +static u16 rfu_STC_analyzeLLSF(u8 r12, const u8 *r7, u16 r3) +{ + struct RfuLocalStruct sp00; + const struct LLSFStruct *r6; + u32 r5; + u8 r4; + u32 r0; + u16 r10; + + r6 = &llsf_struct[~gRfuLinkStatus->parentChild & (MODE_NEUTRAL & MODE_PARENT)]; + if (r3 < r6->unk00) + return r3; + r5 = 0; + for (r4 = 0; r4 < r6->unk00; ++r4) + r5 |= *r7++ << 8 * r4; + sp00.unk00 = (r5 >> r6->unk01) & r6->unk07; + sp00.unk01 = (r5 >> r6->unk02) & r6->unk08; + sp00.unk02 = (r5 >> r6->unk03) & r6->unk09; + sp00.unk03 = (r5 >> r6->unk04) & r6->unk0A; + sp00.unk04 = (r5 >> r6->unk05) & r6->unk0B; + sp00.unk05 = (r5 >> r6->unk06) & r6->unk0C; + sp00.unk06 = (r5 & r6->unk0E) & r5; + r10 = sp00.unk06 + r6->unk00; + if (sp00.unk00 == 0) + { + if (gRfuLinkStatus->parentChild == MODE_PARENT) + { + if ((gRfuLinkStatus->connSlotFlag >> r12) & 1) + { + if (sp00.unk02 == 4) + { + rfu_STC_UNI_receive(r12, &sp00, r7); + } + else if (sp00.unk03 == 0) + { + rfu_STC_NI_receive_Receiver(r12, &sp00, r7); + } + else + { + for (r4 = 0; r4 < RFU_CHILD_MAX; ++r4) + if (((gRfuSlotStatusNI[r4]->send.bmSlot >> r12) & 1) + && ((gRfuLinkStatus->sendSlotNIFlag >> r12) & 1)) + break; + if (r4 <= 3) + rfu_STC_NI_receive_Sender(r4, r12, &sp00, r7); + } + } + } + else + { + s32 r5 = gRfuLinkStatus->connSlotFlag & sp00.unk01; + + if (r5) + { + for (r4 = 0; r4 < RFU_CHILD_MAX; ++r4) + { + if ((r5 >> r4) & 1) + { + if (sp00.unk02 == 4) + rfu_STC_UNI_receive(r4, &sp00, r7); + else if (sp00.unk03 == 0) + rfu_STC_NI_receive_Receiver(r4, &sp00, r7); + else if ((gRfuLinkStatus->sendSlotNIFlag >> r4) & 1) + rfu_STC_NI_receive_Sender(r4, r4, &sp00, r7); + } + } + } + } + } + return r10; +} + +static void rfu_STC_UNI_receive(u8 r7, const struct RfuLocalStruct *r6, const u8 *sp00) +{ + u8 *sp04; + u32 r2; + struct RfuSlotStatusUNI *r3 = gRfuSlotStatusUNI[r7]; + struct UNIRecv *r5 = &r3->recv; + + r5->errorCode = 0; + if (gRfuSlotStatusUNI[r7]->recvBufferSize < r6->unk06) + { + r3->recv.state = SLOT_STATE_RECV_IGNORE; + r5->errorCode = ERR_RECV_BUFF_OVER; + } + else + { + if (r5->dataBlockFlag) + { + if (r5->newDataFlag) + { + r5->errorCode = ERR_RECV_UNK; + goto _081E2F0E; + } + } + else + { + if (r5->newDataFlag) + r5->errorCode = ERR_RECV_DATA_OVERWRITED; + } + r5->state = SLOT_STATE_RECEIVING; + r2 = r5->dataSize = r6->unk06; + sp04 = gRfuSlotStatusUNI[r7]->recvBuffer; + gRfuFixed->fastCopyPtr(&sp00, &sp04, r2); + r5->newDataFlag = 1; + r5->state = 0; + } +_081E2F0E: + if (r5->errorCode) + gRfuStatic->recvErrorFlag |= 16 << r7; +} + +static void rfu_STC_NI_receive_Sender(u8 r0, u8 r10, const struct RfuLocalStruct *r6, const u8 *r3) +{ + struct NIComm *r12 = &gRfuSlotStatusNI[r0]->send; + u16 r9 = r12->state; + u8 sp00 = r12->n[r6->unk04]; + u8 *r8; + u8 r4; + u16 r2; + + if ((r6->unk02 == 2 && r9 == SLOT_STATE_SENDING) + || (r6->unk02 == 1 && r9 == SLOT_STATE_SEND_START) + || (r6->unk02 == 3 && r9 == SLOT_STATE_SEND_LAST)) + { + if (r12->n[r6->unk04] == r6->unk05) + r12->recvAckFlag[r6->unk04] |= 1 << r10; + } + if ((r12->recvAckFlag[r6->unk04] & r12->bmSlot) == r12->bmSlot) + { + r12->n[r6->unk04] = (r12->n[r6->unk04] + 1) & 3; + r12->recvAckFlag[r6->unk04] = 0; + if ((u16)(r12->state + ~SLOT_STATE_SEND_NULL) <= 1) + { + if (r12->state == SLOT_STATE_SEND_START) + r12->now_p[r6->unk04] += r12->payloadSize; + else + r12->now_p[r6->unk04] += r12->payloadSize << 2; + r12->remainSize -= r12->payloadSize; + if (r12->remainSize != 0) + if (r12->remainSize >= 0) + goto _081E30AE; + // Above is a hack to avoid optimization over comparison. + // rfu_STC_NI_constructLLSF uses this field as u32. + // It's equivalent to the following condition: + // if (r12->remainSize == 0 || r12->remainSize < 0) + { + r12->phase = 0; + if (r12->state == SLOT_STATE_SEND_START) + { + for (r4 = 0; r4 < WINDOW_COUNT; ++r4) + { + r12->n[r4] = 1; + r12->now_p[r4] = r12->src + r12->payloadSize * r4; + } + r12->remainSize = r12->dataSize; + r12->state = SLOT_STATE_SENDING; + } + else + { + r12->n[0] = 0; + r12->remainSize = 0; + r12->state = SLOT_STATE_SEND_LAST; + } + } + _081E30AE: + ; + } + else if (r12->state == SLOT_STATE_SEND_LAST) + { + r12->state = SLOT_STATE_SEND_NULL; + } + } + if (r12->state != r9 + || r12->n[r6->unk04] != sp00 + || (r12->recvAckFlag[r6->unk04] >> r10) & 1) + { + r2 = REG_IME; + REG_IME = 0; + gRfuStatic->recvRenewalFlag |= 16 << r10; + gRfuSlotStatusNI[r10]->send.failCounter = 0; + REG_IME = r2; + } +} + +static void rfu_STC_NI_receive_Receiver(u8 r8, const struct RfuLocalStruct *r6, const u8 *sp00) +{ + u16 r2; + u32 r7 = 0; + struct RfuSlotStatusNI *r4 = gRfuSlotStatusNI[r8]; + struct NIComm *r5 = &r4->recv; + u16 r9 = r4->recv.state; + u8 r10 = r4->recv.n[r6->unk04]; + + if (r6->unk02 == 3) + { + gRfuStatic->NIEndRecvFlag |= 1 << r8; + if (r4->recv.state == SLOT_STATE_RECEIVING) + { + r4->recv.phase = 0; + r4->recv.n[0] = 0; + r4->recv.state = SLOT_STATE_RECV_LAST; + } + } + else if (r6->unk02 == 2) + { + if (r9 == SLOT_STATE_RECV_START && !r5->remainSize) + rfu_STC_NI_initSlot_asRecvDataEntity(r8, r5); + if (r5->state == SLOT_STATE_RECEIVING) + r7 = 1; + } + else if (r6->unk02 == 1) + { + if (r9 == SLOT_STATE_RECV_START) + { + r7 = 1; + } + else + { + rfu_STC_NI_initSlot_asRecvControllData(r8, r5); + if (r4->recv.state != SLOT_STATE_RECV_START) + return; + r7 = 1; + } + } + if (r7 != 0) + { + if (r6->unk05 == ((r5->n[r6->unk04] + 1) & 3)) + { + gRfuFixed->fastCopyPtr(&sp00, (u8 **)&r5->now_p[r6->unk04], r6->unk06); + if (r5->state == SLOT_STATE_RECEIVING) + r5->now_p[r6->unk04] += 3 * r5->payloadSize; + r5->remainSize -= r6->unk06; + r5->n[r6->unk04] = r6->unk05; + } + } + if (r5->errorCode == 0) + { + r5->phase = r6->unk04; + if (r5->state != r9 || r5->n[r6->unk04] != r10 || r5->n[r6->unk04] == r6->unk05) + { + r2 = REG_IME; + REG_IME = 0; + gRfuStatic->recvRenewalFlag |= 1 << r8; + r5->failCounter = 0; + REG_IME = r2; + } + } +} + +static void rfu_STC_NI_initSlot_asRecvControllData(u8 r4, struct NIComm *r2) +{ + u8 *r1; + u32 r5; + u8 r6; + + if (gRfuLinkStatus->parentChild == MODE_PARENT) + { + r5 = 3; + r1 = &gRfuLinkStatus->remainLLFrameSizeParent; + } + else + { + r5 = 2; + r1 = &gRfuLinkStatus->remainLLFrameSizeChild[r4]; + } + r6 = 1 << r4; + if (r2->state == 0) + { + if (*r1 < r5) + { + r2->state = SLOT_STATE_RECV_IGNORE; + r2->errorCode = ERR_RECV_REPLY_SUBFRAME_SIZE; + gRfuStatic->recvErrorFlag |= r6; + } + else + { + r2->errorCode = 0; + *r1 -= r5; + r2->now_p[0] = &r2->dataType; + r2->remainSize = 7; + r2->ack = 1; + r2->payloadSize = 0; + r2->bmSlot = r6; + r2->state = SLOT_STATE_RECV_START; + gRfuLinkStatus->recvSlotNIFlag |= r6; + } + } +} + +static void rfu_STC_NI_initSlot_asRecvDataEntity(u8 r5, struct NIComm *r4) +{ + u8 r1, r3; + + if (r4->dataType == 1) + { + r4->now_p[0] = (void *)&gRfuLinkStatus->partner[r5].serialNo; + } + else + { + if (r4->dataSize > gRfuSlotStatusNI[r5]->recvBufferSize) + { + r1 = 1 << r5; + gRfuStatic->recvErrorFlag |= r1; + gRfuLinkStatus->recvSlotNIFlag &= ~r1; + r4->errorCode = ERR_RECV_BUFF_OVER; + r4->state = SLOT_STATE_RECV_FAILED; + rfu_STC_releaseFrame(r5, 1, r4); + return; + } + r4->now_p[0] = gRfuSlotStatusNI[r5]->recvBuffer; + } + for (r3 = 0; r3 < WINDOW_COUNT; ++r3) + { + r4->n[r3] = 0; + r4->now_p[r3] = &r4->now_p[0][r4->payloadSize * r3]; + } + r4->remainSize = r4->dataSize; + r4->state = SLOT_STATE_RECEIVING; +} + +static void rfu_NI_checkCommFailCounter(void) +{ + u16 r12; + u32 r7; + u8 r2, r3; + + if (gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag) + { + r12 = REG_IME; + REG_IME = 0; + r7 = gRfuStatic->recvRenewalFlag >> 4; + for (r3 = 0; r3 < RFU_CHILD_MAX; ++r3) + { + r2 = 1 << r3; + if (gRfuLinkStatus->sendSlotNIFlag & r2 + && !(gRfuStatic->recvRenewalFlag & r2)) + ++gRfuSlotStatusNI[r3]->send.failCounter; + if (gRfuLinkStatus->recvSlotNIFlag & r2 + && !(r7 & r2)) + ++gRfuSlotStatusNI[r3]->recv.failCounter; + } + gRfuStatic->recvRenewalFlag = 0; + REG_IME = r12; + } +} + +void rfu_REQ_noise(void) +{ + STWI_set_Callback_M(rfu_STC_REQ_callback); + STWI_send_TestModeREQ(1, 0); +} diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c new file mode 100644 index 000000000000..fc570198657b --- /dev/null +++ b/src/librfu_sio32id.c @@ -0,0 +1,164 @@ +#include "librfu.h" + +static void Sio32IDIntr(void); +static void Sio32IDInit(void); +static s32 Sio32IDMain(void); + +struct RfuSIO32Id gRfuSIO32Id; + +static const u16 Sio32ConnectionData[] = { 0x494e, 0x544e, 0x4e45, 0x4f44 }; // NINTENDO +static const char Sio32IDLib_Var[] = "Sio32ID_030820"; + +s32 AgbRFU_checkID(u8 r5) +{ + u16 r8; + vu16 *r4; + s32 r6; + + if (REG_IME == 0) + return -1; + r8 = REG_IE; + gSTWIStatus->state = 10; + STWI_set_Callback_ID(Sio32IDIntr); + Sio32IDInit(); + r4 = ®_TMCNT_L(gSTWIStatus->timerSelect); + r5 *= 8; + while (--r5 != 0xFF) + { + r6 = Sio32IDMain(); + if (r6 != 0) + break; + r4[1] = 0; + r4[0] = 0; + r4[1] = TIMER_1024CLK | TIMER_ENABLE; + while (r4[0] < 32) + ; + r4[1] = 0; + r4[0] = 0; + } + REG_IME = 0; + REG_IE = r8; + REG_IME = 1; + gSTWIStatus->state = 0; + STWI_set_Callback_ID(NULL); + return r6; +} + +static void Sio32IDInit(void) +{ + REG_IME = 0; + REG_IE &= ~((8 << gSTWIStatus->timerSelect) | INTR_FLAG_SERIAL); + REG_IME = 1; + REG_RCNT = 0; + REG_SIOCNT = SIO_32BIT_MODE; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_ENABLE; + CpuFill32(0, &gRfuSIO32Id, sizeof(struct RfuSIO32Id)); + REG_IF = INTR_FLAG_SERIAL; +} + +static s32 Sio32IDMain(void) +{ + u8 r12; + + switch (r12 = gRfuSIO32Id.unk1) + { + case 0: + gRfuSIO32Id.unk0 = 1; + REG_SIOCNT |= SIO_38400_BPS; + REG_IME = r12; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = 1; + gRfuSIO32Id.unk1 = 1; + *(vu8 *)®_SIOCNT |= SIO_ENABLE; + break; + case 1: + if (gRfuSIO32Id.unkA == 0) + { + if (gRfuSIO32Id.unk0 == 1) + { + if (gRfuSIO32Id.unk2 == 0) + { + REG_IME = gRfuSIO32Id.unk2; + REG_SIOCNT |= SIO_ENABLE; + REG_IME = r12; + } + } + else if (gRfuSIO32Id.unk4 != 0x8001 && !gRfuSIO32Id.unk2) + { + REG_IME = gRfuSIO32Id.unk2; + REG_IE &= ~INTR_FLAG_SERIAL; + REG_IME = r12; + REG_SIOCNT = gRfuSIO32Id.unk2; + REG_SIOCNT = SIO_32BIT_MODE; + REG_IF = INTR_FLAG_SERIAL; + REG_SIOCNT |= SIO_INTR_ENABLE | SIO_ENABLE; + REG_IME = gRfuSIO32Id.unk2; + REG_IE |= INTR_FLAG_SERIAL; + REG_IME = r12; + } + break; + } + else + { + gRfuSIO32Id.unk1 = 2; + // fallthrough + } + default: + return gRfuSIO32Id.unkA; + } + return 0; +} + +static void Sio32IDIntr(void) +{ + u32 r5; + u16 r0; +#ifndef NONMATCHING + register u32 r1 asm("r1"); + register u16 r0_ asm("r0"); +#else + u32 r1; + u16 r0_; +#endif + + r5 = REG_SIODATA32; + if (gRfuSIO32Id.unk0 != 1) + REG_SIOCNT |= SIO_ENABLE; + r1 = 16 * gRfuSIO32Id.unk0; // to handle side effect of inline asm + r1 = (r5 << r1) >> 16; + r5 = (r5 << 16 * (1 - gRfuSIO32Id.unk0)) >> 16; + if (gRfuSIO32Id.unkA == 0) + { + if (r1 == gRfuSIO32Id.unk6) + { + if (gRfuSIO32Id.unk2 > 3) + { + gRfuSIO32Id.unkA = r5; + } + else if (r1 == (u16)~gRfuSIO32Id.unk4) + { + r0_ = ~gRfuSIO32Id.unk6; + if (r5 == r0_) + ++gRfuSIO32Id.unk2; + } + } + else + { + gRfuSIO32Id.unk2 = gRfuSIO32Id.unkA; + } + } + if (gRfuSIO32Id.unk2 < 4) + gRfuSIO32Id.unk4 = *(gRfuSIO32Id.unk2 + Sio32ConnectionData); + else + gRfuSIO32Id.unk4 = 0x8001; + gRfuSIO32Id.unk6 = ~r5; + REG_SIODATA32 = (gRfuSIO32Id.unk4 << 16 * (1 - gRfuSIO32Id.unk0)) + + (gRfuSIO32Id.unk6 << 16 * gRfuSIO32Id.unk0); + if (gRfuSIO32Id.unk0 == 1 && (gRfuSIO32Id.unk2 || r5 == 0x494E)) + { + for (r0 = 0; r0 < 600; ++r0) + ; + if (gRfuSIO32Id.unkA == 0) + REG_SIOCNT |= SIO_ENABLE; + } +} diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c index 670692118e94..b88f2173755e 100644 --- a/src/librfu_stwi.c +++ b/src/librfu_stwi.c @@ -1,70 +1,57 @@ -#include "global.h" #include "librfu.h" -struct RfuStruct *gRfuState; +static void STWI_intr_timer(void); +static u16 STWI_init(u8 request); +static s32 STWI_start_Command(void); +static void STWI_set_timer(u8 unk); +static void STWI_stop_timer(void); +static s32 STWI_restart_Command(void); +static s32 STWI_reset_ClockCounter(void); -extern IntrFunc IntrSIO32(void); - -extern void STWI_stop_timer(void); - -void STWI_init_Callback_M(void); -void STWI_init_Callback_S(void); -void STWI_set_Callback_M(void * callback); -void STWI_set_Callback_S(void * callback); -u16 STWI_init(u8 request); -int STWI_start_Command(void); -void STWI_intr_timer(void); -void STWI_set_timer(u8 unk); - -int STWI_restart_Command(void); -int STWI_reset_ClockCounter(void); +struct STWIStatus *gSTWIStatus; void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam) { // If we're copying our interrupt into RAM, DMA it to block1 and use - // block2 for our RfuStruct, otherwise block1 holds the RfuStruct. + // block2 for our STWIStatus, otherwise block1 holds the STWIStatus. // interrupt usually is a pointer to gIntrTable[1] if (copyInterruptToRam == TRUE) { *interrupt = (IntrFunc)interruptStruct->block1; - DmaCopy16(3, &IntrSIO32, interruptStruct->block1, 0x960); - gRfuState = (struct RfuStruct*)interruptStruct->block2; + DmaCopy16(3, &IntrSIO32, interruptStruct->block1, sizeof(interruptStruct->block1)); + gSTWIStatus = &interruptStruct->block2; } else { - *interrupt = (IntrFunc)IntrSIO32; - gRfuState = (struct RfuStruct*)interruptStruct->block1; - } - - gRfuState->rxPacket = (union RfuPacket*)interruptStruct->rxPacketAlloc; - gRfuState->txPacket = (union RfuPacket*)interruptStruct->txPacketAlloc; - gRfuState->msMode = 1; - gRfuState->unk_0 = 0; - gRfuState->txParams = 0; - gRfuState->unk_5 = 0; - gRfuState->unk_7 = 0; - gRfuState->unk_8 = 0; - gRfuState->unk_9 = 0; - gRfuState->timerState = 0; - gRfuState->timerActive = 0; - gRfuState->unk_12 = 0; - gRfuState->unk_15 = 0; - gRfuState->unk_2c = 0; - - REG_RCNT = 0x100; //TODO: mystery bit? + *interrupt = IntrSIO32; + gSTWIStatus = (struct STWIStatus *)interruptStruct->block1; + } + gSTWIStatus->rxPacket = &interruptStruct->rxPacketAlloc; + gSTWIStatus->txPacket = &interruptStruct->txPacketAlloc; + gSTWIStatus->msMode = 1; + gSTWIStatus->state = 0; + gSTWIStatus->reqLength = 0; + gSTWIStatus->reqNext = 0; + gSTWIStatus->ackLength = 0; + gSTWIStatus->ackNext = 0; + gSTWIStatus->ackActiveCommand = 0; + gSTWIStatus->timerState = 0; + gSTWIStatus->timerActive = 0; + gSTWIStatus->error = 0; + gSTWIStatus->recoveryCount = 0; + gSTWIStatus->unk_2c = 0; + REG_RCNT = 0x100; // TODO: mystery bit? REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; STWI_init_Callback_M(); STWI_init_Callback_S(); - IntrEnable(INTR_FLAG_SERIAL); } -void STWI_init_timer(IntrFunc *interrupt, int timerSelect) +void STWI_init_timer(IntrFunc *interrupt, s32 timerSelect) { *interrupt = STWI_intr_timer; - gRfuState->timerSelect = timerSelect; - - IntrEnable(INTR_FLAG_TIMER0 << gRfuState->timerSelect); + gSTWIStatus->timerSelect = timerSelect; + IntrEnable(INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect); } void AgbRFU_SoftReset(void) @@ -74,35 +61,34 @@ void AgbRFU_SoftReset(void) REG_RCNT = 0x8000; REG_RCNT = 0x80A0; // all these bits are undocumented - timerL = ®_TMCNT_L(gRfuState->timerSelect); - timerH = ®_TMCNT_H(gRfuState->timerSelect); + timerL = ®_TMCNT_L(gSTWIStatus->timerSelect); + timerH = ®_TMCNT_H(gSTWIStatus->timerSelect); *timerH = 0; *timerL = 0; - *timerH = 0x83; + *timerH = TIMER_ENABLE | TIMER_1024CLK; while (*timerL <= 0x11) REG_RCNT = 0x80A2; *timerH = 3; REG_RCNT = 0x80A0; REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; - - gRfuState->unk_0 = 0; - gRfuState->txParams = 0; - gRfuState->unk_5 = 0; - gRfuState->activeCommand = 0; - gRfuState->unk_7 = 0; - gRfuState->unk_8 = 0; - gRfuState->unk_9 = 0; - gRfuState->timerState = 0; - gRfuState->timerActive = 0; - gRfuState->unk_12 = 0; - gRfuState->msMode = 1; - gRfuState->unk_15 = 0; - gRfuState->unk_2c = 0; + gSTWIStatus->state = 0; + gSTWIStatus->reqLength = 0; + gSTWIStatus->reqNext = 0; + gSTWIStatus->reqActiveCommand = 0; + gSTWIStatus->ackLength = 0; + gSTWIStatus->ackNext = 0; + gSTWIStatus->ackActiveCommand = 0; + gSTWIStatus->timerState = 0; + gSTWIStatus->timerActive = 0; + gSTWIStatus->error = 0; + gSTWIStatus->msMode = 1; + gSTWIStatus->recoveryCount = 0; + gSTWIStatus->unk_2c = 0; } void STWI_set_MS_mode(u8 mode) { - gRfuState->msMode = mode; + gSTWIStatus->msMode = mode; } u16 STWI_read_status(u8 index) @@ -110,13 +96,13 @@ u16 STWI_read_status(u8 index) switch (index) { case 0: - return gRfuState->unk_12; + return gSTWIStatus->error; case 1: - return gRfuState->msMode; + return gSTWIStatus->msMode; case 2: - return gRfuState->unk_0; + return gSTWIStatus->state; case 3: - return gRfuState->activeCommand; + return gSTWIStatus->reqActiveCommand; default: return 0xFFFF; } @@ -124,136 +110,130 @@ u16 STWI_read_status(u8 index) void STWI_init_Callback_M(void) { - STWI_set_Callback_M(0); + STWI_set_Callback_M(NULL); } void STWI_init_Callback_S(void) { - STWI_set_Callback_S(0); + STWI_set_Callback_S(NULL); } -void STWI_set_Callback_M(void *callback) +// The callback can take 2 or 3 arguments. +void STWI_set_Callback_M(void *callbackM) { - gRfuState->callbackM = callback; + gSTWIStatus->callbackM = callbackM; } -void STWI_set_Callback_S(void *callback) +void STWI_set_Callback_S(void (*callbackS)(u16)) { - gRfuState->callbackS = callback; + gSTWIStatus->callbackS = callbackS; } -void STWI_set_Callback_ID(u32 id) +void STWI_set_Callback_ID(void (*func)(void)) // name in SDK, but is actually setting a function pointer { - gRfuState->callbackID = id; + gSTWIStatus->unk_20 = func; } u16 STWI_poll_CommandEnd(void) { - while (gRfuState->unk_2c == TRUE) + while (gSTWIStatus->unk_2c == TRUE) ; - return gRfuState->unk_12; + return gSTWIStatus->error; } void STWI_send_ResetREQ(void) { - if (!STWI_init(RFU_RESET)) + if (!STWI_init(ID_RESET_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_LinkStatusREQ(void) { - if (!STWI_init(RFU_LINK_STATUS)) + if (!STWI_init(ID_LINK_STATUS_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_VersionStatusREQ(void) { - if (!STWI_init(RFU_VERSION_STATUS)) + if (!STWI_init(ID_VERSION_STATUS_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SystemStatusREQ(void) { - if (!STWI_init(RFU_SYSTEM_STATUS)) + if (!STWI_init(ID_SYSTEM_STATUS_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SlotStatusREQ(void) { - if (!STWI_init(RFU_SLOT_STATUS)) + if (!STWI_init(ID_SLOT_STATUS_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_ConfigStatusREQ(void) { - if (!STWI_init(RFU_CONFIG_STATUS)) + if (!STWI_init(ID_CONFIG_STATUS_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } -void STWI_send_GameConfigREQ(u8 * unk1, u8 *data) +void STWI_send_GameConfigREQ(const u8 *unk1, const u8 *data) { u8 *packetBytes; - int i; + s32 i; - if (!STWI_init(RFU_GAME_CONFIG)) + if (!STWI_init(ID_GAME_CONFIG_REQ)) { - gRfuState->txParams = 6; - - //TODO: what is unk1 - packetBytes = gRfuState->txPacket->rfuPacket8.data; + gSTWIStatus->reqLength = 6; + // TODO: what is unk1 + packetBytes = gSTWIStatus->txPacket->rfuPacket8.data; packetBytes += sizeof(u32); - *(u16*)packetBytes = *(u16*)unk1; - + *(u16 *)packetBytes = *(u16 *)unk1; packetBytes += sizeof(u16); unk1 += sizeof(u16); - - for (i = 0; i < 14; i++) + for (i = 0; i < 14; ++i) { *packetBytes = *unk1; - packetBytes++; - unk1++; + ++packetBytes; + ++unk1; } - - for (i = 0; i < 8; i++) + for (i = 0; i < 8; ++i) { *packetBytes = *data; - packetBytes++; - data++; + ++packetBytes; + ++data; } - STWI_start_Command(); } } void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3) { - if (!STWI_init(RFU_SYSTEM_CONFIG)) + if (!STWI_init(ID_SYSTEM_CONFIG_REQ)) { u8 *packetBytes; - gRfuState->txParams = 1; - - packetBytes = gRfuState->txPacket->rfuPacket8.data; + gSTWIStatus->reqLength = 1; + packetBytes = gSTWIStatus->txPacket->rfuPacket8.data; packetBytes += sizeof(u32); - *packetBytes++ = unk3; *packetBytes++ = unk2; *(u16*)packetBytes = unk1; @@ -263,206 +243,196 @@ void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3) void STWI_send_SC_StartREQ(void) { - if (!STWI_init(RFU_SC_START)) + if (!STWI_init(ID_SC_START_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SC_PollingREQ(void) { - if (!STWI_init(RFU_SC_POLLING)) + if (!STWI_init(ID_SC_POLL_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SC_EndREQ(void) { - if (!STWI_init(RFU_SC_END)) + if (!STWI_init(ID_SC_END_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SP_StartREQ(void) { - if (!STWI_init(RFU_SP_START)) + if (!STWI_init(ID_SP_START_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SP_PollingREQ(void) { - if (!STWI_init(RFU_SP_POLLING)) + if (!STWI_init(ID_SP_POLL_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_SP_EndREQ(void) { - if (!STWI_init(RFU_SP_END)) + if (!STWI_init(ID_SP_END_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_CP_StartREQ(u16 unk1) { - if (!STWI_init(RFU_CP_START)) + if (!STWI_init(ID_CP_START_REQ)) { - gRfuState->txParams = 1; - gRfuState->txPacket->rfuPacket32.data[0] = unk1; + gSTWIStatus->reqLength = 1; + gSTWIStatus->txPacket->rfuPacket32.data[0] = unk1; STWI_start_Command(); } } void STWI_send_CP_PollingREQ(void) { - if (!STWI_init(RFU_CP_POLLING)) + if (!STWI_init(ID_CP_POLL_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_CP_EndREQ(void) { - if (!STWI_init(RFU_CP_END)) + if (!STWI_init(ID_CP_END_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } -void STWI_send_DataTxREQ(void *in, u8 size) +void STWI_send_DataTxREQ(const void *in, u8 size) { - if (!STWI_init(RFU_DATA_TX)) + if (!STWI_init(ID_DATA_TX_REQ)) { - u8 txParams = (size / sizeof(u32)); + u8 reqLength = (size / sizeof(u32)); if (size & (sizeof(u32) - 1)) - txParams += 1; - - gRfuState->txParams = txParams; - CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32)); + reqLength += 1; + gSTWIStatus->reqLength = reqLength; + CpuCopy32(in, gSTWIStatus->txPacket->rfuPacket32.data, gSTWIStatus->reqLength * sizeof(u32)); STWI_start_Command(); } } -void STWI_send_DataTxAndChangeREQ(void *in, u8 size) +void STWI_send_DataTxAndChangeREQ(const void *in, u8 size) { - if (!STWI_init(RFU_DATA_TX_AND_CHANGE)) + if (!STWI_init(ID_DATA_TX_AND_CHANGE_REQ)) { - u8 txParams = (size / sizeof(u32)); + u8 reqLength = (size / sizeof(u32)); if (size & (sizeof(u32) - 1)) - txParams += 1; - - gRfuState->txParams = txParams; - CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32)); + reqLength += 1; + gSTWIStatus->reqLength = reqLength; + CpuCopy32(in, gSTWIStatus->txPacket->rfuPacket32.data, gSTWIStatus->reqLength * sizeof(u32)); STWI_start_Command(); } } void STWI_send_DataRxREQ(void) { - if (!STWI_init(RFU_DATA_RX)) + if (!STWI_init(ID_DATA_RX_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_MS_ChangeREQ(void) { - if (!STWI_init(RFU_MS_CHANGE)) + if (!STWI_init(ID_MS_CHANGE_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_DataReadyAndChangeREQ(u8 unk) { - if (!STWI_init(RFU_DATA_READY_AND_CHANGE)) + if (!STWI_init(ID_DATA_READY_AND_CHANGE_REQ)) { if (!unk) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; } else { u8 *packetBytes; - gRfuState->txParams = 1; - - packetBytes = gRfuState->txPacket->rfuPacket8.data; + gSTWIStatus->reqLength = 1; + packetBytes = gSTWIStatus->txPacket->rfuPacket8.data; packetBytes += sizeof(u32); - *packetBytes++ = unk; *packetBytes++ = 0; *packetBytes++ = 0; *packetBytes = 0; } - STWI_start_Command(); } } void STWI_send_DisconnectedAndChangeREQ(u8 unk0, u8 unk1) { - if (!STWI_init(RFU_DISCONNECTED_AND_CHANGE)) + if (!STWI_init(ID_DISCONNECTED_AND_CHANGE_REQ)) { u8 *packetBytes; - gRfuState->txParams = 1; - - packetBytes = gRfuState->txPacket->rfuPacket8.data; + gSTWIStatus->reqLength = 1; + packetBytes = gSTWIStatus->txPacket->rfuPacket8.data; packetBytes += sizeof(u32); - *packetBytes++ = unk0; *packetBytes++ = unk1; *packetBytes++ = 0; *packetBytes = 0; - STWI_start_Command(); } } void STWI_send_ResumeRetransmitAndChangeREQ(void) { - if (!STWI_init(RFU_RESUME_RETRANSMIT_AND_CHANGE)) + if (!STWI_init(ID_RESUME_RETRANSMIT_AND_CHANGE_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_DisconnectREQ(u8 unk) { - if (!STWI_init(RFU_DISCONNECT)) + if (!STWI_init(ID_DISCONNECT_REQ)) { - gRfuState->txParams = 1; - gRfuState->txPacket->rfuPacket32.data[0] = unk; - + gSTWIStatus->reqLength = 1; + gSTWIStatus->txPacket->rfuPacket32.data[0] = unk; STWI_start_Command(); } } void STWI_send_TestModeREQ(u8 unk0, u8 unk1) { - if (!STWI_init(RFU_TEST_MODE)) + if (!STWI_init(ID_TEST_MODE_REQ)) { - gRfuState->txParams = 1; - gRfuState->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8); - + gSTWIStatus->reqLength = 1; + gSTWIStatus->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8); STWI_start_Command(); } } @@ -472,218 +442,206 @@ void STWI_send_CPR_StartREQ(u16 unk0, u16 unk1, u8 unk2) u32 *packetData; u32 arg1; - if (!STWI_init(RFU_CPR_START)) + if (!STWI_init(ID_CPR_START_REQ)) { - gRfuState->txParams = 2; - + gSTWIStatus->reqLength = 2; arg1 = unk1 | (unk0 << 16); - packetData = gRfuState->txPacket->rfuPacket32.data; + packetData = gSTWIStatus->txPacket->rfuPacket32.data; packetData[0] = arg1; packetData[1] = unk2; - STWI_start_Command(); } } void STWI_send_CPR_PollingREQ(void) { - if (!STWI_init(RFU_CPR_POLLING)) + if (!STWI_init(ID_CPR_POLL_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_CPR_EndREQ(void) { - if (!STWI_init(RFU_CPR_END)) + if (!STWI_init(ID_CPR_END_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } void STWI_send_StopModeREQ(void) { - if (!STWI_init(RFU_STOP_MODE)) + if (!STWI_init(ID_STOP_MODE_REQ)) { - gRfuState->txParams = 0; + gSTWIStatus->reqLength = 0; STWI_start_Command(); } } -void STWI_intr_timer(void) +static void STWI_intr_timer(void) { - switch (gRfuState->timerState) + switch (gSTWIStatus->timerState) { - //TODO: Make an enum for these - case 2: - gRfuState->timerActive = 1; - STWI_set_timer(50); - break; - case 1: - case 4: - STWI_stop_timer(); - STWI_restart_Command(); - break; - case 3: - gRfuState->timerActive = 1; - STWI_stop_timer(); - STWI_reset_ClockCounter(); - if (gRfuState->callbackM) - gRfuState->callbackM(255, 0); - break; + // TODO: Make an enum for these + case 2: + gSTWIStatus->timerActive = 1; + STWI_set_timer(50); + break; + case 1: + case 4: + STWI_stop_timer(); + STWI_restart_Command(); + break; + case 3: + gSTWIStatus->timerActive = 1; + STWI_stop_timer(); + STWI_reset_ClockCounter(); + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(255, 0); + break; } } -void STWI_set_timer(u8 unk) +static void STWI_set_timer(u8 unk) { vu16 *timerL; vu16 *timerH; - timerL = ®_TMCNT_L(gRfuState->timerSelect); - timerH = ®_TMCNT_H(gRfuState->timerSelect); + timerL = ®_TMCNT_L(gSTWIStatus->timerSelect); + timerH = ®_TMCNT_H(gSTWIStatus->timerSelect); REG_IME = 0; switch (unk) { - case 50: - *timerL = 0xFCCB; - gRfuState->timerState = 1; - break; - case 80: - *timerL = 0xFAE0; - gRfuState->timerState = 2; - break; - case 100: - *timerL = 0xF996; - gRfuState->timerState = 3; - break; - case 130: - *timerL = 0xF7AD; - gRfuState->timerState = 4; - break; + case 50: + *timerL = 0xFCCB; + gSTWIStatus->timerState = 1; + break; + case 80: + *timerL = 0xFAE0; + gSTWIStatus->timerState = 2; + break; + case 100: + *timerL = 0xF996; + gSTWIStatus->timerState = 3; + break; + case 130: + *timerL = 0xF7AD; + gSTWIStatus->timerState = 4; + break; } *timerH = TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_1024CLK; - REG_IF = INTR_FLAG_TIMER0 << gRfuState->timerSelect; + REG_IF = INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect; REG_IME = 1; } -void STWI_stop_timer(void) +static void STWI_stop_timer(void) { - gRfuState->timerState = 0; - - REG_TMCNT_L(gRfuState->timerSelect) = 0; - REG_TMCNT_H(gRfuState->timerSelect) = 0; + gSTWIStatus->timerState = 0; + REG_TMCNT_L(gSTWIStatus->timerSelect) = 0; + REG_TMCNT_H(gSTWIStatus->timerSelect) = 0; } -u16 STWI_init(u8 request) +static u16 STWI_init(u8 request) { if (!REG_IME) { - gRfuState->unk_12 = 6; - if (gRfuState->callbackM) - gRfuState->callbackM(request, gRfuState->unk_12); + gSTWIStatus->error = ERR_REQ_CMD_IME_DISABLE; + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(request, gSTWIStatus->error); return TRUE; } - else if (gRfuState->unk_2c == TRUE) + else if (gSTWIStatus->unk_2c == TRUE) { - gRfuState->unk_12 = 2; - gRfuState->unk_2c = FALSE; - if (gRfuState->callbackM) - gRfuState->callbackM(request, gRfuState->unk_12); + gSTWIStatus->error = ERR_REQ_CMD_SENDING; + gSTWIStatus->unk_2c = FALSE; + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(request, gSTWIStatus->error); return TRUE; } - else if(!gRfuState->msMode) + else if(!gSTWIStatus->msMode) { - gRfuState->unk_12 = 4; - if (gRfuState->callbackM) - gRfuState->callbackM(request, gRfuState->unk_12, gRfuState); + gSTWIStatus->error = ERR_REQ_CMD_CLOCK_SLAVE; + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(request, gSTWIStatus->error, gSTWIStatus); return TRUE; } else { - gRfuState->unk_2c = TRUE; - gRfuState->activeCommand = request; - gRfuState->unk_0 = 0; - gRfuState->txParams = 0; - gRfuState->unk_5 = 0; - gRfuState->unk_7 = 0; - gRfuState->unk_8 = 0; - gRfuState->unk_9 = 0; - gRfuState->timerState = 0; - gRfuState->timerActive = 0; - gRfuState->unk_12 = 0; - gRfuState->unk_15 = 0; - + gSTWIStatus->unk_2c = TRUE; + gSTWIStatus->reqActiveCommand = request; + gSTWIStatus->state = 0; + gSTWIStatus->reqLength = 0; + gSTWIStatus->reqNext = 0; + gSTWIStatus->ackLength = 0; + gSTWIStatus->ackNext = 0; + gSTWIStatus->ackActiveCommand = 0; + gSTWIStatus->timerState = 0; + gSTWIStatus->timerActive = 0; + gSTWIStatus->error = 0; + gSTWIStatus->recoveryCount = 0; REG_RCNT = 0x100; REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; return FALSE; } } -int STWI_start_Command() +static s32 STWI_start_Command(void) { u16 imeTemp; - // Yes, it matters that it's casted to a u32... - *(u32*)gRfuState->txPacket->rfuPacket8.data = 0x99660000 | (gRfuState->txParams << 8) | gRfuState->activeCommand; - REG_SIODATA32 = gRfuState->txPacket->rfuPacket32.command; - - gRfuState->unk_0 = 0; - gRfuState->unk_5 = 1; - + // equivalent to gSTWIStatus->txPacket->rfuPacket32.command, + // but the cast here is required to avoid register issue + *(u32 *)gSTWIStatus->txPacket->rfuPacket8.data = 0x99660000 | (gSTWIStatus->reqLength << 8) | gSTWIStatus->reqActiveCommand; + REG_SIODATA32 = gSTWIStatus->txPacket->rfuPacket32.command; + gSTWIStatus->state = 0; + gSTWIStatus->reqNext = 1; imeTemp = REG_IME; REG_IME = 0; - REG_IE |= (INTR_FLAG_TIMER0 << gRfuState->timerSelect); + REG_IE |= (INTR_FLAG_TIMER0 << gSTWIStatus->timerSelect); REG_IE |= INTR_FLAG_SERIAL; REG_IME = imeTemp; - REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_MULTI_BUSY | SIO_115200_BPS; - return 0; } -int STWI_restart_Command(void) +static s32 STWI_restart_Command(void) { - if (gRfuState->unk_15 <= 1) + if (gSTWIStatus->recoveryCount <= 1) { - gRfuState->unk_15++; + ++gSTWIStatus->recoveryCount; STWI_start_Command(); } else { - if (gRfuState->activeCommand == RFU_MS_CHANGE || gRfuState->activeCommand == RFU_DATA_TX_AND_CHANGE || gRfuState->activeCommand == RFU_UNK35 || gRfuState->activeCommand == RFU_RESUME_RETRANSMIT_AND_CHANGE) + if (gSTWIStatus->reqActiveCommand == ID_MS_CHANGE_REQ || gSTWIStatus->reqActiveCommand == ID_DATA_TX_AND_CHANGE_REQ || gSTWIStatus->reqActiveCommand == ID_UNK35_REQ || gSTWIStatus->reqActiveCommand == ID_RESUME_RETRANSMIT_AND_CHANGE_REQ) { - gRfuState->unk_12 = 1; - gRfuState->unk_2c = 0; - - if (gRfuState->callbackM) - gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); + gSTWIStatus->error = ERR_REQ_CMD_CLOCK_DRIFT; + gSTWIStatus->unk_2c = 0; + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(gSTWIStatus->reqActiveCommand, gSTWIStatus->error); } else { - gRfuState->unk_12 = 1; - gRfuState->unk_2c = 0; - - if (gRfuState->callbackM) - gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12); - - gRfuState->unk_0 = 4; //TODO: what's 4 + gSTWIStatus->error = ERR_REQ_CMD_CLOCK_DRIFT; + gSTWIStatus->unk_2c = 0; + if (gSTWIStatus->callbackM != NULL) + gSTWIStatus->callbackM(gSTWIStatus->reqActiveCommand, gSTWIStatus->error); + gSTWIStatus->state = 4; // TODO: what's 4 } } - return 0; } -int STWI_reset_ClockCounter(void) +static s32 STWI_reset_ClockCounter(void) { - gRfuState->unk_0 = 5; //TODO: what is 5 - gRfuState->txParams = 0; - gRfuState->unk_5 = 0; + gSTWIStatus->state = 5; // TODO: what is 5 + gSTWIStatus->reqLength = 0; + gSTWIStatus->reqNext = 0; REG_SIODATA32 = (1 << 31); REG_SIOCNT = 0; REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS; REG_SIOCNT = (SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS) + 0x7F; - return 0; } diff --git a/src/link.c b/src/link.c index d6ed9f5f34a0..939a4afc8b17 100644 --- a/src/link.c +++ b/src/link.c @@ -1349,7 +1349,7 @@ bool8 sub_800AA60(void) { if (gLinkPlayers[i].trainerId == gSavedLinkPlayers[i].trainerId) { - if (gLinkType == LINKTYPE_0x2288) + if (gLinkType == LINKTYPE_BATTLE_TOWER) { if (gLinkType == gLinkPlayers[i].linkType) { @@ -1902,7 +1902,8 @@ bool32 sub_800B504(void) return FALSE; } -u8 sub_800B518(void) +// Unused +u8 GetWirelessCommType(void) { return gWirelessCommType; } diff --git a/src/link_rfu.c b/src/link_rfu.c index cedc6b2fba5b..9291f574eb70 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -364,7 +364,7 @@ u32 sub_800BEC0(void) void rfu_REQ_sendData_wrapper(u8 r2) { u8 val; - if (!gUnknown_03007890->unk_00) + if (!gRfuLinkStatus->parentChild) { val = gUnknown_03004140.unk_02; r2 = 0; @@ -515,14 +515,14 @@ u8 sub_800C12C(u16 r6, u16 r8) sub_800D30C(0xF3, 0x01); return 2; } - for (i = 0; i < gUnknown_03007890->unk_08; i++) + for (i = 0; i < gRfuLinkStatus->findParentCount; i++) { - if (gUnknown_03007890->unk_14[i].unk_00 == r6) + if (gRfuLinkStatus->partner[i].id == r6) { break; } } - if (gUnknown_03007890->unk_08 == 0 || i == gUnknown_03007890->unk_08) + if (gRfuLinkStatus->findParentCount == 0 || i == gRfuLinkStatus->findParentCount) { gUnknown_03004140.unk_14 = 3; sub_800D30C(0xF3, 0x01); @@ -561,7 +561,7 @@ void sub_800C210(u8 a0) gUnknown_03004140.unk_34[i] = 0; } } - i = gUnknown_03007890->unk_03 & a0; + i = gRfuLinkStatus->linkLossSlotFlag & a0; if (i) { sub_800D334(i); @@ -630,8 +630,8 @@ void sub_800C27C(bool8 a0) case 16: gUnknown_03004140.unk_04 = gUnknown_03004140.unk_11; gUnknown_03004140.unk_05 = gUnknown_03004140.unk_12; - sub_800D334(gUnknown_03007890->unk_03); - gUnknown_03004140.unk_14 = gUnknown_03007890->unk_03; + sub_800D334(gRfuLinkStatus->linkLossSlotFlag); + gUnknown_03004140.unk_14 = gRfuLinkStatus->linkLossSlotFlag; sub_800D30C(0x33, 0x01); return; case 17: @@ -703,7 +703,7 @@ bool8 sub_800C36C(u16 a0) } sub_800D610(); } - if (gUnknown_03007890->unk_00 == 1) + if (gRfuLinkStatus->parentChild == 1) { if (sp2) { @@ -800,7 +800,7 @@ void sub_800C54C(u32 a0) rfu_REQ_configSystem(gUnknown_03004140.unk_3c->unk_02, gUnknown_03004140.unk_3c->unk_00, gUnknown_03004140.unk_3c->unk_01); break; case 4: - rfu_REQ_configGameData(gUnknown_03004140.unk_3c->unk_04, gUnknown_03004140.unk_3c->unk_06, gUnknown_03004140.unk_3c->unk_08, gUnknown_03004140.unk_3c->unk_0c); + rfu_REQ_configGameData(gUnknown_03004140.unk_3c->unk_04, gUnknown_03004140.unk_3c->unk_06, (const u8 *)gUnknown_03004140.unk_3c->unk_08, gUnknown_03004140.unk_3c->unk_0c); break; case 5: rfu_REQ_startSearchChild(); @@ -834,7 +834,7 @@ void sub_800C54C(u32 a0) case 15: break; case 16: - rfu_REQ_CHILD_startConnectRecovery(gUnknown_03007890->unk_03); + rfu_REQ_CHILD_startConnectRecovery(gRfuLinkStatus->linkLossSlotFlag); break; case 17: rfu_REQ_CHILD_pollConnectRecovery(); @@ -857,7 +857,7 @@ void sub_800C54C(u32 a0) gUnknown_03004140.unk_0e = 0; } } while (gUnknown_03004140.unk_04 == 18 || gUnknown_03004140.unk_04 == 19); - if (gUnknown_03007890->unk_00 != 1 || !sub_800C36C(0)) + if (gRfuLinkStatus->parentChild != 1 || !sub_800C36C(0)) { sub_800CF34(); sub_800D158(); @@ -910,7 +910,7 @@ static void sub_800C744(u32 a0) static void sub_800C7B4(u16 r8, u16 r6) { u8 sp0; - register u8 *stwiRecvBuffer asm("r0"); + register struct RfuIntrStruct *stwiRecvBuffer asm("r0"); u8 *tmp; u8 i; @@ -983,7 +983,7 @@ static void sub_800C7B4(u16 r8, u16 r6) { sub_800D30C(0x20, 0x01); } - if (gUnknown_03004140.unk_0b && gUnknown_03004140.unk_1a != 1 && gUnknown_03007890->unk_08 == 4) + if (gUnknown_03004140.unk_0b && gUnknown_03004140.unk_1a != 1 && gRfuLinkStatus->findParentCount == 4) { rfu_REQ_endSearchParent(); rfu_waitREQComplete(); @@ -1059,11 +1059,11 @@ static void sub_800C7B4(u16 r8, u16 r6) case 50: if (r6 == 0) { - gUnknown_03004140.unk_14 = gUnknown_03007890->unk_03; + gUnknown_03004140.unk_14 = gRfuLinkStatus->linkLossSlotFlag; gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 17; for (gUnknown_03004140.unk_10 = 0; gUnknown_03004140.unk_10 < 4; gUnknown_03004140.unk_10 ++) { - if ((gUnknown_03007890->unk_03 >> gUnknown_03004140.unk_10) & 1) + if ((gRfuLinkStatus->linkLossSlotFlag >> gUnknown_03004140.unk_10) & 1) { break; } @@ -1092,7 +1092,7 @@ static void sub_800C7B4(u16 r8, u16 r6) else { gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0; - sub_800D334(gUnknown_03007890->unk_03); + sub_800D334(gRfuLinkStatus->linkLossSlotFlag); gUnknown_03004140.unk_1e = 0x33; } gUnknown_03004140.unk_34[gUnknown_03004140.unk_10] = 0; @@ -1126,7 +1126,7 @@ static void sub_800C7B4(u16 r8, u16 r6) { gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0; sub_800D610(); - sub_800D334(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03); + sub_800D334(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); gUnknown_03004140.unk_14 = sp0; sub_800D30C(0x25, 0x01); } @@ -1148,11 +1148,11 @@ static void sub_800C7B4(u16 r8, u16 r6) rfu_REQ_RFUStatus(); rfu_waitREQComplete(); rfu_getRFUStatus(&sp0); - if (sp0 == 0 && gUnknown_03007890->unk_00 == 0) + if (sp0 == 0 && gRfuLinkStatus->parentChild == 0) { stwiRecvBuffer = rfu_getSTWIRecvBuffer(); - stwiRecvBuffer[4] = gUnknown_03007890->unk_02; - stwiRecvBuffer[5] = 1; + stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[4] = gRfuLinkStatus->connSlotFlag; + stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[5] = 1; sub_800C36C(0x29); r6 = 0; } @@ -1163,7 +1163,7 @@ static void sub_800C7B4(u16 r8, u16 r6) if (r6 == 0) { stwiRecvBuffer = rfu_getSTWIRecvBuffer(); - gUnknown_03004140.unk_14 = stwiRecvBuffer[8]; + gUnknown_03004140.unk_14 = stwiRecvBuffer->rxPacketAlloc.rfuPacket8.data[8]; sub_800D358(gUnknown_03004140.unk_14); if (gUnknown_03004140.unk_30) { @@ -1191,7 +1191,7 @@ static void sub_800C7B4(u16 r8, u16 r6) gUnknown_03004140.unk_00 &= ~gUnknown_03004140.unk_14; if (gUnknown_03004140.unk_07) { - if (gUnknown_03007890->unk_00 == 0xFF) + if (gRfuLinkStatus->parentChild == 0xFF) { if (gUnknown_03004140.unk_07 == 8) { @@ -1206,7 +1206,7 @@ static void sub_800C7B4(u16 r8, u16 r6) } } } - if (gUnknown_03007890->unk_00 == 0xFF) + if (gRfuLinkStatus->parentChild == 0xFF) { if (gUnknown_03004140.unk_04 == 0) { @@ -1221,7 +1221,7 @@ static void sub_800C7B4(u16 r8, u16 r6) break; case 38: sub_800D20C(); - if (gUnknown_03007890->unk_00 != 0xFF) + if (gRfuLinkStatus->parentChild != 0xFF) { sub_800D30C(0x50, 0x00); } @@ -1246,8 +1246,8 @@ static void sub_800C7B4(u16 r8, u16 r6) { if (r8 == 28 && r6 != 0 && gUnknown_03004140.unk_07 == 4) { - gUnknown_03007890->unk_00 = 1; - gUnknown_03007890->unk_02 = 15; + gRfuLinkStatus->parentChild = 1; + gRfuLinkStatus->connSlotFlag = 15; sub_800D334(15); rfu_waitREQComplete(); return; @@ -1279,7 +1279,7 @@ static void sub_800CEB0(u16 r6) r7 = gUnknown_03004140.unk_0e; gUnknown_03004140.unk_0e = 0; gUnknown_03004140.unk_0f = 1; - if (gUnknown_03007890->unk_00 == 0) + if (gRfuLinkStatus->parentChild == 0) { sub_800C36C(r6); if (gUnknown_03004140.unk_02 != 1) @@ -1321,8 +1321,8 @@ static void sub_800CF34(void) if (gUnknown_03004140.unk_04 == 5 || gUnknown_03004140.unk_04 == 6 || gUnknown_03004140.unk_04 == 7 || gUnknown_03004140.unk_04 == 8) { - flags = ((gUnknown_03007890->unk_02 ^ gUnknown_03004140.unk_0c) & gUnknown_03007890->unk_02) & ~gUnknown_03007890->unk_07; - gUnknown_03004140.unk_0c = gUnknown_03007890->unk_02; + flags = ((gRfuLinkStatus->connSlotFlag ^ gUnknown_03004140.unk_0c) & gRfuLinkStatus->connSlotFlag) & ~gRfuLinkStatus->getNameFlag; + gUnknown_03004140.unk_0c = gRfuLinkStatus->connSlotFlag; if (flags) { gUnknown_03004140.unk_14 = flags; @@ -1340,14 +1340,14 @@ static void sub_800CF34(void) } else if (gUnknown_03004140.unk_24 & r4) { - if (gUnknown_03007880[i]->unk_34 == 0x46) + if (gRfuSlotStatusNI[i]->recv.state == 0x46) { - if (gUnknown_03007880[i]->unk_61 == 1) + if (gRfuSlotStatusNI[i]->recv.dataType == 1) { r5 = 0x02; for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++) { - if (gUnknown_03007890->unk_14[i].unk_04 == *ptr) + if (gRfuLinkStatus->partner[i].serialNo == *ptr) { gUnknown_03004140.unk_00 |= r4; gUnknown_03004140.unk_01++; @@ -1386,7 +1386,7 @@ static void sub_800CF34(void) if (gUnknown_03004140.unk_0d) { r5 = 0x01; - if (gUnknown_03007890->unk_06 && ((gUnknown_03004140.unk_03 & gUnknown_03004140.unk_00) != gUnknown_03004140.unk_00)) + if (gRfuLinkStatus->sendSlotUNIFlag && ((gUnknown_03004140.unk_03 & gUnknown_03004140.unk_00) != gUnknown_03004140.unk_00)) { r5 = 0x00; } @@ -1434,7 +1434,7 @@ static void sub_800D158(void) REG_IME = 0; if (gUnknown_03004140.unk_04 == 15) { - if (--gUnknown_03004140.unk_28[gUnknown_03004140.unk_10] == 0 || gUnknown_03007880[gUnknown_03004140.unk_10]->unk_0 == 0x27) + if (--gUnknown_03004140.unk_28[gUnknown_03004140.unk_10] == 0 || gRfuSlotStatusNI[gUnknown_03004140.unk_10]->send.state == 0x27) { sub_800D630(); gUnknown_03004140.unk_04 = 24; @@ -1453,7 +1453,7 @@ static void sub_800D158(void) if (gUnknown_03004140.unk_02 == 0) { gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0; - sub_800D334(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03); + sub_800D334(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); gUnknown_03004140.unk_14 = 0; sub_800D30C(0x25, 0x01); } @@ -1462,7 +1462,7 @@ static void sub_800D158(void) static void sub_800D20C(void) { - if (gUnknown_03004140.unk_04 == 15 && gUnknown_03007880[gUnknown_03004140.unk_10]->unk_0 == 0x26) + if (gUnknown_03004140.unk_04 == 15 && gRfuSlotStatusNI[gUnknown_03004140.unk_10]->send.state == 0x26) { gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0; rfu_clearSlot(4, gUnknown_03004140.unk_10); @@ -1490,11 +1490,11 @@ static u8 sub_800D294(void) const u16 *ptr; u8 flags = 0x00; - for (i = 0; i < gUnknown_03007890->unk_08; i++) + for (i = 0; i < gRfuLinkStatus->findParentCount; i++) { for (ptr = gUnknown_03004140.unk_20; *ptr != 0xFFFF; ptr++) { - if (gUnknown_03007890->unk_14[i].unk_04 == *ptr) + if (gRfuLinkStatus->partner[i].serialNo == *ptr) { flags |= (1 << i); } @@ -1525,34 +1525,34 @@ static void sub_800D358(u8 a0) { u8 i; - if (gUnknown_03007890->unk_04) + if (gRfuLinkStatus->sendSlotNIFlag) { for (i = 0; i < 4; i++) { - if (gUnknown_03007880[i]->unk_0 & 0x8000 && gUnknown_03007880[i]->unk_1a & a0) + if (gRfuSlotStatusNI[i]->send.state & 0x8000 && gRfuSlotStatusNI[i]->send.bmSlot & a0) { - rfu_changeSendTarget(0x20, i, gUnknown_03007880[i]->unk_1a & ~a0); + rfu_changeSendTarget(0x20, i, gRfuSlotStatusNI[i]->send.bmSlot & ~a0); } } } - if (gUnknown_03007890->unk_05) + if (gRfuLinkStatus->recvSlotNIFlag) { for (i = 0; i < 4; i++) { - if (gUnknown_03007880[i]->unk_34 & 0x8000 && gUnknown_03007880[i]->unk_4e & a0) + if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.bmSlot & a0) { rfu_NI_stopReceivingData(i); } } } - if (gUnknown_03007890->unk_06) + if (gRfuLinkStatus->sendSlotUNIFlag) { - gUnknown_03007890->unk_06 &= ~a0; + gRfuLinkStatus->sendSlotUNIFlag &= ~a0; for (i = 0; i < 4; i++) { - if (gUnknown_03007870[i]->unk_0 == 0x8024 && a0 & gUnknown_03007870[i]->unk_3) + if (gRfuSlotStatusUNI[i]->send.state == 0x8024 && a0 & gRfuSlotStatusUNI[i]->send.bmSlot) { - gUnknown_03007870[i]->unk_3 &= ~a0; + gRfuSlotStatusUNI[i]->send.bmSlot &= ~a0; } } } @@ -1566,32 +1566,32 @@ static void sub_800D434(void) if (gUnknown_03004140.unk_18) { - if (gUnknown_03007890->unk_04) + if (gRfuLinkStatus->sendSlotNIFlag) { for (i = 0; i < 4; i ++) { - if (gUnknown_03007880[i]->unk_0 & 0x8000) + if (gRfuSlotStatusNI[i]->send.state & 0x8000) { flags = 0; for (j = 0; j < 4; j++) { - if ((gUnknown_03007880[i]->unk_1a >> j) & 1 && gUnknown_03007880[j]->unk_2 > gUnknown_03004140.unk_18) + if ((gRfuSlotStatusNI[i]->send.bmSlot >> j) & 1 && gRfuSlotStatusNI[j]->send.failCounter > gUnknown_03004140.unk_18) { flags |= (1 << j); } if (flags) { - rfu_changeSendTarget(0x20, i, flags ^ gUnknown_03007880[i]->unk_1a); + rfu_changeSendTarget(0x20, i, flags ^ gRfuSlotStatusNI[i]->send.bmSlot); } } } } } - if (gUnknown_03007890->unk_05) + if (gRfuLinkStatus->recvSlotNIFlag) { for (i = 0; i < 4; i++) { - if (gUnknown_03007880[i]->unk_34 & 0x8000 && gUnknown_03007880[i]->unk_36 > gUnknown_03004140.unk_18) + if (gRfuSlotStatusNI[i]->recv.state & 0x8000 && gRfuSlotStatusNI[i]->recv.failCounter > gUnknown_03004140.unk_18) { rfu_NI_stopReceivingData(i); } @@ -1628,7 +1628,7 @@ u8 sub_800D550(u8 a0, u16 a1) u8 sub_800D594(u16 a0) { - if (gUnknown_03007890->unk_04 | gUnknown_03007890->unk_05) + if (gRfuLinkStatus->sendSlotNIFlag | gRfuLinkStatus->recvSlotNIFlag) { gUnknown_03004140.unk_14 = 6; sub_800D30C(0xf3, 0x01); @@ -2049,17 +2049,17 @@ void ASCIIToPkmnStr(u8 *q1, const u8 *q2) u8 sub_800DD1C(u8 maxFlags) { u8 flagCount = 0; - u32 flags = gUnknown_03007890->unk_02; + u32 flags = gRfuLinkStatus->connSlotFlag; u8 i; - if (gUnknown_03007890->unk_00 == 1) + if (gRfuLinkStatus->parentChild == 1) { for (i = 0; i < 4; flags >>= 1, i++) { if (flags & 1) { if (maxFlags == flagCount + 1) - return gUnknown_03007890->unk_0a[i]; + return gRfuLinkStatus->strength[i]; flagCount++; } } @@ -2069,7 +2069,7 @@ u8 sub_800DD1C(u8 maxFlags) for (i = 0; i < 4; flags >>= 1, i++) { if (flags & 1) - return gUnknown_03007890->unk_0a[i]; + return gRfuLinkStatus->strength[i]; } } return 0; @@ -2081,7 +2081,7 @@ NAKED u8 sub_800DD1C(u8 maxFlags) "\tlsls r0, 24\n" "\tlsrs r5, r0, 24\n" "\tmovs r6, 0\n" - "\tldr r0, =gUnknown_03007890\n" + "\tldr r0, =gRfuLinkStatus\n" "\tldr r4, [r0]\n" "\tldrb r2, [r4, 0x2]\n" "\tldrb r1, [r4]\n" @@ -2177,24 +2177,24 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) if (gUnknown_03004140.unk_06 == 1) { retVal = TRUE; - if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04) && ((gUnknown_03007890->unk_07 >> idx) & 1)) + if (sub_8010454(gRfuLinkStatus->partner[idx].serialNo) && ((gRfuLinkStatus->getNameFlag >> idx) & 1)) { - memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); - memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1); + memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD); + memcpy(buff2, gRfuLinkStatus->partner[idx].uname, PLAYER_NAME_LENGTH + 1); } else { memset(buff1, 0, 0xD); - memset(buff2, 0, sizeof(gUnknown_03007890->unk_14[idx].playerName)); + memset(buff2, 0, PLAYER_NAME_LENGTH + 1); } } else { retVal = FALSE; - if (sub_8010454(gUnknown_03007890->unk_14[idx].unk_04)) + if (sub_8010454(gRfuLinkStatus->partner[idx].serialNo)) { - memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); - memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, PLAYER_NAME_LENGTH + 1); + memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD); + memcpy(buff2, gRfuLinkStatus->partner[idx].uname, PLAYER_NAME_LENGTH + 1); } else { @@ -2208,10 +2208,10 @@ bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx) { bool8 retVal = FALSE; - if (gUnknown_03007890->unk_14[idx].unk_04 == 0x7F7D) + if (gRfuLinkStatus->partner[idx].serialNo == 0x7F7D) { - memcpy(buff1, &gUnknown_03007890->unk_14[idx].unk_06, 0xD); - memcpy(buff2, gUnknown_03007890->unk_14[idx].playerName, 8); + memcpy(buff1, gRfuLinkStatus->partner[idx].gname, 0xD); + memcpy(buff2, gRfuLinkStatus->partner[idx].uname, 8); retVal = TRUE; } else @@ -2237,7 +2237,7 @@ void CreateWirelessStatusIndicatorSprite(u8 x, u8 y) x = 0xE7; y = 0x08; } - if (gUnknown_03007890->unk_00 == 1) + if (gRfuLinkStatus->parentChild == 1) { sprId = CreateSprite(&sWirelessStatusIndicatorSpriteTemplate, x, y, 0); gSprites[sprId].data[7] = 0x1234; @@ -2278,12 +2278,12 @@ void LoadWirelessStatusIndicatorSpriteGfx(void) u8 sub_800E124(void) { u8 i; - u8 flags = gUnknown_03007890->unk_02; + u8 flags = gRfuLinkStatus->connSlotFlag; for (i = 0; i < 4; i++) { if (flags & 1) { - return gUnknown_03007890->unk_0a[i]; + return gRfuLinkStatus->strength[i]; } flags >>= 1; } @@ -2307,7 +2307,7 @@ void sub_800E174(void) struct Sprite *sprite = &gSprites[gWirelessStatusIndicatorSpriteId]; u8 signalStrength = 255; u8 i = 0; - if (gUnknown_03007890->unk_00 == 1) + if (gRfuLinkStatus->parentChild == 1) { for (i = 0; i < GetLinkPlayerCount() - 1; i++) { @@ -2530,7 +2530,7 @@ void sub_800E6D0(void) void sub_800E700(void) { - if (!rfu_initializeAPI(gUnknown_03004140.unk_50, sizeof gUnknown_03004140.unk_50, gIntrTable + 1, TRUE)) + if (!rfu_initializeAPI((void *)gUnknown_03004140.unk_50, sizeof gUnknown_03004140.unk_50, gIntrTable + 1, TRUE)) { gLinkType = 0; sub_800AAF4(); @@ -2787,7 +2787,7 @@ void sub_800ED34(u16 unused) } rfu_REQ_recvData(); rfu_waitREQComplete(); - if (gUnknown_03007870[gUnknown_03005000.unk_c3e]->unk_12) + if (gRfuSlotStatusUNI[gUnknown_03005000.unk_c3e]->recv.newDataFlag) { gUnknown_03005000.unk_cd0++; sub_800D7D8(&gUnknown_03005000.unk_124, gUnknown_03005000.unk_c3f); @@ -2858,7 +2858,7 @@ bool8 sub_800EE94(void) bool32 sub_800EEBC(void) { - if (gUnknown_03005000.unk_04 == 7 && !sub_800C12C(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3d].unk_00, 240)) + if (gUnknown_03005000.unk_04 == 7 && !sub_800C12C(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3d].id, 240)) { gUnknown_03005000.unk_04 = 9; return TRUE; @@ -2971,7 +2971,7 @@ bool32 IsRfuRecvQueueEmpty(void) s32 i; s32 j; - if (gUnknown_03007890->unk_06 == 0) + if (gRfuLinkStatus->sendSlotUNIFlag == 0) { return FALSE; } @@ -2999,7 +2999,7 @@ bool32 sub_800F0F8(void) else { gUnknown_03005000.unk_cdb = 0; - if ((gUnknown_03005000.unk_ce2 & gUnknown_03007890->unk_02) == gUnknown_03005000.unk_ce2 && (gUnknown_03005000.unk_ce2 & gUnknown_03007890->unk_02)) + if ((gUnknown_03005000.unk_ce2 & gRfuLinkStatus->connSlotFlag) == gUnknown_03005000.unk_ce2 && (gUnknown_03005000.unk_ce2 & gRfuLinkStatus->connSlotFlag)) { if (!gUnknown_03005000.unk_cdc) { @@ -3119,7 +3119,7 @@ bool32 sub_800F1E0(void) gUnknown_03005000.unk_0e = 0; } retval = gUnknown_03005000.unk_cdc; - return gUnknown_03007890->unk_06 ? retval & 1 : FALSE; + return gRfuLinkStatus->sendSlotUNIFlag ? retval & 1 : FALSE; } void sub_800F498(u16 *a0, u8 *a1) @@ -3162,7 +3162,7 @@ bool32 sub_800F4F0(void) sub_800F86C(0); if (gUnknown_03004140.unk_02 == 0 && gUnknown_03005000.unk_ce4) { - rfu_REQ_disconnect(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03); + rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); rfu_waitREQComplete(); switchval = sub_8011A74(); if (switchval != 1 && switchval != 6 && switchval != 9) @@ -3305,7 +3305,7 @@ static void sub_800F86C(u8 unused) return; // fallthrough case 0x7700: - if (gUnknown_03007890->unk_00 == 0) + if (gRfuLinkStatus->parentChild == 0) { gUnknown_03005000.playerCount = gRecvCmds[i][1]; gUnknown_03005000.unk_cce = sub_800F74C((u8 *)(gRecvCmds[i] + 2)); @@ -3353,7 +3353,7 @@ static void sub_800F86C(u8 unused) { if (gReceivedRemoteLinkPlayers != 0) { - if (gRecvCmds[i][1] & gUnknown_03007890->unk_02) + if (gRecvCmds[i][1] & gRfuLinkStatus->connSlotFlag) { gReceivedRemoteLinkPlayers = 0; sub_800D630(); @@ -3611,7 +3611,7 @@ void sub_801011C(void) void sub_8010148(void) { - rfu_REQ_disconnect(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03); + rfu_REQ_disconnect(gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag); rfu_waitREQComplete(); sub_801011C(); } @@ -3631,7 +3631,7 @@ void LinkRfu_FatalError(void) { sub_800D630(); gUnknown_03005000.unk_ce4 = 1; - gUnknown_03005000.unk_ce3 = gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03; + gUnknown_03005000.unk_ce3 = gRfuLinkStatus->connSlotFlag | gRfuLinkStatus->linkLossSlotFlag; } void sub_80101CC(void) @@ -3821,7 +3821,7 @@ bool8 sub_8010540(void) { if (gUnknown_03005000.unk_cd1[i] < 5 || gUnknown_03005000.unk_cd1[i] > 6) { - if (gUnknown_03007880[i]->unk_34 == 0x46 || gUnknown_03007880[i]->unk_34 == 0x48) + if (gRfuSlotStatusNI[i]->recv.state == 0x46 || gRfuSlotStatusNI[i]->recv.state == 0x48) { if (gUnknown_03005000.unk_cd5[i] == 8) { @@ -3833,7 +3833,7 @@ bool8 sub_8010540(void) } } - else if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x47) + else if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x47) rfu_clearSlot(8, i); { @@ -3898,7 +3898,7 @@ u32 sub_8010714(u16 a0, const u8 *a1) u8 r0 = sub_8011CE4(a1, a0); if (r0 == 0xFF) return 2; - if (gUnknown_03007880[r0]->unk_0 == 0) + if (gRfuSlotStatusNI[r0]->send.state == 0) return 1; return 0; } @@ -3910,7 +3910,7 @@ void sub_8010750(void) sub_8010540(); for (i = 0; i < 4; i++) { - if (gUnknown_03007880[i]->unk_0 == 0x26 || gUnknown_03007880[i]->unk_0 == 0x27) + if (gRfuSlotStatusNI[i]->send.state == 0x26 || gRfuSlotStatusNI[i]->send.state == 0x27) { if (gUnknown_03005000.unk_cd5[i] == 10) gUnknown_03005000.unk_cd5[i] = 11; @@ -3924,16 +3924,16 @@ s32 sub_80107A0(void) s32 retval = 0; if (gUnknown_03005000.unk_c85 == 8) { - if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x26 || gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_0 == 0x27) + if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->send.state == 0x26 || gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->send.state == 0x27) rfu_clearSlot(4, gUnknown_03005000.unk_c3e); } - if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x46 || gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x48) + if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x46 || gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x48) { rfu_clearSlot(8, gUnknown_03005000.unk_c3e); sub_8011A64(gUnknown_03005000.unk_c86, 0); retval = gUnknown_03005000.unk_c86; } - else if (gUnknown_03007880[gUnknown_03005000.unk_c3e]->unk_34 == 0x47) + else if (gRfuSlotStatusNI[gUnknown_03005000.unk_c3e]->recv.state == 0x47) { rfu_clearSlot(8, gUnknown_03005000.unk_c3e); retval = 6; @@ -4282,14 +4282,14 @@ void sub_801103C(void) void sub_8011068(u8 a0) { gUnknown_02022B14.unk_0a_7 = a0; - rfu_REQ_configGameData(0, 2, &gUnknown_02022B14, gUnknown_02022B22); + rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22); } void sub_8011090(u8 a0, u32 a1, u32 a2) { if (a0) sub_8010F84(a0, a1, a2); - rfu_REQ_configGameData(0, 2, &gUnknown_02022B14, gUnknown_02022B22); + rfu_REQ_configGameData(0, 2, (const u8 *)&gUnknown_02022B14, gUnknown_02022B22); } void sub_80110B8(u32 a0) @@ -4370,7 +4370,7 @@ void sub_801120C(u8 a0, u8 unused1) { if ((gUnknown_03004140.unk_14 >> i) & 1) { - struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06; + struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)gRfuLinkStatus->partner[i].gname; if (structPtr->unk_0a_0 == sub_800F7DC()->unk_0a_0) { gUnknown_03005000.unk_cd1[i] = 0; @@ -4528,7 +4528,7 @@ u8 sub_8011628(s32 a0) { if ((a0 >> i) & 1) { - struct UnkLinkRfuStruct_02022B14 *structPtr = &gUnknown_03007890->unk_14[i].unk_06; + struct UnkLinkRfuStruct_02022B14 *structPtr = (void *)gRfuLinkStatus->partner[i].gname; if (structPtr->unk_0a_0 == 0x45) ret |= (1 << i); } @@ -4629,7 +4629,7 @@ void sub_8011674(u8 a0, u8 unused1) break; case 0x32: gUnknown_03005000.unk_f0 = 3; - if (gUnknown_03007890->unk_00 == 0) + if (gRfuLinkStatus->parentChild == 0) gUnknown_03005000.unk_c3c = 1; break; case 0x30: @@ -4654,7 +4654,7 @@ void sub_8011674(u8 a0, u8 unused1) sub_800C27C(0); } - if (gUnknown_03007890->unk_00 == 0xFF && gUnknown_03004140.unk_07 == 0 && FuncIsActiveTask(sub_800EB44) == TRUE) + if (gRfuLinkStatus->parentChild == 0xFF && gUnknown_03004140.unk_07 == 0 && FuncIsActiveTask(sub_800EB44) == TRUE) gUnknown_03005000.unk_04 = 0x11; sub_8011A64(2, a0); @@ -4825,13 +4825,13 @@ u8 sub_8011CE4(const u8 *a0, u16 a1) for (i = 0; i < 4; i++) { - u16 trainerId = ReadU16(gUnknown_03007890->unk_14[i].unk_06.unk_00.playerTrainerId); - if (sub_8010454(gUnknown_03007890->unk_14[i].unk_04) - && !StringCompare(a0, gUnknown_03007890->unk_14[i].playerName) + u16 trainerId = ReadU16(gRfuLinkStatus->partner[i].gname + 2); + if (sub_8010454(gRfuLinkStatus->partner[i].serialNo) + && !StringCompare(a0, gRfuLinkStatus->partner[i].uname) && a1 == trainerId) { ret = i; - if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF) + if (gRfuLinkStatus->partner[i].slot != 0xFF) break; } } @@ -4911,7 +4911,7 @@ void sub_8011EF4(u8 taskId) u8 id = sub_8011CE4((u8*)data, ReadU16(&data[8])); if (id != 0xFF) { - if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF) + if (gRfuLinkStatus->partner[id].slot != 0xFF) { gUnknown_03005000.unk_c3d = id; if (sub_800EEBC()) @@ -5006,9 +5006,9 @@ void sub_801209C(u8 taskId) u8 id = sub_8011CE4(gUnknown_03005000.playerName, trainerId); if (id != 0xFF) { - if (!sub_801200C(gTasks[taskId].data[1], &gUnknown_03007890->unk_14[id].unk_06)) + if (!sub_801200C(gTasks[taskId].data[1], (void *)gRfuLinkStatus->partner[id].gname)) { - if (gUnknown_03007890->unk_14[id].unk_02 != 0xFF && !sub_800C12C(gUnknown_03007890->unk_14[id].unk_00, 0x5A)) + if (gRfuLinkStatus->partner[id].slot != 0xFF && !sub_800C12C(gRfuLinkStatus->partner[id].id, 0x5A)) { gUnknown_03005000.unk_04 = 0xA; DestroyTask(taskId); @@ -5081,17 +5081,17 @@ void sub_801229C(void) s32 i, j; nullsub_13(GetBlockReceivedStatus(), 0x1C, 0x13, 2); - nullsub_13(gUnknown_03007890->unk_02, 0x14, 1, 1); - nullsub_13(gUnknown_03007890->unk_03, 0x17, 1, 1); + nullsub_13(gRfuLinkStatus->connSlotFlag, 0x14, 1, 1); + nullsub_13(gRfuLinkStatus->linkLossSlotFlag, 0x17, 1, 1); if (gUnknown_03005000.unk_0c == 1) { for (i = 0; i < 4; i++) { - if ((gUnknown_03007890->unk_07 >> i) & 1) + if ((gRfuLinkStatus->getNameFlag >> i) & 1) { - nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4); - nullsub_5((void*) &gUnknown_03007890->unk_14[i].unk_06, 6, i + 3); - nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3); + nullsub_13(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); + nullsub_5((void*)gRfuLinkStatus->partner[i].gname, 6, i + 3); + nullsub_5(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); } } for (i = 0; i < 4; i++) @@ -5103,7 +5103,7 @@ void sub_801229C(void) } nullsub_5(gUnknown_082ED868, 1, 0xF); } - else if (gUnknown_03007890->unk_02 != 0 && gUnknown_03007890->unk_07 != 0) + else if (gRfuLinkStatus->connSlotFlag != 0 && gRfuLinkStatus->getNameFlag != 0) { for (i = 0; i < 4; i++) { @@ -5111,19 +5111,19 @@ void sub_801229C(void) nullsub_5(gUnknown_082ED84B, 6, i + 3); nullsub_5(gUnknown_082ED85B, 0x16, i + 3); } - nullsub_13(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_04, 1, 3, 4); - nullsub_5((void*) &gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].unk_06, 6, 3); - nullsub_5(gUnknown_03007890->unk_14[gUnknown_03005000.unk_c3e].playerName, 0x16, 3); + nullsub_13(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].serialNo, 1, 3, 4); + nullsub_5((void*)gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].gname, 6, 3); + nullsub_5(gRfuLinkStatus->partner[gUnknown_03005000.unk_c3e].uname, 0x16, 3); } else { - for (i = 0; i < gUnknown_03007890->unk_08; i++) + for (i = 0; i < gRfuLinkStatus->findParentCount; i++) { - if (gUnknown_03007890->unk_14[i].unk_02 != 0xFF) + if (gRfuLinkStatus->partner[i].slot != 0xFF) { - nullsub_13(gUnknown_03007890->unk_14[i].unk_04, 1, i + 3, 4); - nullsub_13(gUnknown_03007890->unk_14[i].unk_00, 6, i + 3, 4); - nullsub_5(gUnknown_03007890->unk_14[i].playerName, 0x16, i + 3); + nullsub_13(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); + nullsub_13(gRfuLinkStatus->partner[i].id, 6, i + 3, 4); + nullsub_5(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); } } for (; i < 4; i++) diff --git a/src/mail.c b/src/mail.c index be2b1dc95af9..f6f96b0124b6 100644 --- a/src/mail.c +++ b/src/mail.c @@ -542,7 +542,7 @@ static void CB2_ExitMailReadFreeVars(void) case 1: case 2: FreeMonIconPalette(sub_80D2E84(sMailRead->mail->species)); - sub_80D2EF8(&gSprites[sMailRead->monIconSprite]); + FreeAndDestroyMonIconSprite(&gSprites[sMailRead->monIconSprite]); } memset(sMailRead, 0, sizeof(*sMailRead)); ResetPaletteFade(); diff --git a/src/main_menu.c b/src/main_menu.c index 01d9dfe4b001..61a60a8e7fd7 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -643,30 +643,30 @@ static void Task_MainMenuCheckSaveFile(u8 taskId) tWirelessAdapterConnected = TRUE; switch (gSaveFileStatus) { - case 1: + case SAVE_STATUS_OK: tMenuType = HAS_SAVED_GAME; if (IsMysteryGiftEnabled()) tMenuType++; gTasks[taskId].func = Task_MainMenuCheckBattery; break; - case 2: + case SAVE_STATUS_CORRUPT: CreateMainMenuErrorWindow(gText_SaveFileErased); tMenuType = HAS_NO_SAVED_GAME; gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; break; - case 0xFF: + case SAVE_STATUS_ERROR: CreateMainMenuErrorWindow(gText_SaveFileCorrupted); gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; tMenuType = HAS_SAVED_GAME; if (IsMysteryGiftEnabled() == TRUE) tMenuType++; break; - case 0: + case SAVE_STATUS_EMPTY: default: tMenuType = HAS_NO_SAVED_GAME; gTasks[taskId].func = Task_MainMenuCheckBattery; break; - case 4: + case SAVE_STATUS_NO_FLASH: CreateMainMenuErrorWindow(gJPText_No1MSubCircuit); gTasks[taskId].tMenuType = HAS_NO_SAVED_GAME; gTasks[taskId].func = Task_WaitForSaveFileErrorWindow; @@ -1884,7 +1884,7 @@ static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite *sprite) static u8 NewGameBirchSpeech_CreateLotadSprite(u8 a, u8 b) { - return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1); + return CreatePicSprite2(SPECIES_LOTAD, SHINY_ODDS, 0, 1, a, b, 14, -1); } static void AddBirchSpeechObjects(u8 taskId) diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index add48efd861e..8fe233fc1cf3 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -360,7 +360,7 @@ static void InitGiddyTaleList(void) break; if (r1 == 6) r1 = 0; - giddy->randomWords[i] = sub_811EE90(arr[r1][0]); + giddy->randomWords[i] = GetRandomEasyChatWordFromUnlockedGroup(arr[r1][0]); } } } diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c index bc32cda30ad4..8596b43cddf6 100644 --- a/src/mevent_801BAAC.c +++ b/src/mevent_801BAAC.c @@ -445,7 +445,7 @@ void sub_801C61C(void) { u8 r6 = 0; if (sWonderCardData->unk_017C != 0xFF) - sub_80D2EF8(&gSprites[sWonderCardData->unk_017C]); + FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017C]); if (sWonderCardData->unk_0000.unk_09 != 0 && sWonderCardData->unk_0000.unk_08_0 == 1) { for (; r6 < sWonderCardData->unk_0000.unk_09; r6++) @@ -456,7 +456,7 @@ void sub_801C61C(void) } if (sWonderCardData->unk_017D[r6][1] != 0xFF) { - sub_80D2EF8(&gSprites[sWonderCardData->unk_017D[r6][1]]); + FreeAndDestroyMonIconSprite(&gSprites[sWonderCardData->unk_017D[r6][1]]); } } FreeSpriteTilesByTag(0x8000); diff --git a/src/mevent_news.c b/src/mevent_news.c index 192bb0fc7aa0..9e78cf406be9 100644 --- a/src/mevent_news.c +++ b/src/mevent_news.c @@ -53,6 +53,7 @@ void sub_801DBDC(void) } } +// Unused u16 sub_801DC20(void) { u16 *r6 = &gSpecialVar_Result; diff --git a/src/new_game.c b/src/new_game.c index b24114f774b4..464da6414669 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -150,7 +150,7 @@ void ResetMenuAndMonGlobals(void) void NewGameInitData(void) { - if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) RtcReset(); gDifferentSaveFile = 1; diff --git a/src/overworld.c b/src/overworld.c index 1cb264369039..e11dbbfda594 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -89,16 +89,16 @@ extern const u8 EventScript_DoLinkRoomExit[]; extern const u8 CableClub_EventScript_TooBusyToNotice[]; extern const u8 CableClub_EventScript_ReadTrainerCard[]; extern const u8 CableClub_EventScript_ReadTrainerCardColored[]; -extern const u8 EventScript_BattleColosseum4P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum4P_PlayerSpot1[]; -extern const u8 EventScript_BattleColosseum4P_PlayerSpot2[]; -extern const u8 EventScript_BattleColosseum4P_PlayerSpot3[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[]; +extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[]; extern const u8 EventScript_RecordCenter_Spot0[]; extern const u8 EventScript_RecordCenter_Spot1[]; extern const u8 EventScript_RecordCenter_Spot2[]; extern const u8 EventScript_RecordCenter_Spot3[]; -extern const u8 EventScript_BattleColosseum2P_PlayerSpot0[]; -extern const u8 EventScript_BattleColosseum2P_PlayerSpot1[]; +extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[]; +extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[]; extern const u8 EventScript_TradeCenter_Chair1[]; extern const u8 EventScript_TradeCenter_Chair0[]; extern const u8 EventScript_ConfirmLeaveTradeRoom[]; @@ -863,7 +863,7 @@ static void mli0_load_map(u32 a1) isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); isIndoors = IsMapTypeIndoors(gMapHeader.mapType); - sub_80EB218(); + CheckLeftFriendsSecretBase(); TrySetMapSaveWarpStatus(); ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); @@ -1580,7 +1580,7 @@ void CB2_LoadMap(void) ScriptContext1_Init(); ScriptContext2_Disable(); SetMainCallback1(NULL); - SetMainCallback2(c2_change_map); + SetMainCallback2(CB2_DoChangeMap); gMain.savedCallback = CB2_LoadMap2; } @@ -1714,7 +1714,7 @@ void CB2_ContinueSavedGame(void) FieldClearVBlankHBlankCallbacks(); StopMapMusic(); ResetSafariZoneFlag_(); - if (gSaveFileStatus == 0xFF) + if (gSaveFileStatus == SAVE_STATUS_ERROR) ResetWinStreaks(); LoadSaveblockMapHeader(); @@ -2782,13 +2782,13 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) // these event scripts runs. static u16 GetDirectionForEventScript(const u8 *script) { - if (script == EventScript_BattleColosseum4P_PlayerSpot0) + if (script == EventScript_BattleColosseum_4P_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == EventScript_BattleColosseum4P_PlayerSpot1) + else if (script == EventScript_BattleColosseum_4P_PlayerSpot1) return FACING_FORCED_LEFT; - else if (script == EventScript_BattleColosseum4P_PlayerSpot2) + else if (script == EventScript_BattleColosseum_4P_PlayerSpot2) return FACING_FORCED_RIGHT; - else if (script == EventScript_BattleColosseum4P_PlayerSpot3) + else if (script == EventScript_BattleColosseum_4P_PlayerSpot3) return FACING_FORCED_LEFT; else if (script == EventScript_RecordCenter_Spot0) return FACING_FORCED_RIGHT; @@ -2798,9 +2798,9 @@ static u16 GetDirectionForEventScript(const u8 *script) return FACING_FORCED_RIGHT; else if (script == EventScript_RecordCenter_Spot3) return FACING_FORCED_LEFT; - else if (script == EventScript_BattleColosseum2P_PlayerSpot0) + else if (script == EventScript_BattleColosseum_2P_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == EventScript_BattleColosseum2P_PlayerSpot1) + else if (script == EventScript_BattleColosseum_2P_PlayerSpot1) return FACING_FORCED_LEFT; else if (script == EventScript_TradeCenter_Chair0) return FACING_FORCED_RIGHT; diff --git a/src/pokedex.c b/src/pokedex.c index 91db54906955..bd766fbf7c2d 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -52,7 +52,7 @@ struct UnknownStruct1 const struct PokedexOption *pokedexList; u8 unk4; u8 unk5; - u16 unk6; + u16 numOptions; }; struct UnknownStruct3 @@ -99,7 +99,7 @@ struct PokedexView u16 unk618; u16 seenCount; u16 ownCount; - u16 unk61E[4]; + u16 monSpriteIds[4]; u16 selectedMonSpriteId; u16 unk628; u16 unk62A; @@ -154,18 +154,18 @@ void sub_80BC3DC(u8); void sub_80BC47C(u8); bool8 sub_80BC514(u8); static void LoadPokedexBgPalette(u8); -void sub_80BC890(void); -void sub_80BC8D4(u8, u8); +static void FreeWindowAndBgBuffers(void); +static void CreatePokedexList(u8 dexMode, u8 sortMode); static void CreateMonDexNum(u16, u8, u8, u16); static void CreateCaughtBall(u16, u8, u8, u16); static u8 CreateMonName(u16, u8, u8); -void sub_80BD28C(u8, u8, u16); +static void ClearMonListEntry(u8 x, u8 y, u16 unused); static void CreateInitialPokemonSprites(u16, u16); bool8 sub_80BD404(u8, u8, u8); u16 sub_80BD69C(u16, u16); -void sub_80BD8D0(void); +static void UpdateSelectedMonSpriteId(void); static bool8 UpdateSelectedMon(void); -u8 sub_80BDA40(void); +static u8 ClearMonSprites(void); u16 GetPokemonSpriteToDisplay(u16); u32 sub_80BDACC(u16, s16, s16); static void CreateInterfaceSprites(u8); @@ -229,7 +229,7 @@ void sub_80C2064(u8, u8); void sub_80C20F8(u8); void sub_80C21D4(u8); void sub_80C2294(u8); -u8 sub_80C2318(u8, u8); +static u8 GetSearchModeSelection(u8 taskId, u8 option); void sub_80C23B8(u8); void sub_80C2594(u8); void sub_80C2618(const u8*); @@ -1136,9 +1136,34 @@ static const struct PokedexOption gDexSearchTypeOptions[] = {NULL, NULL}, }; -static const u8 gUnknown_0856EFAC[] = {0x00, 0x01}; -static const u8 gUnknown_0856EFAE[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; -static const u8 gDexSearchTypeIds[] = { + +#define SEARCH_NAME 0 +#define SEARCH_COLOR 1 +#define SEARCH_TYPE_1 2 +#define SEARCH_TYPE_2 3 +#define SEARCH_ORDER 4 +#define SEARCH_DEX_MODE 5 + +#define SORT_NUMERICAL 0 +#define SORT_ALPHABETICAL 1 +#define SORT_HEAVIEST 2 +#define SORT_LIGHTEST 3 +#define SORT_TALLEST 4 +#define SORT_SMALLEST 5 + +static const u8 sPokedexModes[] = {DEX_MODE_HOENN, DEX_MODE_NATIONAL}; +static const u8 sSortOptions[] = +{ + SORT_NUMERICAL, + SORT_ALPHABETICAL, + SORT_HEAVIEST, + SORT_LIGHTEST, + SORT_TALLEST, + SORT_SMALLEST, +}; + +static const u8 gDexSearchTypeIds[] = +{ TYPE_NONE, TYPE_NORMAL, TYPE_FIGHTING, @@ -1159,7 +1184,7 @@ static const u8 gDexSearchTypeIds[] = { TYPE_DARK, }; -static const struct UnknownStruct1 gUnknown_0856EFC8[] = +static const struct UnknownStruct1 sSearchOptions[] = { {gDexSearchAlphaOptions, 6, 7, 10}, {gDexSearchColorOptions, 8, 9, 11}, @@ -1285,7 +1310,7 @@ static void ResetPokedexView(struct PokedexView *pokedexView) pokedexView->seenCount = 0; pokedexView->ownCount = 0; for (i = 0; i < 4; i++) - pokedexView->unk61E[i] = 0xFFFF; + pokedexView->monSpriteIds[i] = 0xFFFF; pokedexView->unk628 = 0; pokedexView->unk62A = 0; pokedexView->unk62C = 0; @@ -1367,7 +1392,7 @@ void CB2_Pokedex(void) EnableInterrupts(1); SetVBlankCallback(sub_80BB370); SetMainCallback2(sub_80BB774); - sub_80BC8D4(sPokedexView->dexMode, sPokedexView->dexOrder); + CreatePokedexList(sPokedexView->dexMode, sPokedexView->dexOrder); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80); break; } @@ -1400,12 +1425,12 @@ void sub_80BB7D4(u8 taskId) { if ((gMain.newKeys & A_BUTTON) && sPokedexView->pokedexList[sPokedexView->selectedPokemon].seen) { - sub_80BD8D0(); + UpdateSelectedMonSpriteId(); BeginNormalPaletteFade(~(1 << (gSprites[sPokedexView->selectedMonSpriteId].oam.paletteNum + 16)), 0, 0, 0x10, RGB_BLACK); gSprites[sPokedexView->selectedMonSpriteId].callback = MoveMonIntoPosition; gTasks[taskId].func = LoadPageOnceMonFinishedMoving; PlaySE(SE_PIN); - sub_80BC890(); + FreeWindowAndBgBuffers(); } else if (gMain.newKeys & START_BUTTON) { @@ -1428,7 +1453,7 @@ void sub_80BB7D4(u8 taskId) sPokedexView->unk618 = sPokedexView->dexOrder; gTasks[taskId].func = sub_80BBD1C; PlaySE(SE_PC_LOGIN); - sub_80BC890(); + FreeWindowAndBgBuffers(); } else if (gMain.newKeys & B_BUTTON) { @@ -1474,14 +1499,14 @@ void sub_80BBA78(u8 taskId) case 1: //LIST TOP sPokedexView->selectedPokemon = 0; sPokedexView->unk62C = 0x40; - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu break; case 2: //LIST BOTTOM sPokedexView->selectedPokemon = sPokedexView->pokemonListCount - 1; sPokedexView->unk62C = sPokedexView->pokemonListCount * 16 + 0x30; - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; //Exit menu break; @@ -1542,7 +1567,7 @@ void sub_80BBD1C(u8 taskId) { if (!gTasks[gTasks[taskId].data[0]].isActive) { - sub_80BDA40(); + ClearMonSprites(); if (sPokedexView->unk64E != 0) { sPokedexView->selectedPokemon = 0; @@ -1570,8 +1595,8 @@ void sub_80BBDE8(u8 taskId) if (!IsNationalPokedexEnabled()) gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; gSaveBlock2Ptr->pokedex.order = sPokedexView->dexOrder; - sub_80BDA40(); - sub_80BC890(); + ClearMonSprites(); + FreeWindowAndBgBuffers(); DestroyTask(taskId); SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); @@ -1600,13 +1625,13 @@ void sub_80BBEB8(u8 taskId) { u32 a; - sub_80BD8D0(); + UpdateSelectedMonSpriteId(); a = (1 << (gSprites[sPokedexView->selectedMonSpriteId].oam.paletteNum + 16)); gSprites[sPokedexView->selectedMonSpriteId].callback = MoveMonIntoPosition; BeginNormalPaletteFade(~a, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = sub_80BC2D4; PlaySE(SE_PIN); - sub_80BC890(); + FreeWindowAndBgBuffers(); } else if (gMain.newKeys & START_BUTTON) { @@ -1623,7 +1648,7 @@ void sub_80BBEB8(u8 taskId) sPokedexView->unk64E = 0; gTasks[taskId].func = sub_80BBD1C; PlaySE(SE_PC_LOGIN); - sub_80BC890(); + FreeWindowAndBgBuffers(); } else if (gMain.newKeys & B_BUTTON) { @@ -1668,14 +1693,14 @@ static void HandleButtonPress_StartMenu(u8 taskId) case 1: //LIST TOP sPokedexView->selectedPokemon = 0; sPokedexView->unk62C = 0x40; - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; break; case 2: //LIST BOTTOM sPokedexView->selectedPokemon = sPokedexView->pokemonListCount - 1; sPokedexView->unk62C = sPokedexView->pokemonListCount * 16 + 0x30; - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); gMain.newKeys |= START_BUTTON; break; @@ -1747,8 +1772,8 @@ void sub_80BC3DC(u8 taskId) sPokedexView->dexMode = DEX_MODE_HOENN; sPokedexView->dexOrder = sPokedexView->unk618; gTasks[taskId].func = sub_80BB78C; - sub_80BDA40(); - sub_80BC890(); + ClearMonSprites(); + FreeWindowAndBgBuffers(); } } @@ -1817,7 +1842,7 @@ bool8 sub_80BC514(u8 a) break; case 3: if (a == 0) - sub_80BC8D4(sPokedexView->dexMode, sPokedexView->dexOrder); + CreatePokedexList(sPokedexView->dexMode, sPokedexView->dexOrder); CreateInitialPokemonSprites(sPokedexView->selectedPokemon, 0xE); sPokedexView->menuIsOpen = 0; sPokedexView->menuY = 0; @@ -1871,7 +1896,7 @@ static void LoadPokedexBgPalette(u8 a) LoadPalette(GetOverworldTextboxPalettePtr(), 0xF0, 32); } -void sub_80BC890(void) +static void FreeWindowAndBgBuffers(void) { void* tilemapBuffer; @@ -1890,7 +1915,7 @@ void sub_80BC890(void) Free(tilemapBuffer); } -void sub_80BC8D4(u8 dexMode, u8 sortMode) +static void CreatePokedexList(u8 dexMode, u8 sortMode) { u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever. #define temp_dexCount vars[0] @@ -1923,7 +1948,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) switch (sortMode) { - case 0: + case SORT_NUMERICAL: if (temp_isHoennDex) { for (i = 0; i < temp_dexCount; i++) @@ -1960,7 +1985,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) } } break; - case 1: + case SORT_ALPHABETICAL: for (i = 0; i < POKEMON_SLOTS_NUMBER - 1; i++) { temp_dexNum = gPokedexOrder_Alphabetical[i]; @@ -1974,7 +1999,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) } } break; - case 2: + case SORT_HEAVIEST: for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { temp_dexNum = gPokedexOrder_Weight[i]; @@ -1988,7 +2013,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) } } break; - case 3: + case SORT_LIGHTEST: for (i = 0; i < NATIONAL_DEX_COUNT; i++) { temp_dexNum = gPokedexOrder_Weight[i]; @@ -2002,7 +2027,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) } } break; - case 4: + case SORT_TALLEST: for (i = NATIONAL_DEX_COUNT - 1; i >= 0; i--) { temp_dexNum = gPokedexOrder_Height[i]; @@ -2016,7 +2041,7 @@ void sub_80BC8D4(u8 dexMode, u8 sortMode) } } break; - case 5: + case SORT_SMALLEST: for (i = 0; i < NATIONAL_DEX_COUNT; i++) { temp_dexNum = gPokedexOrder_Height[i]; @@ -2065,11 +2090,11 @@ static void CreateMonListEntry(u8 direction, u16 b, u16 c) { if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) { - sub_80BD28C(0x11, i * 2, c); + ClearMonListEntry(0x11, i * 2, c); } else { - sub_80BD28C(0x11, i * 2, c); + ClearMonListEntry(0x11, i * 2, c); if (sPokedexView->pokedexList[_b].seen) { CreateMonDexNum(_b, 0x12, i * 2, c); @@ -2090,11 +2115,11 @@ static void CreateMonListEntry(u8 direction, u16 b, u16 c) _b = b - 5; if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) { - sub_80BD28C(0x11, sPokedexView->unk630 * 2, c); + ClearMonListEntry(0x11, sPokedexView->unk630 * 2, c); } else { - sub_80BD28C(0x11, sPokedexView->unk630 * 2, c); + ClearMonListEntry(0x11, sPokedexView->unk630 * 2, c); if (sPokedexView->pokedexList[_b].seen) { CreateMonDexNum(_b, 0x12, sPokedexView->unk630 * 2, c); @@ -2115,10 +2140,10 @@ static void CreateMonListEntry(u8 direction, u16 b, u16 c) if (r2 > 15) r2 -= 16; if (_b < 0 || _b >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[_b].dexNum == 0xFFFF) - sub_80BD28C(0x11, r2 * 2, c); + ClearMonListEntry(0x11, r2 * 2, c); else { - sub_80BD28C(0x11, r2 * 2, c); + ClearMonListEntry(0x11, r2 * 2, c); if (sPokedexView->pokedexList[_b].seen) { CreateMonDexNum(_b, 0x12, r2 * 2, c); @@ -2173,7 +2198,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) return StringLength(str); } -void sub_80BD28C(u8 x, u8 y, u16 unused) +static void ClearMonListEntry(u8 x, u8 y, u16 unused) { FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 0x60, 16); } @@ -2187,7 +2212,7 @@ static void CreateInitialPokemonSprites(u16 selectedMon, u16 b) gPaletteFade.bufferTransferDisabled = TRUE; for (i = 0; i < 4; i++) - sPokedexView->unk61E[i] = 0xFFFF; + sPokedexView->monSpriteIds[i] = 0xFFFF; sPokedexView->selectedMonSpriteId = 0xFFFF; unk = GetPokemonSpriteToDisplay(selectedMon - 1); @@ -2236,8 +2261,8 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c) case 1: for (i = 0; i < 4; i++) { - if (sPokedexView->unk61E[i] != 0xFFFF) - gSprites[sPokedexView->unk61E[i]].data[5] += b; + if (sPokedexView->monSpriteIds[i] != 0xFFFF) + gSprites[sPokedexView->monSpriteIds[i]].data[5] += b; } foo = 16 * (c - sPokedexView->unk62E) / c; SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 - foo); @@ -2246,8 +2271,8 @@ bool8 sub_80BD404(u8 a, u8 b, u8 c) case 2: for (i = 0; i < 4; i++) { - if (sPokedexView->unk61E[i] != 0xFFFF) - gSprites[sPokedexView->unk61E[i]].data[5] -= b; + if (sPokedexView->monSpriteIds[i] != 0xFFFF) + gSprites[sPokedexView->monSpriteIds[i]].data[5] -= b; } foo = 16 * (c - sPokedexView->unk62E) / c; SetGpuReg(REG_OFFSET_BG2VOFS, sPokedexView->initialVOffset + sPokedexView->unk632 * 16 + foo); @@ -2331,7 +2356,7 @@ u16 sub_80BD69C(u16 selectedMon, u16 b) for (i = 0; i < 7; i++) selectedMon = sub_80C0E0C(1, selectedMon, 0, sPokedexView->pokemonListCount - 1); sPokedexView->unk62C += 16 * (selectedMon - r6); - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(selectedMon, 0xE); PlaySE(SE_Z_PAGE); } @@ -2341,7 +2366,7 @@ u16 sub_80BD69C(u16 selectedMon, u16 b) for (i = 0; i < 7; i++) selectedMon = sub_80C0E0C(0, selectedMon, 0, sPokedexView->pokemonListCount - 1); sPokedexView->unk62C += (selectedMon - r6) * 16; - sub_80BDA40(); + ClearMonSprites(); CreateInitialPokemonSprites(selectedMon, 0xE); PlaySE(SE_Z_PAGE); } @@ -2365,13 +2390,13 @@ u16 sub_80BD69C(u16 selectedMon, u16 b) return selectedMon; } -void sub_80BD8D0(void) +static void UpdateSelectedMonSpriteId(void) { u16 i; for (i = 0; i < 4; i++) { - u16 spriteId = sPokedexView->unk61E[i]; + u16 spriteId = sPokedexView->monSpriteIds[i]; if (gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF) sPokedexView->selectedMonSpriteId = spriteId; @@ -2432,16 +2457,16 @@ static bool8 UpdateSelectedMon(void) return FALSE; } -u8 sub_80BDA40(void) +static u8 ClearMonSprites(void) { u16 i; for (i = 0; i < 4; i++) { - if (sPokedexView->unk61E[i] != 0xFFFF) + if (sPokedexView->monSpriteIds[i] != 0xFFFF) { - FreeAndDestroyMonPicSprite(sPokedexView->unk61E[i]); - sPokedexView->unk61E[i] = 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->monSpriteIds[i]); + sPokedexView->monSpriteIds[i] = 0xFFFF; } } return FALSE; @@ -2463,7 +2488,7 @@ u32 sub_80BDACC(u16 num, s16 x, s16 y) for (i = 0; i < 4; i++) { - if (sPokedexView->unk61E[i] == 0xFFFF) + if (sPokedexView->monSpriteIds[i] == 0xFFFF) { u8 spriteId = CreateMonSpriteFromNationalDexNumber(num, x, y, i); @@ -2472,7 +2497,7 @@ u32 sub_80BDACC(u16 num, s16 x, s16 y) gSprites[spriteId].data[0] = 0; gSprites[spriteId].data[1] = i; gSprites[spriteId].data[2] = NationalPokedexNumToSpecies(num); - sPokedexView->unk61E[i] = spriteId; + sPokedexView->monSpriteIds[i] = spriteId; return spriteId; } } @@ -2725,8 +2750,8 @@ void sub_80BE4E0(struct Sprite *sprite) if (sPokedexView->unk64A != 0 && sPokedexView->unk64A != 3) { - FreeAndDestroyMonPicSprite(sPokedexView->unk61E[data1]); - sPokedexView->unk61E[data1] = 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->monSpriteIds[data1]); + sPokedexView->monSpriteIds[data1] = 0xFFFF; } else { @@ -2751,8 +2776,8 @@ void sub_80BE4E0(struct Sprite *sprite) if ((sprite->data[5] <= -64 || sprite->data[5] >= 64) && sprite->data[0] != 0) { - FreeAndDestroyMonPicSprite(sPokedexView->unk61E[data1]); - sPokedexView->unk61E[data1] = 0xFFFF; + FreeAndDestroyMonPicSprite(sPokedexView->monSpriteIds[data1]); + sPokedexView->monSpriteIds[data1] = 0xFFFF; } } } @@ -3022,7 +3047,7 @@ void LoadInfoScreen(u8 taskId) } } -static void FreeWindowAndBgBuffers(void) +static void FreeWindowAndBgBuffers_(void) { void *r0; FreeAllWindowBuffers(); @@ -3148,7 +3173,7 @@ void BeginReturnToPokedex(u8 taskId) if (!gPaletteFade.active) { FreeAndDestroyMonPicSprite(gTasks[taskId].tMonSpriteId); - FreeWindowAndBgBuffers(); + FreeWindowAndBgBuffers_(); DestroyTask(taskId); } } @@ -4649,7 +4674,7 @@ u32 sub_80C0E68(u16 a) u16 CreateMonSpriteFromNationalDexNumber(u16 nationalNum, s16 x, s16 y, u16 paletteSlot) { nationalNum = NationalPokedexNumToSpecies(nationalNum); - return CreateMonPicSprite_HandleDeoxys(nationalNum, 8, sub_80C0E68(nationalNum), TRUE, x, y, paletteSlot, 0xFFFF); + return CreateMonPicSprite_HandleDeoxys(nationalNum, SHINY_ODDS, sub_80C0E68(nationalNum), TRUE, x, y, paletteSlot, 0xFFFF); } u16 sub_80C0EF8(u16 species, s16 x, s16 y, s8 paletteSlot) @@ -4664,7 +4689,7 @@ int sub_80C0F30(u8 dexMode, u8 sortMode, u8 abcGroup, u8 bodyColor, u8 type1, u8 u16 resultsCount; u8 types[2]; - sub_80BC8D4(dexMode, sortMode); + CreatePokedexList(dexMode, sortMode); for (i = 0, resultsCount = 0; i < NATIONAL_DEX_COUNT; i++) { @@ -4983,11 +5008,11 @@ void sub_80C170C(u8 taskId) sPokedexView->unk62A = 0x40; gUnknown_02039B50 = 0; sPokedexView->unk610 = 0; - gSaveBlock2Ptr->pokedex.mode = sub_80C2318(taskId, 5); + gSaveBlock2Ptr->pokedex.mode = GetSearchModeSelection(taskId, SEARCH_DEX_MODE); if (!IsNationalPokedexEnabled()) gSaveBlock2Ptr->pokedex.mode = DEX_MODE_HOENN; sPokedexView->unk614 = gSaveBlock2Ptr->pokedex.mode; - gSaveBlock2Ptr->pokedex.order = sub_80C2318(taskId, 4); + gSaveBlock2Ptr->pokedex.order = GetSearchModeSelection(taskId, SEARCH_ORDER); sPokedexView->unk618 = gSaveBlock2Ptr->pokedex.order; PlaySE(SE_PC_OFF); gTasks[taskId].func = sub_80C1D38; @@ -5044,14 +5069,14 @@ void sub_80C170C(u8 taskId) void sub_80C19A4(u8 taskId) { - u8 r10 = sub_80C2318(taskId, 5); - u8 r9 = sub_80C2318(taskId, 4); - u8 r8 = sub_80C2318(taskId, 0); - u8 r6 = sub_80C2318(taskId, 1); - u8 r4 = sub_80C2318(taskId, 2); - u8 r0 = sub_80C2318(taskId, 3); + u8 dexMode = GetSearchModeSelection(taskId, SEARCH_DEX_MODE); + u8 sortMode = GetSearchModeSelection(taskId, SEARCH_ORDER); + u8 abcGroup = GetSearchModeSelection(taskId, SEARCH_NAME); + u8 bodyColor = GetSearchModeSelection(taskId, SEARCH_COLOR); + u8 type1 = GetSearchModeSelection(taskId, SEARCH_TYPE_1); + u8 type2 = GetSearchModeSelection(taskId, SEARCH_TYPE_2); - sub_80C0F30(r10, r9, r8, r6, r4, r0); + sub_80C0F30(dexMode, sortMode, abcGroup, bodyColor, type1, type2); gTasks[taskId].func = sub_80C1A4C; } @@ -5081,8 +5106,8 @@ void sub_80C1AB8(u8 taskId) if (sPokedexView->pokemonListCount != 0) { sPokedexView->unk64E = 1; - sPokedexView->dexMode = sub_80C2318(taskId, 5); - sPokedexView->dexOrder = sub_80C2318(taskId, 4); + sPokedexView->dexMode = GetSearchModeSelection(taskId, SEARCH_DEX_MODE); + sPokedexView->dexOrder = GetSearchModeSelection(taskId, SEARCH_ORDER); gTasks[taskId].func = sub_80C1D38; PlaySE(SE_PC_OFF); } @@ -5102,8 +5127,8 @@ void sub_80C1B64(u8 taskId) sub_80C21D4(0); r0 = gTasks[taskId].data[1]; - p1 = &gTasks[taskId].data[gUnknown_0856EFC8[r0].unk4]; - p2 = &gTasks[taskId].data[gUnknown_0856EFC8[r0].unk5]; + p1 = &gTasks[taskId].data[sSearchOptions[r0].unk4]; + p2 = &gTasks[taskId].data[sSearchOptions[r0].unk5]; gTasks[taskId].data[14] = *p1; gTasks[taskId].data[15] = *p2; sub_80C2294(taskId); @@ -5123,10 +5148,10 @@ void sub_80C1BCC(u8 taskId) bool8 r3; r1 = gTasks[taskId].data[1]; - r8 = gUnknown_0856EFC8[r1].pokedexList; - p1 = &gTasks[taskId].data[gUnknown_0856EFC8[r1].unk4]; - p2 = &gTasks[taskId].data[gUnknown_0856EFC8[r1].unk5]; - r2 = gUnknown_0856EFC8[r1].unk6 - 1; + r8 = sSearchOptions[r1].pokedexList; + p1 = &gTasks[taskId].data[sSearchOptions[r1].unk4]; + p2 = &gTasks[taskId].data[sSearchOptions[r1].unk5]; + r2 = sSearchOptions[r1].numOptions - 1; if (gMain.newKeys & A_BUTTON) { PlaySE(SE_PIN); @@ -5474,9 +5499,9 @@ void sub_80C21D4(u8 a) void sub_80C2294(u8 taskId) { - const struct PokedexOption *r6 = gUnknown_0856EFC8[gTasks[taskId].data[1]].pokedexList; - const u16 *r8 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk4]; - const u16 *r7 = &gTasks[taskId].data[gUnknown_0856EFC8[gTasks[taskId].data[1]].unk5]; + const struct PokedexOption *r6 = sSearchOptions[gTasks[taskId].data[1]].pokedexList; + const u16 *r8 = &gTasks[taskId].data[sSearchOptions[gTasks[taskId].data[1]].unk4]; + const u16 *r7 = &gTasks[taskId].data[sSearchOptions[gTasks[taskId].data[1]].unk5]; u16 i; u16 j; @@ -5486,32 +5511,32 @@ void sub_80C2294(u8 taskId) sub_80C2618(r6[*r8 + *r7].description); } -u8 sub_80C2318(u8 taskId, u8 b) +static u8 GetSearchModeSelection(u8 taskId, u8 option) { - const u16 *ptr1 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk4]; - const u16 *ptr2 = &gTasks[taskId].data[gUnknown_0856EFC8[b].unk5]; + const u16 *ptr1 = &gTasks[taskId].data[sSearchOptions[option].unk4]; + const u16 *ptr2 = &gTasks[taskId].data[sSearchOptions[option].unk5]; u16 type = *ptr1 + *ptr2; - switch (b) + switch (option) { default: return 0; - case 5: - return gUnknown_0856EFAC[type]; - case 4: - return gUnknown_0856EFAE[type]; - case 0: + case SEARCH_DEX_MODE: + return sPokedexModes[type]; + case SEARCH_ORDER: + return sSortOptions[type]; + case SEARCH_NAME: if (type == 0) return 0xFF; else return type; - case 1: + case SEARCH_COLOR: if (type == 0) return 0xFF; else return type - 1; - case 2: - case 3: + case SEARCH_TYPE_1: + case SEARCH_TYPE_2: return gDexSearchTypeIds[type]; } } @@ -5560,8 +5585,8 @@ void sub_80C23B8(u8 taskId) bool8 sub_80C244C(u8 taskId) { u8 val1 = gTasks[taskId].data[1]; - const u16 *ptr = &gTasks[taskId].data[gUnknown_0856EFC8[val1].unk5]; - u16 val2 = gUnknown_0856EFC8[val1].unk6 - 1; + const u16 *ptr = &gTasks[taskId].data[sSearchOptions[val1].unk5]; + u16 val2 = sSearchOptions[val1].numOptions - 1; if (val2 > 5 && *ptr != 0) return FALSE; @@ -5572,8 +5597,8 @@ bool8 sub_80C244C(u8 taskId) bool8 sub_80C2494(u8 taskId) { u8 val1 = gTasks[taskId].data[1]; - const u16 *ptr = &gTasks[taskId].data[gUnknown_0856EFC8[val1].unk5]; - u16 val2 = gUnknown_0856EFC8[val1].unk6 - 1; + const u16 *ptr = &gTasks[taskId].data[sSearchOptions[val1].unk5]; + u16 val2 = sSearchOptions[val1].numOptions - 1; if (val2 > 5 && *ptr < val2 - 5) return FALSE; diff --git a/src/pokemon.c b/src/pokemon.c index 4b37879d7f72..d0d778474b83 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1334,7 +1334,7 @@ const struct SpindaSpot gSpindaSpotGraphics[] = #include "data/pokemon/item_effects.h" -const s8 gNatureStatTable[][5] = +const s8 gNatureStatTable[][NUM_EV_STATS] = { // Atk Def Spd Sp.Atk Sp.Def { 0, 0, 0, 0, 0}, // Hardy @@ -5094,8 +5094,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5120,8 +5120,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5145,8 +5145,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5731,7 +5731,8 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex) { - if (statIndex < 1 || statIndex > 5) + // Dont modify HP, Accuracy, or Evasion by nature + if (statIndex <= STAT_HP || statIndex > NUM_EV_STATS) { // Should just be "return n", but it wouldn't match without this. u16 retVal = n; @@ -5802,8 +5803,8 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); } } diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 2c11ca2931d3..7d8c65d7cbc4 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -1128,7 +1128,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality, bool32 handleDeoxys) return GetMonIconTiles(GetIconSpecies(species, personality), handleDeoxys); } -void sub_80D2EF8(struct Sprite *sprite) +void FreeAndDestroyMonIconSprite(struct Sprite *sprite) { sub_80D328C(sprite); } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 1533fd5ad0f9..5a0579f70928 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -323,7 +323,7 @@ static bool32 RecordedBattleToSave(struct RecordedBattleSave *battleSave, struct saveSection->checksum = CalcByteArraySum((void*)(saveSection), sizeof(*saveSection) - 4); - if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != 1) + if (TryWriteSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveSection)) != SAVE_STATUS_OK) return FALSE; else return TRUE; @@ -492,7 +492,7 @@ bool32 MoveRecordedBattleToSaveData(void) static bool32 TryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst, struct SaveSection *saveBuffer) { - if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != 1) + if (TryReadSpecialSaveSection(SECTOR_ID_RECORDED_BATTLE, (void*)(saveBuffer)) != SAVE_STATUS_OK) return FALSE; memcpy(dst, saveBuffer, sizeof(struct RecordedBattleSave)); diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 8c4843ab59a6..efad640e34f6 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -559,7 +559,7 @@ static void Task_ResetRtcScreen(u8 taskId) case 1: if (!gPaletteFade.active) { - if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) { ShowMessage(gText_NoSaveFileCantSetTime); data[0] = 5; @@ -608,7 +608,7 @@ static void Task_ResetRtcScreen(u8 taskId) } break; case 4: - if (TrySavingData(SAVE_NORMAL) == 1) + if (TrySavingData(SAVE_NORMAL) == SAVE_STATUS_OK) { ShowMessage(gText_SaveCompleted); PlaySE(SE_PINPON); diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index 5a54a2177138..577a48b0d813 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -21,8 +21,8 @@ void sub_81700F8(void) SetSaveBlocksPointers(sub_815355C()); ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); - Save_LoadGameData(0); - if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + Save_LoadGameData(SAVE_NORMAL); + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_CORRUPT) Sav2_ClearSetDefault(); SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); InitHeap(gHeap, HEAP_SIZE); diff --git a/src/save.c b/src/save.c index e1f5a6fff284..c19aff4d8d54 100644 --- a/src/save.c +++ b/src/save.c @@ -14,7 +14,7 @@ #include "constants/game_stat.h" static u16 CalculateChecksum(void *data, u16 size); -static u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section); +static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section); static u8 GetSaveValidStatus(const struct SaveSectionLocation *location); static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location); static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location); @@ -53,7 +53,7 @@ static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location); min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \ } \ -const struct SaveSectionOffsets gSaveSectionOffsets[] = +static const struct SaveSectionOffsets sSaveSectionOffsets[] = { SAVEBLOCK_CHUNK(gSaveblock2, 0), @@ -84,9 +84,9 @@ u16 gUnknown_03006208; u16 gSaveUnusedVar; u16 gSaveFileStatus; void (*gGameContinueCallback)(void); -struct SaveSectionLocation gRamSaveSectionLocations[0xE]; +struct SaveSectionLocation gRamSaveSectionLocations[SECTOR_SAVE_SLOT_LENGTH]; u16 gSaveUnusedVar2; -u16 gUnknown_03006294; +u16 gSaveAttemptStatus; EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; EWRAM_DATA static u8 sUnusedVar = 0; @@ -130,16 +130,16 @@ static bool32 SetDamagedSectorBits(u8 op, u8 bit) return retVal; } -static u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location) +static u8 SaveWriteToFlash(u16 a1, const struct SaveSectionLocation *location) { - u32 retVal; + u32 status; u16 i; gFastSaveSection = &gSaveDataBuffer; if (a1 != 0xFFFF) // for link { - retVal = HandleWriteSector(a1, location); + status = HandleWriteSector(a1, location); } else { @@ -148,41 +148,41 @@ static u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location gLastWrittenSector++; gLastWrittenSector = gLastWrittenSector % SECTOR_SAVE_SLOT_LENGTH; // array count save sector locations gSaveCounter++; - retVal = 1; + status = SAVE_STATUS_OK; for (i = 0; i < SECTOR_SAVE_SLOT_LENGTH; i++) HandleWriteSector(i, location); if (gDamagedSaveSectors != 0) // skip the damaged sector. { - retVal = 0xFF; + status = SAVE_STATUS_ERROR; gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; } } - return retVal; + return status; } -static u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location) +static u8 HandleWriteSector(u16 sectorId, const struct SaveSectionLocation *location) { u16 i; u16 sector; u8 *data; u16 size; - sector = a1 + gLastWrittenSector; + sector = sectorId + gLastWrittenSector; sector %= SECTOR_SAVE_SLOT_LENGTH; sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); - data = location[a1].data; - size = location[a1].size; + data = location[sectorId].data; + size = location[sectorId].size; // clear save section. for (i = 0; i < sizeof(struct SaveSection); i++) ((char *)gFastSaveSection)[i] = 0; - gFastSaveSection->id = a1; + gFastSaveSection->id = sectorId; gFastSaveSection->security = UNKNOWN_CHECK_VALUE; gFastSaveSection->counter = gSaveCounter; @@ -215,12 +215,12 @@ static u8 TryWriteSector(u8 sector, u8 *data) if (ProgramFlashSectorAndVerify(sector, data) != 0) // is damaged? { SetDamagedSectorBits(ENABLE, sector); // set damaged sector bits. - return 0xFF; + return SAVE_STATUS_ERROR; } else { SetDamagedSectorBits(DISABLE, sector); // unset damaged sector bits. it's safe now. - return 1; + return SAVE_STATUS_OK; } } @@ -247,46 +247,46 @@ static u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // return 0; } -static u8 sub_81529D4(u16 a1, const struct SaveSectionLocation *location) +static u8 sub_81529D4(u16 sectorId, const struct SaveSectionLocation *location) { - u8 retVal; + u8 status; - if (gUnknown_03006208 < a1 - 1) + if (gUnknown_03006208 < sectorId - 1) { - retVal = 1; + status = SAVE_STATUS_OK; HandleWriteSector(gUnknown_03006208, location); gUnknown_03006208++; if (gDamagedSaveSectors) { - retVal = 0xFF; + status = SAVE_STATUS_ERROR; gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; } } else { - retVal = 0xFF; + status = SAVE_STATUS_ERROR; } - return retVal; + return status; } -static u8 sub_8152A34(u16 a1, const struct SaveSectionLocation *location) +static u8 sub_8152A34(u16 sectorId, const struct SaveSectionLocation *location) { - u8 retVal = 1; + u8 status = SAVE_STATUS_OK; - ClearSaveData_2(a1 - 1, location); + ClearSaveData_2(sectorId - 1, location); if (gDamagedSaveSectors) { - retVal = 0xFF; + status = SAVE_STATUS_ERROR; gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; } - return retVal; + return status; } -static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location) +static u8 ClearSaveData_2(u16 sectorId, const struct SaveSectionLocation *location) { u16 i; u16 sector; @@ -294,18 +294,18 @@ static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location) u16 size; u8 status; - sector = a1 + gLastWrittenSector; + sector = sectorId + gLastWrittenSector; sector %= SECTOR_SAVE_SLOT_LENGTH; sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); - data = location[a1].data; - size = location[a1].size; + data = location[sectorId].data; + size = location[sectorId].size; // clear temp save section. for (i = 0; i < sizeof(struct SaveSection); i++) ((char *)gFastSaveSection)[i] = 0; - gFastSaveSection->id = a1; + gFastSaveSection->id = sectorId; gFastSaveSection->security = UNKNOWN_CHECK_VALUE; gFastSaveSection->counter = gSaveCounter; @@ -318,53 +318,53 @@ static u8 ClearSaveData_2(u16 a1, const struct SaveSectionLocation *location) EraseFlashSector(sector); - status = 1; + status = SAVE_STATUS_OK; for (i = 0; i < sizeof(struct UnkSaveSection); i++) { if (ProgramFlashByte(sector, i, ((u8 *)gFastSaveSection)[i])) { - status = 0xFF; + status = SAVE_STATUS_ERROR; break; } } - if (status == 0xFF) + if (status == SAVE_STATUS_ERROR) { SetDamagedSectorBits(ENABLE, sector); - return 0xFF; + return SAVE_STATUS_ERROR; } else { - status = 1; + status = SAVE_STATUS_OK; for (i = 0; i < 7; i++) { if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i])) { - status = 0xFF; + status = SAVE_STATUS_ERROR; break; } } - if (status == 0xFF) + if (status == SAVE_STATUS_ERROR) { SetDamagedSectorBits(ENABLE, sector); - return 0xFF; + return SAVE_STATUS_ERROR; } else { SetDamagedSectorBits(DISABLE, sector); - return 1; + return SAVE_STATUS_OK; } } } -static u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location) +static u8 sav12_xor_get(u16 sectorId, const struct SaveSectionLocation *location) { u16 sector; - sector = a1 + gLastWrittenSector; // no sub 1? + sector = sectorId + gLastWrittenSector; // no sub 1? sector %= SECTOR_SAVE_SLOT_LENGTH; sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); @@ -374,20 +374,20 @@ static u8 sav12_xor_get(u16 a1, const struct SaveSectionLocation *location) SetDamagedSectorBits(ENABLE, sector); gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; - return 0xFF; + return SAVE_STATUS_ERROR; } else { SetDamagedSectorBits(DISABLE, sector); - return 1; + return SAVE_STATUS_OK; } } -static u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location) +static u8 sub_8152CAC(u16 sectorId, const struct SaveSectionLocation *location) { u16 sector; - sector = a1 + gLastWrittenSector - 1; + sector = sectorId + gLastWrittenSector - 1; sector %= SECTOR_SAVE_SLOT_LENGTH; sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); @@ -397,20 +397,20 @@ static u8 sub_8152CAC(u16 a1, const struct SaveSectionLocation *location) SetDamagedSectorBits(ENABLE, sector); gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; - return 0xFF; + return SAVE_STATUS_ERROR; } else { SetDamagedSectorBits(DISABLE, sector); - return 1; + return SAVE_STATUS_OK; } } -static u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location) +static u8 sub_8152D44(u16 sectorId, const struct SaveSectionLocation *location) { u16 sector; - sector = a1 + gLastWrittenSector - 1; // no sub 1? + sector = sectorId + gLastWrittenSector - 1; // no sub 1? sector %= SECTOR_SAVE_SLOT_LENGTH; sector += SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); @@ -420,30 +420,30 @@ static u8 sub_8152D44(u16 a1, const struct SaveSectionLocation *location) SetDamagedSectorBits(ENABLE, sector); gLastWrittenSector = gLastKnownGoodSector; gSaveCounter = gLastSaveCounter; - return 0xFF; + return SAVE_STATUS_ERROR; } else { SetDamagedSectorBits(DISABLE, sector); - return 1; + return SAVE_STATUS_OK; } } static u8 sub_8152DD0(u16 a1, const struct SaveSectionLocation *location) { - u8 retVal; + u8 status; gFastSaveSection = &gSaveDataBuffer; if (a1 != 0xFFFF) { - retVal = 0xFF; + status = SAVE_STATUS_ERROR; } else { - retVal = GetSaveValidStatus(location); + status = GetSaveValidStatus(location); sub_8152E10(0xFFFF, location); } - return retVal; + return status; } static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location) @@ -469,7 +469,7 @@ static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location) } } - return 1; + return SAVE_STATUS_OK; } static u8 GetSaveValidStatus(const struct SaveSectionLocation *location) @@ -502,13 +502,13 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location) if (securityPassed) { if (slotCheckField == 0x3FFF) - saveSlot1Status = 1; + saveSlot1Status = SAVE_STATUS_OK; else - saveSlot1Status = 255; + saveSlot1Status = SAVE_STATUS_ERROR; } else { - saveSlot1Status = 0; + saveSlot1Status = SAVE_STATUS_EMPTY; } slotCheckField = 0; @@ -533,16 +533,16 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location) if (securityPassed) { if (slotCheckField == 0x3FFF) - saveSlot2Status = 1; + saveSlot2Status = SAVE_STATUS_OK; else - saveSlot2Status = 255; + saveSlot2Status = SAVE_STATUS_ERROR; } else { - saveSlot2Status = 0; + saveSlot2Status = SAVE_STATUS_EMPTY; } - if (saveSlot1Status == 1 && saveSlot2Status == 1) + if (saveSlot1Status == SAVE_STATUS_OK && saveSlot2Status == SAVE_STATUS_OK) { if ((saveSlot1Counter == -1 && saveSlot2Counter == 0) || (saveSlot1Counter == 0 && saveSlot2Counter == -1)) { @@ -558,42 +558,42 @@ static u8 GetSaveValidStatus(const struct SaveSectionLocation *location) else gSaveCounter = saveSlot1Counter; } - return 1; + return SAVE_STATUS_OK; } - if (saveSlot1Status == 1) + if (saveSlot1Status == SAVE_STATUS_OK) { gSaveCounter = saveSlot1Counter; - if (saveSlot2Status == 255) - return 255; - return 1; + if (saveSlot2Status == SAVE_STATUS_ERROR) + return SAVE_STATUS_ERROR; + return SAVE_STATUS_OK; } - if (saveSlot2Status == 1) + if (saveSlot2Status == SAVE_STATUS_OK) { gSaveCounter = saveSlot2Counter; - if (saveSlot1Status == 255) - return 255; - return 1; + if (saveSlot1Status == SAVE_STATUS_ERROR) + return SAVE_STATUS_ERROR; + return SAVE_STATUS_OK; } - if (saveSlot1Status == 0 && saveSlot2Status == 0) + if (saveSlot1Status == SAVE_STATUS_EMPTY && saveSlot2Status == SAVE_STATUS_EMPTY) { gSaveCounter = 0; gLastWrittenSector = 0; - return 0; + return SAVE_STATUS_EMPTY; } gSaveCounter = 0; gLastWrittenSector = 0; - return 2; + return SAVE_STATUS_CORRUPT; } -static u8 sub_81530DC(u8 a1, u8 *data, u16 size) +static u8 sub_81530DC(u8 sectorId, u8 *data, u16 size) { u16 i; struct SaveSection *section = &gSaveDataBuffer; - DoReadFlashWholeSection(a1, section); + DoReadFlashWholeSection(sectorId, section); if (section->security == UNKNOWN_CHECK_VALUE) { u16 checksum = CalculateChecksum(section->data, size); @@ -601,23 +601,24 @@ static u8 sub_81530DC(u8 a1, u8 *data, u16 size) { for (i = 0; i < size; i++) data[i] = section->data[i]; - return 1; + return SAVE_STATUS_OK; } else { - return 2; + return SAVE_STATUS_CORRUPT; } } else { - return 0; + return SAVE_STATUS_EMPTY; } } -static u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section) +// Return value always ignored +static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section) { ReadFlash(sector, 0, section->data, sizeof(struct SaveSection)); - return 1; + return TRUE; } static u16 CalculateChecksum(void *data, u16 size) @@ -638,19 +639,19 @@ static void UpdateSaveAddresses(void) { int i = 0; - gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + gSaveSectionOffsets[i].toAdd; - gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock2Ptr) + sSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size; - for (i = 1; i < 5; i++) + for (i = SECTOR_ID_SAVEBLOCK1_START; i <= SECTOR_ID_SAVEBLOCK1_END; i++) { - gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + gSaveSectionOffsets[i].toAdd; - gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + gRamSaveSectionLocations[i].data = (void*)(gSaveBlock1Ptr) + sSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size; } - for (i = 5; i < 14; i++) + for (i = SECTOR_ID_PKMN_STORAGE_START; i <= SECTOR_ID_PKMN_STORAGE_END; i++) { - gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + gSaveSectionOffsets[i].toAdd; - gRamSaveSectionLocations[i].size = gSaveSectionOffsets[i].size; + gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + sSaveSectionOffsets[i].toAdd; + gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size; i++;i--; // needed to match } @@ -673,36 +674,36 @@ u8 HandleSavingData(u8 saveType) if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999) IncrementGameStat(GAME_STAT_ENTERED_HOF); SaveSerializedGame(); - save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations); tempAddr = gDecompressionBuffer; - HandleWriteSectorNBytes(SECTOR_ID_HOF_1, tempAddr, 0xF80); - HandleWriteSectorNBytes(SECTOR_ID_HOF_2, tempAddr + 0xF80, 0xF80); + HandleWriteSectorNBytes(SECTOR_ID_HOF_1, tempAddr, SECTOR_DATA_SIZE); + HandleWriteSectorNBytes(SECTOR_ID_HOF_2, tempAddr + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE); break; case SAVE_NORMAL: // normal save. also called by overwriting your own save. default: SaveSerializedGame(); - save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations); break; case SAVE_LINK: // Link and Battle Frontier case SAVE_LINK2: // Unused SaveSerializedGame(); - for(i = 0; i < 5; i++) + for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++) ClearSaveData_2(i, gRamSaveSectionLocations); - for(i = 0; i < 5; i++) + for(i = SECTOR_ID_SAVEBLOCK2; i <= SECTOR_ID_SAVEBLOCK1_END; i++) sav12_xor_get(i, gRamSaveSectionLocations); break; // Support for Ereader was removed in Emerald. /* case EREADER_SAVE: // used in mossdeep "game corner" before/after battling old man e-reader trainer SaveSerializedGame(); - save_write_to_flash(0, gRamSaveSectionLocations); + SaveWriteToFlash(0, gRamSaveSectionLocations); break; */ case SAVE_OVERWRITE_DIFFERENT_FILE: for (i = SECTOR_ID_HOF_1; i < SECTORS_COUNT; i++) EraseFlashSector(i); // erase HOF. SaveSerializedGame(); - save_write_to_flash(0xFFFF, gRamSaveSectionLocations); + SaveWriteToFlash(0xFFFF, gRamSaveSectionLocations); break; } gTrainerHillVBlankCounter = backupVar; @@ -713,25 +714,25 @@ u8 TrySavingData(u8 saveType) { if (gFlashMemoryPresent != TRUE) { - gUnknown_03006294 = 0xFF; - return 0xFF; + gSaveAttemptStatus = SAVE_STATUS_ERROR; + return SAVE_STATUS_ERROR; } HandleSavingData(saveType); if (!gDamagedSaveSectors) { - gUnknown_03006294 = 1; - return 1; + gSaveAttemptStatus = SAVE_STATUS_OK; + return SAVE_STATUS_OK; } else { DoSaveFailedScreen(saveType); - gUnknown_03006294 = 0xFF; - return 0xFF; + gSaveAttemptStatus = SAVE_STATUS_ERROR; + return SAVE_STATUS_ERROR; } } -bool8 sub_8153380(void) // trade.s save +bool8 sub_8153380(void) // trade.c { if (gFlashMemoryPresent != TRUE) return TRUE; @@ -741,92 +742,92 @@ bool8 sub_8153380(void) // trade.s save return FALSE; } -bool8 sub_81533AC(void) // trade.s save +bool8 sub_81533AC(void) // trade.c { - u8 retVal = sub_81529D4(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations); + u8 status = sub_81529D4(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); - if (retVal == 0xFF) + DoSaveFailedScreen(SAVE_NORMAL); + if (status == SAVE_STATUS_ERROR) return TRUE; else return FALSE; } -u8 sub_81533E0(void) // trade.s save +bool8 sub_81533E0(void) // trade.c { sub_8152A34(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); - return 0; + DoSaveFailedScreen(SAVE_NORMAL); + return FALSE; } -u8 sub_8153408(void) // trade.s save +bool8 sub_8153408(void) // trade.c { sub_8152CAC(SECTOR_SAVE_SLOT_LENGTH, gRamSaveSectionLocations); if (gDamagedSaveSectors) - DoSaveFailedScreen(0); - return 0; + DoSaveFailedScreen(SAVE_NORMAL); + return FALSE; } u8 FullSaveGame(void) { if (gFlashMemoryPresent != TRUE) - return 1; + return TRUE; UpdateSaveAddresses(); SaveSerializedGame(); RestoreSaveBackupVars(gRamSaveSectionLocations); sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations); - return 0; + return FALSE; } bool8 CheckSaveFile(void) { u8 retVal = FALSE; - u16 val = ++gUnknown_03006208; - if (val <= 4) + u16 sectorId = ++gUnknown_03006208; + if (sectorId <= SECTOR_ID_SAVEBLOCK1_END) { sub_8152A34(gUnknown_03006208 + 1, gRamSaveSectionLocations); - sub_8152D44(val, gRamSaveSectionLocations); + sub_8152D44(sectorId, gRamSaveSectionLocations); } else { - sub_8152D44(val, gRamSaveSectionLocations); + sub_8152D44(sectorId, gRamSaveSectionLocations); retVal = TRUE; } if (gDamagedSaveSectors) - DoSaveFailedScreen(1); + DoSaveFailedScreen(SAVE_LINK); return retVal; } -u8 Save_LoadGameData(u8 a1) +u8 Save_LoadGameData(u8 saveType) { - u8 result; + u8 status; if (gFlashMemoryPresent != TRUE) { - gSaveFileStatus = 4; - return 0xFF; + gSaveFileStatus = SAVE_STATUS_NO_FLASH; + return SAVE_STATUS_ERROR; } UpdateSaveAddresses(); - switch (a1) + switch (saveType) { - case 0: + case SAVE_NORMAL: default: - result = sub_8152DD0(0xFFFF, gRamSaveSectionLocations); + status = sub_8152DD0(0xFFFF, gRamSaveSectionLocations); LoadSerializedGame(); - gSaveFileStatus = result; + gSaveFileStatus = status; gGameContinueCallback = 0; break; - case 3: - result = sub_81530DC(0x1C, gDecompressionBuffer, 0xF80); - if(result == 1) - result = sub_81530DC(0x1D, gDecompressionBuffer + 0xF80, 0xF80); + case SAVE_HALL_OF_FAME: + status = sub_81530DC(SECTOR_ID_HOF_1, gDecompressionBuffer, SECTOR_DATA_SIZE); + if (status == SAVE_STATUS_OK) + status = sub_81530DC(SECTOR_ID_HOF_2, gDecompressionBuffer + SECTOR_DATA_SIZE, SECTOR_DATA_SIZE); break; } - return result; + return status; } u16 sub_815355C(void) @@ -836,7 +837,7 @@ u16 sub_815355C(void) savSection = gFastSaveSection = &gSaveDataBuffer; if (gFlashMemoryPresent != TRUE) - return 0; + return SAVE_STATUS_EMPTY; UpdateSaveAddresses(); GetSaveValidStatus(gRamSaveSectionLocations); v3 = SECTOR_SAVE_SLOT_LENGTH * (gSaveCounter % 2); @@ -849,7 +850,7 @@ u16 sub_815355C(void) savSection->data[12] + savSection->data[13]; } - return 0; + return SAVE_STATUS_EMPTY; } u32 TryReadSpecialSaveSection(u8 sector, u8* dst) @@ -859,17 +860,17 @@ u32 TryReadSpecialSaveSection(u8 sector, u8* dst) u8* savData; if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE) - return 0xFF; + return SAVE_STATUS_ERROR; ReadFlash(sector, 0, (u8 *)&gSaveDataBuffer, sizeof(struct SaveSection)); if (*(u32*)(&gSaveDataBuffer.data[0]) != SPECIAL_SECTION_SENTINEL) - return 0xFF; + return SAVE_STATUS_ERROR; // copies whole save section except u32 counter i = 0; size = 0xFFB; savData = &gSaveDataBuffer.data[4]; for (; i <= size; i++) dst[i] = savData[i]; - return 1; + return SAVE_STATUS_OK; } u32 TryWriteSpecialSaveSection(u8 sector, u8* src) @@ -880,7 +881,7 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src) void* savDataBuffer; if (sector != SECTOR_ID_TRAINER_HILL && sector != SECTOR_ID_RECORDED_BATTLE) - return 0xFF; + return SAVE_STATUS_ERROR; savDataBuffer = &gSaveDataBuffer; *(u32*)(savDataBuffer) = SPECIAL_SECTION_SENTINEL; @@ -892,8 +893,8 @@ u32 TryWriteSpecialSaveSection(u8 sector, u8* src) for (; i <= size; i++) savData[i] = src[i]; if (ProgramFlashSectorAndVerify(sector, savDataBuffer) != 0) - return 0xFF; - return 1; + return SAVE_STATUS_ERROR; + return SAVE_STATUS_OK; } void sub_8153688(u8 taskId) diff --git a/src/scrcmd.c b/src/scrcmd.c index ac6e2d689081..0e52f5953281 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -486,7 +486,7 @@ bool8 ScrCmd_random(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_giveitem(struct ScriptContext *ctx) +bool8 ScrCmd_additem(struct ScriptContext *ctx) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -495,7 +495,7 @@ bool8 ScrCmd_giveitem(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_takeitem(struct ScriptContext *ctx) +bool8 ScrCmd_removeitem(struct ScriptContext *ctx) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -530,7 +530,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_givepcitem(struct ScriptContext *ctx) +bool8 ScrCmd_addpcitem(struct ScriptContext *ctx) { u16 itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); @@ -548,7 +548,7 @@ bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_givedecoration(struct ScriptContext *ctx) +bool8 ScrCmd_adddecoration(struct ScriptContext *ctx) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -556,7 +556,7 @@ bool8 ScrCmd_givedecoration(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_takedecoration(struct ScriptContext *ctx) +bool8 ScrCmd_removedecoration(struct ScriptContext *ctx) { u32 decorId = VarGet(ScriptReadHalfword(ctx)); @@ -1726,7 +1726,7 @@ bool8 ScrCmd_checkpartymove(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_givemoney(struct ScriptContext *ctx) +bool8 ScrCmd_addmoney(struct ScriptContext *ctx) { u32 amount = ScriptReadWord(ctx); u8 ignore = ScriptReadByte(ctx); @@ -1736,7 +1736,7 @@ bool8 ScrCmd_givemoney(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_takemoney(struct ScriptContext *ctx) +bool8 ScrCmd_removemoney(struct ScriptContext *ctx) { u32 amount = ScriptReadWord(ctx); u8 ignore = ScriptReadByte(ctx); @@ -2127,22 +2127,22 @@ bool8 ScrCmd_checkcoins(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_givecoins(struct ScriptContext *ctx) +bool8 ScrCmd_addcoins(struct ScriptContext *ctx) { u16 coins = VarGet(ScriptReadHalfword(ctx)); - if (GiveCoins(coins) == TRUE) + if (AddCoins(coins) == TRUE) gSpecialVar_Result = 0; else gSpecialVar_Result = 1; return FALSE; } -bool8 ScrCmd_takecoins(struct ScriptContext *ctx) +bool8 ScrCmd_removecoins(struct ScriptContext *ctx) { u16 coins = VarGet(ScriptReadHalfword(ctx)); - if (TakeCoins(coins) == TRUE) + if (RemoveCoins(coins) == TRUE) gSpecialVar_Result = 0; else gSpecialVar_Result = 1; diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 0e191d652f6b..e691ed5fb626 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -52,6 +52,7 @@ void SetContestTrainerGfxIds(void) gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId; } +// Unused void sub_80F8814(void) { u16 var1; @@ -82,7 +83,8 @@ void BufferContestTrainerAndMonNames(void) BufferContestantMonSpecies(); } -void sub_80F8864(void) +// Unused +void DoesContestCategoryHaveWinner(void) { int contestWinner; switch (gSpecialVar_ContestCategory) @@ -105,10 +107,10 @@ void sub_80F8864(void) break; } - if (!gSaveBlock1Ptr->contestWinners[contestWinner].species) - gSpecialVar_0x8004 = 0; + if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE) + gSpecialVar_0x8004 = FALSE; else - gSpecialVar_0x8004 = 1; + gSpecialVar_0x8004 = TRUE; } void SaveMuseumContestPainting(void) @@ -144,9 +146,10 @@ u8 CountPlayerContestPaintings(void) return count; } +// Unused void sub_80F8970(void) { - s16 sp[4]; + s16 conditions[CONTESTANT_COUNT]; int i, j; s16 condition; s8 var0; @@ -154,28 +157,27 @@ void sub_80F8970(void) u8 r8; u8 r7; - for (i = 0; i < 4; i++) - sp[i] = gContestMonConditions[i]; + for (i = 0; i < CONTESTANT_COUNT; i++) + conditions[i] = gContestMonConditions[i]; - for (i = 0; i < 3; i++) + for (i = 0; i < CONTESTANT_COUNT - 1; i++) { - for (j = 3; j > i; j--) + for (j = CONTESTANT_COUNT - 1; j > i; j--) { - if (sp[j - 1] < sp[j]) + if (conditions[j - 1] < conditions[j]) { - int temp = sp[j]; - sp[j] = sp[j - 1]; - sp[j - 1] = temp; + int temp; + SWAP(conditions[j], conditions[j - 1], temp) } } } - condition = sp[gSpecialVar_0x8006]; + condition = conditions[gSpecialVar_0x8006]; var0 = 0; r8 = 0; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (sp[i] == condition) + if (conditions[i] == condition) { var0++; if (i == gSpecialVar_0x8006) @@ -183,15 +185,15 @@ void sub_80F8970(void) } } - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { - if (sp[i] == condition) + if (conditions[i] == condition) break; } r7 = i; var2 = r8; - for (i = 0; i < 4; i++) + for (i = 0; i < CONTESTANT_COUNT; i++) { if (condition == gContestMonConditions[i]) { @@ -704,20 +706,20 @@ static void CB2_ReturnFromChooseBattleFrontierParty(void) void ReducePlayerPartyToSelectedMons(void) { - struct Pokemon party[4]; + struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; int i; CpuFill32(0, party, sizeof party); // copy the selected pokemon according to the order. - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal CpuFill32(0, gPlayerParty, sizeof gPlayerParty); // overwrite the first 4 with the order copied to. - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) gPlayerParty[i] = party[i]; CalculatePlayerPartyCount(); diff --git a/src/secret_base.c b/src/secret_base.c index f2ac6cb72080..e7f40a72b9e7 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -41,11 +41,13 @@ #include "constants/maps.h" #include "constants/map_types.h" #include "constants/metatile_behaviors.h" +#include "constants/metatile_labels.h" #include "constants/moves.h" #include "constants/secret_bases.h" #include "constants/songs.h" #include "constants/species.h" #include "constants/trainers.h" +#include "constants/tv.h" struct SecretBaseRegistryMenu { @@ -88,13 +90,13 @@ static u8 GetSecretBaseOwnerType(u8 secretBaseId); static const struct SecretBaseEntranceMetatiles sSecretBaseEntranceMetatiles[] = { - {.closedMetatileId = 0x0026, .openMetatileId = 0x0036}, - {.closedMetatileId = 0x0027, .openMetatileId = 0x0037}, - {.closedMetatileId = 0x01a0, .openMetatileId = 0x01a1}, - {.closedMetatileId = 0x01a8, .openMetatileId = 0x01a9}, - {.closedMetatileId = 0x01b0, .openMetatileId = 0x01b1}, - {.closedMetatileId = 0x0208, .openMetatileId = 0x0210}, - {.closedMetatileId = 0x0271, .openMetatileId = 0x0278}, + {.closedMetatileId = METATILE_General_SecretBase_TreeLeft, .openMetatileId = METATILE_General_SecretBase_VineLeft}, + {.closedMetatileId = METATILE_General_SecretBase_TreeRight, .openMetatileId = METATILE_General_SecretBase_VineRight}, + {.closedMetatileId = METATILE_General_RedCaveIndent, .openMetatileId = METATILE_General_RedCaveOpen}, + {.closedMetatileId = METATILE_General_YellowCaveIndent, .openMetatileId = METATILE_General_YellowCaveOpen}, + {.closedMetatileId = METATILE_General_BlueCaveIndent, .openMetatileId = METATILE_General_BlueCaveOpen}, + {.closedMetatileId = METATILE_Fallarbor_BrownCaveIndent, .openMetatileId = METATILE_Fallarbor_BrownCaveOpen}, + {.closedMetatileId = METATILE_Fortree_SecretBase_Shrub, .openMetatileId = METATILE_Fortree_SecretBase_ShrubOpen}, }; // mapNum, warpId, x, y @@ -452,10 +454,10 @@ static void EnterNewlyCreatedSecretBase_StartFadeIn(void) ScriptContext2_Enable(); HideMapNamePopUpWindow(); - FindMetatileIdMapCoords(&x, &y, 0x220); + FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); x += 7; y += 7; - MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, METATILE_SecretBase_PC | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); FadeInFromBlack(); CreateTask(EnterNewlyCreatedSecretBase_WaitFadeIn, 0); @@ -506,7 +508,7 @@ void InitSecretBaseAppearance(bool8 hidePC) secretBaseId = VarGet(VAR_CURRENT_SECRET_BASE); decorations = gSaveBlock1Ptr->secretBases[secretBaseId].decorations; decorPos = gSaveBlock1Ptr->secretBases[secretBaseId].decorationPositions; - for (x = 0; x < 16; x++) + for (x = 0; x < DECOR_MAX_SECRET_BASE; x++) { if (decorations[x] > 0 && decorations[x] <= NUM_DECORATIONS && gDecorations[decorations[x]].permission != DECORPERM_SPRITE) ShowDecorationOnMap((decorPos[x] >> 4) + 7, (decorPos[x] & 0xF) + 7, decorations[x]); @@ -515,14 +517,14 @@ void InitSecretBaseAppearance(bool8 hidePC) if (secretBaseId != 0) { // Another player's secret base. Change PC type to the "Register" PC. - FindMetatileIdMapCoords(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK); + FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); + MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_RegisterPC | METATILE_COLLISION_MASK); } else if (hidePC == TRUE && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) { // Change PC to regular ground tile. - FindMetatileIdMapCoords(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK); + FindMetatileIdMapCoords(&x, &y, METATILE_SecretBase_PC); + MapGridSetMetatileIdAt(x + 7, y + 7, METATILE_SecretBase_Ground | METATILE_COLLISION_MASK); } } } @@ -1174,48 +1176,60 @@ void SecretBasePerStepCallback(u8 taskId) VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); behavior = MapGridGetMetatileBehaviorAt(x, y); tileId = MapGridGetMetatileIdAt(x, y); - if (tileId == 0x234 || tileId == 0x23C) + if (tileId == METATILE_SecretBase_Board_Top || tileId == METATILE_SecretBase_Board_Bottom) { if (sInFriendSecretBase == TRUE) { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SOLID_BOARD); } } - else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) + else if (tileId == METATILE_SecretBase_SmallChair + || tileId == METATILE_SecretBase_PokemonChair + || tileId == METATILE_SecretBase_HeavyChair + || tileId == METATILE_SecretBase_PrettyChair + || tileId == METATILE_SecretBase_ComfortChair + || tileId == METATILE_SecretBase_RaggedChair + || tileId == METATILE_SecretBase_BrickChair + || tileId == METATILE_SecretBase_CampChair + || tileId == METATILE_SecretBase_HardChair) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CHAIR); } - else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) + else if (tileId == METATILE_SecretBase_RedTent_DoorTop + || tileId == METATILE_SecretBase_RedTent_Door + || tileId == METATILE_SecretBase_BlueTent_DoorTop + || tileId == METATILE_SecretBase_BlueTent_Door) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_TENT); } - else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) + else if ((behavior == MB_IMPASSABLE_NORTHEAST && tileId == METATILE_SecretBase_Stand_RightCorner) + || (behavior == MB_IMPASSABLE_NORTHWEST && MapGridGetMetatileIdAt(x, y) == METATILE_SecretBase_Stand_LeftCorner)) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_STAND); } - else if (behavior == 0xc1 && tileId == 0x23d) + else if (behavior == MB_IMPASSABLE_WEST_AND_EAST && tileId == METATILE_SecretBase_Slide_Stairs) { if (sInFriendSecretBase == TRUE) { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_USED_SLIDE); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_DECLINED_SLIDE); } } - else if (behavior == 0x47 && tileId == 0x23e) + else if (behavior == MB_SLIDE_SOUTH && tileId == METATILE_SecretBase_Slide) { if (sInFriendSecretBase == TRUE) { - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SLIDE); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ SECRET_BASE_DECLINED_SLIDE); } } else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_GLITTER_MAT); } else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) { @@ -1224,13 +1238,13 @@ void SecretBasePerStepCallback(u8 taskId) { switch ((int)MapGridGetMetatileIdAt(x, y)) { - case 0x338: - case 0x33c: - case 0x340: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); + case METATILE_SecretBase_RedBalloon: + case METATILE_SecretBase_BlueBalloon: + case METATILE_SecretBase_YellowBalloon: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_BALLOON); break; - case 0x228: - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); + case METATILE_SecretBase_MudBall: + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_MUD_BALL); break; } } @@ -1238,23 +1252,23 @@ void SecretBasePerStepCallback(u8 taskId) else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BREAKABLE_DOOR); ShatterSecretBaseBreakableDoor(x, y); } else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_NOTE_MAT); } else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_JUMP_MAT); } else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) { if (sInFriendSecretBase == TRUE) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SPIN_MAT); } } break; @@ -1417,9 +1431,8 @@ static void SortSecretBasesByRegistryStatus(void) { if ((secretBases[i].registryStatus == 0 && secretBases[j].registryStatus == 1) || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2)) { - struct SecretBase temp = secretBases[i]; - secretBases[i] = secretBases[j]; - secretBases[j] = temp; + struct SecretBase temp; + SWAP(secretBases[i], secretBases[j], temp) } } } @@ -1461,48 +1474,57 @@ bool8 SecretBaseBelongsToPlayer(struct SecretBase *secretBase) return TRUE; } +#define DELETED_BASE_A (1 << 0) +#define DELETED_BASE_B (1 << 1) +#define DELETED_BASE_C (1 << 2) + void DeleteFirstOldBaseFromPlayerInRecordMixingFriendsRecords(struct SecretBase *basesA, struct SecretBase *basesB, struct SecretBase *basesC) { u8 i; - u8 sbFlags = 0x0; + u8 sbFlags = 0; for (i = 0; i < SECRET_BASES_COUNT; i++) { - if (!(sbFlags & 0x1)) // 001 + if (!(sbFlags & DELETED_BASE_A)) { if (SecretBaseBelongsToPlayer(&basesA[i]) == TRUE) { ClearSecretBase(&basesA[i]); - sbFlags |= 1; + sbFlags |= DELETED_BASE_A; } } - if (!(sbFlags & 0x2)) // 010 + if (!(sbFlags & DELETED_BASE_B)) { if (SecretBaseBelongsToPlayer(&basesB[i]) == TRUE) { ClearSecretBase(&basesB[i]); - sbFlags |= 2; + sbFlags |= DELETED_BASE_B; } } - if (!(sbFlags & 0x4)) // 100 + if (!(sbFlags & DELETED_BASE_C)) { if (SecretBaseBelongsToPlayer(&basesC[i]) == TRUE) { ClearSecretBase(&basesC[i]); - sbFlags |= 4; + sbFlags |= DELETED_BASE_C; } } - if (sbFlags == 0x7) // 111 + if (sbFlags == (DELETED_BASE_A | DELETED_BASE_B | DELETED_BASE_C)) { break; } } } -bool8 sub_80EAD14(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c) +#undef DELETED_BASE_A +#undef DELETED_BASE_B +#undef DELETED_BASE_C + +// returns TRUE if secretBase was deleted, FALSE otherwise +static bool8 ClearDuplicateOwnedSecretBases(struct SecretBase *secretBase, struct SecretBase *secretBases, u8 c) { u8 i; @@ -1546,11 +1568,11 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se { basesA[i].sbr_field_1_0 = 1; } - if (!sub_80EAD14(&basesA[i], basesB, i)) + if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesB, i)) { - if (!sub_80EAD14(&basesA[i], basesC, i)) + if (!ClearDuplicateOwnedSecretBases(&basesA[i], basesC, i)) { - sub_80EAD14(&basesA[i], basesD, i); + ClearDuplicateOwnedSecretBases(&basesA[i], basesD, i); } } } @@ -1560,9 +1582,9 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se if (basesB[i].secretBaseId) { basesB[i].battledOwnerToday = 0; - if (!sub_80EAD14(&basesB[i], basesC, i)) + if (!ClearDuplicateOwnedSecretBases(&basesB[i], basesC, i)) { - sub_80EAD14(&basesB[i], basesD, i); + ClearDuplicateOwnedSecretBases(&basesB[i], basesD, i); } } } @@ -1571,7 +1593,7 @@ void sub_80EAD94(struct SecretBase *basesA, struct SecretBase *basesB, struct Se if (basesC[i].secretBaseId) { basesC[i].battledOwnerToday = 0; - sub_80EAD14(&basesC[i], basesD, i); + ClearDuplicateOwnedSecretBases(&basesC[i], basesD, i); } if (basesD[i].secretBaseId) { @@ -1617,6 +1639,17 @@ void sub_80EAEF4(struct SecretBaseRecordMixer *mixers) sub_80EABA4(&mixers[2], 0); } +#define INIT_SECRET_BASE_RECORD_MIXER(linkId1, linkId2, linkId3) \ + mixers[0].secretBases = secretBases + linkId1 * recordSize; \ + mixers[0].version = gLinkPlayers[linkId1].version & 0xFF; \ + mixers[0].language = gLinkPlayers[linkId1].language; \ + mixers[1].secretBases = secretBases + linkId2 * recordSize; \ + mixers[1].version = gLinkPlayers[linkId2].version & 0xFF; \ + mixers[1].language = gLinkPlayers[linkId2].language; \ + mixers[2].secretBases = secretBases + linkId3 * recordSize; \ + mixers[2].version = gLinkPlayers[linkId3].version & 0xFF; \ + mixers[2].language = gLinkPlayers[linkId3].language; + void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx) { struct SecretBaseRecordMixer mixers[3]; @@ -1638,48 +1671,16 @@ void ReceiveSecretBasesData(void *secretBases, size_t recordSize, u8 linkIdx) switch (linkIdx) { case 0: - mixers[0].secretBases = secretBases + 1 * recordSize; - mixers[0].version = gLinkPlayers[1].version & 0xFF; - mixers[0].language = gLinkPlayers[1].language; - mixers[1].secretBases = secretBases + 2 * recordSize; - mixers[1].version = gLinkPlayers[2].version & 0xFF; - mixers[1].language = gLinkPlayers[2].language; - mixers[2].secretBases = secretBases + 3 * recordSize; - mixers[2].version = gLinkPlayers[3].version & 0xFF; - mixers[2].language = gLinkPlayers[3].language; + INIT_SECRET_BASE_RECORD_MIXER(1, 2, 3) break; case 1: - mixers[0].secretBases = secretBases + 2 * recordSize; - mixers[0].version = gLinkPlayers[2].version & 0xFF; - mixers[0].language = gLinkPlayers[2].language; - mixers[1].secretBases = secretBases + 3 * recordSize; - mixers[1].version = gLinkPlayers[3].version & 0xFF; - mixers[1].language = gLinkPlayers[3].language; - mixers[2].secretBases = secretBases + 0 * recordSize; - mixers[2].version = gLinkPlayers[0].version & 0xFF; - mixers[2].language = gLinkPlayers[0].language; + INIT_SECRET_BASE_RECORD_MIXER(2, 3, 0) break; case 2: - mixers[0].secretBases = secretBases + 3 * recordSize; - mixers[0].version = gLinkPlayers[3].version & 0xFF; - mixers[0].language = gLinkPlayers[3].language; - mixers[1].secretBases = secretBases + 0 * recordSize; - mixers[1].version = gLinkPlayers[0].version & 0xFF; - mixers[1].language = gLinkPlayers[0].language; - mixers[2].secretBases = secretBases + 1 * recordSize; - mixers[2].version = gLinkPlayers[1].version & 0xFF; - mixers[2].language = gLinkPlayers[1].language; + INIT_SECRET_BASE_RECORD_MIXER(3, 0, 1) break; case 3: - mixers[0].secretBases = secretBases + 0 * recordSize; - mixers[0].version = gLinkPlayers[0].version & 0xFF; - mixers[0].language = gLinkPlayers[0].language; - mixers[1].secretBases = secretBases + 1 * recordSize; - mixers[1].version = gLinkPlayers[1].version & 0xFF; - mixers[1].language = gLinkPlayers[1].language; - mixers[2].secretBases = secretBases + 2 * recordSize; - mixers[2].version = gLinkPlayers[2].version & 0xFF; - mixers[2].language = gLinkPlayers[2].language; + INIT_SECRET_BASE_RECORD_MIXER(0, 1, 2) break; } @@ -1734,13 +1735,13 @@ void InitSecretBaseVars(void) sInFriendSecretBase = FALSE; } -void sub_80EB218(void) +void CheckLeftFriendsSecretBase(void) { if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && sInFriendSecretBase == TRUE && !CurMapIsSecretBase()) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); sInFriendSecretBase = FALSE; - sub_80EEA70(); + TryPutSecretBaseSecretsOnAir(); VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); @@ -1749,252 +1750,245 @@ void sub_80EB218(void) } } -void sub_80EB290(void) +void CheckInteractedWithFriendsDollDecor(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DOLL); } -void sub_80EB2C8(void) +void CheckInteractedWithFriendsCushionDecor(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_CUSHION); } -void sub_80EB300(void) +void DeclinedSecretBaseBattle(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x2000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE)); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW)); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_DECLINED_BATTLE); } } -void sub_80EB368(void) +void WonSecretBaseBattle(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x800); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE)); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW)); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_WON); } } -void sub_80EB3D0(void) +void LostSecretBaseBattle(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x1000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE)); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW)); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_BATTLED_LOST); } } -void sub_80EB438(void) +void DrewSecretBaseBattle(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~(SECRET_BASE_BATTLED_WON | SECRET_BASE_BATTLED_LOST | SECRET_BASE_DECLINED_BATTLE)); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~(SECRET_BASE_BATTLED_DRAW)); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_BATTLED_DRAW); } } -void SetSecretBaseSecretsTvFlags_Poster(void) +void CheckInteractedWithFriendsPosterDecor(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) { - case 0x31C: - case 0x31D: - case 0x31E: - case 0x31F: - case 0x324: - case 0x325: - case 0x326: - case 0x327: - case 0x32C: - case 0x32D: - case 0x330: - case 0x331: - case 0x332: - case 0x333: - case 0x334: + case METATILE_SecretBase_PikaPoster_Left: + case METATILE_SecretBase_PikaPoster_Right: + case METATILE_SecretBase_LongPoster_Left: + case METATILE_SecretBase_LongPoster_Right: + case METATILE_SecretBase_SeaPoster_Left: + case METATILE_SecretBase_SeaPoster_Right: + case METATILE_SecretBase_SkyPoster_Left: + case METATILE_SecretBase_SkyPoster_Right: + case METATILE_SecretBase_KissPoster_Left: + case METATILE_SecretBase_KissPoster_Right: + case METATILE_SecretBase_BallPoster: + case METATILE_SecretBase_GreenPoster: + case METATILE_SecretBase_RedPoster: + case METATILE_SecretBase_BluePoster: + case METATILE_SecretBase_CutePoster: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_POSTER); break; } } -void SetSecretBaseSecretsTvFlags_MiscFurnature(void) +void CheckInteractedWithFriendsFurnitureBottom(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) { - case 0x28a: - case 0x28b: - // Bird Statue + case METATILE_SecretBase_GlassOrnament_Base1: + case METATILE_SecretBase_GlassOrnament_Base2: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_GLASS_ORNAMENT); break; - case 0x2d8: - case 0x2d9: - case 0x2da: - case 0x2db: - case 0x2dc: - case 0x2dd: - case 0x2e8: - case 0x2e9: - case 0x2ea: - case 0x2eb: - case 0x2ec: - case 0x2ed: - case 0x2ee: - case 0x2ef: - case 0x2f8: - case 0x2f9: - case 0x2fa: - case 0x2fb: - // Plants + case METATILE_SecretBase_RedPlant_Base1: + case METATILE_SecretBase_RedPlant_Base2: + case METATILE_SecretBase_TropicalPlant_Base1: + case METATILE_SecretBase_TropicalPlant_Base2: + case METATILE_SecretBase_PrettyFlower_Base1: + case METATILE_SecretBase_PrettyFlower_Base2: + case METATILE_SecretBase_ColorfulFlowers_BaseLeft1: + case METATILE_SecretBase_ColorfulFlowers_BaseRight1: + case METATILE_SecretBase_ColorfulFlowers_BaseLeft2: + case METATILE_SecretBase_ColorfulFlowers_BaseRight2: + case METATILE_SecretBase_BigPlant_BaseLeft1: + case METATILE_SecretBase_BigPlant_BaseRight1: + case METATILE_SecretBase_BigPlant_BaseLeft2: + case METATILE_SecretBase_BigPlant_BaseRight2: + case METATILE_SecretBase_GorgeousPlant_BaseLeft1: + case METATILE_SecretBase_GorgeousPlant_BaseRight1: + case METATILE_SecretBase_GorgeousPlant_BaseLeft2: + case METATILE_SecretBase_GorgeousPlant_BaseRight2: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | SECRET_BASE_USED_PLANT); break; - case 0x22c: - case 0x233: - // Fence + case METATILE_SecretBase_Fence_Horizontal: + case METATILE_SecretBase_Fence_Vertical: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_FENCE); break; - case 0x288: - case 0x289: - // Tire + case METATILE_SecretBase_Tire_BottomLeft: + case METATILE_SecretBase_Tire_BottomRight: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE); break; - case 0x22d: - case 0x22e: - case 0x22f: - // Bricks + case METATILE_SecretBase_RedBrick_Bottom: + case METATILE_SecretBase_YellowBrick_Bottom: + case METATILE_SecretBase_BlueBrick_Bottom: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK); break; - case 0x287: - case 0x28f: - case 0x298: - case 0x299: - case 0x29a: - case 0x29b: - case 0x29c: - case 0x29d: - case 0x29e: - case 0x29f: - case 0x2ab: - case 0x2b0: - case 0x2b1: - case 0x2b2: - case 0x2b4: - case 0x2b5: - case 0x2b6: - case 0x2b7: - case 0x2cb: - case 0x2cc: - case 0x2cd: - case 0x2ce: - case 0x2cf: - // Tables + case METATILE_SecretBase_SmallDesk: + case METATILE_SecretBase_PokemonDesk: + case METATILE_SecretBase_HeavyDesk_BottomLeft: + case METATILE_SecretBase_HeavyDesk_BottomMid: + case METATILE_SecretBase_HeavyDesk_BottomRight: + case METATILE_SecretBase_RaggedDesk_BottomLeft: + case METATILE_SecretBase_RaggedDesk_BottomMid: + case METATILE_SecretBase_RaggedDesk_BottomRight: + case METATILE_SecretBase_ComfortDesk_BottomLeft: + case METATILE_SecretBase_ComfortDesk_BottomMid: + case METATILE_SecretBase_ComfortDesk_BottomRight: + case METATILE_SecretBase_BrickDesk_BottomLeft: + case METATILE_SecretBase_BrickDesk_BottomMid: + case METATILE_SecretBase_BrickDesk_BottomRight: + case METATILE_SecretBase_CampDesk_BottomLeft: + case METATILE_SecretBase_CampDesk_BottomMid: + case METATILE_SecretBase_CampDesk_BottomRight: + case METATILE_SecretBase_HardDesk_BottomLeft: + case METATILE_SecretBase_HardDesk_BottomMid: + case METATILE_SecretBase_HardDesk_BottomRight: + case METATILE_SecretBase_PrettyDesk_BottomLeft: + case METATILE_SecretBase_PrettyDesk_BottomMid: + case METATILE_SecretBase_PrettyDesk_BottomRight: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK); break; } } -void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void) +void CheckInteractedWithFriendsFurnitureMiddle(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) { - case 0x291: - case 0x294: - case 0x297: - case 0x2a1: - case 0x2a5: - case 0x2a9: - case 0x2ad: - case 0x2bb: - case 0x2be: - case 0x2c3: - case 0x2c6: + case METATILE_SecretBase_HeavyDesk_TopMid: + case METATILE_SecretBase_RaggedDesk_TopMid: + case METATILE_SecretBase_ComfortDesk_TopMid: + case METATILE_SecretBase_BrickDesk_TopMid: + case METATILE_SecretBase_BrickDesk_Center: + case METATILE_SecretBase_CampDesk_TopMid: + case METATILE_SecretBase_CampDesk_Center: + case METATILE_SecretBase_HardDesk_TopMid: + case METATILE_SecretBase_HardDesk_Center: + case METATILE_SecretBase_PrettyDesk_TopMid: + case METATILE_SecretBase_PrettyDesk_Center: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK); break; } } -void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void) +void CheckInteractedWithFriendsFurnitureTop(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch (MapGridGetMetatileIdAt(x, y)) { - case 0x290: - case 0x292: - case 0x293: - case 0x295: - case 0x296: - case 0x2a0: - case 0x2a2: - case 0x2a3: - case 0x2a4: - case 0x2a6: - case 0x2a7: - case 0x2a8: - case 0x2aa: - case 0x2ac: - case 0x2ae: - case 0x2af: - case 0x2bc: - case 0x2bd: - case 0x2bf: - case 0x2c4: - case 0x2c5: - case 0x2c7: + case METATILE_SecretBase_HeavyDesk_TopLeft: + case METATILE_SecretBase_HeavyDesk_TopRight: + case METATILE_SecretBase_RaggedDesk_TopLeft: + case METATILE_SecretBase_RaggedDesk_TopRight: + case METATILE_SecretBase_ComfortDesk_TopLeft: + case METATILE_SecretBase_ComfortDesk_TopRight: + case METATILE_SecretBase_BrickDesk_TopLeft: + case METATILE_SecretBase_BrickDesk_TopRight: + case METATILE_SecretBase_BrickDesk_MidLeft: + case METATILE_SecretBase_BrickDesk_MidRight: + case METATILE_SecretBase_CampDesk_TopLeft: + case METATILE_SecretBase_CampDesk_TopRight: + case METATILE_SecretBase_CampDesk_MidLeft: + case METATILE_SecretBase_CampDesk_MidRight: + case METATILE_SecretBase_HardDesk_TopLeft: + case METATILE_SecretBase_HardDesk_TopRight: + case METATILE_SecretBase_HardDesk_MidLeft: + case METATILE_SecretBase_HardDesk_MidRight: + case METATILE_SecretBase_PrettyDesk_TopLeft: + case METATILE_SecretBase_PrettyDesk_TopRight: + case METATILE_SecretBase_PrettyDesk_MidLeft: + case METATILE_SecretBase_PrettyDesk_MidRight: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_DESK); break; - case 0x280: - case 0x281: + case METATILE_SecretBase_Tire_TopLeft: + case METATILE_SecretBase_Tire_TopRight: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_TIRE); break; - case 0x225: - case 0x226: - case 0x227: + case METATILE_SecretBase_RedBrick_Top: + case METATILE_SecretBase_YellowBrick_Top: + case METATILE_SecretBase_BlueBrick_Top: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_BRICK); break; } } -void SetSecretBaseSecretsTvFlags_SandOrnament(void) +void CheckInteractedWithFriendsSandOrnament(void) { s16 x, y; GetXYCoordsOneStepInFrontOfPlayer(&x, &y); switch ((int)MapGridGetMetatileIdAt(x, y)) { - case 0x28d: - case 0x28e: - // Sand Ornament + case METATILE_SecretBase_SandOrnament_Base1: + case METATILE_SecretBase_SandOrnament_Base2: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) - VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | SECRET_BASE_USED_SAND_ORNAMENT); break; } } diff --git a/src/start_menu.c b/src/start_menu.c index b9ba68322023..a816f4f2f05a 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -966,8 +966,8 @@ static u8 SaveConfirmInputCallback(void) case 0: // Yes switch (gSaveFileStatus) { - case 0: - case 2: + case SAVE_STATUS_EMPTY: + case SAVE_STATUS_CORRUPT: if (gDifferentSaveFile == FALSE) { sSaveDialogCallback = SaveFileExistsCallback; @@ -1059,14 +1059,10 @@ static u8 SaveDoSaveCallback(void) saveStatus = TrySavingData(SAVE_NORMAL); } - if (saveStatus == 1) // Save succeded - { + if (saveStatus == SAVE_STATUS_OK) ShowSaveMessage(gText_PlayerSavedGame, SaveSuccessCallback); - } - else // Save error - { + else ShowSaveMessage(gText_SaveError, SaveErrorCallback); - } SaveStartTimer(); return SAVE_IN_PROGRESS; diff --git a/src/starter_choose.c b/src/starter_choose.c index 3484919925e6..11b84a9e2bc0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -640,7 +640,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) { u8 spriteId; - spriteId = CreatePicSprite2(species, 8, 0, 1, x, y, 0xE, 0xFFFF); + spriteId = CreatePicSprite2(species, SHINY_ODDS, 0, 1, x, y, 0xE, 0xFFFF); gSprites[spriteId].oam.priority = 0; return spriteId; } diff --git a/src/trade.c b/src/trade.c index af60d64c967b..bd97471e38ad 100644 --- a/src/trade.c +++ b/src/trade.c @@ -217,7 +217,7 @@ static void sub_807E55C(struct Sprite *sprite); static void sub_807E5D8(struct Sprite *sprite); static void sub_807E64C(struct Sprite *sprite); static void sub_807E6AC(struct Sprite *sprite); -static void BuffeInGameTradeMonName(void); +static void BufferInGameTradeMonName(void); static void SetInGameTradeMail(struct MailStruct *mail, const struct InGameTrade *trade); static void CB2_UpdateLinkTrade(void); static void CB2_TryFinishTrade(void); @@ -254,7 +254,7 @@ static bool32 sub_80771BC(void) { if (gUnknown_02022C2C == 29) { - if (gUnknown_03007880[sub_800E87C(gUnknown_03004140.unk_00)]->unk_0 == 0) + if (gRfuSlotStatusNI[sub_800E87C(gUnknown_03004140.unk_00)]->send.state == 0) return TRUE; else return FALSE; @@ -3761,7 +3761,7 @@ static bool8 AnimateTradeSequenceCable(void) FREE_AND_SET_NULL(sTradeData); } SetMainCallback2(CB2_ReturnToField); - BuffeInGameTradeMonName(); + BufferInGameTradeMonName(); } break; } @@ -4276,7 +4276,7 @@ static bool8 AnimateTradeSequenceWireless(void) FREE_AND_SET_NULL(sTradeData); } SetMainCallback2(CB2_ReturnToField); - BuffeInGameTradeMonName(); + BufferInGameTradeMonName(); } break; } @@ -4418,7 +4418,7 @@ u16 GetInGameTradeSpeciesInfo(void) return inGameTrade->requestedSpecies; } -static void BuffeInGameTradeMonName(void) +static void BufferInGameTradeMonName(void) { u8 nickname[32]; const struct InGameTrade *inGameTrade = &sIngameTrades[gSpecialVar_0x8004]; diff --git a/src/tv.c b/src/tv.c index fc23e538de07..2e925425308a 100644 --- a/src/tv.c +++ b/src/tv.c @@ -637,50 +637,51 @@ static const u8 *const sTVWhatsNo1InHoennTodayTextGroup[] = { gTVWhatsNo1InHoennTodayText08 }; -static const u8 *const sTVSecretBaseSecretsTextGroup[] = { - gTVSecretBaseSecretsText00, - gTVSecretBaseSecretsText01, - gTVSecretBaseSecretsText02, - gTVSecretBaseSecretsText03, - gTVSecretBaseSecretsText04, - gTVSecretBaseSecretsText05, - gTVSecretBaseSecretsText06, - gTVSecretBaseSecretsText07, - gTVSecretBaseSecretsText08, - gTVSecretBaseSecretsText09, - gTVSecretBaseSecretsText10, - gTVSecretBaseSecretsText11, - gTVSecretBaseSecretsText12, - gTVSecretBaseSecretsText13, - gTVSecretBaseSecretsText14, - gTVSecretBaseSecretsText15, - gTVSecretBaseSecretsText16, - gTVSecretBaseSecretsText17, - gTVSecretBaseSecretsText18, - gTVSecretBaseSecretsText19, - gTVSecretBaseSecretsText20, - gTVSecretBaseSecretsText21, - gTVSecretBaseSecretsText22, - gTVSecretBaseSecretsText23, - gTVSecretBaseSecretsText24, - gTVSecretBaseSecretsText25, - gTVSecretBaseSecretsText26, - gTVSecretBaseSecretsText27, - gTVSecretBaseSecretsText28, - gTVSecretBaseSecretsText29, - gTVSecretBaseSecretsText30, - gTVSecretBaseSecretsText31, - gTVSecretBaseSecretsText32, - gTVSecretBaseSecretsText33, - gTVSecretBaseSecretsText34, - gTVSecretBaseSecretsText35, - gTVSecretBaseSecretsText36, - gTVSecretBaseSecretsText37, - gTVSecretBaseSecretsText38, - gTVSecretBaseSecretsText39, - gTVSecretBaseSecretsText40, - gTVSecretBaseSecretsText41, - gTVSecretBaseSecretsText42 +static const u8 *const sTVSecretBaseSecretsTextGroup[SBSECRETS_NUM_STATES] = +{ + [SBSECRETS_STATE_INTRO] = TVSecretBaseSecrets_Text_Intro, + [SBSECRETS_STATE_DO_NEXT1] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext1, + [SBSECRETS_STATE_DO_NEXT2] = TVSecretBaseSecrets_Text_WhatWillPlayerDoNext2, + [SBSECRETS_STATE_TOOK_X_STEPS] = TVSecretBaseSecrets_Text_TookXStepsBeforeLeaving, + [SBSECRETS_STATE_BASE_INTEREST_LOW] = TVSecretBaseSecrets_Text_BaseFailedToInterestPlayer, + [SBSECRETS_STATE_BASE_INTEREST_MED] = TVSecretBaseSecrets_Text_PlayerEnjoyedBase, + [SBSECRETS_STATE_BASE_INTEREST_HIGH] = TVSecretBaseSecrets_Text_PlayerHugeFanOfBase, + [SBSECRETS_STATE_OUTRO] = TVSecretBaseSecrets_Text_Outro, + [SBSECRETS_STATE_NOTHING_USED1] = TVSecretBaseSecrets_Text_StoppedMoving1, + [SBSECRETS_STATE_NOTHING_USED2] = TVSecretBaseSecrets_Text_StoppedMoving2, + [SBSECRETS_STATE_USED_CHAIR] = TVSecretBaseSecrets_Text_UsedChair, + [SBSECRETS_STATE_USED_BALLOON] = TVSecretBaseSecrets_Text_UsedBalloon, + [SBSECRETS_STATE_USED_TENT] = TVSecretBaseSecrets_Text_UsedTent, + [SBSECRETS_STATE_USED_PLANT] = TVSecretBaseSecrets_Text_UsedPlant, + [SBSECRETS_STATE_USED_GOLD_SHIELD] = TVSecretBaseSecrets_Text_UsedGoldShield, + [SBSECRETS_STATE_USED_SILVER_SHIELD] = TVSecretBaseSecrets_Text_UsedSilverShield, + [SBSECRETS_STATE_USED_GLASS_ORNAMENT] = TVSecretBaseSecrets_Text_UsedGlassOrnament, + [SBSECRETS_STATE_USED_TV] = TVSecretBaseSecrets_Text_UsedTV, + [SBSECRETS_STATE_USED_MUD_BALL] = TVSecretBaseSecrets_Text_UsedMudBall, + [SBSECRETS_STATE_USED_BAG] = TVSecretBaseSecrets_Text_UsedBag, + [SBSECRETS_STATE_USED_CUSHION] = TVSecretBaseSecrets_Text_UsedCushion, + [SBSECRETS_STATE_HIT_CUSHION] = TVSecretBaseSecrets_Text_HitCushion, + [SBSECRETS_STATE_HUGGED_CUSHION] = TVSecretBaseSecrets_Text_HuggedCushion, + [SBSECRETS_STATE_BATTLED_WON] = TVSecretBaseSecrets_Text_BattledWon, + [SBSECRETS_STATE_BATTLED_LOST] = TVSecretBaseSecrets_Text_BattledLost, + [SBSECRETS_STATE_DECLINED_BATTLE] = TVSecretBaseSecrets_Text_DeclinedBattle, + [SBSECRETS_STATE_USED_POSTER] = TVSecretBaseSecrets_Text_UsedPoster, + [SBSECRETS_STATE_USED_NOTE_MAT] = TVSecretBaseSecrets_Text_UsedNoteMat, + [SBSECRETS_STATE_BATTLED_DRAW] = TVSecretBaseSecrets_Text_BattledDraw, + [SBSECRETS_STATE_USED_SPIN_MAT] = TVSecretBaseSecrets_Text_UsedSpinMat, + [SBSECRETS_STATE_USED_SAND_ORNAMENT] = TVSecretBaseSecrets_Text_UsedSandOrnament, + [SBSECRETS_STATE_USED_DESK] = TVSecretBaseSecrets_Text_UsedDesk, + [SBSECRETS_STATE_USED_BRICK] = TVSecretBaseSecrets_Text_UsedBrick, + [SBSECRETS_STATE_USED_SOLID_BOARD] = TVSecretBaseSecrets_Text_UsedSolidBoard, + [SBSECRETS_STATE_USED_FENCE] = TVSecretBaseSecrets_Text_UsedFence, + [SBSECRETS_STATE_USED_GLITTER_MAT] = TVSecretBaseSecrets_Text_UsedGlitterMat, + [SBSECRETS_STATE_USED_TIRE] = TVSecretBaseSecrets_Text_UsedTire, + [SBSECRETS_STATE_USED_STAND] = TVSecretBaseSecrets_Text_UsedStand, + [SBSECRETS_STATE_USED_BREAKABLE_DOOR] = TVSecretBaseSecrets_Text_BrokeDoor, + [SBSECRETS_STATE_USED_DOLL] = TVSecretBaseSecrets_Text_UsedDoll, + [SBSECRETS_STATE_USED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlide, + [SBSECRETS_STATE_DECLINED_SLIDE] = TVSecretBaseSecrets_Text_UsedSlideButDidntGoDown, + [SBSECRETS_STATE_USED_JUMP_MAT] = TVSecretBaseSecrets_Text_UsedJumpMat }; static const u8 *const sTVSafariFanClubTextGroup[] = { @@ -709,39 +710,42 @@ static const u8 *const sTVInSearchOfTrainersTextGroup[] = { gTVInSearchOfTrainersText08 }; -const u8 sTVSecretBaseSecretsStateLookup[] = { - 0x0a, - 0x0b, - 0x0c, - 0x0d, - 0x0e, - 0x0f, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x17, - 0x18, - 0x19, - 0x1a, - 0x1b, - 0x1c, - 0x1d, - 0x1e, - 0x1f, - 0x20, - 0x21, - 0x22, - 0x23, - 0x24, - 0x25, - 0x26, - 0x27, - 0x28, - 0x29, - 0x2a, - 0x2b +// Secret Base Secrets TV Show states for actions that can be taken in a secret base +// The flags that determine whether or not the action was taken are commented +const u8 sTVSecretBaseSecretsActions[NUM_SECRET_BASE_FLAGS] = +{ + SBSECRETS_STATE_USED_CHAIR, // SECRET_BASE_USED_CHAIR + SBSECRETS_STATE_USED_BALLOON, // SECRET_BASE_USED_BALLOON + SBSECRETS_STATE_USED_TENT, // SECRET_BASE_USED_TENT + SBSECRETS_STATE_USED_PLANT, // SECRET_BASE_USED_PLANT + SBSECRETS_STATE_USED_GOLD_SHIELD, // SECRET_BASE_USED_GOLD_SHIELD + SBSECRETS_STATE_USED_SILVER_SHIELD, // SECRET_BASE_USED_SILVER_SHIELD + SBSECRETS_STATE_USED_GLASS_ORNAMENT, // SECRET_BASE_USED_GLASS_ORNAMENT + SBSECRETS_STATE_USED_TV, // SECRET_BASE_USED_TV + SBSECRETS_STATE_USED_MUD_BALL, // SECRET_BASE_USED_MUD_BALL + SBSECRETS_STATE_USED_BAG, // SECRET_BASE_USED_BAG + SBSECRETS_STATE_USED_CUSHION, // SECRET_BASE_USED_CUSHION + SBSECRETS_STATE_BATTLED_WON, // SECRET_BASE_BATTLED_WON + SBSECRETS_STATE_BATTLED_LOST, // SECRET_BASE_BATTLED_LOST + SBSECRETS_STATE_DECLINED_BATTLE, // SECRET_BASE_DECLINED_BATTLE + SBSECRETS_STATE_USED_POSTER, // SECRET_BASE_USED_POSTER + SBSECRETS_STATE_USED_NOTE_MAT, // SECRET_BASE_USED_NOTE_MAT + SBSECRETS_STATE_BATTLED_DRAW, // SECRET_BASE_BATTLED_DRAW + SBSECRETS_STATE_USED_SPIN_MAT, // SECRET_BASE_USED_SPIN_MAT + SBSECRETS_STATE_USED_SAND_ORNAMENT, // SECRET_BASE_USED_SAND_ORNAMENT + SBSECRETS_STATE_USED_DESK, // SECRET_BASE_USED_DESK + SBSECRETS_STATE_USED_BRICK, // SECRET_BASE_USED_BRICK + SBSECRETS_STATE_USED_SOLID_BOARD, // SECRET_BASE_USED_SOLID_BOARD + SBSECRETS_STATE_USED_FENCE, // SECRET_BASE_USED_FENCE + SBSECRETS_STATE_USED_GLITTER_MAT, // SECRET_BASE_USED_GLITTER_MAT + SBSECRETS_STATE_USED_TIRE, // SECRET_BASE_USED_TIRE + SBSECRETS_STATE_USED_STAND, // SECRET_BASE_USED_STAND + SBSECRETS_STATE_USED_BREAKABLE_DOOR, // SECRET_BASE_USED_BREAKABLE_DOOR + SBSECRETS_STATE_USED_DOLL, // SECRET_BASE_USED_DOLL + SBSECRETS_STATE_USED_SLIDE, // SECRET_BASE_USED_SLIDE + SBSECRETS_STATE_DECLINED_SLIDE, // SECRET_BASE_DECLINED_SLIDE + SBSECRETS_STATE_USED_JUMP_MAT, // SECRET_BASE_USED_JUMP_MAT + SBSECRETS_NUM_STATES // SECRET_BASE_UNUSED_FLAG. Odd that this is included, if it were used it would overflow sTVSecretBaseSecretsTextGroup }; // .text @@ -2544,7 +2548,7 @@ void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode) } } -void sub_80EEA70(void) +void TryPutSecretBaseSecretsOnAir(void) { TVShow *show; u8 strbuf[32]; @@ -3591,7 +3595,7 @@ void GetMomOrDadStringForTVMessage(void) } } -void sub_80F01B8(void) +void HideBattleTowerReporter(void) { VarSet(VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, 0); RemoveEventObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); @@ -7340,35 +7344,32 @@ static void DoTVShowWhatsNo1InHoennToday(void) ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); } -u8 TVShowGetFlagCount(TVShow *show) +u8 SecretBaseSecrets_GetNumActionsTaken(TVShow *show) { u8 i; - u8 tot; + u8 flagsSet; - for (i = 0, tot = 0; i < 32; i ++) + for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++) { if ((show->secretBaseSecrets.flags >> i) & 1) - { - tot ++; - } + flagsSet++; } - return tot; + return flagsSet; } -static u8 SecretBaseSecrets_GetStateForFlagNumber(TVShow *show, u8 a1) +static u8 SecretBaseSecrets_GetStateByFlagNumber(TVShow *show, u8 flagId) { u8 i; - u8 tot; + u8 flagsSet; - for (i = 0, tot = 0; i < 32; i ++) + for (i = 0, flagsSet = 0; i < NUM_SECRET_BASE_FLAGS; i ++) { if ((show->secretBaseSecrets.flags >> i) & 1) { - if (tot == a1) - { - return sTVSecretBaseSecretsStateLookup[i]; - } - tot ++; + if (flagsSet == flagId) + return sTVSecretBaseSecretsActions[i]; + + flagsSet++; } } return 0; @@ -7378,7 +7379,7 @@ static void DoTVShowSecretBaseSecrets(void) { TVShow *show; u8 state; - u8 bitCount; + u8 numActions; u16 i; show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; @@ -7386,226 +7387,128 @@ static void DoTVShowSecretBaseSecrets(void) state = sTVShowState; switch (state) { - case 0: + case SBSECRETS_STATE_INTRO: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = TVShowGetFlagCount(show); - if (bitCount == 0) + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + if (numActions == 0) { - sTVShowState = 8; + sTVShowState = SBSECRETS_STATE_NOTHING_USED1; } else { - show->secretBaseSecrets.savedState = 1; - sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; - sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT1; + sTVSecretBaseSecretsRandomValues[0] = Random() % numActions; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); } break; - case 1: + case SBSECRETS_STATE_DO_NEXT1: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = TVShowGetFlagCount(show); - switch (bitCount) + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + switch (numActions) { case 1: - sTVShowState = 9; + sTVShowState = SBSECRETS_STATE_NOTHING_USED2; break; case 2: - show->secretBaseSecrets.savedState = 2; + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; if (sTVSecretBaseSecretsRandomValues[0] == 0) { - sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 1); + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 1); } else { - sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, 0); + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, 0); } break; default: for (i = 0; i < 0xFFFF; i ++) { - sTVSecretBaseSecretsRandomValues[1] = Random() % bitCount; + sTVSecretBaseSecretsRandomValues[1] = Random() % numActions; if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0]) { break; } } - show->secretBaseSecrets.savedState = 2; - sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); + show->secretBaseSecrets.savedState = SBSECRETS_STATE_DO_NEXT2; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); break; } break; - case 2: + case SBSECRETS_STATE_DO_NEXT2: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = TVShowGetFlagCount(show); - if (bitCount == 2) + numActions = SecretBaseSecrets_GetNumActionsTaken(show); + if (numActions == 2) { - sTVShowState = 9; + sTVShowState = SBSECRETS_STATE_NOTHING_USED2; } else { for (i = 0; i < 0xFFFF; i ++) { - sTVSecretBaseSecretsRandomValues[2] = Random() % bitCount; + sTVSecretBaseSecretsRandomValues[2] = Random() % numActions; if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1]) { break; } } - show->secretBaseSecrets.savedState = 3; - sTVShowState = SecretBaseSecrets_GetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); + show->secretBaseSecrets.savedState = SBSECRETS_STATE_TOOK_X_STEPS; + sTVShowState = SecretBaseSecrets_GetStateByFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); } break; - case 3: + case SBSECRETS_STATE_TOOK_X_STEPS: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase); if (show->secretBaseSecrets.stepsInBase <= 30) { - sTVShowState = 4; + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_LOW; } else if (show->secretBaseSecrets.stepsInBase <= 100) { - sTVShowState = 5; + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_MED; } else { - sTVShowState = 6; + sTVShowState = SBSECRETS_STATE_BASE_INTEREST_HIGH; } break; - case 4: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - sTVShowState = 7; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); - TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - sTVShowState = 7; - break; - case 6: + case SBSECRETS_STATE_BASE_INTEREST_LOW ... SBSECRETS_STATE_BASE_INTEREST_HIGH: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - sTVShowState = 7; + sTVShowState = SBSECRETS_STATE_OUTRO; break; - case 7: + case SBSECRETS_STATE_OUTRO: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); TVShowDone(); break; - case 8: - sTVShowState = 3; - break; - case 9: - sTVShowState = 3; + // All below states are descriptions of what the player interacted with while in the secret base + case SBSECRETS_STATE_NOTHING_USED1: + sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; break; - case 10: - sTVShowState = show->secretBaseSecrets.savedState; + case SBSECRETS_STATE_NOTHING_USED2: + sTVShowState = SBSECRETS_STATE_TOOK_X_STEPS; break; - case 11: + case SBSECRETS_STATE_USED_CHAIR ... SBSECRETS_STATE_USED_MUD_BALL: sTVShowState = show->secretBaseSecrets.savedState; break; - case 12: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 13: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 14: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 15: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 16: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 17: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 18: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 19: + case SBSECRETS_STATE_USED_BAG: StringCopy(gStringVar2, ItemId_GetName(show->secretBaseSecrets.item)); sTVShowState = show->secretBaseSecrets.savedState; break; - case 20: + case SBSECRETS_STATE_USED_CUSHION: + // Randomly decide based on trainer ID if the player hugged or hit the cushion if (show->common.trainerIdLo & 1) { - sTVShowState = 22; + sTVShowState = SBSECRETS_STATE_HUGGED_CUSHION; } else { - sTVShowState = 21; + sTVShowState = SBSECRETS_STATE_HIT_CUSHION; } break; - case 21: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 22: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 23: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 24: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 25: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 26: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 27: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 28: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 29: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 30: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 31: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 32: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 33: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 34: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 35: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 36: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 37: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 38: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 39: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 40: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 41: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 42: - sTVShowState = show->secretBaseSecrets.savedState; - break; - case 43: + case SBSECRETS_STATE_HIT_CUSHION ... SBSECRETS_NUM_STATES: sTVShowState = show->secretBaseSecrets.savedState; break; } diff --git a/src/union_room.c b/src/union_room.c index 4eea421baaa7..6098ce34965d 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -4077,7 +4077,7 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3) StringCopy(arg3->field_58 + 0x10, gSpeciesNames[sUnionRoomTrade.playerSpecies]); for (i = 0; i < 4; i++) { - if (gUnknown_03007890->unk_14[i].unk_04 == 2) + if (gRfuLinkStatus->partner[i].serialNo == 2) { ConvertIntToDecimalStringN(arg3->field_58 + 0x20, arg2[2], STR_CONV_MODE_LEFT_ALIGN, 3); StringCopy(arg3->field_58 + 0x30, gSpeciesNames[arg2[1]]); diff --git a/sym_common.txt b/sym_common.txt index 8f089520715d..a804a76e764c 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -77,4 +77,5 @@ gReservedSpritePaletteCount: .include "m4a.o" .include "agb_flash.o" .include "librfu_stwi.o" - .include "librfu.o" + .include "librfu_rfu.o" + .include "librfu_sio32id.o"